区分同一段落的奇数页和偶数页

区分同一段落的奇数页和偶数页

我在文本中有一些边注,想让它们根据奇数页或偶数页以不同的方式对齐。我创建了这个命令:

\newcommand{\notemarge}[1]{\ifodd\c@page 
 \marginpar{\raggedright\scriptsize #1} \else 
 \marginpar{\raggedleft\scriptsize #1} \fi}

在主要情况下有效,但当不同页面上的同一段落中有两个注释时无效。原因:\thepage只有新段落才会发生变化。

我尝试了这个:

\usepackage{atbegshi}
\newcounter{masterpage}\setcounter{masterpage}{1}
\AtBeginShipout{\refstepcounter{masterpage}}

但没有解决。

如何修复它?

答案1

当可扩展测试(例如,\ifodd在段落中展开)时,您无法有效地测试奇偶校验或页面计数器的值。换行和分页发生在宏扩展之后,因此\c@page在执行单个段落中的宏时,它们将始终具有相同的值,即使该段落很长并且覆盖几页。只有当到达段落末尾时,分页器才会将内容拆分为页面,并在输出每页时增加计数器。

因此,\marginpar您可以存储两个版本的注释,一个用于左侧,一个用于右侧(不幸的是,它并不总是正确的),但应该可以工作。

\marginpar[left version]{right version}

相关内容