von Schlauberger » Di 12. Jan 2010, 16:25
Ich verstehe zwar nicht, warum Du nicht einfach die Seiten einfügst und LaTeX dann eine neue Seitennummerierung machen lässt, schließlich ist es gerade eine der Stärken von LaTeX, dass man jederzeit Seiten einfügen kann und die Nummerierung dann automatisch in allen Verzeichnissen und Querverweisen angepasst wird, aber man kann solche Unterseiten schon machen. Bei einseitigem Druck ist das ganz einfach. Problematischer wird es bei doppelseitigem Druck, weil gerade Seiten immer als rechte Seiten und ungerade als linke Seiten einzusortieren sind. Bei den Unterseiten soll das aber offenbar keine Rolle spielen. Danach muss das aber wieder korrekt fortgeführt werden. Also muss man ggf. auch noch eine leere Unterseite einfügen, damit es wieder passt. Ich habe mal so etwas gebastelt:
\documentclass%[twoside]% Zum Vergleich auch mal mit twoside ausprobieren!
{article}
\usepackage[ngerman]{babel}
\usepackage{ifthen,blindtext}% Nur zu Demonstationszwecken
\makeatletter
\newcounter{savepage}
\newenvironment{subpage}{%
\clearpage
\addtocounter{page}{-1}%
\setcounter{savepage}{\value{page}}%
\edef\savedthepage{\thepage}%
\show\savedthepage
\def\thepage{\savedthepage.\arabic{page}}%
\setcounter{page}{1}%
\if@twoside\ifodd\value{savepage}
% die erste eingefügte Seite muss eine gerade Seite sein!
\setcounter{page}{0}%
\def\thepage{\savedthepage.\@arabic{\numexpr\value{page}+1\relax}}%
\fi\fi
}{%
\clearpage
% Wenn die Startseite ungerade war, muss es diese Seite auch sein.
% Wenn die Startseite gerade war, muss es diese Seite auch sein.
\if@twoside\ifodd\value{savepage}
\ifodd\value{page}\null\thispagestyle{empty}\clearpage\fi
\else
\ifodd\value{page}\else\null\thispagestyle{empty}\clearpage\fi
\fi\fi
\setcounter{page}{\value{savepage}}%
\stepcounter{page}%
}
\makeatother
\begin{document}
\whiledo{\value{page}<153}{\blindtext\par}
\blindtext\par\blindtext\par\blindtext\par
\begin{subpage}
\blindtext[20]
\end{subpage}
\whiledo{\value{page}<200}{\blindtext\par}
\end{document}
Die Tricks dabei sind der \numexpr-Ausdruck, damit ggf. ungerade Seiten mit gerader Seitenzahl ausgegeben werden und umgekehrt, und die Logik, um die Notwendigkeit dafür und für die genannte Leerseite zu erkennen. Außerdem wird tatsächlich nicht ein Unterseitenzähler verwendet, sondern der Hauptseitenzähler zum Unterseitenzähler, weil LaTeX ja nicht weiß, dass es einen anderen Seitenzähler hochzählen soll.
Ich verstehe zwar nicht, warum Du nicht einfach die Seiten einfügst und LaTeX dann eine neue Seitennummerierung machen lässt, schließlich ist es gerade eine der Stärken von LaTeX, dass man jederzeit Seiten einfügen kann und die Nummerierung dann automatisch in allen Verzeichnissen und Querverweisen angepasst wird, aber man kann solche Unterseiten schon machen. Bei einseitigem Druck ist das ganz einfach. Problematischer wird es bei doppelseitigem Druck, weil gerade Seiten immer als rechte Seiten und ungerade als linke Seiten einzusortieren sind. Bei den Unterseiten soll das aber offenbar keine Rolle spielen. Danach muss das aber wieder korrekt fortgeführt werden. Also muss man ggf. auch noch eine leere Unterseite einfügen, damit es wieder passt. Ich habe mal so etwas gebastelt:
[code]\documentclass%[twoside]% Zum Vergleich auch mal mit twoside ausprobieren!
{article}
\usepackage[ngerman]{babel}
\usepackage{ifthen,blindtext}% Nur zu Demonstationszwecken
\makeatletter
\newcounter{savepage}
\newenvironment{subpage}{%
\clearpage
\addtocounter{page}{-1}%
\setcounter{savepage}{\value{page}}%
\edef\savedthepage{\thepage}%
\show\savedthepage
\def\thepage{\savedthepage.\arabic{page}}%
\setcounter{page}{1}%
\if@twoside\ifodd\value{savepage}
% die erste eingefügte Seite muss eine gerade Seite sein!
\setcounter{page}{0}%
\def\thepage{\savedthepage.\@arabic{\numexpr\value{page}+1\relax}}%
\fi\fi
}{%
\clearpage
% Wenn die Startseite ungerade war, muss es diese Seite auch sein.
% Wenn die Startseite gerade war, muss es diese Seite auch sein.
\if@twoside\ifodd\value{savepage}
\ifodd\value{page}\null\thispagestyle{empty}\clearpage\fi
\else
\ifodd\value{page}\else\null\thispagestyle{empty}\clearpage\fi
\fi\fi
\setcounter{page}{\value{savepage}}%
\stepcounter{page}%
}
\makeatother
\begin{document}
\whiledo{\value{page}<153}{\blindtext\par}
\blindtext\par\blindtext\par\blindtext\par
\begin{subpage}
\blindtext[20]
\end{subpage}
\whiledo{\value{page}<200}{\blindtext\par}
\end{document}[/code]
Die Tricks dabei sind der \numexpr-Ausdruck, damit ggf. ungerade Seiten mit gerader Seitenzahl ausgegeben werden und umgekehrt, und die Logik, um die Notwendigkeit dafür und für die genannte Leerseite zu erkennen. Außerdem wird tatsächlich nicht ein Unterseitenzähler verwendet, sondern der Hauptseitenzähler zum Unterseitenzähler, weil LaTeX ja nicht weiß, dass es einen anderen Seitenzähler hochzählen soll.