MacTeX 2014
TeX環境を入れ直したのでメモ。
なんだかんだでhomebrewからMacPortsに戻ってきました。
MacPortsにはtexのパッケージが用意されています。しかし、MacPortsからインストールするとTeXのパッケージ管理ツールTeX Live Manager(tlmgr)での管理が出来ないのと、パスがTeXの共通的な/usr/texbin
ではなく/opt/local
なパスになって、他の人とのTeXに関するスクリプトの共有が難しくなります。というわけで、ここはやはりMacTeX (TeX Live)を使います。
方針:TeX Live Managerで管理されないものはMacPortsで管理する
MacTex 2014にはps => pdf 変換に使われるghostscriptがバンドルされていますが、これはTeX Live Managerの管理対象外なので、MacPortsで管理することにします。
1. インストールするもの
パッケージ名 | 内容 | 備考 |
---|---|---|
ghostscript | ps => pdf変換等々に使われる | MacPortsからインストールする |
ImageMagick | TeXに画像を埋め込むときに、png, jpg等々の画像からepsに変換するためによく使う | MacPortsからインストールする |
MacTeX 2014 | デファクトスタンダードなTeXのディストリビューションであるTeX Liveと、Mac用のGUIアプリ、ghostscriptをバンドルしたもの | ここでは必要最小限のGUIアプリを導入するため、TeX Live 2014のみインストールします |
TeX Live Utility | パッケージ管理ツール TeX Live Manager (tlmgr)のフロントエンド | 個別にインストールします |
MacTeX 2014には、
が同梱されています。MacTeXに同梱されたGUIアプリは今回扱いませんが、紹介だけしておきます。
MacTeXに同梱されたGUIアプリ(今回は割愛):
- TeXShop: TeXのエディタ。これ使うよりvim使いましょう。
- TeXworks: TeXの統合環境、補完機能とかある。それよりvim使おう。
- BibDesk: 文献管理ツール。これ使うならJabRefかMendeleyがオススメ。
- LaTeXiT: 数式エディタ。パワポに数式を貼り付けるのに便利。
- TeX Live Utility: TeXのパッケージ管理ツール。個別にインストールするので、MacTeX に同梱されているものは無視。
- Excalibur: スペルチェッカ。誤字脱字は恥ずかしいのであったほうがいいかも。
2. 前提環境
3. インストール
3.1 ghostscript
ghostscriptは、ページ記述言語であるPostScriptとPDFのインタプリタであり、これらのデータを入力として、ラスタ画像(ビットマップ画像)に変換し、印刷やビューアでの表示、あるいはPostScript <-> PDF間の変換に使われます。
CUPS対応のghostscriptを導入するなら、+cupsオプションをつけておきましょう。
$ sudo port install ghostscript +universal +cups + x11
3.2 ImageMagick
ImageMagickは様々なフォーマットの画像に対するフォーマット変換やリサイズ、回転、色調整等々の各種操作を扱うソフトウェアスイートです。
以下のオプションを指定してインストールします。 大量の依存パッケージがインストールされますが、細かいコトは気にしないようにしましょう。問題があるようなら、オプションを変えてパッケージを再インストールすればいいのです。
$ sudo port install ImageMagick +graphviz +jbig +jpeg2 +pango +rsvg +universal +wmf +x11
オプションが気になる方へ:
ImageMagickパッケージは依存関係のある厄介なオプションが多く、パッケージのオプションを注意深く検討しているporterにとっては要注意パッケージです。
特に、ImageMagickパッケージの+graphvizオプションを有効にしたときに依存するgraphvizパッケージは、オプションとそれに依存するパッケージが多いので、気になる方は事前にgraphvizを導入しておいたほうがいいでしょう。
3.3 MacTeX 2014
以下から、MacTeX.pkg
をダウンロードします。
ダウンロードしたpkgを実行し、TeX Live 2014のみをインストールするようにします。
インストールが完了したら、環境がTeX Live 2014になっていることを確認します。
Appleマーク→「システム環境設定」→「TeX Distribution」を開き、TeXLive-2014が選択されていることを確認します。
4. パッケージ管理
$ mkdir -p /Applications/TeX
4.1 Tex Live Utilityのインストール
以下から、最新のTeX Live Utilityをダウンロードします。ダウンロード一覧の中にはBETA版が混在していますが、避けたほうがいいです。
https://code.google.com/p/mactlmgr/
ここでは、TeX Live Utility.app-1.17.tar.gzをダウンロードしました。このファイルを展開して、出てきた.appファイルを/Application/TeX
に移動してください。
4.2 パッケージの最新化
TeX Live Utilityを起動すると、自動的にパッケージの一覧を取得しにいくので、しばらく待ちます。
メニューの「作業」→「すべてのパッケージを更新」を選びます。
4.3 pmetapost, pxdvi の導入
4.3.1 pmetapost, pxdviとは
pmetapostはMetaPostを日本語に対応させたものです。
MetaPostは、図形描画のための一種のプログラミング言語であり、そのインタプリタでもあります(ドナルド・クヌース先生のMetafontという言語に基いていて、構文的に類似性があるそうです)。 重要なのは直接EPS(Encapsulated PostScript)を生成できるところで、これによってベクトルデータのみを含むようなepsが扱えるようになります。pngやjpgといった画像からepsに変換することも出来ますが、ビットマップデータを含む形になってしまい、画像がややぼやけてしまう問題があります。綺麗な図形を扱うならmetapostというわけです。pmetapostを使うことで、日本語文字の入った図形を描画できます。
pxdviは、dviビューアであるxdviの日本語化版です。(Mac環境でこれを使うことはあまりないので、こっちはどうでもいい)
4.3.2 tlptexliveリポジトリによるパッケージの導入
これらpmetapost, pxdviを扱っているリポジトリがtlptexliveであり、TeX Live 2014 版のURLは以下になります。
http://www.tug.org/~preining/tlptexlive/
(参考: http://www.preining.info/blog/2014/05/tex-live-2014%E3%81%AEtlptexlive/)
※以前はptex, uptexも上記のリポジトリから導入していましたが、現在ではTeX Liveに取り込まれたようです。
このURLを、Tex Live UtilityのURLに貼り付けると、
http://www.tug.org/~preining/tlptexlive/のリポジトリにはTeX Live 2013がありますが、ここに導入されているものは TeX Live 2014です。続行するにはリポジトリを切り替えなくてはなりません。
というエラーが出て先に進めません。(2014年7月現在)
ここでは、コマンドラインから直接リポジトリを追加してパッケージを導入していきます。
$ sudo tlmgr repository add http://www.tug.org/~preining/tlptexlive/ tlptexlive tlmgr: added repository with tag tlptexlive: http://www.tug.org/~preining/tlptexlive/ $ sudo tlmgr pinning add tlptexlive '*' tlmgr: package repositories: main = http://mirror.ctan.org/systems/texlive/tlnet tlptexlive = http://www.tug.org/~preining/tlptexlive/ tlmgr: new pinning data for tlptexlive: * $ sudo tlmgr install pxdvi pmetapost tlmgr: package repositories: main = http://mirror.ctan.org/systems/texlive/tlnet tlptexlive = http://www.tug.org/~preining/tlptexlive/ ...(中略)... done running mtxrun --generate.
これで、pxdvi, pmetapostが導入できました。
5. 日本語フォントの設定
PDFはフォントを埋め込むことが出来ます。逆にフォントを埋め込まない場合、(特に印刷所での印刷で)文字化けを起こす可能性があります。 学会等ではフォント埋込みを要求しているところが多く、フォント埋め込みがなされていない場合は投稿時にエラー、なんてところもあるようです。
TeX Live 2014はデフォルトで埋込みがなされない(noEmbed)設定になっています。というわけで、ここでは、日本語フォントを埋め込む設定を行っていきます。
MacのTeXに関するページで、よくヒラギノフォントの設定が書かれていますが、これをやってしまうと、気づかないうちにヒラギノフォントを埋め込んだPDFを外部に公開してしまうのでオススメしません(ご自身の利用ケースではライセンス的に問題無いことが明確であれば別です)。
かといって、ライセンスフリーなIPA, IPAexフォントは太字が無いため、単にIPA, IPAexフォントにすればいいというものでもありません。 そのため、明朝の太字、ゴシックの太字等々、パターンに応じたフォントの用意とそのフォントマップの設定をする必要があります。(太字をゴシックで代用する方法で問題なければ、IPAexフォントでいいと思います)
ここでは、以下のthomas氏のページを参考に、基本的な5種類のフォントについて具体的な設定を行っていきます。ディレクトリやファイル名等は若干変えていきます。
参考:http://www.fugenji.org/~thomas/texlive-guide/font_setup.html
(フォントに関する問題を知っておくためにも、一読されることをお勧めします。ここでは単にMacでのインストール作業について述べます。)
No. | フォントの種類 | 採用するフォント |
---|---|---|
(1) | 明朝 | IPAex 明朝 |
(2) | ゴシック | IPAex ゴシック |
(3) | ボールド明朝 | MogaMincho Bold |
(4) | ボールドゴシック | MigMix 2P Bold |
(5) | 丸ゴシック | MigMix 1M Regular |
5.1 FontBookの設定
フォントは、ユーザディレクトリ側ではなくシステム側にインストールします。 まず/Applications/Font Book.appを起動します。(Launchpadの場合、「その他」の中にあります)
次にメニューの「Font Book」→「環境設定」を開き、デフォルトのインストール場所を「コンピュータ」に変更しておきます。
5.2 (1) 明朝、(2)ゴシック
基本となる明朝・ゴシック体フォントは、IPAexフォントを使います。
IPAフォントとIPAexフォントの違いは、IPAフォントが固定幅フォント(IPA 明朝等)と可変幅フォント(IPA P明朝等)で別れていたのに対し、IPAexフォントでは和文文字が固定幅、欧文文字が変動幅となっており、日本語文書の慣例に沿っている点が特徴的です。
IPAexフォントはTex Live 2014に同梱されておりそれをインストールすればいいのですが、ここでは新たにダウンロードしてインストールします。 ダウンロードは以下から行います。
http://ipafont.ipa.go.jp/ipaexfont/download.html
2書体パックとなっているものをダウンロードすると手っ取り早いです。
2書体パック(IPAex明朝(Ver.002.01)、IPAexゴシック(Ver.002.01)) IPAexfont00201.zip(9.31 MB)
ファイルを展開すると、「ipaexg.ttf」と「ipaexm.ttf」が出てくるので、それぞれインストールします。 このとき、ユーザ側に同じフォントがインストールされていないことを確認します。もしインストールされていた場合は、先にそのフォントをアンインストールしておきます。
次に、texliveフォルダにIPAexフォントのリンクを貼ります。
# texliveのフォントフォルダに移動する $ cd /usr/local/texlive/texmf-local/fonts # IPAexフォントを格納するフォルダを作成する $ sudo mkdir -p truetype/public/ipaex # インストールしておいたIPAexフォントのリンクを貼る $ sudo ln -fs /Library/Fonts/ipa*.ttf ./
5.3 (3) ボールド明朝
明朝のボールドはMogaMinchoを使用します。 現状では、フリーなフォントとしてはこれが唯一の選択肢のようです。
以下のページにMogaMinchoを含む「ゴシック&明朝 MoboGothic / MogaGothic / MogaMincho TTCパック」がありますので、それをダウンロードします。
http://yozvox.web.fc2.com/82A882B782B782DF8374834883938367.html
ここでは、MoboMoga-001.02.12b.7zをダウンロードしました。 これを展開し、「mogamb.ttc」をダブルクリックすると、複数のフォントが表示されます。
これらをひと通りインストールします。
次にフォントのシンボリックリンクを作成します。
$ cd /usr/local/texlive/texmf-local/fonts/truetype/public $ sudo mkdir moga $ cd moga $ sudo ln -fs /Library/Fonts/mogamb.ttc .
5.4 (4) ボールドゴシック、(5)丸ゴシック
ゴシック体のボールドにはMigMix 2P、丸ゴシックとしてMigMix 1Mを使います。
以下のページから、MigMix 2PとMigMix 1Mのファイルをそれぞれダウンロードします。
http://mix-mplus-ipa.sourceforge.jp/migmix/
(今回は、migmix-2p-20130617.zip, migmix-1m-20130617.zipをダウンロードしました。)
それぞれのzipファイルを展開して、
- MigMix 2P: migmix-2p-bold.ttf
- MigMix 1M: migmix-1m-regular.ttf
をそれぞれインストールします。 先と同様に、シンボリックリンクを作成します。
$ cd /usr/local/texlive/texmf-local/fonts/truetype/public/ $ sudo mkdir migmix $ cd migmix $ sudo ln -fs /Library/Fonts/migmix-*.ttf ./
5.5 フォントマップの設定
(1) マップファイルの配置
マップファイルを格納するフォルダを作成します。
$ cd /usr/local/texlive/texmf-local/fonts/ $ sudo mkdir -p map/dvipdfmx/jfontmaps/allfree
次に、以下のファイルをptex-allfree.mapというファイル名で保存し、/usr/local/texlive/texmf-local/fonts/map/dvipdfmx/jfontmaps/allfree
に格納します。
※ 以下のファイルはthomas氏のmapファイルを若干修正したものです。
platex-allfree.map:
rml UniJIS-UTF16-H ipaexm.ttf rmlv UniJIS-UTF16-V ipaexm.ttf rml Identity-H ipaexm.ttf rmlv Identity-V ipaexm.ttf rml H ipaexm.ttf rmlv V ipaexm.ttf unijmin-h UniJIS-UTF16-H ipaexm.ttf unijmin-v UniJIS-UTF16-V ipaexm.ttf cidmin-h Identity-H ipaexm.ttf/AJ16 cidmin-v Identity-V ipaexm.ttf/AJ16 gbm UniJIS-UTF16-H ipaexg.ttf gbmv UniJIS-UTF16-V ipaexg.ttf gbm Identity-H ipaexg.ttf gbmv Identity-V ipaexg.ttf gbm H ipaexg.ttf gbmv V ipaexg.ttf unijgoth-h UniJIS-UTF16-H ipaexg.ttf unijgoth-v UniJIS-UTF16-V ipaexg.ttf cidgoth-h Identity-H ipaexg.ttf/AJ16 cidgoth-v Identity-V ipaexg.ttf/AJ16 otf-ujmr-h UniJIS-UTF16-H ipaexm.ttf otf-ujmr-v UniJIS-UTF16-V ipaexm.ttf otf-cjmr-h Identity-H ipaexm.ttf/AJ16 otf-cjmr-v Identity-V ipaexm.ttf/AJ16 hminr-h H ipaexm.ttf hminr-v V ipaexm.ttf otf-ujgr-h UniJIS-UTF16-H ipaexg.ttf otf-ujgr-v UniJIS-UTF16-V ipaexg.ttf otf-cjgr-h Identity-H ipaexg.ttf/AJ16 otf-cjgr-v Identity-V ipaexg.ttf/AJ16 hgothr-h H ipaexg.ttf hgothr-v V ipaexg.ttf otf-ujmb-h UniJIS-UTF16-H :1:mogamb.ttc otf-ujmb-v UniJIS-UTF16-V :1:mogamb.ttc otf-cjmb-h Identity-H :1:mogamb.ttc/AJ16 otf-cjmb-v Identity-V :1:mogamb.ttc/AJ16 hminb-h H :1:mogamb.ttc hminb-v V :1:mogamb.ttc otf-cjgb-h Identity-H migmix-2p-bold.ttf/AJ16 otf-cjgb-v Identity-V migmix-2p-bold.ttf/AJ16 otf-ujgb-h UniJIS-UTF16-H migmix-2p-bold.ttf otf-ujgb-v UniJIS-UTF16-V migmix-2p-bold.ttf hgothb-h H migmix-2p-bold.ttf hgothb-v V migmix-2p-bold.ttf otf-ujmgr-h UniJIS-UTF16-H migmix-1m-regular.ttf otf-ujmgr-v UniJIS-UTF16-V migmix-1m-regular.ttf otf-cjmgr-h Identity-H migmix-1m-regular.ttf/AJ16 otf-cjmgr-v Identity-V migmix-1m-regular.ttf/AJ16 hmgothr-h H migmix-1m-regular.ttf hmgothr-v V migmix-1m-regular.ttf
注意点として、上記のフォントファイル名(migmix-2pp-bold.ttf等)の箇所は、大文字小文字が区別されるため、実際のファイル名と合わせて下さい。
余談ですが、上記のmapファイルのファイル名には、先頭にplatex-と付けています。これをつけておかないと、マップの反映をする際に次のようなエラーが発生します。
$ kanji-config-updmap allfree NOT EXIST ptex-allfree.map
スクリプトをみると、mapファイルの先頭にptex-を決め打ちで付けていました(3行目)。
sub SetupMapFile { my $rep = shift; my $MAPFILE = "ptex-$rep.map"; if (check_mapfile($MAPFILE)) { print "Setting up ... $MAPFILE\n"; system("$updmap --quiet --nomkmap --nohash -setoption kanjiEmbed $rep"); if ($opt_jis) { system("$updmap --quiet --nomkmap --nohash -setoption kanjiVariant -04"); } else { system("$updmap --quiet --nomkmap --nohash -setoption kanjiVariant \"\""); } system("$updmap"); } else { print "NOT EXIST $MAPFILE\n"; exit 1; } }
(2) ls-Rデータベースの更新
ひと通りのフォントのセットアップが終わったら、mktexlsrコマンドでls-Rデータベースを更新します。 このls-Rは、/usr/local/texlive/texmf-local以下のテキストファイルの検索を高速化するために用いられるものです。
$ sudo mktexlsr mktexlsr: Updating /usr/local/texlive/2014/texmf-config/ls-R... mktexlsr: Updating /usr/local/texlive/2014/texmf-dist/ls-R... mktexlsr: Updating /usr/local/texlive/2014/texmf-var/ls-R... mktexlsr: Updating /usr/local/texlive/texmf-local/ls-R... mktexlsr: Done.
(3) マップファイルの適用
$ kanji-config-updmap allfree
上記の場合、ユーザ環境に個別に設定が適用されます。システム全体に適応した場合は、sudo kanji-config-updmap-sys
コマンドを使用してください。
5.6 ヒラギノフォントを埋め込む場合
以下のコマンドをコピペして実行するだけで設定できます。
sudo mkdir -p /usr/local/texlive/texmf-local/fonts/opentype/hiragino/ cd /usr/local/texlive/texmf-local/fonts/opentype/hiragino/ sudo ln -fs "/Library/Fonts/ヒラギノ明朝 Pro W3.otf" ./HiraMinPro-W3.otf sudo ln -fs "/Library/Fonts/ヒラギノ明朝 Pro W6.otf" ./HiraMinPro-W6.otf sudo ln -fs "/Library/Fonts/ヒラギノ丸ゴ Pro W4.otf" ./HiraMaruPro-W4.otf sudo ln -fs "/Library/Fonts/ヒラギノ角ゴ Pro W3.otf" ./HiraKakuPro-W3.otf sudo ln -fs "/Library/Fonts/ヒラギノ角ゴ Pro W6.otf" ./HiraKakuPro-W6.otf sudo ln -fs "/Library/Fonts/ヒラギノ角ゴ Std W8.otf" ./HiraKakuStd-W8.otf sudo ln -fs "/System/Library/Fonts/ヒラギノ明朝 ProN W3.otf" ./HiraMinProN-W3.otf sudo ln -fs "/System/Library/Fonts/ヒラギノ明朝 ProN W6.otf" ./HiraMinProN-W6.otf sudo ln -fs "/Library/Fonts/ヒラギノ丸ゴ ProN W4.otf" ./HiraMaruProN-W4.otf sudo ln -fs "/System/Library/Fonts/ヒラギノ角ゴ ProN W3.otf" ./HiraKakuProN-W3.otf sudo ln -fs "/System/Library/Fonts/ヒラギノ角ゴ ProN W6.otf" ./HiraKakuProN-W6.otf sudo ln -fs "/Library/Fonts/ヒラギノ角ゴ StdN W8.otf" ./HiraKakuStdN-W8.otf sudo texconfig-sys rehash
実際にヒラギノフォントのマップファイルを適用するには、以下を実行します。
$ kanji-config-updmap hiragino
5.7 確認
テキトーなファイルを作って、allfree版とhiragino版それぞれの結果を確認してみます。
せっかくuplatexがTeX Liveにバンドルされているので、uplatexを使いましょう。{jsarticle}
の前に、uplatexを指定します。
sample.pdf:
\documentclass[uplatex]{jsarticle} \usepackage[expert, deluxe]{otf} \usepackage{amsthm} \begin{document} \section{漢字とひらがなとカタカナ} \subsection{漢字とひらがなとカタカナ} \subsubsection{漢字とひらがなとカタカナ} これは通常のテキストで、明朝で表示されます. {\bf ボールド明朝}と{\gt ゴシック}、{\bf \textgt{ボールドゴシック}}、そして{\mgfamily 丸ゴシック}の書体が使い分けられます. \noindent {\bf 集合}(set)とは、ものの集まりのことである. \noindent {\gt 集合}(set)とは、ものの集まりのことである. \noindent {\bf \textgt{集合}}(set)とは、ものの集まりのことである. \end{document}
Makefileはちゃちゃっとこんな感じで。(スペース4つはタブに読み替えてください)
LATEX=uplatex PDFLATEX=pdflatex DVIPDFM=dvipdfmx TARGET=sample.pdf .PHONY: all clean all: $(TARGET) clean: /bin/rm -f *.dvi *.out *.nav *.snm *.vrb *.toc *.aux *.log *.pdf %.pdf: %.dvi dvipdfmx $< %.dvi: %.tex uplatex -interaction=batchmode $<
結果をみてみましょう。
allfree版:
hiragino版:
集合(set)とは〜、の下りのところは、上からボールド明朝、ゴシック、ボールドゴシックです。
allfree版で示したMogaMincho Boldはやや太さが足りない気がします。やはりヒラギノフォントは優秀です。フォントについて考えだすときりがないので、(クオリティについては)商用の出版物でない限り気にしないことにします。
5.8 フォントマップ切り替え
- デフォルトに戻す
kanji-config-updmap noEmbed
- allfreeなフォント埋込みにする
kanji-config-updmap allfree
- ヒラギノフォント埋込みにする
kanji-config-updmap hiragino
システム全体に適用する場合はkanji-config-updmap-sys
を使います。また、以前はupdmap-setup-kanji
というコマンド名でしたが、現在ではkanji-config-updmap
に変わっています。
Vim + Vim-LaTeX
Vimのtexプラグインは、Vim-LaTeXが有名らしいです。
インストール
NeoBundleを使っている場合、.vimrc
に以下の行を加えてvimを起動すれば勝手にインストールされます。
NeoBundle 'git://git.code.sf.net/p/vim-latex/vim-latex'
.vimrcの設定と使い方
.vimrcの設定はこちらをそのままコピペします。
使い方は、以下のページが詳しいです。
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?Vim-LaTeX#v4639f7b
さらなる詳細は、vimから:help latex-suite
で出てきます。
特に使用頻度の高そうな機能を紹介すると、以下の操作でコンパイルと表示が出来ます。いずれもノーマルモード時にて。
特に、Preview.appを使っている場合、pdfを表示したまま\ll
で再コンパイルすると、その結果がそのまま反映されます。
\ll
すら面倒だ、という方にはOMakeを使用することをオススメします。
OMakeでtexをコンパイルするのはこのあたりが参考になります。
http://d.hatena.ne.jp/hayamiz/20081208/1228727272
texのファイルが変更されたことを監視して勝手にコンパイルしてくれるので、
「texファイルを更新・保存」
↓
(OMakeがコンパイル)
↓
「Preview.appが勝手に再読み込み」
という擬似リアルタイムプレビューの完成です。
それでは新しいTeX環境で素敵な執筆ライフを!
参考にさせていただいたページ
TeX Wiki, 「Vim-LaTeX」
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?Vim-LaTeX
Norbert Preining, 「TeX Live 2014のtlptexlive」
http://www.preining.info/blog/2014/05/tex-live-2014%E3%81%AEtlptexlive/
Tamotsu Thomas UEDA, 「日本語フォントのセットアップ」
http://www.fugenji.org/~thomas/texlive-guide/font_setup.html
hayamiz, 「OMake つかって LaTeX コンパイルしたら簡単すぎて身長が5cm伸びた」
http://d.hatena.ne.jp/hayamiz/20081208/1228727272