![Parametrisierte Einbindung von Unterdateien](https://rvso.com/image/286983/Parametrisierte%20Einbindung%20von%20Unterdateien.png)
Ich bereite einen Lebenslauf mit LaTeX vor, hauptsächlich um ihn einfach anpassen zu können. Insbesondere möchte ich durch Ändern einiger Parameter unterschiedliche Ausgaben aus derselben Eingabedatei generieren können.
Eine solche Anforderung ist: Bestimmte Textblöcke müssen entsprechend einem der Eingabeparameter („dev“/„training“/„generic“) ausgewählt werden. Ich kann die für jeden Parameter geeigneten Textblöcke in einer separaten .tex-Datei („dev_summary.tex“, „training_summary.tex“ usw.) haben und \input
sie entsprechend dem Parameter auswählen. Ich habe dies derzeit mit folgendem implementiert:
\newcommand{\whoami}[1]{trainer#1}
und später
\input{\whoami{_summary.tex}}
Jetzt muss ich nur noch die Zeichenfolge „trainer“ in der neuen Befehlszeile ändern, wenn ich den ersten Parameter ändern möchte. Gibt es jedoch eine bessere Möglichkeit, diese Datei unverändert zu lassen und diese Änderung stattdessen als Befehlszeilenargument zu übergeben?
Antwort1
Es gibt mehrere Möglichkeiten, solche Dinge in der Befehlszeile einzustellen. Die einfachste ist vielleicht, die Eingabe leicht zu ändern, sodass dev_summary.tex
Sie stattdessen Unterverzeichnisse/Ordner usw. haben dev
und trainer
danndev/summary.tex
Dann muss Ihre Hauptdatei nur noch
\input{summary}
und es wird das erste summary.tex
in Ihrem Eingabepfad eingeben, also eine Befehlszeile von
TEXINPUTS=dev: pdflatex mainfile
wird eingeben dev/summary.tex
und
TEXINPUTS=trainer: pdflatex mainfile
wird eingebentrainer/summary.tex
(Dies setzt eine Unix-ähnliche Befehlszeile voraus. Unter Windows müssen Sie die Umgebungsvariable möglicherweise mit einem separaten Befehl festlegen, ich bin nicht sicher.)