Edited at

はじめてTeXを使う人が知っておくといいことまとめ

More than 1 year has passed since last update.


ディストリ

Windows・Linuxの場合、容量はデカいですがTeXLiveがおすすめです。後述するフォント埋め込みの設定を1度すれば後はしなくてもいい・クロスプラットフォームだからです。インストールするパッケージは必要に応じて取捨選択すると容量を削減できます。

Macの場合はMacTeXでいいみたいです。(Mac持ってないので詳しくは言えませんが)


TeXLiveのダウンロード・インストール


TeXLiveのISOイメージをダウンロード

TeXLiveはネットインストールもできますが、かなり時間がかかるので、予めISOイメージをダウンロードしておくのがおすすめです。ミラーサイトの一覧は https://texwiki.texjp.org/?TeX%20Live#iso で確認できます。急いでいる際には分割ダウンロードを行うソフトを利用するのも手です。(WindowsならFree Download Manager、LinuxならAxelなど)組織内の複数の端末に一括導入したい場合はNASなどにダウンロードしておくと全体で見ると時短になります。


TeXLiveをインストール

ISOイメージをマウントしてインストールします。


Windows

Windows8以降の場合はISOイメージをダブルクリックするとマウントされます。Windows7の場合はVirtual Clone Drive・WinCDEmuなどを利用してマウントします。マウントしたらinstall-tl-advanced.batを右クリックして管理者権限として実行を選び、管理者権限で実行します。するとインストール画面が開きます。


Linux(GUI)

まず、GUIの表示に必要なPerl/Tkを次のようなコマンドでインストールします。

sudo apt -y install perl-tk # Ubuntu

sudo dnf -y install perl-Tk # Fedora

次に、ダウンロードしたISOファイルをマウントします。(ファイルブラウザからできます)ISOファイルのルートディレクトリで端末を開き、次のコマンドを入力します。するとインストール画面が開きます。

sudo ./install-tl -gui perltk


GUI共通

インストール画面が開いたら、パッケージの削減を行います。デフォルトでは不要なものが多すぎるからです。「導入対象コレクション」の右側の「変更」ボタンを押します。次のものは普通の日本人にとっては不要なのでチェックを外します。


  • ConTeXtとパッケージ

  • アフリカ文字

  • ゲーム組版

  • 日本語以外の言語(日中韓 (base)は外さないように、英語・米語も微妙)

  • Omegaパッケージ

  • 音楽パッケージ(TeXで楽譜書く人は相当の変人)

  • TeXWorksエディタ(TeXStudioなど他のエディタを利用することが決まっている場合は不要)

  • 人文科学パッケージ(理系の人のみ)

  • 自然科学及び計算機科学(文系の人のみ)

ひと通りチェックを外したらOKボタンを押し、「TeXLiveの導入」ボタンを押します。するとTeXLiveのインストールが始まります。数十分待ちましょう。


エディタ

TeXStudioかTeXMakerでいいでしょう。少なくともEmacsをカスタマイズせずに使うよりはいいです。TeXLipseはプロジェクトをいちいち用意しないといけないのが面倒。CentOS使いはTeXStudio一択。TeXMakerだとソースビルド必須です。TeXのコードを見たくないならLyXを使いましょう。(Windowsの場合、ユーザディレクトリに日本語が入っていると最新版の2系が上手く動かないっぽいのでその場合は1.6.9を使うかディレクトリ名を変更しなければいけません、Linuxは最新版でOK)Qt・コンパイラが古いCentOS6.xの場合は2.1.5までのみソースビルドできます。(6.8で確認)2.2系列はPythonのバージョンの関係でそのままではソースビルドできませんし、Pythonをソースビルドしたとしてもコンパイル時にエラーが出ます。(2.2.0)


PDFビューア

Windowsの場合、Sumatra PDFをおすすめします。Acrobat Readerで開いているPDFファイルはTeXやオンラインストレージサービスクライアントなどでの上書きができず、不便です。Sumatra PDFだとこれらのソフトでPDFファイルが上書きされたときに自動で表示が更新され、TeXとの相性がいいです。また、TeXで作成したPDFをダブルクリックすると、元のTeXファイルの該当箇所を表示してくれます。


使用するTeX

