如何让 dpfloat 将奇数页放在左边

如何让 dpfloat 将奇数页放在左边

这是该问题的后续问题:如何确保两对图表位于两张相对的页面上?

答案是使用 dpfloat。但是,dpfloat 假设偶数页在左侧。在我的情况下,打印完成后奇数页将在左侧。我可以获得 dpfloat 类型的行为,奇数页在左侧吗?

答案1

dpfloat使用\ifodd测试来测试页面的奇偶校验,你只需要反转奇偶校验,因此在前言中\usepackage{dpfloat} 只需添加

\makeatletter
 \def\@xtryfc #1{%
   \expandafter\if\csname LP:\string#1\endcsname L%
      \ifodd\else\count0\global\@fpmin\maxdimen
             %%%%
          \typeout{dpfloat moved a leftpage float from page \the\count0.}%
      \fi\fi
    \old@xtryfc #1}
\makeatother

不过这样会更好不是根本无需这样做,只需在前言中添加两页而不是一页,这样页面的奇偶性就得以保留。从左到右语言的印刷材料基本上没有左侧有奇数页。

答案2

虽然这不是一个理想的解决方案,但您实际上可以编辑包的副本dpfloat

如果你不想编辑发行版中的官方软件包,你可以从中获取 dpfloat.sty 软件包的副本其 CTAN 页面. 将 dpfloat.sty 的副本放在您的工作目录中,与主 latex 文件放在一起,比如说mydpfloat.sty

打开mydpfloat.sty,并查找以下行:

\ifodd\count0\global\@fpmin\maxdimen
     \typeout{dpfloat moved a leftpage float from page \the\count0.}%
\fi\fi

我们只需添加一个即可\else。行变为:

 \ifodd\count0
 \else\global\@fpmin\maxdimen
     \typeout{dpfloat moved a leftpage float from page \the\count0.}%
 \fi\fi

这将改变 dpfloat 包以将奇数页视为位于左侧。

您还需要更改

\ProvidesPackage{dpfloat}[2006/10/05]

\ProvidesPackage{mydpfloat}[2013/04/19]

相关内容