Mac bookにBasicTeXを導入してみた
先日Mac BookのOSを再インストールしたのでTeXを入れ直し、ついでにLuaLaTeXに乗り換えた話をします。
BasicTeXを入れる
Mac用のTeX環境として、MacTeXというものがあります。 とりあえずこれをインストールすればMacでTeXが使えるようになるのですが、インストーラのサイズが2.8Gもあり、ダウンロードに1時間程度かかって面倒です。 そのうえあまり使わないGUIアプリがついてきてLaunchpadが汚染されます。 *1
私の場合、Emacsのorg-modeやPandocを使ってMarkdownをTeXに変換するのが主な利用法なので最低限のコマンドが使えれば十分です。
そこで最小限の機能だけ持ったBasicTeXを入れることにしました。
MacTeXのサイトからBasicTeX.pkgをダウンロードします。 BasicTeX.pkgを起動しインストーラの指示に従ってインストールします。
インストールが完了すると/usr/local/texlive/
に2016bacis
(数字はバージョンによって異なる)というディレクトリが作成されます。 *2
必要なパッケージを入れる
BasicTeXは本当に最小限で日本語環境が使えないので必要なパッケージを入れます。
ターミナルで以下のコマンドを実行します。
% sudo tlmgr update --self —all % sudo tlmgr install collection-langjapanese
ちなみにtlmgr
はTeXLive managerの略だそうです。 *3
collection-langjapanese
にはluatex-ja
というパッケージが入っており、LuaTeXを日本語で使えるようになります。
ghostscript
、ImageMagick
を入れる
次にghostscript
とImageMagick
をインストールします。これらは画像処理やpdf関連の処理を行うプログラムで、TeXをpdfに出力する際に使われるそうです。
brew install ghostscript brew install imagemagick
インストールにはhomebrewを使用しました。「homebrewって何?」「brewコマンドが使えない」って人は"homebrew"で検索してみてください。
LuaLaTeXで書いてみた
LuaTeXの詳細はTeX Wikiの説明に丸投げします。ざっくりまとめるとLuaというプログラミング言語とLaTeXを混ぜたシステムです。
フォントの指定がわりと楽にできたり、Unicode文字に対応していたりとLaTeXより便利な点がいくつかあるのですが、 一番の利点はdviファイルを経由せずにpdf出力ができる点です。 *4
% platex report.tex % dvipdf report.dvi #LaTeXではこんな感じにやっていたのが % lualatex report #LuaTeXだとこれでOK
とりあえずluatex-ja Wikiにあるサンプルを出力してみました。
\documentclass{ltjsarticle} \usepackage{luatexja} % ltjclasses, ltjsclasses を使うときはこの行不要 \begin{document} \section{はじめてのLua\TeX-ja} ちゃんと日本語が出るかな? \subsection{出たかな?} 長い文章を入力するとちゃんと右端のところで折り返されるかな? 大丈夫そうな気がするけど.ちょっと不安だけど何事も挑戦だよね. \end{document}
上記をtest.tex
の名称で保存しpdf出力してみます。
% lualatex test.tex : : ! LaTex Error: File `filehook.sty’ not found.
どうやらfilehook.sty
が必要なのにインストールされていないのでエラーが発生したようです。tlmgr
を使ってfilehook
をインストールします。
% sudo tlmgr install filehook
これに限らず、hoge.sty not found.
というエラーが発生した場合、sudo tlmgr install hoge
でスタイルファイルをインストールする必要があります。
何度か「実行」→「エラー」→「スタイルファイルを入れる」を繰り返すと出力が成功します。
画像が表示されない場合
以降はLuaTeXを使い始めたばかりのときに躓いた部分を紹介します。同じような失敗をしている人の参考になれば幸いです。
LaTeXで画像を使用する場合、ヘッダ部分に
\usepackage[dvipdfmx]{graphicx}
と記述します。
一方でLuaLaTeXで画像を使用する場合、ドライバ指定オプションは不要です。
\usepackage{graphicx} %LuaTeXではこう
ここでドライバ指定を付けたまま出力すると、画像の部分が白抜き状態になります。
\documentclass{ltjsarticle} \usepackage{luatexja} \usepackage{graphicx} %[dvipdfmx]は不要 \begin{document} \section{はじめてのLua\TeX-ja} ちゃんと画像が出るかな? \begin{figure}[h] \includegraphics[width=10cm]{test.jpg} \caption{Lenna} \end{figure} \end{document}
オプションを付けたままだとこんな感じ
筆者はネットから拾ってきたLaTeXのサンプルコードを何も考えずにコピペした結果、この症状に見舞われ数時間無駄にしました。
脳死コピペ、ダメゼッタイ