TeX Live

提供: ArchWiki
2023年6月19日 (月) 20:34時点におけるAshMyzk (トーク | 投稿記録)による版 (→‎重要事項: 削除)
ナビゲーションに移動 検索に移動

関連記事

Wikipedia により:

TeX Live は、TeX 植字システムのためのフリーソフトウェア配布で、主要な TeX 関連プログラム、マクロパッケージ、およびフォントを含んでいます。

Tex Live には以下が含まれています:

  • 多くの TeX エンジン。例えば:
  • 基本的なマクロパッケージ (TeX 用語では フォーマット と呼ばれます)。例えば:
  • ユーザによって作成された多くパッケージ

インストール

  • texlive グループには、ほとんどの Tex Live パッケージが含まれています。
    • texlive-core は必須のパッケージであり、上流の medium インストールスキームに基づいています (その他のパッケージは全て上流のコレクションに基づいています)。このパッケージには、mktexlsrfmtutilupdmap を自動化する pacman フックが含まれています。
    • texlive-bin にはバイナリとライブラリが含まれています (texlive-core の依存パッケージです)。
    • texlive-latexextra には、polyglossiaamsmathgraphicx などの便利なパッケージが多く含まれています。
  • texlive-lang グループには、非ラテン文字の言語のための文字セットと機能を提供するパッケージが含まれています。
    • texlive-langextra は、アフリカの言語、アラビア語、アルメニア語、クロアチア語、ヘブライ語、インド語群、モンゴル語、チベット語、ベトナム語の言語サポートを提供します。
  • texlive-bibtexextra には、追加の BibTex と BibLaTeX スタイル、および参考文献データベースが含まれています。
  • texlive-fontsextra には、追加のフォントが含まれています (LaTeX Font Catalogue で見られます)。
  • biber は、BibLaTex のための代替の参考文献処理バックエンドを提供します。
  • texlive-latexindent-metaAUR メタパッケージは、latexindent を実際に使うために必要になるすべての依存パッケージを提供します。

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

ノート: Tex Live に含まれている一部のツールとユーティリティは、ghostscriptperlpythonruby に依存しています。詳細は、それぞれのパッケージの任意の依存パッケージを見てください。
ヒント: Tex エディタをインストールすると良いかもしれません。

tllocalmgr

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

tlmgr

ノート:
  • texlive-coreTEXMFDIST 内に tlmgr スクリプトを提供しますが、これは壊れています。以下で説明されているように修正するか、あるいは代わりに 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 は、事前に定義された環境変数ではなく、この記事の以下で定義されたものです。このプレフィックスは正しい値に置き換えてください。

その perl スクリプトのエイリアスを作成してください (シェルの init ファイルに追加できます)。

alias tlmgr='TEXMFDIST/scripts/texlive/tlmgr.pl --usermode'

これで、ユーザモードで初期化できます (インストールプレフィックスとして ~/texmf を使用します):

$ tlmgr init-usertree

自由にミラーを設定してください。例えば:

$ tlmgr option repository http://mirrors.rit.edu/CTAN/systems/texlive/tlnet

これで、CTAN パッケージを通常通りインストールできるようになりました:

$ tlmgr install package_name

パッケージのドキュメント

公式リポジトリ内のパッケージには、フォント/マクロのパッケージのドキュメントやソースファイルが含まれていません。

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

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

手動インストール

上流のインストーラで Tex Live をインストールすることもできます。これは texlive-installerAUR としてパッケージングされています。詳細は LaTeX WikibookTeX Live Guide を見てください。

使用方法

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

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

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

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

texmf ツリーと Kpathsea

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

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

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

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

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

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

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

ヒントとテクニック

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

この記事またはセクションの正確性には問題があります。
理由: 設定ファイルを直接編集することで可能です。[5] (議論: トーク: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

トラブルシューティング

更新時に "formats not generated" というエラー

FS#16467 を参照してください。(実験的な LuaTeX エンジンを使用しない場合、これは無視できることに注意してください。) この状況は典型的に、ハイフネーションパターンの設定ファイル language.deflanguage.dat の両方/一方に、以前のリリースの texlive-core のファイルへの参照が含まれている場合に発生します (特に、ファイル名が頻繁に変更される、ドイツ語の最新の実験的なハイフネーションパターン)。現在、それらは dehyph{n,t}-x-2009-06-19.tex を指しているはずです。

これを解決するには、ファイル /etc/texmf/tex/generic/config/language.{def,dat} を削除するか、/usr/share/texmf/tex/generic/config/language.{def,dat} の最新のバージョンを使うように更新し、以下を実行する必要があります:

# fmtutil-sys --missing

tlmgr を texliveonfly で動作させる

tlmgrtexliveonfly で動作させる最も簡単な方法は、(tlmgr をエイリアスにせずに) 以下の内容を含むスクリプト tlmgr$PATH 内に作成することです:

#!/bin/sh
/usr/share/texmf-dist/scripts/texlive/tlmgr.pl --usermode "$@"

こうする理由は、textliveonfly が Python スクリプトであり、エイリアスを処理できないからです。

代替

Tex Live の代替としては、MikTex や Tectonic などがあります。これらは最小限のインストールで、適宜必要なパッケージをインストールします。

参照

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