用於取得有關 LaTeX 分發資訊的 Windows 終端機命令

用於取得有關 LaTeX 分發資訊的 Windows 終端機命令

我正在尋找在一個終端機中使用的命令,以便了解以下事實。

  1. 是否安裝了一種 LaTeX 發行版?
  2. 放置本地類別或套件的路徑是什麼?在我的 Mac 上,我知道它是'/usr/local/texlive/texmf-local/tex/latex'.

該命令將由一個 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或。pdflatex --version如果有(正確的)安裝的 TeX 版本,您將獲得發行版的名稱和版本。

您也可以用來path查看是否有 TeX 二進位檔案(MiKTex 或 TeXLive)的目錄。

kpsewhich在Windows上運行,但與unix版本有不同的參數(請參閱@Joseph Wright和@Alan Munn的評論)。

答案3

如果您只想要 LaTex、pdfTex 或軟體包的版本,您可以檢查您在系統上編譯的任何專案中的日誌文件,它就在那裡。在那裡您還可以看到不同套件的路徑,並從那裡推斷出可執行 TeX 檔案的路徑

相關內容