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}