Mit dem Paket currfile
ist das recht einfach möglich, vorausgesetzt man beachtet die Anleitung. In Abschnitt 4 ist erklärt, dass man beim Laden des Pakets Option abspath
angeben muss, wenn man den absoluten Pfad der Hauptdatei (oder einer anderen Datei) erhalten will. Mit dem Beispiel test.tex
:
\documentclass{article}
\usepackage{blindtext}
\usepackage[automark]{scrlayer-scrpage}
\usepackage[abspath]{currfile}
\ifoot*{\texttt{\currfileabspath}}
\begin{document}
\blinddocument
\end{document}
ist es jedoch nicht getan. Zusätzlich muss pdflatex
, lualatex
oder xelatex
noch mit Option -recorder
aufgerufen werden (was der Online-Compiler offenbar tut, weshalb das Beispiel sogar hier im Online-Compiler funktioniert und bei jedem Aufruf einen anderen Pfad im erzeugten PDF anzeigt). Auf der Konsole/Eingabeaufforderung würde der Aufruf für obige Datei test.tex
also beispielsweise:
pdflatex -recorder test.tex
pdflatex -recorder test.tex
lauten. Beim ersten Aufruf wird dann von pdflatex
, lualatex
oder xelatex
eine Datei test.fls
erzeugt. In dieser finden sich für jede Datei vollständige Pfadangaben. In meinem Beispiel beginnt dieses Datei bei mir zuhause mit:
PWD /home/ijon/currfiletest
INPUT /usr/local/texlive/2021/texmf.cnf
INPUT /usr/local/texlive/2021/texmf-dist/web2c/texmf.cnf
INPUT /usr/local/texlive/2021/texmf-var/web2c/pdftex/pdflatex.fmt
INPUT test.tex
OUTPUT test.log
Das Paket currfile-abspath
, das von currfile
mit Option abspath
geladen wird, erkennt daraus, dass das aktuelle Arbeitsverzeichnis /home/ijon/currfiletest
ist und die (Haupt-)Datei test.tex
aus eben diesem Verzeichnis geladen wird.
Wird Parameter -recorder
beim ersten Aufruf nicht gesetzt bzw. existiert noch keine *.fls
-Datei (im Beispiel also test.fls
), so erhält man übrigens die Warnung:
Package currfile-abspath Warning: The required recorder file (.fls) was not found.
(currfile-abspath) Please compile with the '-recorder' option.
(currfile-abspath) Note that MikTeX requires two compiler runs.
(currfile-abspath) Occurred on input line 292.
Wie man den Editor so konfiguriert, dass beim Aufruf zusätzlich die Option angegeben wird, hängt vom Editor ab. Der aufmerksame Leser wird aber bereits erkannt haben, dass wenn currfile-abspath
einfach nur die Datei test.fls
liest, es genügt, wenn pdflatex
, lualatex
oder xelatex
einmalig mit dieser Option aufgerufen wird. Diesen einen Aufruf kann man auch aus der Konsole bzw. der Eingabeaufforderung erledigen. Natürlich muss man ihn wiederholen, wenn sich der Pfad oder der Dateiname ändert oder man eine Datei hinzufügt, deren Pfad man ebenfalls beispielsweise per \getabspath
ermitteln will.
Bei korrektem Aufruf, erhalte ich übrigens dieses Ergebnis:
Will man bei einem Dokument, das aus mehreren Dateien besteht, nicht den Pfad der aktuellen Datei, sondern den Pfad der Hauptdatei im Fuß, so kann man darauf übrigens über \getabspath{\themainfile}\theabspath
zugreifen, also beispielsweise in obigem Beispiel:
\ifoot*{\getabspath{\themainfile}\texttt{\theabspath}}
verwenden. Näheres ist der Anleitung des Pakets zu entnehmen.
beantwortet
08 Okt '21, 09:03
gast3
(ausgesetzt)
Akzeptiert-Rate:
53%
Mit currfile und Lektüre der currfile-Doku schaffe ich es nicht. Das Dokument wird richtig gesetzt, der Pfad des Dokuments darin aber nicht. Meldung : Package currfile-abspath Warning: The required recorder file (.fls) was not fou nd. (currfile-abspath) Please compile with the '-recorder' option. (currfile-abspath) Note that MikTeX requires two compiler runs. (currfile-abspath) Occurred on input line 292. Was sagt der Hinweis auf compile mit -recorder, an welcher Stelle muss das geschehen? Arno
Da kein Minimalbeispiel vorliegt, mit dem @arnozorro zur im Kommentar benannten Fehlermelung gekommen ist, und – auf Basis der bisherigen Infos (Kompilieren via bestimmten Editor oder Konsole/Eingabeaufforderung ...?) – m.E. nicht mit einer über die Kommentare hinausgehenden Antwort zu rechnen ist (die Rückfrage von @Ijon Tichy wurde auch bisher nicht beantwortet), schlage ich das Schließen der Frage vor, bis weitere Infos vorliegen.