TeX Live

提供: ArchWiki
2023年7月2日 (日) 16:56時点におけるZkn (トーク | 投稿記録)による版 (texlive-langcjkの説明を修正(英語版の説明と離れるが、本来こちらが正しいはず))
ナビゲーションに移動 検索に移動

関連記事

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 をインストールせずに個々のパッケージをアップグレードしたりインストールしたりすることは可能であるものの (TEXMFLOCALTEXMFHOME を参照)、これには注意が必要です。というのも、関連する全てのパッケージのバージョンが互いに互換性があることを確認する必要があるからです。

ネイティブな TeX Live とは対照的に、Arch Linux のリポジトリにある TeX Live パッケージにはドキュメントが含まれない傾向にあります。CTAN からのドキュメントは TeX パッケージの最新バージョン用のものしか入手できないので、これは問題となります。

ノート: 複数の TeX Live インストールを単一のシステムで共存させることは可能です。

ネイティブな TeX Live

インストール

quickinstall ドキュメントを参照してください。必要であれば、完全なドキュメント (日本語版) も参照してください。作業は以下のように要約されます:

  1. netinstall アーカイブをダウンロードする
  2. アーカイブを展開し、新しく作成されたディレクトリへ移動する
  3. インストールスクリプトを実行する (perl ./install-tl)。これで、テキストインターフェイスのインタラクティブなインストール手順が始まります
    1. 1つ、または複数のインストールパスを設定する
    2. 任意で、TeX Live によって提供されているパッケージ コレクション のサブセットを選択する
    3. 任意で、A4 ではなくレター用紙サイズをデフォルトとして選択する
    4. ダウンロードが終わるのを待つ
  4. インストールスクリプトの実行が終わったら、TeX Live のインストール場所をシステムの実行ファイルパスとドキュメンテーションパス (PATHMANPATHINFOPATH) に追加する必要があります。インストールスクリプトは、追加すべきパスを終了前に出力してくれます。

アップデート

tlmgr ドキュメントを参照してください。tlmgr update --all を実行すると、インストール中に選択したコレクションの全パッケージをアップグレードします。また、インストール済みの TeX Live コレクションに新しく追加されたパッケージもインストールされます。

年に1度、TeX Live の新しいリリースがあると、tlmgr update --all は失敗します。その場合、TeX Live を新しくインストールする必要があります。

Arch の TeX Live パッケージ