pLaTeXを使えという情報が多いと思いますが、時代遅れです。これはレガシーなので、学会などでpLaTeX縛りの専用スタイルファイルがある場合のみにしましょう。丸囲み/ローマ数字などの機種依存文字や森「鷗」外の「鷗」などShift-JIS/EUC-JPが文字化けを起こします。プログラムを貼り付けない場合は、upLaTeXがおすすめです。日本語に特化しているので、プログラムの貼り付け以外大きな落とし穴がありません。また、コンパイルが速いです。設定無しでプログラムを貼り付けたい場合、もしくはOSに入っているフォントを使いたい場合は、XeLaTeX・LuaLaTeXを使うのがいいでしょう。後者のコンパイル速度が気にならない限り、個人的には後者を勧めます。

補足: LuaLaTeXの遅さが許容できて、古い文書クラス・パッケージなどに縛られないならLuaLaTeX一択です。


(LuaLaTeXを使う場合)LuaJITLaTeXの有効化

LuaLaTeXは高機能ですが、(u)pLaTeXに比べると非常に遅いです。 https://texwiki.texjp.org/?LuaJITTeX に有効化の手順が書いてあります。ただし、コマンド一発で有効化するスクリプトを作ったので、そちらを利用するのも手です。Windowsの場合はGit BashまたはMSYS2を管理者権限で開き、次のコマンドを実行してください。

curl -LsSf https://raw.githubusercontent.com/tats-u/enable-luajitlatex/master/enable-luajitlatex.sh | sh

Linuxの場合は、端末で次のコマンドを実行してください。

curl -LsSf https://raw.githubusercontent.com/tats-u/enable-luajitlatex/master/enable-luajitlatex.sh | sudo PATH="$PATH" sh

lualatexの代わりにluajitlatexと入力するとLuaJITLaTeXが使えます。(u)pLaTeXやXeLaTeXとまではいきませんが、実行が少し速くなります。


使用するドキュメントクラス


標準クラス

TeXLive2016以降ではBXjsclsを使うのがおすすめです。なんといっても

\documentclass[autodetect-engine,dvipdfmx-if-dvi,ja=standard]{bxjsarticle}

の1文で全エンジンに対応できます。(学生のレポートなど章のない文章の場合)

このとき、(u)pLaTeXを使う場合は、dvipdfmxでPDFに変換する必要があります。(dvipsでEPSに変換するなどは不可)

何らかの事情があり、(u)pLaTeXで従来のjsclassを使う場合もあります。pLaTeXの場合は

\documentclass[dvipdfmx]{jsarticle} %通常

\documentclass[dvipdfmx]{jsbook} %書籍
\documentclass[report,dvipdfmx]{jsbook} %報告書

upLaTeXの場合

\documentclass[uplatex,dvipdfmx]{jsarticle} %通常

\documentclass[uplatex,dvipdfmx]{jsbook} %書籍
\documentclass[uplatex,report,dvipdfmx]{jsbook} %報告書

のように書きます。jarticleなどは古すぎるのでほんとに余程の場合以外は考えないようにしましょう。

1つのファイルでpLaTeXとupLaTeXの両方に対応させたい場合は、ifuptexパッケージ・RequirePackage文を使い、例えば

\RequirePackage{ifuptex}

\ifupTeX
\documentclass[uplatex,dvipdfmx]{jsarticle}
\else
\documentclass[dvipdfmx]{jsarticle}
\fi

と書きます。LuaTeXにも対応させたい場合は、ifluatexパッケージもRequirePackage文に加えて

\RequirePackage{ifuptex,ifluatex}

\ifluatex
\documentclass{ltjsarticle}
\else
\ifupTeX
\documentclass[uplatex,dvipdfmx]{jsarticle}
\else
\documentclass[dvipdfmx]{jsarticle}
\fi
\fi

と書きます。


独自クラス(卒論・ゼミのハンドアウトなど)

一部グラフィックドライバ((u)pLaTeXではほぼdvipdfmx)の指定を要求してくるパッケージがあります。(graphicxなど)そのようなパッケージで指定するグラフィックドライバ名はどこに書けばいいかというと、標準クラスと同様、\documentclass文です。例えば、卒論を書く時にmyschoolthesisという名前のクラスを使うことを指定されたとします。グラフィックドライバにdvipdfmxを使用し、他のオプションを指定する必要が無い場合、documentclass文は次のように書きます。

