1 TinyTeX

注意

このドキュメントは Xie, Yihui 氏による TinyTeX のドキュメントの翻訳であり, CC BY-NC-SA 4.0 (クリエイティブ・コモンズ 表示 - 非営利 - 継承 4.0 国際) ライセンスで提供されています. Yihui 氏によるオリジナルは https://yihui.org/tinytex/ で読むことができます.

This is an unofficial Japanese translation of Yihui’s TinyTeX documentation, which is licensed under CC BY-NC-SA 4.0. The original documentation by Yihui is here.

TinyTeX は TeX Live を元にした軽量 (macOS/Linux ではおよそ 61 Mb, Windows では(g)zip圧縮して 94 Mb) なカスタム LaTeX ディストリビューションですが, ほとんどの場面, 特にRユーザーにとってよく機能します. LaTeX パッケージが足りないという問題に直面しても, あなたが何をすべきかはとても明快です (実際Rユーザは何もする必要がありません). あなたが実際に必要な LaTeX パッケージをインストールするだけです.

Hao Zhu @haozhu233 による TinyTeX ロゴ

現在 TinyTeX はRユーザーにとって最善です. その他のユーザも使うことができます. LaTeX パッケージが自動的にインストールされず, 手動でする必要がありますが. あるいはありとあらゆるパッケージをインストールすることもできます (やり方は FAQ 4.3 参照) が, その数は数千にもなることに注意してください.

TinyTeX のインストールまたは動作には管理者権限が不要です. これは sudo も 情シス担当者の助けもなくてよいということです. フラッシュドライブから TinyTeX を起動することすら可能です.

1.1 R ユーザへ

R パッケージの tinytex (2節) がラッパ関数を提供しているので R ユーザにとって TinyTeX のインストールと保守は簡単です (備考: 太い小文字で tinytex といえば R パッケージをさし, キャメルケースで TinyTeX といえば LaTeX ディストリビューションを意味することとします). tinytex を使って TinyTeX をインストールできます.

install.packages('tinytex')
tinytex::install_tinytex()
# アンインストールするときは tinytex::uninstall_tinytex() を実行

R Markdown 文書を PDF にコンパイルするために, 以下の他に知るべきことは何もありません.

R Markdown 文書を PDF にコンパイルするためには, 使用したい LaTeX エンジンに応じて, tinytexpdflatex(), xelatex(), lualatex() のいずれかの関数を呼び出します. これらの関数が, 必要なのにインストールされていない LaTeX パッケージを検出すると, デフォルトでは自動的に欠落したパッケージをインストールします.

writeLines(c(
 '\\documentclass[lualatex,ja=standard,haranoaji]{bxjsarticle}',
 '\\begin{document}', 'ハロー日本語文書!', '\\end{document}'
), 'test.tex')
tinytex::lualatex('test.tex')

普通の R ユーザーが知るべきことは以上です. あなたが開発者なら, tinytex:::install_yihui_pkgs()いくつかのパッケージをインストールしたいと思うかもしれません. この関数は CRAN のパッケージの多くの PDF ビネットをビルドするのに必要な関数をインストールすることで, あなたがパッケージを探す手間を省いてくれます.

R を使用していないなら, 知る必要があることがもう1つあります. tlmgr コマンドです.

1.2 Rユーザ以外へ

TinyTeX はあなたがコマンドラインを使用することを怖がっていないことを想定しています. もし苦手意識があるなら, 代わりに他の普及している LaTeX ディストリビューションを使ってください. 実際のところ, 知る必要があるのは tlmgr コマンドだけです. どうか過剰に恐れないでください.

1.2.1 インストール

TinyTeX のバイナリパッケージは1月ごとに, GitHub レポジトリ https://github.com/yihui/tinytex-releases としてリリースされています.

Linux ユーザの場合は TinyTeX は $HOME/.TinyTeX にインストールされ, 実行ファイル (xelatex, lualatex など) のシンボリックリンクは $HOME/bin に作成されます. このパスは通常 PATH 環境変数に存在するはずです.2

wget -qO- "https://yihui.org/tinytex/install-bin-unix.sh" | sh

macOS ユーザの場合は, /usr/local/bin への書き込み権限がないなら, TeX Live の実行ファイルのシンボリックリンクを /usr/local/bin に貼るために以下のコマンドを実行したほうがいいかもしれません(理由はこれ).3

sudo chown -R $(whoami) /usr/local/bin

TinyTeX は macOS では ~/Library/TinyTeX にインストールされます.

curl -sL "https://yihui.org/tinytex/install-bin-unix.sh" | sh

Windows ユーザの場合, バッチファイル install-bin-windows.bat を保存し (リンクを開いて Ctrl + S), ファイルをダブルクリックしてください.4 PowerShell (少なくともバージョン 3.0 以降) であることに注意してください. あなたの Windows のバージョンが古すぎてパワーシェルをインストールできない場合, この記事に従ってインストールしてください. インストールフォルダは %APPDATA%/TinyTeX で, APPDATA は典型的には C:\Users\Your Name\AppData\Roaming を指す環境変数です.5

訳注: 昔の話だからかリンクが切れています. 古いバージョンの互換性に詳しい方がいたら教えてください. 最近の市販品はこれより新しいバージョンの PowerShell が最初から使えることが多いためあまり気にする必要がないとは思いますが, 現在の日本語の PowerShell のインストールに関するドキュメントはこちらになります.

代わりに Chocolatey か Scoop を使って TinyTeX をインストールすることもできます. 手順はTinyTeX のリリース情報を確認してください.

TinyTeX をアンインストールするなら, ファイルマネージャ/ブラウザ等でフォルダごと消すだけです. あるいはコマンドラインで以下を実行するだけです.

# Linux の場合
tlmgr path remove
rm -r "~/.TinyTeX"

