Seite 1 von 1

Seitennummerierung als Einfügeseite

Verfasst: Di 12. Jan 2010, 12:58
von fmichel
Hallo Forum,
ich ahbe eine Statik abgegeben, diese hat ca. 250 Seiten und die Nummerrierung wurde von 1 bis 250 gesetzt. Jetzt muss ich an einer Stelle z.B. Seite 153 noch 5 Seiten einfügen. Diese würden bei einer Nummerierung von Hand mit 153.1 ..... 153.5 eingefügt (Einfügeseite) und es würde bei der alten Seite 154 weitergehen. Wie kann ich dies in LaTex umsetzen und wird dieses auch im INhaltsverzeichnis ausgegeben.

Verfasst: Di 12. Jan 2010, 16:25
von Schlauberger
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.

Das verstehe ich nicht

Verfasst: Mi 13. Jan 2010, 11:01
von fmichel
Hallo Schlauberger ;-),
vielen Dank für die Antwort, jetzt bin ich nur ein Einsteiger in die ganze Materie und bin mit dem Code etwas überfordert.
Noch einmal für´s Verständnis, ich habe z.B. 250 Seiten und kann an dieser Ursprungsnummereirung nichts mehr ändern, da das Dokument im Umlauf ist. Alle Änderungen bzgl. neuer oder Austauschseiten erfolgen über eingefügte Seiten z.B. 153.1 bis 153.15 da die Seite 154 schon vergeben ist und ich nicht die Ausgangsnummererieung ändern darf!!
Wenn ich jetzt etwas mache kann dieses nur über die zusätzliche Nummerierung gehen bzw. bei Austausch über 153.A, 154.A usw..
Was die Organisation der SEiten betrifft, es sind einseitig bedruckte Seiten (wie in einem Leitzordner) ohne Rückseite und die Nummerierung bzgl. der geraden und ungeraden SEitenzahlen ist auch egal.
Vielleicht habe ich doch noch ein Chance auf einen für einen Laien handhabereren Code. Ich gluabe nicht das ich der erste mit diesen Problemen bin.

Verfasst: Mi 13. Jan 2010, 15:31
von Neunmalklug
Was ist denn konkret Dein Problem mit dem bezeigten Beispiel?

Du musst doch nur alles von \makeatletter bis \makeatother (inklusive dieser beiden Zeilen) in die Präambel Deines Dokuments (also vor \begin{document}) kopieren und kannst dann wie gezeigt die dadurch neu definierte Umgebung subpage für die eingefügten Seiten verwenden. Komfortabler geht es kaum. Soweit ich sehe, kann man nur keine subpage-Umgebungen ineinander schachteln. Man kann aber durchaus mehrere davon in einem Dokument verwenden.

Dass Schlaubergers Code auch bei doppelseitigen Dokumenten etwas vernünftiges produziert, sollte nicht weiter stören, wenn Du einseitige Dokumente verwendest. Der Code erkennt ja selbst, ob das Dokument ein- oder doppelseitig ist, wie man leicht merkt, wenn man es einmal ausprobiert, denn sein Beispiel ist ohne Änderung auch nur einseitig.

Dass Schlauberger ein vollständiges Dokument gebaut hat, das zeigt, wie man den Code anwendet, war doch nur eine freundliche Zugabe. Oder funktioniert das bei Dir nicht?

Seitennummerierung als Einfügeseite

Verfasst: Mi 13. Jan 2010, 16:25
von fmichel
Hallo Neunmalklug und Schlauberger,
entschuldigung, entschuldigung :oops: aber mich hat der Code verwirrt, ich habe es inzwischen einmal in mein Projekt kopiert und es macht genau das was ich will. Ich habe aber versucht das zu verstehen und vielleicht sollte ich es einfach nur nutzen, weil das funktioniert sauber inkl. Ausgabe der Seiten im Inhaltsverzeichnis und im Adobe über 153.1 usw. mit Kapiteln usw.
Also noch einmal vielen Dank und Entschuldigung, wenn ich mal 5 Jahre mit LaTex gearbeitet habe, werde ich wahrscheinlich nicht mehr so kopflos reagieren