\documentclass[dvipdfmx]{myschoolthesis}

LuaLaTeXでも(u)pLaTeXでも文書をコンパイルできるようにしたい場合、LuaLaTeXではグラフィックドライバを指定しないので、ifluatexパッケージを使い、

\RequirePackage{ifluatex}

\ifluatex
\documentclass{myschoolthesis}
\else
\documentclass[dvipdfmx]{myschoolthesis}
\fi

と書きます。


文章のコンパイル(コマンド手打ち)


pLaTeXの場合

1つのコマンドでPDF変換までやってくれるptex2pdfを使うと楽です。

ptex2pdf -l XXX.tex

複数回コンパイルの最後以外などでPDFを生成する必要がない場合は次のコマンドを使います。

platex XXX.tex


upLaTeXの場合

ptex2pdf -l -u XXX.tex

PDFを生成しない場合:

uplatex XXX.tex


LuaLaTeXの場合

lualatex XXX.tex

Windowsの場合は

lualatex -cmdx XXX.tex

としてください。こうしないとファイル名に日本語が使えません。


XeLaTeXの場合

xelatex XXX.tex


索引作成

TeXLive2015以前では、日本語対応の「mendex」を使います。但し、「-U」オプションを付けてUTF-8化するのがいいと思います。2016以降は「upmendex」でいいでしょう。日本語以外の言語を読みに含めない場合は従来のmendexでいいかもしれません。


文献管理

基本的に「upbibtex」を使えばいいと思います。スタイルが対応していない場合は「pbibtex」で「-kanji=utf-8」オプションを指定します。(その場合「鷗」などShift-JIS/EUCで使えない文字は使用できません)ネット記事以外からの参考文献作成にはLead2AmazonGoogle Scholarを使うといい感じです。(後者は使ったことありませんが)ネット記事はChromeをお使いの場合BibTeX entry from URLという拡張を使うとURLや記事のタイトルを埋め込んだBibTeX書誌情報をクリップボードに送ってくれるので便利です。


エディタでの日本語設定


Emacs・Vim

Emacsならauto-completeとか入れたりすればいいんじゃないっすか?(鼻ホジ)

追記: Emacsなら「YaTeX」、Vimなら「Vim-LaTeX」というものが一応あります。・・・が、そのエディタのオタク・狂信者でない限り、大人しくTeXStudioなどのモダンなエディタを使うべきです。


TeXStudio

最低限変えるべきはコマンド・ビルドの2つです。


コマンド


LaTeX


latexの前にupまたはpをつけてください。

PdfLaTeX

日本人は使わないので、LaTeXのコマンドをplatex OPTIONOPTION %.texとした場合はptex2pdf -l -ot "OPTIONOPTION" %.texuplatex OPTIONOPTION %.texとした場合はptex2pdf -l -u -ot "OPTIONOPTION" %.texとします。

LuaLaTeX

Windowsの場合、「lualatex」の直後にオプション「-cmdx」を挿入してください。(lualatex -cmdx <他のオプション>)

Dvipdf


dvipdfmxにしてください。

Bibtex


upbibtexにしてください。

Makeindex


makeindexmendexに書き換え、直後に-Uオプションを付けるか、upmendexに書き換えてください。

外部PDFビューア

Sumatra PDFを使用する場合、まず、入力欄の右側のプログラムを選択ボタンをクリックし、Sumatra PDFの実行ファイルを選択します。次に、SumatraPDF.exeの右側の引数の部分をまるごと-reuse-instance -inverse-search """"C:\Program Files (x86)\TeXstudio\texstudio.exe""" """%%f""" -line %%l" "?am.pdf" -forward-search "?c:am.tex" @に書き換えます。


ビルド


明示的に(u)pLaTeX + dvipdfmxを使うよう指定する場合(非推奨)

ビルド&表示をtxs:///dvi-pdf-chainに、規定のコンパイラをtxs:///latexにします。


それ以外の場合

ビルド&表示をtxs:///compile | txs:///viewに、規定のコンパイラをtxs:///pdflatex((u)pLaTeX)・txs:///xelatextxs:///lualatexのいずれかにします。


他の設定

あとはTeXWikiを参照してください。


LyX2.x

