MiKTeX では、たとえば \usepackage{beamer}
がある場合、インストール プロセスが自動的にトリガーされます。 対応するパッケージがインストールされていないドキュメントのプリアンブルでは、TeX Live にはそのような機能はありません。
最後のステートメントは実際には正しくありません。コメントの Wasteofspace で指摘されているように、TeX Live 2010 以降でオンデマンド インストールを実装する texliveonfly パッケージがあります。私はそれをテストしたことがなく、欠点があるかどうかもわかりません.
ただし、パッケージの完全な (またはほぼ完全な) TeX Live コレクション (~2400) をインストールする場合、新しいパッケージを追加する必要はありません。定期的な tlmgr update -all
は、最初の完全インストール後に TeX Live コレクションに追加されたパッケージのインストールを含め、すべてを処理します。この機能は tlmgr
で説明されています マニュアル。
同様に、ローカルにもインストールされているサーバー上のコレクションにパッケージが追加されている場合、そのパッケージはローカル インストールに追加されます。これは auto-install
と呼ばれます オプション --list
を使用すると、そのようにアナウンスされます .この自動インストールは、オプション --no-auto-install
を使用して抑制できます
マニュアルには便利なコマンドに関する情報がたくさんあり、すべてのユーザーに推奨される一読です。
欠点はもちろん、パッケージの完全なセットをマシンにインストールする必要があることです。これは、十分な空き容量がない場合に問題になる可能性があります。 HD から 2GB を惜しまない場合は、TeX Live をたとえば 4GB USB キーにインストールして、その後ずっと幸せに暮らすこともできます :)
今書いたものはすべて、ここで説明した方法のいずれかで TeX Live をインストールする必要があります。お使いのディストリビューションの TeX パッケージを使用する場合は、ディストリビューションごとに異なる更新ポリシーに従う必要があります
texliveonfly
コメントで述べたように、texliveonfly
という TeX Live パッケージがあります。 texliveonfly filename.tex
で使用できます 、適切な TeX Live パッケージを自動的にダウンロードします。
これは、LaTeX パッケージ名と TeX Live パッケージ名が一致しないパッケージ (たとえば、LaTeX rubikrotation
パッケージは rubik
に含まれています TeX Live パッケージ) であり、パッケージの依存関係も考慮されます。
使い方
インストール中 これは Python スクリプトなので、Python をインストールする必要があります。その後、通常どおり tlmgr install texliveonfly
でインストールできます . sudo tlmgr
を使用する必要がある場合 ここでは、sudo texliveonfly
を使用する必要があります
ランニング 端末で filename.tex
のディレクトリに移動すると、 texliveonfly filename.tex
で実行できます .
その他のコンパイラ 現時点では pdflatex
を使用しています --compiler
を使用して、他のコンパイラ エンジンで実行するように構成できます。 (または -c
) フラグ、つまり texliveonfly --compiler=lualatex filename.tex
のように .
コンパイラ フラグ 使用するコンパイラのフラグを texliveonfly
に渡すことができます --arguments
を使用して (または -a
) フラグ。たとえば、以前に latexmk -shell-escape -pdf filename.tex
を使用した場合 次に texliveonfly --compiler=latexmk --arguments='-shell-escape -pdf' filename.tex
を使用します .
既知の問題
<オール>texliveonfly
です。 現時点では、次のパッケージは手動でインストールする必要があることがわかっています:(さらに見つけたら編集してください)- バベル言語、たとえばヨーロッパ言語の場合、
collection-langeuropean
をインストールします パッケージ - Biblatex スタイル。自然のスタイルには
biblatex-nature
が必要です パッケージ - fontenc エンコーディング。
t2aenc.def
を取得するにはcyrillic
が必要です パッケージ、およびly1enc.def
を取得するly1
が必要です パッケージ。 minted fvextra upquote lineno xstring framed caption
である minted パッケージを使用する際に含まれるパッケージ (テストのための pablgonz に感謝)texcount
などの外部プログラムを実行する場合 LaTeX ファイルで、texliveonfly はtexcount
が必要であることを検出しません。 パッケージ。
- 別のコンパイラなど、texliveonfly にオプションを指定すると、パッケージをインストールするときに明確な理由もなくハングすることがあります。おそらく最初にオプションなしで texliveonfly を実行することで回避できるので、
texliveonfly main.tex
(パッケージをダウンロードします)そして、たとえばlatexmk main.tex
など、必要なものを実行します .
背景
基本的に、texliveonfly は latexmk (Perl スクリプト) のようなビルド ツールであり、TeX エンジンをラップします。ただし、それらを texliveonfly --compiler=latexmk filename.tex
で連鎖できることに注意してください .
これは、LaTeX ファイルを実行しようとすることで機能する Python スクリプトであり、パッケージが見つからないために失敗した場合、そのパッケージをインストールしようとします。
ctan.org/pkg/texliveonfly のほかに、ctan.org/tex-archive/support/texliveonfly または latex.org/forum でソースを表示できます
PS Arch Linux 4.19.4 と Travis CI (Ubuntu 14.04) でこれをテストしました。
私のやや単純なアプローチは、\usepackage
を検索することでした。 、コンテンツを抽出し、ディストリビューションのパッケージ マネージャーを使用してインストールします。
cat *.tex | sed -n 's/^[^%]*\\usepackage[^{]*{\([^}]*\)}.*$/tex\(\1.sty\)/p' | paste -sd ' ' -
これは、.sty
のパッケージのリストを返します tex()
で囲まれています 、例えばtex(amsmath.sty) tex(enumitem.sty) tex(graphicx.sty)
.これらを yum
に直接渡すことができます /dnf
(私は Fedora を使用しています)。
sudo dnf install $( cat *.tex | sed -n 's/^[^%]*\\usepackage[^{]*{\([^}]*\)}.*$/tex\(\1.sty\)/p' | paste -sd ' ' - )
sed
という複数の行に分割したパッケージがいくつかありました sudo dnf install 'tex(some-package-name.sty)'
を使用して手動でインストールした式がありませんでした .
シンプルな .sty
があることを願っています apt-get
に相当するものをインストールする Ubuntu で。