2010-02-07 10 views
6

Wie stimme ich dazu,/Latex einen bestimmten Teil des Texts zu setzen, so dass er auf einer geraden Seite mit geraden Seiten und ungeraden Seiten erscheint?Herstellung eines Latex-Textsatzes gegebener Text auf zwei gegenüberliegenden Seiten

Mit Versuch und Irrtum kann \nopagebreak dazu überredet werden, aber gibt es eine Strategie, die nur funktioniert? So etwas wie eine samepage Umgebung wäre ideal, aber ein, dass:

  1. einen Seitenumbruch auf ungeraden Seiten zwingen wird, wenn das alles um den Text zu bekommen auf gegenüberliegenden Seiten erforderlich ist;
  2. Ermöglicht die Unterbrechung von bis zu einer Seite im gesamten Umgebungskörper und schlägt lautstark fehl, wenn dies nicht gewährleistet werden kann.

Antwort

6

Sie könnten eine Umgebung zusammen wie

 
\newenvironment{twopage}{% 
    \begingroup\setbox0\vbox\bgroup 
}{% 
    \egroup 
    \ifdim\ht0>\textheight 
    \setbox1\vsplit0 to \textheight 
    \cleardoublepage\unvbox1\clearpage 
    \ifdim\ht0>\textheight 
     \PackageWarning{twopage}{Overflow in twopage environment}% 
    \fi 
    \unvbox0\clearpage 
    \else 
    \clearpage\unvbox0\clearpage 
    \fi\endgroup 
} 

Wenn Sie einen lauteren Ausfall möchten, \PackageWarning in \PackageError ändern, Die \unvbox es für Notizen erlauben sollte/schwimmt richtig arbeiten - wenn Sie nicht brauchen, Sie könnten stattdessen alle in \box es ändern (obwohl ich ein bisschen rostig auf das Verhalten von \vsplit in Bezug auf Box Tiefen und springt, so dass lustige Verhalten führen könnte, aber es würde garantieren, dass Sie nur zwei Seiten nahm indem Sie etwas extra vom unteren Rand der zweiten Seite fließen lassen).

+0

Akzeptiert: Dies scheint perfekt zu sein. Habe ich Recht, dass der Punkt der \ unvbox darin besteht, falschen Raum zu stoppen, weil sonst \ vsplit sicherstellen würde, dass Box 1 genau \ textheight high ist? –

+0

Die '\ unvbox' hat zwei Haupteffekte, die beide dazu führen müssen, dass sie sich so verhalten, als gäbe es keine umschließende Umgebung. Die erste ist, dass alle whatsits/'vadjust's (benutzt von' \ mark', '\ footnote',' \ marginpar' usw.) nicht richtig in Boxen funktionieren, da sie "top-level" sein wollen. in der ausgelieferten Seite (die Boxen werden nicht rekursiv). Der andere hat mit dem Raum zu tun - ich kann mich nicht an das Verhalten von Off-Hand '\ Vsplit erinnern, aber ich glaube, es gibt einen Unterschied zwischen' foo \ par \ vbox {bar \ par baz} \ par qux' und ' foo \ par bar \ par baz \ par qux', und es schien mir, dass wir das letztere wollten. – Steve

3

Es gibt a distinction between \clearpage and \cleardoublepage. Mit \cleardoublepage kurz vor dem Zeug auf der linken Seite und \clearpage vor dem Zeug auf der rechten Seite können Sie das Layout, das Sie suchen, erzwingen.

Natürlich ist die twoside Option muss.

+0

Technisch, ja, das beantwortet die Frage, die ich gestellt habe, aber ich bin eigentlich nach etwas analog zur gleichen Seite: Ich will keine Pausen, es sei denn, sie werden benötigt, um den Text auf den gegenüberliegenden Seiten zu halten. Ihr Vorschlag wird sicherstellen, dass der Text auf den gegenüberliegenden Seiten angezeigt wird, aber er ist sehr bemüht, Seitenumbrüche zu erstellen. –

Verwandte Themen