はじめに
この記事は LaTeX の環境構築をこれからする人に一番読んでいただきたいです(が、別に LaTeX のチュートリアルではないです)。
また、LaTeX を使っている上で "Tectonic" という用語(一般名詞としての用法ではない)に聞き覚えがない人も、この記事を読んだほうがいいかもしれないです。
(u)pLaTeX を使うのをやめてくれ
が publish されて早 2 年ですが、未だに (u)pLaTeX を使っている人を見かけて胸が苦しくなります。彼・彼女らは(あなたもですよ)仮にも理系大学生であり、俺(底辺高専生)よりも普段から LaTeX を使った文章を書いているはずなのに、環境にこだわらない神経がわかりません。
下手な例えですが、料理人が錆びた包丁を使って作った料理が、切れ味の良い包丁を使った料理に勝るわけないですよね。
(u)pLaTeX に殺された人
学校の先輩 (OB) が pLaTeX を使って HTML について(?)レポートを書いており、死んでいました。
Twitterの有識者さん、LaTeXでキレイにテキストを四角で囲む方法を教えてください…
— うまくん (@kiterugumakunn) 2023年7月18日
えっと<、>とかです
— うまくん (@kiterugumakunn) 2023年7月18日
htmlファイルを貼ろうと思ってて上記の記号の数がシャレにならないんですけど、一つ一つ書き換えるのかなりやばい作業ではとなっています
pLaTeX を使うと HTML (というか '<' と '>' )はうまく表示できないっぽいです。
LuaLaTeX / XeLaTeX を使うとこの問題は解消することができます
(u)pLaTeX + TeX Live の代替となる選択肢
LuaLaTeX or XeLaTeX + TeX Live
TeX Live は全てのパッケージを入れるとクソデカい容量になってしまう上に、ダウンロードにもとても時間がかかる*1ので、選択的にパッケージを入れたいわけですが、どのパッケージがどれに入っているのかがわからないのでかなり苦労します。私も苦労しました。
この環境構築の長さが TeX のハードルを上げていると思います。
視覚的にわかりやすいと思うので、Ubuntu にどれだけ TeX Live 関連のパッケージがあるかの画像を貼っておきます。
すでに環境構築をしている方はこの選択肢でも問題ないかもしれませんが、今から環境構築をする方には次の選択肢をおすすめしたいです。
Tectonic (XeLaTeX ベースの処理系)
_人人人人人人人人人人人_
> この記事の本題です <
 ̄YYYYYYYYYYYYYYYYYYYY ̄
Tectonic という Rust で TeX の処理系を書き直すことを目的とした気概のあるプロジェクトがあります。(まだ C の割合が多いですが)
この処理系の何が素晴らしいかというと「tex ファイルのプリアンブルに書かれた \usepackage を解釈し、自動でパッケージをインストールしてくれる」ということです!(Rust ユーザーにわかりやすい表現をすると、初回の cargo build
の際に Cargo.toml にある依存関係を取ってくるのと似たことをしてくれます)
Tectonic は内部的に XeLaTeX を使用しており、(u)pLaTeX や LuaLaTeX を使っている場合はプリアンブルをある程度書き換えないといけませんが、そこまで難しくはないです。一応、自分が数学の自主ゼミをやるときに使っているプリアンブルの抜粋(と documentclass)を貼っておきます。
\documentclass[xelatex,ja=standard,jafont=noto]{bxjsarticle} \usepackage{graphicx} \usepackage{bxtexlogo} \usepackage{tcolorbox} \usepackage{tikz} \usepackage{amsmath} \usepackage{amssymb} \usepackage{amsfonts} \usepackage{here} \tcbuselibrary{breakable, skins, theorems} %--------------------------------------------------------------- \title{} \author{} \date{\today} \begin{document} \tableofcontents \clearpage \end{document}
インストール方法
Rust が入っている OS すべて
crates.io にあるので、cargo install tectonic
をすれば一発です。
Windows
からビルド済みのバイナリを取ってきてインストールすることもできます。
残念ながら winget にはなさそう (2023-10-07 現在)です。
Mac
brew install tectonic
すればよさそうです
使い方
tectonic {ファイル名}.tex
とするだけです。
自分で以前パッケージをインストールしていない場合は、初回のパッケージダウンロードが入るため、tectonic でのコンパイルは時間がかかってしまいますが、2 回目以降はパッケージがダウンロードされているので、高速になると思います。
> tectonic {ファイル名}.tex Running TeX ... warning: accessing absolute path `/usr/share/fonts/truetype/padauk/Padauk-Regular.ttf`; build may not be reproducible in other environments warning: accessing absolute path `/usr/share/fonts/truetype/dejavu/DejaVuSansCondensed-Bold.ttf`; build may not be reproducible in other environments warning: accessing absolute path `/usr/share/fonts/type1/gsfonts/b018035l.pfb`; build may not be reproducible in other environments warning: accessing absolute path `/usr/share/fonts/truetype/noto/NotoSansThaana-Regular.ttf`; build may not be reproducible in other environments Rerunning TeX because "{ファイル名}.aux" changed ... Running xdvipdfmx ... Writing `{ファイル名}.pdf` (17.80 KiB) Skipped writing 2 intermediate files (use --keep-intermediates to keep them)
Writing {ファイル名}.pdf
と出ていれば、同じディレクトリに {ファイル名}.pdf
が生成されているはずです。
エラーはこんな感じです。
> tectonic {ファイル名}.tex error: {ファイル名}.sty:1: LaTeX Error: Missing \begin{document}. See the LaTeX manual or LaTeX Companion for explanation. Type H <return> for immediate help error: halted on potentially-recoverable error as specified
さいごに
別にこの記事を共有はしなくていいのですが、Tectonic の存在自体は広めてくれると嬉しいです。
未だに pLaTeX 環境の学会があるらしく、pdf ではなく tex ファイル形式で出さないといけない場合はもしかしたら救いがないかもしれない(pLaTeX を使わないといけない)です。本当にすみません。それは全てその学会が悪いです。
*1:よく TeX を使っていると見かける TeX Wiki (https://texwiki.texjp.org/?TeX%20Live%2FWindows) には 「かなりの時間がかかります。 環境にもよりますが,多くの場合一時間から二時間ほどかかると思います」と書かれています