UbuntuにTeX Live 2018の環境を構築する

概要

情報系など理工系でレポートを書くときに必須であるTeXをインストールします。 今回はLatexmkを用いて、様々なエディタからの利用を考えます。

Windowsの方はこちらを参照してください。 blog.akashisn.info

Ubuntuではパッケージマネージャーのaptを用いることで以下のように簡単にインストールできるのだが、 バージョンが少し古いのでTex LiveのISOイメージからインストールする方法を採用します。

$ sudo apt install -y texlive-full

構築する環境

  • Ubuntu 18.04 LTS
  • Tex Live 2018

TeX Live のインストール

TeX Live - TeX Wikiからミラーサイトを選択するのもいいですが、 Comprehensive TEX Archive Network(CTAN)にはMir­ror Mul­ti­plexorというアクセス元に最も近いサーバーに自動的にリダイレクトするサービスがあります。 CTAN - TeX Wiki

そのURLはhttp://mirror.ctan.org/となっており、手元の環境ではftp.yz.yamagata-u.ac.jpにリダイレクトされました。

Tex LiveのISOイメージはIndex of /pub/CTAN/systems/texlive/Imagesにあります。

ISOイメージはファイルサイズが大きいので、wgetではなく複数コネクションを張って高速にダウンロードするaxelを使います。

急いでダウンロードしたい時はwgetやcurlじゃなくてaxelを使おう - Qiita

texlive2018.isoをダウンロードする。

$ axel -a -n 20 http://mirror.ctan.org/systems/texlive/Images/texlive2018.iso

ハッシュ値をダウンロードする。

$ wget http://mirror.ctan.org/systems/texlive/Images/texlive2018.iso.sha512

ダウンロード中に破損が無かったかを確認する。

$ sha512sum -c texlive2018.iso.sha512
texlive2018.iso: OK

ISOファイルをマウントする。

$ sudo mkdir -p /media/iso
$ sudo mount -o loop texlive2018.iso /media/iso
mount: /media/iso: WARNING: device write-protected, mounted read-only.

インストーラーを起動する。

$ cd /media/iso
$ sudo ./install-tl
...
Actions:
 <I> start installation to hard disk
 <P> save installation profile to 'texlive.profile' and exit
 <H> help
 <Q> quit

Enter command: I

Iを入力してインストールを開始します。

Welcome to TeX Live!


