Команды Windows-Terminal для получения информации о дистрибутиве LaTeX

Команды Windows-Terminal для получения информации о дистрибутиве LaTeX

Я ищу команду для использования в одном терминале, чтобы узнать следующие факты.

  1. Установлен ли какой-либо дистрибутив LaTeX?
  2. Какой путь, куда помещать локальные классы или пакеты? В моем Mac я знаю, что это '/usr/local/texlive/texmf-local/tex/latex'.

Команда будет использоваться одним скриптом Python для автоматизации установки моих личных небольших классов или пакетов.

Решения, приведенные в следующих комментариях, хорошо работают на Mac, и я думаю, что они также работают и на Linux.но я не знаю как это сделать под Windows...

решение1

Что касается поиска правильного места для локальной установки, мы делаем это в make.batфайлах для LaTeX3. Там у нас есть

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получить значение, и если это ничего не возвращает, возвращаемся к расположению по умолчанию.


Для поиска 'some program' я использую другой кусок пакетного программирования, взятый из другого места. Здесь пример заключается в поиске 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

Связанный контент