Faire latex texte typeset donnée sur deux pages en regard
-
19-09-2019 - |
Question
Comment puis-je encourager / faire Latex composěe une partie du texte de sorte que cela va apparaître sur une même page consécutive, deux impairs pages de pages?
Avec tâtonnement, \nopagebreak
peut être cajolé en faisant cela, mais est-il une stratégie qui fonctionne tout simplement? Quelque chose comme un environnement de samepage
serait idéal, mais qui:
- forcera un saut de page sur les pages impaires si cela est nécessaire pour obtenir tout le texte des pages en regard;
- Permet jusqu'à un saut de page partout dans le corps de l'environnement, et ne si ce grand bruit ne peut être garantie.
La solution
Vous pouvez mettre en place un environnement tel que
\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 }
Si vous voulez un échec plus bruyant, le changement \PackageWarning
en \PackageError
, Les \unvbox
es devraient permettre des notes / flotteurs pour fonctionner correctement - si vous n'avez pas besoin, vous pouvez envisager de les changer tous \box
es au lieu (bien que je suis peu rouillé sur le comportement des \vsplit
par rapport à des profondeurs de la boîte et skips, de sorte que peut produire un comportement drôle, mais il garantirait que vous ne preniez deux pages en faisant couler quelque chose de plus le fond de la deuxième page).
Autres conseils
Il est une distinction entre \clearpage
et \cleardoublepage
. En utilisant \cleardoublepage
juste avant les choses que vous voulez sur le côté gauche et \clearpage
avant les choses que vous voulez sur le côté droit vous pouvez forcer la mise en page que vous cherchez.
Bien sûr, l'option twoside
est indispensable.