See /usr/local/texlive/2018/index.html for links to documentation.
The TeX Live web site (http://tug.org/texlive/) contains any updates and
corrections. TeX Live is a joint project of the TeX user groups around the
world; please consider supporting it by joining the group best for you. The
list of groups is available on the web at http://tug.org/usergroups.html.


Add /usr/local/texlive/2018/texmf-dist/doc/man to MANPATH.
Add /usr/local/texlive/2018/texmf-dist/doc/info to INFOPATH.
Most importantly, add /usr/local/texlive/2018/bin/x86_64-linux
to your PATH for current and future sessions.

Logfile: /usr/local/texlive/2018/install-tl.log

と表示されたらインストール完了。

これ以降は/usr/local/texlive/2018以下にインストールされたものとします。

表示されているように.zshrcなどにパスを追加して再読込します。

$ cat <<\EOF >> $HOME/.zshrc
export PATH="/usr/local/texlive/2018/bin/x86_64-linux:$PATH"
export INFOPATH="/usr/local/texlive/2018/texmf-dist/doc/info"
export MANPATH="/usr/local/texlive/2018/texmf-dist/doc/man:$MANPATH"
EOF
$ source $HOME/.zshrc
$ tex --version
TeX 3.14159265 (TeX Live 2018)
kpathsea version 6.3.0
Copyright 2018 D.E. Knuth.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the TeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the TeX source.
Primary author of TeX: D.E. Knuth.

パスが通ったことを確認できました。

しかし、このユーザーが指定したパスは以下の理由によりsudo時には使えない。

sudoersenv_resetオプションが有効になっている場合、セキュリティ上環境変数が初期化されてsecure_pathに設定しているパスが使われるので、環境変数PATHが通らない。

sudo「コマンドが見つかりません」PATHが初期化されているときの対処法

普通この解決策としては、visudoによりsudoersを修正するのですが、tlmgrにはpathというサブコマンドがある。

$ /usr/local/texlive/2018/bin/x86_64-linux/tlmgr path -h
tlmgr: perldoc seems to be non-functional, not using it.
Name:
    tlmgr - the native TeX Live Manager

Usage:
    tlmgr [option...] action [option...] [operand...]

  path:
    path [--w32mode=user|admin] add
...

このサブコマンドはパスの通ってるディレクトリ(/usr/local/bin,/usr/local/share/info,/usr/local/share/man)に/usr/local/texlive/2018/bin/x86_64-linux/以下にあるコマンドに対する適切なシンボリックリンクを張ってくれる。 /usr/local/以下はroot権限がないと書き込みできないので、tlmgrをフルパスで指定してシンボリックリンクを張る。

$ sudo /usr/local/texlive/2018/bin/x86_64-linux/tlmgr path add

このようなシンボリックリンクが張られる。

$ ll /usr/local/bin/tlmgr
lrwxrwxrwx 1 root root 46 10月 29 12:29 /usr/local/bin/tlmgr -> /usr/local/texlive/2018/bin/x86_64-linux/tlmgr*
$ ll /usr/local/bin/mktexlsr
lrwxrwxrwx 1 root root 49 10月 29 12:29 /usr/local/bin/mktexlsr -> /usr/local/texlive/2018/bin/x86_64-linux/mktexlsr*

また、tlmgrxzdecに依存しているようなのでインストールしておく。

$ sudo apt install xzdec -y

tlmgrCTANのリポジトリを登録する。

$ sudo tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet/

TeX Live のアップデート

tlmgr本体のアップデートを行う。

$ sudo tlmgr update --self

パッケージのフルアップデートを行う。

$ sudo tlmgr update --all

フォントの埋め込み

例えばIPAexフォントを埋め込む場合は、

$ sudo kanji-config-updmap-sys ipaex

を実行すればいい。(これは(u)pLaTeX向け)

(u)pLaTeXのデフォルトの日本語フォントを好きなやつに変える方法 - Qiita

LaTeX の細かい知識に関心がなく、フォント設定の煩わしさを少しでも軽減したければ、この文書は読まずに XeLaTeX や LuaLaTeX への移行を考えましょう。

TeXとフォント - TeX Wiki

LuajitTeX は LuaTeX で使用されている Lua を LuaJIT に置き換えたものです. JIT とは Just-In-Time Compiler,つまりその場で機械語へのコンパイルを行うという意味であり,これによりインタプリタ方式の通常の Lua よりも高速な動作が期待できます.

LuajitTeX - TeX Wiki

特にこだわりがなければ、LuajitTeXに移行しましょう。

TeX処理系御伽話 - Qiita

LuajitTeXのセットアップ

LuaTeX-ja を使っているときなど、platex を使用しているときと比較して、その遅さに閉口させられることが少なくありません。当然、これは Lua を組み込んでいるからなのですが、Lua の実行時に機械語にコンパイル、実行を行う LuaJIT を使用した LuaJITTeX が、TeX Live には収録されています。

となれば、これを有効に使って LuaLaTeX を活用したいところです。Windows 版の TeX Live の場合は、luajitlatex.exe が収録されているので、従来 lualatex コマンドを使用していたところをそのまま luajitlatex に置き換えればよいだけです。 ところが、Linux 版や Mac OS 版の TeX Live には luajitlatex という名前の実行形式のファイルは収録されていません。そこで、ここでは Linux 版や Mac OS 版の TeX Live での luajitlatex の利用法について補足しておきます。 www.fugenji.org

上記を参考に設定する

パッケージの追加

CTANにあるパッケージであれば、

$ sudo tlmgr install (パッケージ名)

でインストールできる。

もしCTANになければ手動でインストールすることになる

本環境でのTeX Live 2018のインストールディレクトリは/usr/local/texlive/2018/となっている。

各パッケージは殆どの場合{Tex Liveのインストールディレクトリ}/texmf-dist/tex/latex/以下に、 *.styファイルなどを[パッケージ名]/[パッケージ本体]のように配置して、

$ sudo mktexlsr

を実行すればLaTeXが認識してくれる。

LaTeX入門/各種パッケージの利用 - TeX Wiki

Latexmkの設定をする

Latexmkとは、

Latexmkは文書を作成するのに必要な回数タイプセットしてくれるツールです。 BibTeXMakeindexなどの実行も自動で行われます。

Latexmk - TeX Wiki

以下のコマンドで公式ドキュメントを見ることができる。(英語のPDF)

$ texdoc latexmk

ホームディレクトリに以下のLatexmkの設定ファイルを.latexmkrcという名前で作成する。

#!/usr/bin/env perl
$lualatex                    = 'luajittex %O --fmt=luajitlatex.fmt -synctex=1 -interaction=nonstopmode %S';
$bibtex                      = 'pbibtex -kanji=utf8 %O %B';
$biber                       = 'biber --bblencoding=utf8 -u -U --output_safechars';
$makeindex                   = 'mendex %O -o %D %S';
$max_repeat                  = 5;
$pvc_view_file_via_temporary = 0;
$pdf_mode                    = 4;
$postscript_mode = $dvi_mode = 0;
$pdf_previewer               = 'evince'; # 各環境に合わせたPDFビュアー

ここで、注目したいのは、

$pdf_mode = 4;

この部分です。ドキュメントによると、

If equal to 4, generate a pdf version of the document using lualatex, using the command specified by the $lualatex variable.

(%pdf_modeが)4のときは$lualatex変数で指定されたlualatexコマンドを用いてPDFを生成します。

ということで、コンパイルの際に$lualatexを参照することがわかります。

その他設定は以下のサイトを参考にしました。

Latexmkから学ぶPDF化までの処理の流れ - Qiita

latexmk で楽々 TeX タイプセットの薦め(& biblatex+biberで先進的な参考文献処理) - konn-san.com

latexmkを使う - Qiita

これで、

$ latexmk hoge.tex

でビルドできるようになった。

実行時のオプション

  • -pv コンパイルが完了したら$pdf_previewerで指定したコマンドを使ってpdfのプレビューを表示してくれる。
  • -pvc -pvオプションと同じ。ただ、ソースファイルが更新されたら自動で再コンパイルをかけてくれる。
  • -c 変換途中に生成したファイルを削除してくれる。logファイルとか。
  • -C 出来たファイル全部消す。dviファイルとかpdfファイルとか。

latexmkを使う - Qiitaより

Visual Studio Code から使えるようにする

拡張機能LaTeX language support,LaTeX Workshopをインストールする。

GitHub - James-Yu/LaTeX-Workshop: Boost LaTeX typesetting efficiency with preview, compile, autocomplete, colorize, and more.

f:id:akashisn:20180512233807p:plain f:id:akashisn:20180512233758p:plain

[Ctrl + ,]で設定を開き右の方の点々を押してsetting.jsonを開き以下を追記する。

f:id:akashisn:20181029171938p:plain

    "latex-workshop.latex.tools": [
        {
            "name": "latexmk",
            "command": "latexmk",
            "args": [
                "%DOCFILE%"
            ]
        }
    ],
    "latex-workshop.view.pdf.viewer": "tab",
    "latex-workshop.latex.autoBuild.onSave.enabled": false,

これで.texファイルを開いて[Ctrl + Alt + B]を押すとビルドされる

[Ctrl + Alt + V]で隣のタブにPDFを表示してくれる

これでVisual Studio CodeからLaTexを使うための設定は以上です。

Sublime Text 3から使えるようにする

メニューの[Preferences] > [Package Control]を選択します。

f:id:akashisn:20181029170209p:plain

もしない場合は、[Tools] > [install Package Control..]からインストールしてください。

f:id:akashisn:20181029170219p:plain

次に、Installと打ち込み、Package Control: Install Packageを選択します。

f:id:akashisn:20181029170325p:plain

LaTeXToolsと入力してLaTeXToolsをインストールします。

f:id:akashisn:20181029170501p:plain

何もエラーが表示されなけれがLaTeXToolsのインストールは成功です。

次にLaTeXToolsの設定をします。

[Preferences] > [Package Settings] > [LaTeXTools] > [Settings - User]を選択します。

f:id:akashisn:20181029171120p:plain

ダイアログはすべて[OK]を選択してください。

f:id:akashisn:20181029171138p:plainf:id:akashisn:20181029171142p:plain

開いた設定ファイルのbuilder_settings以下に追記

       "command" : ["latexmk"],

と入力して、保存します。

これで.texファイルを開いて[Ctrl+B]を押すとビルドされる。

同じディレクトリにPDFが出力されます。

これでSublime Text 3からLaTexを使うための設定は以上です。

参考