Ich suche nach einem Befehl, den ich in einem Terminal verwenden kann, um die folgenden Fakten zu erfahren.
- Ist eine LaTeX-Distribution installiert?
- Was ist der Pfad, in dem lokale Klassen oder Pakete abgelegt werden? Auf meinem Mac weiß ich, dass es so ist
'/usr/local/texlive/texmf-local/tex/latex'
.
Der Befehl wird von einem Python-Skript verwendet, um die Installation meiner persönlichen kleinen Klassen oder Pakete zu automatisieren.
Die in den folgenden Kommentaren angegebenen Lösungen funktionieren gut auf dem Mac, und ich denke, dass dies auch unter Linux funktioniert.aber ich weiß nicht, wie das unter Windows geht...
Antwort1
Um den richtigen Ort für eine lokale Installation zu finden, tun wir dies in den make.bat
Dateien für LaTeX3. Dort haben wir
if not defined TEXMFHOME (
for /f "delims=" %%I in ('kpsewhich --var-value=TEXMFHOME') do @set TEXMFHOME=%%I
if [%TEXMFHOME%] == [] (
set TEXMFHOME=%USERPROFILE%\texmf
)
Das bedeutet, dass die Variable TEXMFHOME
verwendet wird, wenn sie vorhanden ist. Andernfalls versuchen wir, kpsewhich
einen Wert abzurufen. Wenn dieser nichts zurückgibt, greifen wir auf den Standardspeicherort zurück.
Um „ein Programm“ zu finden, verwende ich ein anderes Stück Batchdatei-Programmierung, das ich woanders gefunden habe. Hier ist das Beispiel, um Perl zu finden, aber der gleiche Ansatz würde auch für die Suche nach pdfTeX gelten.
: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
Antwort2
Ich hoffe, ich habe die Frage nicht missverstanden.
pdftex --version
Unter Windows würde ich es einfach mit oder pdflatex --version
in der Kommandozeile versuchen . Wenn eine (korrekte) Version von TeX installiert ist, bekommt man den Namen der Distribution und die Version angezeigt.
Sie können auch verwenden path
, um zu sehen, ob ein Verzeichnis für die Binärdateien von TeX (MiKTex oder TeXLive) vorhanden ist.
kpsewhich
läuft unter Windows, hat aber andere Parameter als die Unix-Version (siehe Kommentare von @Joseph Wright und @Alan Munn).
Antwort3
Wenn Sie nur die Version von LaTex, pdfTex oder Paketen möchten, können Sie die Protokolldatei in jedem Projekt überprüfen, das Sie auf dem System kompiliert haben, und dort finden Sie sie. Dort können Sie auch den Pfad der verschiedenen Pakete sehen und von dort aus den Pfad Ihrer ausführbaren TeX-Datei ableiten.