この記事またはセクションの正確性には問題があります。
理由: texlive-core は最近 texlive-basic に置き換えられました。また、texlive-meta という新しいメタパッケージも存在します。 (議論: トーク:TeX Live#)
  • texlive グループには、ほとんどの TeX Live パッケージが含まれています。
    • texlive-basic は必須のパッケージであり、上流の medium インストールスキームに基づいています (その他のパッケージは全て上流のコレクションに基づいています)。このパッケージには、mktexlsrfmtutilupdmap を自動化する pacman フックが含まれています。
    • texlive-bin にはバイナリとライブラリが含まれています (これは texlive-core の依存パッケージです)。
    • texlive-latex には、必須の LaTeX パッケージ群が含まれています。
    • texlive-latexextra には、polyglossiaamsmathgraphicx などの便利なパッケージが多く含まれています。
    • texlive-bibtexextra には、BibLaTeX パッケージ、追加の BibTeX スタイル、および参考文献データベースが含まれています。。
    • texlive-fontsextra には追加のフォントが含まれています。フォントは LaTeX Font Catalogue で閲覧できます。
  • texlive-lang グループには、非ラテン文字の言語のための文字セットと機能を提供するパッケージが含まれています。
    • texlive-langcjk は、中国語、日本語、そして韓国語の言語サポートの共通部分です。
    • texlive-langjapanese は、日本語の言語サポートを提供します。
    • texlive-langother は、アフリカの言語、アラビア語、アルメニア語、クロアチア語、ヘブライ語、インド語群、モンゴル語、チベット語、そしてベトナム語の言語サポートを提供します。
  • biber は、BibLaTeX のための代替の参考文献処理バックエンドを提供します。
  • texlive-latexindent-metaAUR メタパッケージは、latexindent を実際に使うために必要になるすべての依存パッケージを提供します。

それぞれの texlive- パッケージにどの CTAN パッケージが含まれているか調べるには、/var/lib/texmf/arch/installedpkgs/パッケージのリビジョン.pkgs ファイルを見てください。

ノート: TeX Live に含まれている一部のツールとユーティリティは、ghostscriptperlpythonruby に依存しています。詳細は、それぞれのパッケージの任意の依存パッケージを見てください。

tllocalmgr

警告: tllocalmgr がもはや機能していないと報告されています。[[1]] を参照してください。

tllocalmgrAUR によって提供されている tllocalmgr ユーティリティは、pacman パッケージとして CTAN からパッケージをインストールできるようにします。詳細は 使用方法 (-h) を見てください。

tlmgr

ノート:
  • texlive-coreTEXMFDIST 内に tlmgr スクリプトを提供しますが、これは壊れています (FS#74404)。以下で説明されているように修正するか、あるいは代わりに tllocalmgr を使用することができます。
  • texconfig(1) コマンドは、部分的に tlmgr に依存しているため、ほぼ壊れています (FS#59094)。texconfig のインタラクティブモードには dialog が必要です。
この記事またはセクションの正確性には問題があります。
理由: 以下の修正は texlive-core パッケージに組み込まれるべきです。TEXMFDIST 内のファイルを編集しても、パッケージをアップグレードすると変更が上書きされてしまいます。 (議論: トーク:TeX Live#)

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 でオフラインアクセスするには、Tex Live のドキュメント全体とソースファイルを texlive-most-docAURインストールするか、あるいは tllocalmgr で特定のパッケージのドキュメントをインストールすることで可能です。

また、オンラインでドキュメントにアクセスすることもできます:

使用方法

以下のリソースを参照してください:

ドキュメントの作成に TeX エディタを使うこともできます。

ドキュメントをコンパイルするための高レベルなラッパー

ほとんどの場合、pdflatex(1) のようなものを直接呼び出すより、latexmk(1)arara(1) といった高レベルなツールを使うほうが合理的です。その理由は主に、低レベルなツールは単一のドキュメントを完全にコンパイルするのに通常複数回実行する必要があるからです。

texmf ツリーと Kpathsea

texmf ツリー (texmf は TeX と Metafont の略) は TeX Directory Structure に従う必要があります。さもないと、ファイルを見つけられない場合があります。[2]

Tex Live は Kpathsea ライブラリを使用して、複数の texmf ツリーと現在の作業ディレクトリにまたがってファイル名でパスを探索します。

Kpathsea は以下の変数を逆順で検索します (後のツリーは前のものを上書きします)。

変数 Arch のデフォルト 1) その変数を使用するもの [3]
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 が使用
ノート: デフォルトの値は /etc/texmf/web2c/texmf.cnf[4] で定義されています。それらの値は環境変数によって上書きできます。

Kpathsea は、パスを探索するための kpsewhich(1) コマンドを提供します。--var-brace-value=VARIABLE 引数で実行すれば、変数の値も表示できます。

Kpathsea はファイル名データベース (ls-R) を使用して、システム全体の texmf ツリー (TEXMFDBS 変数で設定される) での検索を高速化させます。つまり、システム全体のファイルツリーが変更された際に mktexlsr(1)texhash (シンボリックリンク) を root として実行する必要があるということです。幸い、texlive-core は、/usr/local/share/texmf を除くすべてのデフォルトのシステム全体ツリーを対象とする pacman フックで自動化します。[5] なので、システム全体に pacman を通してパッケージをインストールする限り、あなたが mktexlsrtexhash を実行する必要は全くないはずです。

ヒント: ローカルリポジトリをセットアップするために、~/texmf/tex/{format}/ ディレクトリ構造を作成することができます ({format} は通常 latex です)。カスタムクラスは ./{format} フォルダ直下に配置され、他のローカルファイルは同じ名前のフォルダに配置されます (例えば、mycustompackage.sty./{formats}/mycustompackage/mycustompackage.sty に行きます)。その後、texhash を実行してユーザのデータベースをアップデートしてください。

ヒントとテクニック

デフォルトの用紙サイズを変更する

この記事またはセクションの正確性には問題があります。
理由: 設定ファイルを直接編集することで可能です。[6] (議論: トーク:TeX Live#)

現在、texlive ツールを使用してデフォルトのページサイズを変更することは不可能です。ツールが標準の Arch パッケージで機能しないためです。

通常では、texconfigtlmgr を実行します (これらは、他の便利な設定を変更することもできます)。

以下のように設定ファイルを変更できます。

  • pdftex ファミリのコマンド (pdftexpdflatex など) に対して用紙サイズを設定するには、/etc/texmf/tex/generic/tex-ini-files/pdftexconfig.tex を編集してください。

このファイルは kpsewhich pdftexconfig.tex を実行することでも見つけられます。pdfpageheightpdfpagewidth を指定する2行を変更してください。例えば、レターサイズを使用するには、

\pdfpageheight = 297 true mm
\pdfpagewidth  = 210 true mm

から

\pdfpageheight = 11 true in
\pdfpagewidth  = 8.5 true in

に変更してください。

残念ながら、これは、バイナリの .fmt ファイルをリビルドするまで効果がありません。fmtutil-sys でリビルドできます。また、pacmantexlive-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 フォントに対しても似たような手順です。上記のコマンドでは、opentypetruetypetype1 に変更し、OTFTTFType1 に変更します。

また、texlive-core には 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
ノート:
  • TeX と Fontconfig の両方で同一のフォントが利用できる場合 (検索パスに同じフォントのコピーが複数ある場合)、上記の設定が XeTeX/XeLaTeX と衝突する可能性があります。
  • Type 1 フォントは LibreOffice 5.3 およびそれ以降で利用できません。

babelbib 言語定義の更新

この記事あるいはセクションで使われている用語や表現には問題が存在します。
議論: /usr/share/texmf-dist/ を変更するべきではありません。 (議論: トーク:TeX Live#)

必要としている最新の言語定義が 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 などがあります。これらは最小限のインストールで、適宜必要なパッケージをインストールします。

参照

翻訳ステータス: このページは en:TeX Live の翻訳バージョンです。最後の翻訳日は 2023-06-19 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。