LaTeX ディストリビューションに関する情報を取得するための Windows ターミナル コマンド

LaTeX ディストリビューションに関する情報を取得するための Windows ターミナル コマンド

以下の事実を知るために、1 つのターミナルで使用するコマンドを探しています。

  1. インストールされている LaTeX ディストリビューションは 1 つだけですか?
  2. ローカル クラスまたはパッケージを配置するパスは何ですか? 私の Mac では、それが であることがわかっています'/usr/local/texlive/texmf-local/tex/latex'

このコマンドは、個人的な小さなクラスまたはパッケージのインストールを自動化するために、1 つの Python スクリプトによって使用されます。

以下のコメントで示されている解決策はMacではうまく機能し、Linuxでも機能すると思います。しかし、Windowsではどうすればよいか分かりません...

答え1

ローカルインストールの正しい場所を見つけるには、make.batLaTeX3のファイルでこれを行います。

if not defined TEXMFHOME (
  for /f "delims=" %%I in ('kpsewhich --var-value=TEXMFHOME') do @set TEXMFHOME=%%I
  if [%TEXMFHOME%] == [] (
    set TEXMFHOME=%USERPROFILE%\texmf
  )

つまり、変数がTEXMFHOME存在する場合はそれが使用され、存在しない場合はkpsewhich値を取得しようとし、何も返されない場合はデフォルトの場所にフォールバックします。


「あるプログラム」を見つけるために、私は他の場所から集めたバッチファイルプログラミングの別の部分を使用します。ここでは、Perlを見つける例ですが、同じアプローチがpdfTeXを見つける場合にも適用されます。

:perl

  set PATHCOPY=%PATH%

:perl-loop

  if defined PERLEXE goto :end

  for /f "delims=; tokens=1,2*" %%I in ("%PATHCOPY%") do (
    if exist %%I\perl.exe set PERLEXE=perl
    set PATHCOPY=%%J;%%K
  )

  if defined PERLEXE goto :end

  if not "%PATHCOPY%"==";" goto :perl-loop

  echo.
  echo  This procedure requires Perl, but it could not be found.

  exit /b 1

  goto :EOF

答え2

質問を誤解していなければいいのですが。

Windows の場合は、コマンド ラインでpdftex --versionまたは を試してください。TeX の (適切な) バージョンがインストールされている場合は、ディストリビューションの名前とバージョンが表示されます。pdflatex --version

pathTeX (MiKTex または TeXLive) のバイナリ用のディレクトリがあるかどうかを確認するためにも使用できます。

kpsewhichWindows 上で実行されていますが、Unix バージョンとはパラメータが異なります (@Joseph Wright と @Alan Munn のコメントを参照)。

答え3

LaTex、pdfTex、またはパッケージのバージョンだけを知りたい場合は、システムでコンパイルしたプロジェクトのログファイルを確認してください。そこに、さまざまなパッケージのパスが表示され、そこから実行可能なTeXファイルのパスを推測することもできます。

関連情報