
TeX Live を使用する Unix 系システムでは、コマンドはkpsewhich --var-value=TEXMFLOCAL
自作パッケージをインストールするディレクトリのパスを提供します。たとえば、私の Mac では、パスを取得します/usr/local/texlive/texmf-local
。
これは TeX Live を使用して Windows で動作しますか?
答え1
すでにいくつかの回答が得られていますが(コメントにいくつかあります)、次のことを言わせてください。TeXLive(私の知る限りではMikTeXも)
- 適切に記入された税金これは TeX ディレクトリ構造です。
- Karl Berry Search Path ツールを使用しています。したがって、コマンドライン ツールを使用して、
kpsewhich
ファイルの場所を特定できます。このコマンドは、指定された実行ファイルの場所を検索しようとする Unix ツールからヒントを得ましたwhich
。TeX システムでの使用のために、少し拡張されました。
特に TeXLive では (ただし、MikTeX でも同じだと思います)、複数の TDS ツリーを並行して使用できます。通常、TeXLive システムは、次の 3 つの TDS ツリーを持つようにセットアップされます。
- ディストリビューションのメンテナーのTDS、
- ローカルシステム管理者のTDS、
- 個々のユーザーの TDS。
最初のディレクトリには、TeXLive (それぞれ MikTeX) に付属するすべてのパッケージが含まれています。これは、(システム管理者として) TeXLive システムをインストールするときにインストールされます。これは、TeXLive システムを更新するたびに変更されます。したがって、その TDS ツリーにはパッケージをインストールしないでください (もちろん、TeXLive のメンテナーの場合は除きます。しかし、セットアップについて説明しなければならない理由はありません)。
2 番目の TDS ツリーはシステム管理者用で、すぐにインストールできるローカル パッケージの中央リポジトリでユーザーをサポートします。たとえば、大学の企業デザインに従うスタイル ファイルはここにインストールされます。ネットワーク共有の場合、大学全体 (必要に応じて会社全体) のすべての TeX ユーザーが、追加の設定なしでこのファイルを使用できます。このツリーにパッケージをインストールするには、通常、ここにファイルを書き込むためのシステム管理者権限も必要です。
3 番目で最後のツリーは、個々のユーザー用のツリーです。これは、ユーザー自身が所有するディレクトリに配置されます。従来、これは Unix システム上のユーザーのホーム ディレクトリ内にありました。
TeXLiveコマンドツールを使用するとtlmgr
、これらの3つのTDSが個々のコンピュータのどこにあるのかを調べることができます。
tlmgr conf
そして、次の行で始まる行をチェックします。
TEXMFDIST
TEXMFLOCAL
TEXMFHOME
これらは、TeX インストール内の正しい場所を示します。
(申し訳ありませんが、MikTeX でこの情報を提供するツールは知りません。)
で始まる行もあり、texmf.cnf
マスター構成ファイルの場所がリストされます。場所の一部を変更する予定があり、そこで何を行うのかがわかっている場合は、そのファイルを編集してください。
もう一つ、指摘すべき重要なことがあります。今日では、完全な TeX システムは数十万のファイルで構成されています。たとえば を見つけるためだけに、すべてのパスを何度も検索するのは、コンピュータにとって面倒な作業ですbook.cls
。(コンピュータは愚かだと言いましたか? コンピュータは、あなたが助けなければ、それらの場所を思い出すことができません!) 検索に検索を重ねて検索し直すことを防ぐために、ディストリビューション TDS ツリーとローカル TDS ツリーにあるすべてのファイルは、単純なデータベースに保存されます。したがって、ファイルをそれらのツリーの 1 つにコピーするだけでは不十分です。データベースを更新しない限り、TeX はこれらのファイルを見つけられません。もちろん、データベースを更新するには、スーパー ユーザー権限 (スーパー カウ パワーとも呼ばれます :-)) が必要になります。従来の Unix システムでは、これは または コマンドでした。これは、texhash
「mktexlsr
TeX ls-minus-R データベースを作成する」の短縮形です (実際、これは、ls -R $TEXMFDIST
データベースに追加したい または TDS ツリーに他なりません)。
まとめると、自分のパッケージをリリースして他の人のコンピュータにインストールして世界を豊かにしたいと考えている場合、最善の方法は TeXLive のメンテナーにそれを TeXLive に含めるよう説得することです。そうすればもう心配する必要はありません。パッケージがそれほど重要でなく、TeXLive のメンテナーにそれを含めるよう説得できない場合は、顧客にシステムの一部にインストールするように指示するのが最善かもしれませんTEXMFHOME
。顧客に以下を実行するように依頼するだけです。
tlmgr conf | grep TEXMFHOME
Unix 系システムでは、bash がインストールされた新しい Windows システムでも動作するかもしれません。そのシステムでは、スーパー パワーも必要ありませんし、データベースの更新に手間をかける必要もありません。パッケージをシステム管理者に渡すと、パッケージをどこに保存するか、データベースを更新する方法をシステム管理者が知っていることがよくあります。
PS: book.cls
CTAN からの最新のものを TeXLive システムで確実に使用したい場合、メンテナーがそれをディストリビューションに組み込んでいないときは、またはにインストールし、指定された 3 つの TDS ツリーの最後にある方法で編集してシステムを構成する必要TEXMFLOCAL
がありますTEXMFHOME
。temf.cnf
TEXMFDIST
答え2
覚えておくべきことの 1 つは、Windows では多くの構成変数がデフォルトで有効になっていないことです。これに加えて、管理者権限で実行できるものと、一般ユーザーで実行できるものがあります。私は一般ユーザーのオプションを好みます。つまり、構成はシステムの現在のユーザーにのみ影響します。
この例では、ユーザー名はでありyourself
、コマンドラインを開始するたびにcmd
これを実行します。管理者権限なし。
変数とディレクトリの構成
TEXMFHOME
コマンドラインで実行すると、次の構成cmd
が得られます。
C:\Users\yourself>kpsewhich -var-value=TEXMFHOME
C:/Users/yourself/texmf
しかし、実際にはtexmf
ディレクトリは存在しないので、TDS
構造に従って作成する必要があります。この場合、パス区切り文字に注意しながら作成します\
。
C:\Users\yourself>mkdir texmf\tex\latex
- 設定
TEXMFCNF
コマンド ラインを開きcmd
、次の行を実行します。
C:\Users\yourself>kpsewhich -all texmf.cnf
c:/texlive/2019/texmf.cnf
c:/texlive/2019/texmf-dist/web2c/texmf.cnf
出力は、変数がユーザーに対して設定されていないことを示しています。次のように設定します。
C:\Users\yourself>setx TEXMFCNF C:/Users/yourself/texmf;
CORRECTO: se guardó el valor especificado.
私たちは外に出て、戻って走ります。
C:\Users\yourself>reg query HKEY_CURRENT_USER\Environment
HKEY_CURRENT_USER\Environment
Path REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Microsoft\WindowsApps;
TEMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
TMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
OneDrive REG_EXPAND_SZ C:\Users\yourself\OneDrive
TEXMFCNF REG_SZ C:/Users/yourself/texmf;
auxtrees
この変数の設定は完了です。この変数は、例のコマンドと組み合わせて使用されます。
TEXINPUTS
ディレクトリセクションまたはイメージがあるが、それらはローカルでのみ使用可能でありD:/transcripts
、テストに使用したいとします。この場合、変数を使用するのが最適ですTEXINPUTS
が、これは、構成を永続的 (常に使用可能) にするか、一時的 (現在のコンソールでのみ使用可能) にするかによって異なります。
a. 一時構成 コマンドラインを開きcmd
、次のコマンドを実行します。
C:\Users\yourself>set TEXINPUTS=.;D:/transcripts//;
これはコマンドラインを閉じるまで機能します。つまり、これを実行する必要があります。毎回コマンドラインを閉じた後。
b. 永続的な構成 コマンドラインを開きcmd
、次のコマンドを実行します。
C:\Users\yourself>setx TEXINPUTS .;D:/transcripts//;
コマンドラインを閉じます。このようにしてTEXINPUTS
、環境変数そして今、それが浸透しつつあります。
TEXINPUTS
環境変数から確認する必要がある場合は、次を使用します。
C:\Users\yourself>reg query HKEY_CURRENT_USER\Environment
TEXINPUTS
環境変数から削除する必要がある場合は、次を使用します。
C:\Users\yourself>reg delete HKEY_CURRENT_USER\Environment /v TEXINPUTS /f
あるいは、グラフィカルモードで調整して、環境変数。
完全な使用例auxtrees
これは、私の仕事で同僚のグループと使用している構成の一部です。 でホストされているプロジェクトgithub
(形式でも配布.zip
) を使用し、いくつかのパッケージとカスタム クラスを使用して、Windows に関連する部分を転記します (母国語はスペイン語なので、ご理解いただければ幸いです)。TDS
この例のフォルダーは にありD:/ltxcole/stycole/
、プロジェクトの構造は次のとおりです。
D:\ltxcole>tree
Listado de rutas de carpetas para el volumen driveD
El número de serie del volumen es FACD-A6DF
D:.
├───octavo
│ ├───diagnostico
│ ├───guias
│ ├───pruebas
│ ├───test
│ └───trabajos
├───produccion
├───septimo
│ ├───diagnostico
│ ├───guias
│ ├───pruebas
│ └───test
├───sintesis
└───stycole
└───tex
└───latex
鍵となるのは、stycole
次のTDS
構造です。
└───stycole
└───tex
└───latex
colegio-new2019.sty
keyanswer.sty
logoaurora.jpg
tkz-custom.sty
Windows 構成に関する TeXLive のドキュメントはあまり「説明的」ではありませんが、フォーラムには有益な情報があります。 を使用すると、変数を使用したり、すべてを にロードしたりして、auxtrees
システム全体に影響を及ぼすことなく、複数のプロジェクトを維持できます。TEXMFLOCAL
TEXMFHOME
コマンドラインを開いてcmd
次を実行します:
C:\Users\yourself>tlmgr conf auxtrees --conffile C:/Users/yourself/texmf/texmf.cnf show
tlmgr.pl: no auxiliary texmf trees defined.
出力には何も設定されていないことが示されています。ここで、次のコマンドを実行します。
C:\Users\yourself>tlmgr conf auxtrees --conffile C:/Users/yourself/texmf/texmf.cnf add D:/ltxcole/stycole/
すべてが正しいことを確認するには、次を実行します。
C:\Users\yourself>tlmgr conf auxtrees --conffile C:/Users/yourself/texmf/texmf.cnf show
List of auxiliary texmf trees:
D:/ltxcole/stycole/
これでプロジェクトの設定が完了し、配置されたファイルはD:/ltxcole/stycole/tex/latex/
すべてのファイルで使用できるようになります。ファイルにはC: Users\yourself\texmf.cnf
次の行が含まれています。
TEXMFAUXTREES = D:/ltxcole/stycole/,
構造を尊重する限り、必要な数のプロジェクトを追加できますTDS
。
もちろん、自分自身でテストをしたいだけなら、を使用する方が簡単ですTEXMFHOME
が、使用の利点auxtrees+git
は、クロスプラットフォーム構成脚本README
または、共同プロジェクトのための関連する指示を記載した シンプルなもの。