ich habe einen langen Text, den ich einmal im Standard-Layout benötige und einmal in Normseiten gesetzt.
Dazu habe ich zwei Masterdateien erstellt, einmal mit Vorspann für Standardlayout und einmal mit Vorspann für Normseiten. Beide lasse ich durch pdflatex laufen und habe dann zwei PDFs einmal herkömmlich gesetzt, einmal in Normseiten gesetzt. Bei reinem Fließtext klappt das wunderbar.
Das Problem ist, das einzelne Textabschnitte nicht Fließtext sind und an die Normseite angepasst werden müssen. Den Text in zwei unterschiedlichen Dateien pflegen (zwei mal Korrekturen eingeben etc.) ist aufwändig und fehleranfällig.
Daher möchte ich für die einzelnen Abschnitte, die angepasst werden müssen, in der ein und selben Textdatei je zwei Varianten erstellen, und während des pdflatex-Laufs wählt der Interpreter die jeweils richtige aus und ignoriert die andere.
Mein Lösungsansatz arbeitet mit den Befehlen \iffalse ... \fi. Ich definiere vier Makros:
\stana Anfang des Moduls 1 in der Variante für Standardlayout
\stane Ende des Moduls 1 in der Variante für Standardlayout
\norma Anfang des Moduls 1 in der Variante für Normseite
\norme Ende des Moduls 1 in der Variante für Normseite
In der Textdatei kapitel_01.tex steht:
\stana Textelement 1 in Variante A -- Besonders gestaltetes Textelement, das nur im Standardlayout funktioniert \protect\stane \norma Textelement 1 in Variante B -- Besonders gestaltetes Element, angepasst an das Layout der Normseite \norme Fließtext geht weiter, der von beiden Formaten verarbeitet werden kann. \stana Textelement 2 in Variante A -- Besonders gestaltetes Textelement, das nur im Standardlayout funktioniert \stane \norma Textelement 2 in Variante B -- Besonders gestaltetes Element, angepasst an das Layout der Normseite \norme
In der Masterdatei für das Standard layout definiere ich die Befehle folgendermaßen
\documentclass[12pt]{article} \usepackage[german]{babel} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} % %Makros \def\norma{\iffalse}%Anfang des Moduls in der Variante für Normseite - Text wird ignoriert \def\norme{\fi}%Ende des Moduls in der Variante für Normseite \def\stana{}%Das Makro bleibt leer, die Variante wird vom Interpreter bearbeitet \def\stane{}% \begin{document} \input{kapitel_01.tex} \end{document}
\documentclass[12pt]{article} \usepackage[german]{babel} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[chars=60, lines=30, hyphen=false]{stdpage} %Normseite \usepackage[onehalfspacing]{setspace} %Normseite Zeilenabstand % %Makros \def\norma{}%Das Makro bleibt leer, die Variante wird vom Interpreter bearbeitet \def\norme{}% \def\stana{\iffalse}%Das Modul für die Standardvariante wird unterdrückt. \def\stane{\fi}% \begin{document} \input{kapitel_01.tex} \end{document}
Ich bekomme leider folgende Fehlermeldung:
(./kapitel_01.tex)
! Incomplete \iffalse; all text was ignored after line 3.
<inserted text>
\fi
l.21 \input{kapitel_01.tex}
?
Ich verstehe das so, dass einerseits der \iffalse ankommt, aber \fi auf dem Weg bricht. Klar, \fi ist sehr unspezifisch und reagiert auf alle möglichen \if-Schleifen auf seinem Weg und geht dabei verloren. Ihn im Sinne eines zerbrechlichen Befehls mit \protect zu schützen, hat leider nicht geklappt. Nun bin ich mit meinem Latex-Latein am Ende und hoffe auf den Rat eines wizard.