GNU/Linux >> Linux の 問題 >  >> Linux

TeXLive の自動パッケージ ダウンロード

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 を使用します .

既知の問題

<オール>
  • パッケージが見つからず、標準外のエラー メッセージで失敗する場合があります。たとえば、babel に言語がない場合は 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 が必要であることを検出しません。 パッケージ。
    1. 別のコンパイラなど、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 で。


    Linux
    1. Linux用のPythonアプリケーションをパッケージ化する方法

    2. Nix –LinuxおよびUnix用の強力なパッケージマネージャー

    3. Trizen –Archベースのシステム向けの軽量AURパッケージマネージャー

    1. Ubuntu 14.04 64ビットの場合、どのDiaパッケージをダウンロードする必要がありますか?

    2. Ubuntu 20.04 Imac G5 Powerpcのダウンロード?

    3. youtube-dl-gui –youtube-dl用のクロスプラットフォームGUI

    1. Linuxパッケージ管理のためのAppImageの使用

    2. Apt-cacheは?

    3. aspell に不足している辞書を追加するにはどうすればよいですか?