Sie sind hier

Vakatseite vor Kapitel

Ich nutze \includeonly{} um die Kapitel eines Scriptes in getrennte Dateien zu splitten. Wenn \cleardoublepage eine Vakatseite einfügt erscheint diese nun als erste Seite eines Dokuments und schiebt die erste Kapitelseite auf eine linke Seite. Werden die Kapitel gedruckt, so lassen sie sich nicht sinnvoll zusammenfügen -- es ergeben sich zwei aufeinander folgende leere Seiten. Besser wäre es die Vakatseite ans Ende des vorherigen Kapitels zu stellen.

% MASTER.tex
\documentclass{scrbook}
\usepackage{lipsum}
  \includeonly{ZWEI}
\begin{document}
  \include{EINS}
  \include{ZWEI}
\end{document}
% EINS.tex
\chapter{Eins}
\lipsum[1]
% ZWEI.tex
\chapter{Zwei}
\lipsum[3-5]

[Admin-Edit:]

  1. Anrisstext sinnvoll abgetrennt.

forum: 
Bild von Markus Kohm

Ich glaube, Du verwendest \includeonly in nicht vorgesehener Weise. Du musst erst genügend LaTeX-Läufe ohne \includeonly durchführen. Wenn Du dann einen Lauf mit \includeonly durchführst, bekommst Du zwar wieder ein Dokument, bei dem die physikalisch erste Seite leer ist, das ist aber eine linke Seite. Die erste Kapitelseite ist in Deinem Fall dann eine rechte Seite mit Seitenzahl 3. Das ist korrekt.

Da \includeonly auch nicht auf Kapitel, sondern auf Dateien arbeitet, ist das Vorgehen gar nicht zu ändern. Du könntest allenfalls am Ende der Dateien ein \cleardoublepage einfügen, wenn Du die Leerseite am Ende haben willst.

Im übrigens ist das Verhalte von \includeonly eine Sache des LaTeX-Kerns. Mit KOMA-Script hat das nichts zu tun. Ich glaube auch nicht, dass es dazu gedacht ist, Einzeldokumente aus einem großen Dokument zu erzeugen. Vielmehr ist es ein Überbleibsel aus der Zeit, als ein LaTeX-Lauf über einige hundert Seiten noch mehrere zehn Minuten dauerte.

Es ist klar, dass LaTeX erst die Hilfs-Dateien erzeugen muss, damit die Seitenzahlen, Referenzen,.. stimmen. Es ist auch richtig, dass das Kapitelseite auf Seite 3 beginnt und das Layout einer rechten Seite entspricht. Allerdings sorgt die leere Seite davor dafür, dass beim Druck rechts und links vertauscht werden (vor der Titelseite ist schließlich auch keine Leerseite).

Meine Vorstellung ist, dass \cleardoublepage dafür sorgt, dass jedes Kapitel aus einer geraden Anzahl von Seiten besteht -- dafür ist jedoch das Kapitel selbt und nicht das nachfolgende verantwortlich.

Gibt es einen Alternativvorschlag das Script zu splitten (ohne auf \includeonly zurückzureifen) und dannoch die Referenzen zu erhalten? Das Ganze soll dynamisch laufen, so dass ein nachträgliches Zerteilen des PDFs keine Alternative ist.

Bild von Markus Kohm

Ob eine Seite als erstes oder letztes an den Drucker geschickt wird, ist nicht maßgeblich. Maßgeblich ist die Nummer der jeweiligen Seite. Dass richtig gedruckt wird, liegt in der Verantwortung des Anwenders.

Deine Vorstellung von \cleardoublepage entspricht ebenfalls weder der Spezifikation noch der Dokumentation.

Wenn Du Einzeldokumente mit übergreifenden Querverweisen versehen willst, dann nimm das Paket xr. Das ist dafür gedacht.

Nach meiner Erfahrung ist xr nicht kompatibel mit hyperref, zudem verknüpft es unabhängige Dateien/Projekte miteinander. Ich möchte jedoch ein gemeinsames Inhaltsverzeichnis und fortlaufende Seitenzahlen. Im Vergleich zu einer großen Datei sollen lediglich die Kapitel getrennt werden. Für diese Aufgabe wird in zahlreichen Foren auf \includeonly verwiesen.

Meine Lösung: Das make-Script manipuliert die *.aux Dateien so, dass der Zähler page stets ungerade ist.

Bild von Markus Kohm

Wie es beim Zusammenfügen dann passen soll, ist mir nicht klar oder fügst Du erst die fertigen Ausdrucke zusammen? Dabei stören dann aber die ganzen Titel und Verzeichnisse, oder?

Damit hyperref und xr zusammen arbeiten gibt es ja hyper-xr. Ich sehe da kein Problem. Die Verzeichnisse sind auch kein Problem, da Du einfach die Verzeichnishilfsdateien zusammenfügen bzw. in der richtigen Reihenfolge laden kannst, wenn Du in jedem Dokument ein Gesamtverzeichnis haben willst, bzw. Du kannst auch ein Verzeichnisdokument, das nur die fertigen Hilfsdateien lädt, zusätzlich erstellen.

