Ich habe die folgende Aufgabe zu erledigen. Da ich mit Latex nicht gut bin, frage ich mich, welche Möglichkeiten es bietet.
Ich möchte beim Entwickeln eines Dokuments Parameter zuweisen. Beispiel:
file1.tex
\chapter chapter_name1 [arg1=true]or [arg1]
file2.tex
\chapter chapter_name2 [arg1][arg2]
\include<file3> (here it should go to file3.tex and again checks there relevant argument in order to include correct chapter/section)
file3.tex
\section chapter_name1 [arg2][arg3]
\subsection sunsection_name [arg4]
myfile.tex
Es verfügt über einige Schleifen und einen Parser zum Aufteilen der Eingabeparameter, um relevante Dateien einzuschließen.
Beim Kompilieren im Terminal muss ich (durch Übergabe von Argumenten) entscheiden, welches Kapitel in myfile.pdf
die Datei eingefügt wird. Beispiel:
pdflatex "\def \parameter {arg2 arg3} input{myfile.tex}"
Dann myfile.pdf
sollte
chapter_name2
section_name1
xargs
Ich habe von Paketen gehört xkeyval
, aber ich verstehe sie kaum. Ich bin mir immer noch nicht sicher, wie sie mir helfen werden. Ist meine Aufgabe möglich? Wenn ja, schlagen Sie mir bitte vor, was ich tun soll?
Um Verwirrungen zu vermeiden, habe ich die Frage geändert.
Ich habe eine große Menge an Inhalten für den Benutzer. Ich möchte verschiedenen Benutzern unterschiedliche Inhalte zeigen. Dazu möchte ich unterschiedliche Ausgaben erzeugen, indem ich einige Inhalte (z. B. Kapitel, Abschnitte, Unterabschnitte) des Dokuments zeige und nicht zeige.
Meine Idee ist: Während ich ein Kapitel/einen Abschnitt schreibe, gebe ich an, welchem Benutzertyp es angezeigt werden kann, indem ich das Argument auf „true“ oder „false“ setze.
wenn user1==true, dann sollte es in user1.pdf vorhanden sein
Zum Beispiel
Makro ist (Beispiel): \Modifiedchapter [bool arg1][bool arg2][bool arg3]
\Modifiedchapter <chapterName1> [user1==true][user2==false][user3==false]
\Modifiedchapter <chapterName2> [user1==true][user2==true][user3==false]
\Modifiedsection <sectionName1> [user1==true][user2==true][user3==true]
Wenn ich user1
und user3
als 'True' übergebe, dann sollte meine Ausgabe enthalten
Befehl (Beispiel): "\def\arg1=true, arg2=false, arg1=true \input{myfile}"
chapterName1
sectionName1
Wie kann ich das machen?
Antwort1
Das ist eine gute Ideenichtum die Syntax von Standardbefehlen wie \chapter
und zu ändern \section
. Obwohl LaTeX Ihnen erlaubt, jeden Teil des Systems zu verfeinern, führt die Ausnutzung dieser Flexibilität dazu, dass Ihre Dokumentfragmente in jedem anderen Kontext schwer zu verarbeiten sind.
Sie verwenden bereits \include
das zur Unterstützung der teilweisen Kompilierung konzipierte Programm, das Ihr tatsächlicher Anwendungsfall zu sein scheint.
Bei der Verwendung \include
sollten Sienichtverwenden Sie die Dateierweiterung, sollten Sie einfach verwenden
\include{file3}
Andernfalls findet LaTeX die entsprechenden aux
Dateien nicht.
Das Hinzufügen \includeonly{file3}
(das über eine Befehlszeile ähnlich Ihrem Beispiel erfolgen oder einfach zu Ihrer Hauptdatei hinzugefügt werden kann) führt dazu, file3
dass es eingeschlossen wird und alle anderen Dateien, auf die verwiesen wird, \include
übersprungen werden.