Erstellen einer Benutzeroberfläche zur Steuerung des Inhalts eines Dokuments

Erstellen einer Benutzeroberfläche zur Steuerung des Inhalts eines Dokuments

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 \toggletrueder 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.texin drei Dateien aufteilen:

InitMain.texenthält die \documentcalss, einige wichtige Pakete für die zweite Datei und alle \newtoggles, die Sie benötigen.

\documentclass{article}
\usepackage{etoolbox}

\newtoggle{TheFirstDocument}
\newtoggle{TheSecondDocument}

Die zweite Datei ( Main_A.tex) \inputs InitMain.texenthält dann alle \toggletrues, die Sie benötigen, und schließlich \inputsMain.tex

\input{InitMain}
\toggletrue{TheFirstDocument}
%\toggletrue{TheSecondDocument}
\input{Main}

Und Main.texkann zusätzliche \usepackages 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.texum das endgültige Dokument zu erhalten.

Damit müssen die Benutzer nur die kleine Datei bearbeiten Main_A.texund Sie können Dateien Main_B.texusw. Main_C.texmit 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.texdie 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.

verwandte Informationen