Seitennummerierung als Einfügeseite

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


fmichel
Forum-Anfänger
Forum-Anfänger
Beiträge: 42
Registriert: Mo 16. Nov 2009, 10:05
Wohnort: Höxter

Seitennummerierung als Einfügeseite

Beitrag 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.

Schlauberger

Beitrag 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.

fmichel
Forum-Anfänger
Forum-Anfänger
Beiträge: 42
Registriert: Mo 16. Nov 2009, 10:05
Wohnort: Höxter

Das verstehe ich nicht

Beitrag 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.

Neunmalklug

Beitrag 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?

fmichel
Forum-Anfänger
Forum-Anfänger
Beiträge: 42
Registriert: Mo 16. Nov 2009, 10:05
Wohnort: Höxter

Seitennummerierung als Einfügeseite

Beitrag 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

Antworten