![Erstellen einer Benutzeroberfläche zur Steuerung des Inhalts eines Dokuments](https://rvso.com/image/353028/Erstellen%20einer%20Benutzeroberfl%C3%A4che%20zur%20Steuerung%20des%20Inhalts%20eines%20Dokuments.png)
Ich suche nach der einfachsten Möglichkeit, jemandem (der sich beispielsweise nicht so gut mit LaTeX auskennt) die Kontrolle über den Inhalt eines bestimmten Dokuments zu ermöglichen. Um mehr Kontext zu geben, möchte ich eine Sammlung von „Hauptdokumenten“ mit demselben Format erstellen, die fast ausschließlich aus verschiedenen Kombinationen von etwa 30 „kleineren“ Dokumenten besteht (jedes davon ist im Wesentlichen ein Abschnitt oder Unterabschnitt innerhalb der „Hauptdokumente“). Ein wichtiger Hinweis ist, dass die „kleineren“ Dokumente häufig geringfügigen Aktualisierungen unterzogen werden, sodass sie aus separaten Dateien in die „Hauptdokumente“ aufgerufen werden (um zu vermeiden, dass bei kleinen Änderungen viele „Hauptdokumente“ manuell geändert werden müssen).
Was ich bisher erreicht habe, ist ein allgemeines „Haupt“-Dokument, das in der Präambel Schalter enthält, die steuern, welche „kleineren“ Dokumente im „Haupt“-Dokument erscheinen. An diesem Punkt funktioniert alles gut, wobei der einzige Schritt für die Person, die die „Haupt“-Dokumente erstellt, darin besteht, „ %
“ vor \toggletrue
der Präambel zu kommentieren, wenn sie dieses bestimmte „kleinere“ Dokument nicht im „Haupt“-Dokument haben möchte, das sie erstellt (zum Beispiel würde „TheFirstDocument“ unten nicht im „Haupt“-Dokument erscheinen). Außerdem soll das, was ich unten geschrieben habe, natürlich nicht kompiliert werden (fehlende Dateien und Pakete), sondern nur ein allgemeines Beispiel zeigen.
Meine Frage ist, ob es eine Möglichkeit gibt, eine sehr benutzerfreundliche Benutzeroberfläche zu erstellen, bei der die Person, die die „Hauptdokumente“ erstellt, einfach die Kästchen ankreuzen kann, die „kleineren“ Dokumente enthalten sollen, die sie einfügen möchte. Wenn dies mit LaTeX selbst nicht möglich ist, hat jemand Vorschläge, wie man das von hier aus am einfachsten erreichen kann?
\documentclass{article}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% Select Desired Documents %%%
\newtoggle{TheFirstDocument}
%\toggletrue{TheFirstDocument}
\newtoggle{TheSecondDocument}
\toggletrue{TheSecondDocument}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\iftoggle{TheFirstDocument}
{ExecuteMetaData[TheFirstDocument.tex]{tag}
}
{%nothing
}
\iftoggle{TheSecondDocument}
{ExecuteMetaData[TheSecondDocument.tex]{tag}
}
{%nothing
}
\end{document}
Antwort1
Die LaTeX-Hälfte einer Antwort:
Zunächst können Sie es Main.tex
in drei Dateien aufteilen:
InitMain.tex
enthält die \documentcalss
, einige wichtige Pakete für die zweite Datei und alle \newtoggle
s, die Sie benötigen.
\documentclass{article}
\usepackage{etoolbox}
\newtoggle{TheFirstDocument}
\newtoggle{TheSecondDocument}
Die zweite Datei ( Main_A.tex
) \input
s InitMain.tex
enthält dann alle \toggletrue
s, die Sie benötigen, und schließlich \input
sMain.tex
\input{InitMain}
\toggletrue{TheFirstDocument}
%\toggletrue{TheSecondDocument}
\input{Main}
Und Main.tex
kann zusätzliche \usepackage
s und andere Dinge enthalten, die Sie benötigen. Und natürlich können Sie hier bedingt die kleinen Dokumente eingeben.
% additional preamble stuff
\begin{document}
\iftoggle{TheFirstDocument}
{\input{TheFirstDocument.tex}
}
{%nothing
}
\iftoggle{TheSecondDocument}
{\input{TheSecondDocument.tex}
}
{%nothing
}
\end{document}
Anschließend müssen Sie nur noch kompilieren, Main_A.tex
um das endgültige Dokument zu erhalten.
Damit müssen die Benutzer nur die kleine Datei bearbeiten Main_A.tex
und Sie können Dateien Main_B.tex
usw. Main_C.tex
mit unterschiedlichen Einstellungen haben.
Die andere Hälfte der Antwort hängt vom Betriebssystem, den verfügbaren Skriptsprachen, Fähigkeiten und mehr ab. Sie könnten ein Skript schreiben, das Main_A.tex
die Kontrollkästchen liest, initialisiert und schließlich eine neue Version mit hinzugefügten oder entfernten %
Zeichen schreibt. Beispiel: Unter Windows könnte jscript verwendet werden, um eine GUI wie die von Ihnen gezeigte zu erstellen. Dort könnten Sie sogar eine Schaltfläche hinzufügen, die beispielsweise latexmk aufruft (nie verwendet), um das endgültige Dokument direkt aus dem Dialog zu erstellen, vorausgesetzt, auf dem Computer ist eine LaTeX-Installation vorhanden.