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)にはMirror Multiplexorというアクセス元に最も近いサーバーに自動的にリダイレクトするサービスがあります。 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
時には使えない。
sudoers
のenv_reset
オプションが有効になっている場合、セキュリティ上環境変数が初期化されてsecure_path
に設定しているパスが使われるので、環境変数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*
また、tlmgr
はxzdec
に依存しているようなのでインストールしておく。
$ sudo apt install xzdec -y
tlmgr
にCTAN
のリポジトリを登録する。
$ 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 への移行を考えましょう。
LuajitTeX は LuaTeX で使用されている Lua を LuaJIT に置き換えたものです. JIT とは Just-In-Time Compiler,つまりその場で機械語へのコンパイルを行うという意味であり,これによりインタプリタ方式の通常の Lua よりも高速な動作が期待できます.
特にこだわりがなければ、LuajitTeX
に移行しましょう。
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
が認識してくれる。
Latexmkの設定をする
Latexmk
とは、
Latexmk
は文書を作成するのに必要な回数タイプセットしてくれるツールです。BibTeX
やMakeindex
などの実行も自動で行われます。
以下のコマンドで公式ドキュメントを見ることができる。(英語の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 hoge.tex
でビルドできるようになった。
実行時のオプション
- -pv コンパイルが完了したら$pdf_previewerで指定したコマンドを使ってpdfのプレビューを表示してくれる。
- -pvc -pvオプションと同じ。ただ、ソースファイルが更新されたら自動で再コンパイルをかけてくれる。
- -c 変換途中に生成したファイルを削除してくれる。logファイルとか。
- -C 出来たファイル全部消す。dviファイルとかpdfファイルとか。
Visual Studio Code から使えるようにする
拡張機能LaTeX language support
,LaTeX Workshop
をインストールする。
[Ctrl + ,]
で設定を開き右の方の点々を押してsetting.json
を開き以下を追記する。
"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]
を選択します。
もしない場合は、[Tools] > [install Package Control..]
からインストールしてください。
次に、Install
と打ち込み、Package Control: Install Package
を選択します。
LaTeXTools
と入力してLaTeXTools
をインストールします。
何もエラーが表示されなけれがLaTeXTools
のインストールは成功です。
次にLaTeXTools
の設定をします。
[Preferences] > [Package Settings] > [LaTeXTools] > [Settings - User]
を選択します。
ダイアログはすべて[OK]を選択してください。
開いた設定ファイルのbuilder_settings
以下に追記
"command" : ["latexmk"],
と入力して、保存します。
これで.tex
ファイルを開いて[Ctrl+B]を押すとビルドされる。
同じディレクトリにPDFが出力されます。
これでSublime Text 3からLaTexを使うための設定は以上です。