Und letztlich: Wo ist denn nun eigentlich das Problem? Es ist doch nichts leichter, als zum Ausdruck ggf. die erste Seite wegzuwerfen, so wie Du das auch mit den zusätzlichen Titelseiten und Verzeichnissen machen musst. Denn der Ausdruck ist doch das, was bei Dir das Problem war, wenn ich das richtig verstehe.

Bei mehreren Dateien mit gleicher Präambel kann man ein Gesamtdokument ggf. auch mit combine erstellen.

Ich merke immer mehr, dass mir Dein Problem nicht ganz klar ist. Ist aber auch nicht so wichtig, Wenn Du mit Deiner Lösung zufrieden bist, soll es mir recht sein – zumal es sich nicht um ein KOMA-Script-Problem handelt.

Dann funktionieren aber sämtliche Seitenverweise nicht mehr..
In der Tat kann man nicht auf einen hyperref link Klicken und an das Ziel springen -- dafür fehlt der Datei das Sprungziel. Allerdings sind die angegebenen Seitenzahlen, Gleichungsnummern,... korrekt wiedergegeben. Die *.aux Dateien enthalten offenbar den Seitenzählen page, der die nächste zu verwendende Seite angibt. Wenn dieser gerade ist, so wird (von \cleardoublepage ?) eine Seite eingefügt. Diesem komme ich zuvor, indem ich den Zähler incrementiere. Die Seitenzahlen bleiben damit erhalten!

Die Seiten werden erst nach dem Druck zusammengefügt -- ansonsten kann ich \includeonly entfernen und erhalte das vollständige Dokument -- einschließlich der Vakatseiten.

Im Vergleich hierzu ergibt opan=any andere Seitenzahlen, da ein Kapitel auch auf einer linken/geraden Seite beginnen darf.

Wo ist denn nun eigentlich das Problem?
Das ist die ursprüngliche Motivation. Die erste Seite zu verwerfen funktioniert allerdings nur, wenn man dies vor dem Drucken richtig einstellt -- ansonsten ist das gesammte Kapitel unbrauchbar. Abgesehen davon leidet die Darstellung auf dem Monitor, wenn als erstes eine Leere Seite erscheint. Ich warte dann ewig darauf, dass die Datei endlich geladen, es passiert aber nichts mehr.

.. mir Dein Problem nicht ganz klar ist.
Nochmals in Kurzform: Es soll ein Script erzeugt werden (100-200 Seiten). Gleichzeitig sollen die einzelnen Kapitel als getrennte PDFs verfügbar sein, vergleichbar mit mehreren Bänden eines Buches.

combine hört sich interessant an, allerdings werde ich es wohl nicht weiterverfolgen, da eine funktionierende Lösung existiert.

Bild von Markus Kohm

Was ich eben noch nicht verstehe ist: Wenn Du mit \includeonly einzelne Kapiteldokumente erstellst. Dann hast Du doch typischerweise in jedem dieser Kapiteldokumente die vollständige Titelei und die vollständigen Verzeichnisse. Also brauchst Du die Vakatseite doch dann auch effektiv oder nicht? Und wenn Du aus diesen Ausdrucken ein einzelnes Dokument zusammenstellst, dann musst Du auch wieder so oder so ganz Blätter wegwerfen.

Die Titelei wird ebenfalls mit \includeonly eingebunden und ist daher in den Kapiteln nicht enthalten.

Bild von Markus Kohm

Probier mal:

\makeatletter
\let\dpinclude\include
\let\@dpinclude\@include
\patchcmd{\dpinclude}{\@include}{\@dpinclude}{}{}
\patchcmd{\@dpinclude}{\@input@{#1.tex}\clearpage}{\@input@{#1.tex}\cleardoubleoddpage}{}{}
\makeatother

und dann \dpinclude überall dort verwenden, wo nach dem eingefügten Dokument auf einer ungeraden Seite fortgesetzt werden soll. Auf dein Beispiel angewandt also:

\documentclass{scrbook}
\usepackage{lipsum}
\usepackage{etoolbox}
\makeatletter
\let\dpinclude\include
\let\@dpinclude\@include
\patchcmd{\dpinclude}{\@include}{\@dpinclude}{}{}
\patchcmd{\@dpinclude}{\@input@{#1.tex}\clearpage}{\@input@{#1.tex}\cleardoubleoddpage}{}{}
\makeatother
%\includeonly{ZWEI}
\begin{document}
  \dpinclude{EINS}
  \dpinclude{ZWEI}
\end{document}

Der Trick dabei ist, dass nun das \clearpage, das \include nach dem Laden der Datei ausführt durch ein \cleardoubleoddpage ersetzt ist. Da die Zähler erst danach in die aux-Datei geschrieben werden, gehört die Leerseite damit noch zu der entsprechenden Datei. Das ist letztlich das gleiche wie mein Vorschlag am Ende der jeweiligen Dateien ein \cleardoublepage einzufügen.

Comments for "Vakatseite vor Kapitel" abonnieren