TeX Live
Wikipedia により:
- TeX Live は、TeX 植字システムのためのフリーソフトウェア配布で、主要な TeX 関連プログラム、マクロパッケージ、およびフォントを含んでいます。
Tex Live には以下が含まれています:
- 多くの TeX エンジン。例えば:
- 基本的なマクロパッケージ (TeX 用語では フォーマット と呼ばれます)。例えば:
- ユーザによって作成された多くパッケージ
Arch の TeX Live パッケージとネイティブな TeX Live との違い
TeX Live をインストールする方法は複数存在します。TeX Live のスナップショットは Arch Linux のパッケージリポジトリで利用可能ですが (以下を参照)、ほとんどの場合、そのスナップショットは1年に1度しかアップデートされません。対して、TeX Live 自体はローリングリリースなディストリビューションであり、ユーザは1年に1度アップグレードする必要があるというモデルに基づいてはいますが、個々のパッケージのアップグレードは日単位で利用できます。
Arch Linux のリポジトリでパッケージングされている TeX Live のスナップショットは、ほとんどのユーザにとって問題ないはずです。使用目的が単に他人のドキュメントをコンパイルすることである場合は特にです。逆に、使用目的が自分でドキュメントを作成することであるならば、ネイティブな TeX Live をインストールするのが最も良い選択である可能性もあります。
ネイティブで最新の TeX Live をインストールすることには、最新の機能やバグフィックス、関連するドキュメントを入手できるという利点もあります。ネイティブな TeX Live をインストールせずに個々のパッケージをアップグレードしたりインストールしたりすることは可能であるものの (TEXMFLOCAL
と TEXMFHOME
を参照)、これには注意が必要です。というのも、関連する全てのパッケージのバージョンが互いに互換性があることを確認する必要があるからです。
ネイティブな TeX Live とは対照的に、Arch Linux のリポジトリにある TeX Live パッケージにはドキュメントが含まれない傾向にあります。CTAN からのドキュメントは TeX パッケージの最新バージョン用のものしか入手できないので、これは問題となります。
ネイティブな TeX Live
インストール
quickinstall ドキュメントを参照してください。必要であれば、完全なドキュメント (日本語訳) も参照してください。作業は以下のように要約されます:
- netinstall アーカイブをダウンロードする
- アーカイブを展開し、新しく作成されたディレクトリへ移動する
- インストールスクリプトを実行する (
perl ./install-tl
)。これで、テキストインターフェイスのインタラクティブなインストール手順が始まります- 1つ、または複数のインストールパスを設定する
- 任意で、TeX Live によって提供されているパッケージ コレクション のサブセットを選択する
- 任意で、A4 ではなくレター用紙サイズをデフォルトとして選択する
- ダウンロードが終わるのを待つ
- インストールスクリプトの実行が終わったら、TeX Live のインストール場所をシステムの実行ファイルパスとドキュメンテーションパス (
PATH
、MANPATH
、INFOPATH
) に追加する必要があります。インストールスクリプトは、追加すべきパスを終了前に出力してくれます。
アップデート
tlmgr ドキュメントを参照してください。tlmgr update --all
を実行すると、インストール中に選択したコレクションの全パッケージをアップグレードします。また、インストール済みの TeX Live コレクションに新しく追加されたパッケージもインストールされます。
年に1度、TeX Live の新しいリリースがあると、tlmgr update --all
は失敗します。その場合、TeX Live を新しくインストールする必要があります。
Arch の TeX Live パッケージ
- texlive グループには、ほとんどの TeX Live パッケージが含まれています。上流のコレクションに基づいてカテゴリ化されています ([1] を参照)。
- texlive-basic はコアのパッケージです。上流の medium インストールスキームに基づいています。このパッケージには、mktexlsr、fmtutil、updmap を自動化する pacman フックが含まれています。
- texlive-latex には、必須の LaTeX パッケージ群が含まれています。
- texlive-latexrecommended と texlive-latexextra には多くの便利な LaTeX パッケージが含まれています (例:
polyglossia
、amsmath
、graphicx
)。 - texlive-fontsrecommended には必須のフォントが含まれています (デフォルトの Latin Modern を含む)。
- texlive-fontsextra には追加のフォントが含まれています。フォントは LaTeX Font Catalogue で閲覧できます。
- texlive-xetex と texlive-luatex には XeTeX と LuaTeX のパッケージがそれぞれ含まれています。
- texlive-bibtexextra には、BibLaTeX パッケージ、追加の BibTeX スタイル、および参考文献データベースが含まれています。。
- texlive-lang グループには、非ラテン文字の言語のための文字セットと機能を提供するパッケージが含まれています。
- texlive-langcjk は、中国語、日本語、そして韓国語の言語サポートの共通部分です。
- texlive-langjapanese は、日本語の言語サポートを提供します。
- texlive-langother は、アフリカの言語、アラビア語、アルメニア語、クロアチア語、ヘブライ語、インド語群、モンゴル語、チベット語、そしてベトナム語の言語サポートを提供します。
- biber は、BibLaTeX のための代替の参考文献処理バックエンドを提供します。
- texlive-latexindent-metaAUR メタパッケージは、latexindent を実際に使うために必要になるすべての依存パッケージを提供します。
CTAN で利用できる TeX パッケージをインストールする必要がある場合は、以下のコマンドを実行して、そのパッケージが Arch の texlive- パッケージに含まれているか確認してください:
$ tlmgr info ctan_package_name | grep collection
このコマンドは、Arch の texlive- パッケージに対応する TeX Live コレクションの名前が表示される可能性があります (そのようなパッケージが存在するかどうか texlive を確認してください)。例えば、collection: collection-plaingeneric
という出力は、TeX パッケージが texlive-plaingeneric に含まれていることを意味します。
あるいは、tlmgr
を使って手動で単一の TeX パッケージをインストールすることもできます (以下を参照)。
tllocalmgr
tllocalmgrAUR によって提供されている tllocalmgr ユーティリティは、pacman パッケージとして CTAN からパッケージをインストールできるようにします。詳細は 使用方法 (-h
) を見てください。
tlmgr
texlive-basic を使えば、tlmgr ユーティリティは設定無しで動くはずです。問題が発生した場合や、古い texlive-core
パッケージを使用している場合は、tlmgr を動作させるために以下の手順を踏む必要があります。
tlmgr ユーティリティは、CTAN からパッケージをインストール、アップデートする標準的な方法です。以下のように小さな修正が必要となります:
まず、TEXMFDIST/scripts/texlive/tlmgr.pl
を編集して $Master = "$Master/../..";
を $Master = "${Master}/../../..";
に置き換えてください。パスのプレフィックス TEXMFDIST は、事前に定義された環境変数ではなく、この記事の以下で定義されたものです。このプレフィックスは正しい値に置き換えてください。
また、コマンドラインから sudo sed -i 's/\$Master = "\$Master\/..\/..";/\$Master = "\$Master\/..\/..\/..";/' "$TEXMFDIST/scripts/texlive/tlmgr.pl"
を実行することでも可能です。
その perl スクリプトのエイリアスを作成してください (シェルの初期化ファイルに追加できます)。
alias tlmgr='TEXMFDIST/scripts/texlive/tlmgr.pl --usermode'
これで、ユーザモードで初期化できます (インストールプレフィックスとして ~/texmf
を使用します):
$ tlmgr init-usertree
自由にミラーを設定してください。ミラーのパスの末尾に /systems/texlive/tlnet
を追加する必要があります。例えば:
$ tlmgr option repository http://mirrors.rit.edu/CTAN/systems/texlive/tlnet
これで、CTAN パッケージを通常通りインストールできるようになりました:
$ tlmgr install package_name
パッケージのドキュメント
公式リポジトリ内のパッケージには、フォント/マクロのパッケージのドキュメントやソースファイルが含まれていません。
texdoc
でオフラインアクセスするには、texlive-most-docAUR を使って TeX Live のドキュメントとソースファイルを全てインストールしてください。
また、オンラインでドキュメントにアクセスすることもできます:
- https://tug.org/texlive/Contents/live/doc.html
- https://ctan.org/ – Tex 関連の全種類の資料の中心的な場所
- https://texdoc.net/[リンク切れ 2022-09-23] (
http://texdoc.net/pkg/packagename
は、関連する PDF を直接生成します)
使用方法
以下のリソースを参照してください:
- Wikibooks:LaTeX (Wikibooks:Ja:TeX/LaTeX入門)
- The Not So Short Introduction to LaTeX 2ε
- Getting to Grips with LaTeX – Andrew Roberts
- The TeX FAQ
ドキュメントの作成に TeX エディタを使うこともできます。
ドキュメントをコンパイルするための高レベルなラッパー
ほとんどの場合、pdflatex(1) のようなものを直接呼び出すより、latexmk(1) や arara(1) といった高レベルなツールを使うほうが合理的です。その理由は主に、低レベルなツールは単一のドキュメントを完全にコンパイルするのに通常複数回実行する必要があるからです。
texmf ツリーと Kpathsea
texmf ツリー (texmf は TeX と Metafont の略) は TeX Directory Structure に従う必要があります。さもないと、ファイルを見つけられない場合があります。[3]
Tex Live は Kpathsea ライブラリを使用して、複数の texmf ツリーと現在の作業ディレクトリにまたがってファイル名でパスを探索します。
Kpathsea は以下の変数を逆順で検索します (後のツリーは前のものを上書きします)。
変数 | Arch のデフォルト 1) | その変数を使用するもの [4] |
---|---|---|
TEXMFDIST |
/usr/share/texmf-dist |
元のディストリビューションのファイル |
TEXMFLOCAL |
/usr/local/share/texmf:/usr/share/texmf |
追加およびアップデートされたマクロ、フォントなどをシステム全体にインストールするために管理者が使用 |
TEXMFSYSVAR |
/var/lib/texmf |
(キャッシュされた) ランタイムデータを保管するために updmap と fmtutil (ユーザモード) が使用 |
TEXMFSYSCONFIG |
/etc/texmf |
変更された設定データを保管するために updmap と fmtutil (ユーザモード) が使用 |
TEXMFHOME |
~/texmf |
追加およびアップデートされたマクロ、フォントなどをユーザ個別にインストールするためにユーザが使用 |
TEXMFVAR |
~/.texlive/texmf-var |
(キャッシュされた) ランタイムデータを保管するために updmap と fmtutil (システムモード) が使用 |
TEXMFCONFIG |
~/.texlive/texmf-config |
変更された設定データを保管するために updmap と fmtutil (システムモード) が使用 |
TEXMFCACHE |
$TEXMFSYSVAR;$TEXMFVAR |
(キャッシュされた) ランタイムデータを保管するために ConTeXt MkIV と LuaLaTeX が使用 |
Kpathsea は、パスを探索するための kpsewhich(1) コマンドを提供します。--var-brace-value=VARIABLE
引数で実行すれば、変数の値も表示できます。
Kpathsea はファイル名データベース (ls-R
) を使用して、システム全体の texmf ツリー (TEXMFDBS
変数で設定される) での検索を高速化させます。つまり、システム全体のファイルツリーが変更された際に mktexlsr(1) か texhash
(シンボリックリンク) を root として実行する必要があるということです。幸い、texlive-core{{Broken package link|replaced by texlive-basic は、/usr/local/share/texmf
を除くすべてのデフォルトのシステム全体ツリーを対象とする pacman フックで自動化します。[6] なので、システム全体に pacman を通してパッケージをインストールする限り、あなたが mktexlsr や texhash を実行する必要は全くないはずです。
ヒントとテクニック
デフォルトの用紙サイズを変更する
現在、texlive ツールを使用してデフォルトのページサイズを変更することは不可能です。ツールが標準の Arch パッケージで機能しないためです。
通常では、texconfig
か tlmgr
を実行します (これらは、他の便利な設定を変更することもできます)。
以下のように設定ファイルを変更できます。
- pdftex ファミリのコマンド (pdftex、pdflatex など) に対して用紙サイズを設定するには、
/etc/texmf/tex/generic/tex-ini-files/pdftexconfig.tex
を編集してください。
このファイルは kpsewhich pdftexconfig.tex
を実行することでも見つけられます。pdfpageheight
と pdfpagewidth
を指定する2行を変更してください。例えば、レターサイズを使用するには、
\pdfpageheight = 297 true mm \pdfpagewidth = 210 true mm
から
\pdfpageheight = 11 true in \pdfpagewidth = 8.5 true in
に変更してください。
残念ながら、これは、バイナリの .fmt ファイルをリビルドするまで効果がありません。fmtutil-sys
でリビルドできます。また、pacman で texlive-bin を再インストールしてもリビルドできます。
- dvips に対しては、
-t
オプションを使って用紙サイズを指定できます:dvips -t letter foo.dvi
。デフォルトを変更するには、/etc/texmf/dvips/config/config.ps
を編集してください。
このファイルは kpsewhich config.ps
を実行することでも見つけられます。このファイルの最後にあるセクションには、dvips が認識するすべての用紙サイズがリストアップされています。リストの最初にある用紙サイズがデフォルトとなります。デフォルトを変更するには、デフォルトにしたいサイズをリストの先頭に移動させてください。dvips の挙動は、ファイルが変更されるとすぐに変更されます。
Fontconfig でフォントを利用可能にする
デフォルトでは、さまざまな TeX Live パッケージに入っているフォントを Fontconfig から自動で利用することができません。XeTeX や LibreOffice などからフォントを使えるようにしたいときは、フォントディレクトリからユーザのフォントパスへのシンボリックリンクを作成するのが一番簡単です。OpenType フォントの場合は、以下を実行してください:
$ ln -s /usr/share/texmf-dist/fonts/opentype/public/some_fonts_you_want ~/font_path/OTF/
fontconfig で利用できるようにするには、次を実行してください:
$ fc-cache ~/font_path $ mkfontscale ~/font_path/OTF $ mkfontdir ~/font_path/OTF
TrueType フォントや Type 1 フォントに対しても似たような手順です。上記のコマンドでは、opentype
を truetype
や type1
に変更し、OTF
を TTF
や Type1
に変更します。
また、texlive-core{{Broken package link|replaced by texlive-basic には TeX Live によって使用されるフォントディレクトリのリストが入ったファイル /usr/share/fontconfig/conf.avail/09-texlive-fonts.conf
が含まれています。このファイルを利用するには次を実行して:
# ln -s /usr/share/fontconfig/conf.avail/09-texlive-fonts.conf /etc/fonts/conf.d/09-texlive-fonts.conf
それから fontconfig を更新してください:
$ fc-cache && mkfontscale && mkfontdir
babelbib 言語定義の更新
必要としている最新の言語定義が babelbib になく、全てをリコンパイルしたくはないという問題を抱えている場合、https://www.tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/babelbib/ から手動で入手して /usr/share/texmf-dist/tex/latex/babelbib/
に配置することができます。例えば:
$ cd /usr/share/texmf-dist/tex/latex/babelbib/ # wget https://www.tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/babelbib/romanian.bdf # wget [...all-other-language-files...] # wget https://www.tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/babelbib/babelbib.sty
その後、texhash
を実行して TeX データベースを更新してください:
# texhash
代替
Tex Live の代替としては、MikTex や Tectonic などがあります。これらは最小限のインストールで、適宜必要なパッケージをインストールします。