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:

  1. Irá forçar um pagebreak em páginas ímpares se que é necessário para obter todo o texto em páginas opostas;
  2. Permite até uma página em qualquer ruptura no corpo meio ambiente, e não ruidosamente se isso não pode ser garantida.
Foi útil?

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 \unvboxes deve permitir notas / flutua ao trabalho corretamente - se você não precisa disso, você pode considerar mudar-los todos para \boxes 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

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top