Windows 终端命令可获取有关 LaTeX 分发的信息

Windows 终端命令可获取有关 LaTeX 分发的信息

我正在寻找在一个终端中使用的命令以便了解以下事实。

  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 文件的路径

相关内容