Fazendo Latex typeset determinado texto em duas páginas opostas
-
19-09-2019 - |
Pergunta
Como faço para encorajar / fazer Latex typeset alguma parte do texto para que tudo vai aparecer em um mesmo páginas, odd-página par consecutivo de páginas?
Com tentativa e erro, \nopagebreak
pode ser persuadido a fazer isso, mas existe uma estratégia que simplesmente funciona? Algo como um ambiente samepage
seria o ideal, mas que:
- Irá forçar um pagebreak em páginas ímpares se que é necessário para obter todo o texto em páginas opostas;
- Permite até uma página em qualquer ruptura no corpo meio ambiente, e não ruidosamente se isso não pode ser garantida.
Solução
Você poderia montar um ambiente como
\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 }
Se você quiser uma falha mais ruidoso, mudança \PackageWarning
em \PackageError
, Os \unvbox
es deve permitir notas / flutua ao trabalho corretamente - se você não precisa disso, você pode considerar mudar-los todos para \box
es vez (embora eu sou um pouco enferrujado sobre o comportamento de \vsplit
com respeito a profundidades de caixa e salta, de modo que pode produzir um comportamento engraçado, mas seria garantir que você só tomou duas páginas por fluindo nada extra fora da parte inferior da segunda página).
Outras dicas
Há uma distinção entre \clearpage
e \cleardoublepage
. Usando \cleardoublepage
pouco antes de o material que você quer no lado esquerdo e \clearpage
antes do material que você quer no lado direito, você pode forçar o layout que você está procurando.
É claro, a opção twoside
é obrigação.