Coding-Beispiel
Vorspann
\makeatletter \@ifundefined{standalonetrue}{\newif\ifstandalone}{} \@ifundefined{section}{\standalonetrue}{\standalonefalse} \makeatother \ifstandalone \documentclass{scrartcl} \usepackage{german} \usepackage[ansinew]{inputenc} \usepackage{makeidx}\makeindex \usepackage{hyperref} \begin{document} \fi
\makeatletter
wird benötigt, weil Makros
mit @-genutzt werden, anschliessend wird ein \if
definiert, das benötigt wird, um zu erkennen ob das Dokument
per \input
geladen wurde oder nicht. Dabei wird
implizit geprüft, ob das Kommando \section
schon definiert wurde. Falls nicht, fehlt ein
\documentclass
und das Dokument wird stand alone
übersetzt.
Ist \ifstandalone
wahr, muss ein
Dokumentheader eingefügt werden, der der das
Übersetzen der Datei erlaubt. Hier müssen
sämtliche Pakete geladen werden, benutzte Makros
definiert werden...
Dokumentende
\ifstandalone \bibliographystyle{alpha} \bibliography{Bib} \else \expandafter\endinput \fi \end{document}Ist
\ifstandalone
wahr, kann man Anweisungen
ausführen (im Beispiel ein Literaturverzeichnis
eingebunden).
Ist \ifstandalone
nicht wahr (\else-Zweig)
muss das Dokument beendet werden (\endinput
).
Das \expandafter
sorgt für das korrekte
schliessen des \if
.
\input
geladen, wird die Stelle nie
erreicht (wegen dem \endinput
).
Gesamtbeispiel
\makeatletter \@ifundefined{standalonetrue}{\newif\ifstandalone}{} \@ifundefined{section}{\standalonetrue}{\standalonefalse} \makeatother \ifstandalone \documentclass{scrartcl} \usepackage{german} \usepackage[ansinew]{inputenc} \usepackage{makeidx}\makeindex \usepackage{hyperref} \begin{document} \fi Hier kommt Text. Im übrigen schmeckt Schnitzelmitkartoffelsalat total lecker. %Dokumentende \ifstandalone %Bei direkter Übersetzung sollte gleich noch das Literaturverzeichnis rein. \bibliographystyle{alpha} \bibliography{Bib} \else \expandafter\endinput \fi \end{document}