別の記事にまとめておきました。

ここにも書くべき重要なこととして、Windowsでユーザディレクトリが日本語の場合は環境構成が上手く行かないので以下の方法で変えます。(Windows 8.1の場合)


  1. まず、Win+x→pなどでコントロールパネルを開きます。

  2. カテゴリ表示になっている場合は「ユーザアカウントとファミリーセーフティ」すぐ下の「アカウントの種類の変更」を選択します。そうでない場合は「ユーザアカウント」を選択してから「別のアカウントの管理」を選択します。

  3. 「PC設定で新しいユーザを追加」を選択します。

  4. 「アカウントの追加」を押し、「Microsoftアカウントを追加せずにサインインする」→「ローカルアカウント」を選択します。

  5. ユーザ名・パスワードを適当に入力します。

  6. 新しいユーザが作られます。このユーザは一時的なもので、設定が終わったら削除します。

  7. コントロールパネルに戻り、作成したユーザを選択し、「アカウントの種類を変更」を選択します。

  8. 「管理者」を選択し、「アカウントの種類を変更」ボタンを押します。

  9. 一旦ログアウトして新しく作成したアカウントでログインします。(セットアップを行うので結構時間がかかります)

  10. レジストリエディタを開きます。(Win+r→regeditと入力)

  11. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList」にアクセスします。

  12. そのサブキー(ディレクトリ(?)の下)で「現在の自分のユーザディレクトリへのパスがデータとなっているProfileImagePathという名前のキー」が見つかると思います。それを変更します。変更後の名前は日本語など非ASCII文字を含まないようにします。

  13. 並行して、C:\Users直下にある自分のユーザディレクトリの名前を先ほどと同じ名前に変えます。

  14. 念のため、元のディレクトリ名でジャンクションと呼ばれるリンクの一種を追加します。まずエクスプローラでUsersフォルダを開いている状態にし、Shiftキーを押しながら何もないところで右クリックし、「コマンドウインドウをここで開く(W)」を選択します。

  15. コマンドプロンプトが開くので、「mklink /J (変更前のディレクトリへのパス) (変更後のディレクトリへのパス)」と入力します。

  16. これで作業は終了なのでログアウトし、元のユーザで再びログインします。

  17. 再びコントロールパネルからユーザの設定のことを開き、さっきまでログインしていたユーザを選択し、削除をします。ドキュメントファイルなども残らず抹消しましょう。

これで変更ができたと思います。(レジストリもいじるので万全を期してはいますが自己責任で!必要に応じてレジストリのバックアップは取っておきましょう)後はLyXを開き、環境構成を行いましょう。


日本語フォントの埋め込み設定(~2015)

TeXLive2016から規定でIPAexフォントを埋め込む設定になったので、埋め込むフォントを変えたい場合以外気にしなくても構いません。フォントを変えたい場合・TeXLive2015以前を使用している場合は

sudo kanji-config-updmap-sys (fontname or auto or nofont) #システム全体

kanji-config-updmap (fontname or auto or nofont) #自分のみ(大学サーバなど)

のどちらかで変更できます。autoは自動で設定、nofontは埋め込みなしの設定です。変更前に、

kanji-config-updmap-sys status #システムデフォルトの設定

kanji-config-updmap status #自分の設定

で現在の設定を確認してください。Windows・Linuxではipaex(IPAexフォント)を指定するといいと思います。(Windowsだと游ゴシック/明朝・MSゴシック/明朝を使う設定もあるが個人的にはIPAex推し)Macはヒラギノ好きならヒラギノでいいよ。游が好きなら游でいいし。

基本的に、何かしらの日本語フォントを埋め込むようにしてください。OneDriveでPDFを開いた時に日本語の部分が一切表示されなかったり、Firefoxで開いた時に日本語部分が等幅フォントで表示されたり色々不便です。


画像