# macOS の場合
tlmgr path remove
rm -r ~/Library/TinyTeX

# Windows の場合
tlmgr path remove
rd /s /q "%APPDATA%\TinyTeX"

他の LaTeX ディストリビューションと TinyTeX のアンインストール方法を比べてみてください. 他のディストリビューションと比べ TinyTeX がいとも簡単にアンインストールできることをあなたはきっと評価するでしょう. これは TinyTeX が自己完結的なフォルダ構成になっているからです.

1.2.2 メンテナンス

この節は R Markdown ユーザー以外を対象としています. R Markdown ユーザにとっては何もかも自動的に行われ, 欠落した LaTeX パッケージを手作業で探したりインストールしたりする必要はありません.

LaTeX 文書をコンパイルして, このようなエラー文が流れてくるかもしれません.

! LaTeX Error: File `times.sty' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)

これは基本的にはある LaTeX パッケージが足りないことを意味しています. 慌てないでください. コマンドウィンドウを開き, tlmgr search --global --file タイプし, その後に続けてファイル名をタイプしてください.6 例えば, 以下のようになります.7

$ tlmgr search --global --file "/times.sty"
psnfss:
        texmf-dist/tex/latex/psnfss/times.sty
...

上記のエラーログに現れた名前のファイルを含むパッケージを見つけてください. 今回は足りないパッケージは psnfss で, tlmgr install でインストールすることができます.

tlmgr install psnfss

代わりの方法として, GitHub レポジトリの yihui/latex-pass にエラーログをアップロードするだけで, クラウド上で tlmgr search が実行され不足しているパッケージを教えてくれます.

理解するのが難しいエラーメッセージを見つけたなら, 全てアップデートしてしまうとよいかもしれません.

tlmgr update --self --all
tlmgr path add
fmtutil-sys --all

R ユーザにとっては, これらに対応する便利関数が使用できます. いくつか例を挙げます.

library(tinytex)
tlmgr_search('/times.sty')   # times.sty を検索する
tlmgr_install('psnfss')      # psnfss パッケージを検索する
tlmgr_update()               # 全て更新する

“Remote repository newer than local” というエラーメッセージを見たら, それは TinyTeX を手動でアップグレード (再インストール) する時であることを意味しています.

tinytex::reinstall_tinytex()

以下のようなメッセージを見ても慌てないでください. 数ヶ月待ってから, TinyTeX を再インストールするだけです.

TeX Live 2018 is frozen forever and will no longer be updated. This happens in preparation for a new release.

If you’re interested in helping to pretest the new release (when pretests are available), please read https://tug.org/texlive/pretest.html. Otherwise, just wait, and the new release will be ready in due time.

普通のユーザにとって知るべきことは以上です. TinyTeX に関するより技術的に詳細なことを知りたいならば, 4 節を読んでください.

1.3 モチベーション

TinyTeX の背景のモチベーションとして, LaTeX ディストリビューションとインストールと維持に関する共通の2つの問題がありました.

  1. 比較的小さい (数百 Mb) の基本バージョンをインストールしなければならないが, そうするとはおそらくきっと頻繁に使われる LaTeX パッケージが欠落しているせいで動作しない. しかし数GBのフルバージョンをインストールしたとして, 生涯できっとそのうち1%も使わない.

  2. インストールとメンテナンスに関するドキュメントはしばしば初心者にとっては長すぎる. 例えばtlmgr のマニュアル は包括的な内容で有用ですが, ある .sty ファイルが見つからないという問題が生じた時にどうすればいいのか解決するのが難しい.

  3. 既存の LaTeX ディストリビューションはインストールやメンテナンスにしばしば管理者権限を要求しています. sudo や情シス担当に問い合わせることは大いに面倒を生んでいました.

幸いにも TeX Live ベースのよい突破口がありました. TeX Live はすばらしい. クロスプラットフォームであり (そう Windows 上でも動作します), ポータブルにすることも可能です. 我々は単に軽量で, メンテナンスも簡単にする必要があるだけです. そこで TinyTeX の出番です.

1.4 謝辞

TinyTeX は TeX Live チームの偉大な業績なくしてありえませんでした. これに感謝したいと思います. 私は特に, ソースコードとドキュメントをインストールから省くオプションを提案してくれたことをうれしく思っています.

極めて注意深く, そして忍耐強くテストし, さらにはとても有意義なフィードバックをくれた Peng ZhaoMiao Yu には感謝してもしきれません. Carl Boettiger, TC, Ce Gao, Xiangyun Huang にもベータテストを手伝ってもらいました. 六角形ロゴは Hao Zhu によるデザインです.


  1. twitter id: ill_identified↩︎

  2. もしそうでなかったらどうするか, Linux ユーザなら PATH に追加する方法を知っていることでしょう!↩︎

  3. 訳注: リンク先はこの記述の経緯が書かれているだけです.↩︎

  4. アンチウィルスソフトがいずれかの *.dll ファイルに対して警告を発するかもしれませんが, 私は Windows の専門家ではありません. 決断はあなたに委ねます.↩︎

  5. 興味があるなら, スタートメニューをクリックし, cmd とタイプして実行してコマンドウィンドウを開き, echo %APPDATA% とタイプして実行すれば実際のファイルパスが分かります.↩︎

  6. ファイル名の前のスラッシュも正確に合わせてください. スラッシュがない場合, 他のパッケージがマッチするかもしれません. たとえば chemtimes.sty とか.↩︎

  7. 訳注: TeX Live に登録されているファイルパスに対して正規表現マッチで検索するため, ファイル名を完全一致で検索したい場合はこのようにスラッシュを頭に付けます. 正規表現では . は任意の1字のマッチングと解釈されるため, さらに万全を期すならば, /times\.sty となります.↩︎