代码之家  ›  专栏  ›  技术社区  ›  Charles Stewart

在两个对开页上生成给定文本的乳胶字体集

  •  6
  • Charles Stewart  · 技术社区  · 15 年前

    我如何鼓励/使乳胶字体设置文本的某些部分,使其全部出现在连续的偶数页、奇数页对上?

    经过反复试验, \nopagebreak 可以被劝说去做这件事,但是有没有一个策略是有效的?有点像 samepage 环境将是理想的,但是:

    1. 如果需要在奇数页上强制分页,以获取对开页上的所有文本;
    2. 允许在环境主体中的任何地方最多一个分页,如果无法确保,则会出现异常的失败。
    2 回复  |  直到 15 年前
        1
  •  6
  •   Steve    15 年前

    你可以把一个环境

    \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
    }
    

    如果你想要一个更吵闹的失败,改变 \PackageWarning 进入之内 \PackageError , The \unvbox ES应该允许Notes/Floats正常工作-如果您不需要,可以考虑将它们全部更改为 \box 相反(尽管我对 \vsplit 关于盒子的深度和跳跃,这样可能会产生有趣的行为,但它可以保证你只通过从第二页的底部流出任何额外的东西来占用两页。

        2
  •  3
  •   dmckee --- ex-moderator kitten    15 年前

    a distinction between \clearpage and \cleardoublepage . 通过使用 \透明双页 就在你想要的东西放在左手边之前 清除页 在你想要的东西出现在右手边之前,你可以强制你要找的布局。

    当然, twoside 选项是必须的。