画像は必ずPostScript(or EPS)形式に変換しなければならないという化石みたいな情報を垂れ流してくる人がいますが、無視してください。(u)pLaTeXでptex2pdf・dvipdfmxを経由してPDFを生成しないなどの特殊ケースを除き、JPEG・PNGは変換せずに挿入できます。それ以外のラスタ形式(GIFなど)の場合、なんとかしてどちらかに変換した方がいいと思います。gnuplotで出力するグラフ・Inkscapeなどで描いた図などベクタ形式の場合はPostScriptにではなく、PDFに変換します。(gnuplotの古いバージョンはPostScriptでもやむなし?)dvipdfmxはPDFデータの埋め込みの方が速く処理できるからです。(gnuplotの場合pdfcairoで出力するかqtターミナルで表示してからPDFに書き出すようにしてください。v4.2以前の場合は最新版に更新するかソースビルドすることをおすすめします)あとは画像を挿入したいfigure環境中に

\includegraphics{○○○.×××}

を挿入するだけです。なお、文書クラスでdvipdfmxdvipdfmx-if-dviなどDVIエンジン(dvipdfmxなど)を指定していれば、画像を扱う際にヘッダ部分に挿入する

\usepackage{graphicx}

文は、(u)pLaTeXでもオプションで指定する必要はなく、このままで大丈夫です。


欧文フォントの変更

とにかくTimes + Helvetica + Inconsolataを使いたいという場合には

http://qiita.com/Tats_U_/items/4a87654ed9ccfaabc879

を見てください。おそらくこれで事足るかと思います。変えたい人はフォント名・パッケージ名を差し替えてください。


振り仮名を振る

XeTeX以外の場合は、「PXrubrica」というパッケージが使えます。本来は(u)pLaTeX用のパッケージですが、LuaTeXでも使えるみたいです。使い方は以下のとおりです。

% (略)

\usepackage{pxrubrica}
% (略)
\begin{document}
% (略)
\ruby{草彅}{くさ|なぎ}
% (略)
\end{document}

LuaTeXには「luatex-ruby」というパッケージがありますが、この例で言うと「草」と「彅」の間にも「|」を入れないといけないので面倒ですし、何より(u)pLaTeXとの互換性がありませんので、個人的にはおすすめしません。


数式中のアルファベット・ギリシャ小文字の斜体太字・ギリシャ大文字の太字

例えば

\mathcal{N}\left(\boldsymbol{x};\boldsymbol{\mu},\boldsymbol{\Sigma}\right)=\frac{1}{\sqrt{\left(2\pi\right)^n \left|\Sigma\right|}} \exp{\left\{-\frac{1}{2}\left(\boldsymbol{x}-\boldsymbol{\mu}\right)^{\mathrm T}\boldsymbol{\Sigma}^{-1}\left(\boldsymbol{x}-\boldsymbol{\mu}\right)\right\}}

のようにベクトル・行列が絡んだ数式を書きたいとき、\mathbfでは斜体太字になりません。斜体太字を指定する方法はいくつかありますが、次に挙げる方法を第一に考えるといいでしょう。


LuaLaTeX・XeLaTeX

unicode-mathパッケージを使います。プリアンブル部に

\usepackage{unicode-math}

を入れると、\symbfitで、ギリシャ文字も含めて斜体になります。従来の\mathbfと同じような感じにしたい場合は\symbfを使用します。ギリシャ小文字も強制的に立体にしたい場合は\symbfupです。他にも\mathrmなどmathで始まるフォント変更コマンドがsymで始まるコマンドに置き換わっています。(従来のものも使えますが非推奨です)


それ以外

ギリシャ大文字を斜体にする必要が無いならば、bmパッケージを利用します。プリアンブル部で

\usepackage{bm}

を追加し、数式中で\bmを使えばアルファベットやギリシャ小文字が立体にならずに太字になります。また、ギリシャ大文字も太字になります。例えば先程の数式は次のように書きます。

\mathcal{N}\left(\bm{x};\bm{\mu},\bm{\Sigma}\right)=

\frac{1}{\sqrt{\left(2\pi\right)^n \left|\Sigma\right|}}
\exp{\left\{-\frac{1}{2}\left(\bm{x}-\bm{\mu}\right)^{\mathrm T}\bm{\Sigma}^{-1}\left(\bm{x}-\bm{\mu}\right)\right\}}

なお、フォントを変更するパッケージは必ずbmパッケージを読み込む前に読み込んでください。


参考文献

http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?OTF

http://ichiro-maruta.blogspot.jp/2013/03/latex.html

http://hrn25.sakura.ne.jp/win/user-folder-name/user-folder-name.html

http://taiseiko.blog.so-net.ne.jp/2009-11-01

など