開拓馬の厩

いろいろやる

Mac bookにBasicTeXを導入してみた

先日Mac BookのOSを再インストールしたのでTeXを入れ直し、ついでにLuaLaTeXに乗り換えた話をします。

BasicTeXを入れる

Mac用のTeX環境として、MacTeXというものがあります。 とりあえずこれをインストールすればMacTeXが使えるようになるのですが、インストーラのサイズが2.8Gもあり、ダウンロードに1時間程度かかって面倒です。 そのうえあまり使わないGUIアプリがついてきてLaunchpadが汚染されます。 *1

私の場合、Emacsのorg-modeやPandocを使ってMarkdownTeXに変換するのが主な利用法なので最低限のコマンドが使えれば十分です。

そこで最小限の機能だけ持った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を日本語で使えるようになります。

ghostscriptImageMagickを入れる

次にghostscriptImageMagickをインストールします。これらは画像処理や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でスタイルファイルをインストールする必要があります。

何度か「実行」→「エラー」→「スタイルファイルを入れる」を繰り返すと出力が成功します。

f:id:pf_siedler:20161123141357p:plain

画像が表示されない場合

以降は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}

f:id:pf_siedler:20161123141531p:plain

オプションを付けたままだとこんな感じ

f:id:pf_siedler:20161123141509p:plain

筆者はネットから拾ってきたLaTeXのサンプルコードを何も考えずにコピペした結果、この症状に見舞われ数時間無駄にしました。

脳死コピペ、ダメゼッタイ

*1:個人の感想です。TeXShopは人によっては便利かも

*2:フルパッケージのMacTeXの場合、ディレクトリがtexlive/2016のように数字のみになる。MacTeX関連の記事を読む場合、2016→2016bacisと読み替える必要がある

*3:こういう略語の元の言葉を覚えておくとコマンドを暗記しやすい気がする

*4:pdf直接出力はLuaLaTeXの派生元であるpdfTeXで実装された機能です。pdfTeXは国内ではマイナーですが、海外ではよく使われているそうです。