paracol 破坏了 titleps 设置的标题中的标题标记

paracol 破坏了 titleps 设置的标题中的标题标记

我注意到paracolparacol 包中的环境使得titleps 包中的\toptitlemarks\firsttitlemarks\bottitlemarks不起作用。请参阅以下代码:

\documentclass{book}

\usepackage{titleps, paracol, lipsum}

\renewcommand\thesection{\arabic{section}}

\newpagestyle{main}{
    \sethead{\toptitlemarks Top is \thesection}
        {\firsttitlemarks First is \thesection}
        {\bottitlemarks Bot is \thesection}
}
\pagestyle{main}

\begin{document}

\section{First}

\lipsum[1]

\section{Second}

\begin{paracol}{2}
\lipsum[1]
\switchcolumn
\lipsum[1]
\end{paracol}

\end{document}

标头的结果是:

Top is 2    First is 2  Bot is 2

但预期的结果是:

Top is 1    First is 1  Bot is 2

如果你注释掉这些paracol行,你将得到预期的结果:

%\begin{paracol}{2}
\lipsum[1]
%\switchcolumn
\lipsum[1]
%\end{paracol}

为什么会paracol导致此错误?我尝试了同样的事情,但使用 parcolumns 而不是 paracol,效果很好。但我不想使用 parcolumns,因为它有其他问题。有没有办法用 paracol 解决这个问题,如果没有,有没有比 paracol 更好的替代品?

答案1

@Amarakon 我的包extramarks使用的定义与 不同topmarktitleps它使用原始的 TeX 定义“上一页的最后一个标记”,在您的示例中该标记将为空。但是,如果我理解正确的话,titleps如果该标记之前没有文本,则使用该页面的第一个标记;如果该标记之前有文本,则使用该页面的最后一个标记;否则,使用该页面上的第一个标记。

没有简单的方法可以用 获得相同的结果extramarks。而且,extramarks也没有解决 的问题titleps。顺便说一句,没有“ 的修补版本paracol”,补丁是在加载 时动态应用的extramarks

如果你想尝试,可以访问https://github.com/pietvo/fancyhdr/tree/5.0beta

这里有一个与您的问题相近的解决方案,但是该解决方案在顶标的处理上有所不同。

\documentclass{book}

% !!!! Needs package `extramarks' version 5.0 or 5.0beta.
\usepackage{fancyhdr, extramarks, paracol, lipsum}

\renewcommand\thesection{\arabic{section}}

% This approximates the `titleps' `topmark`, but it is not the same.
\ExplSyntaxOn
\tl_new:N \tl_toporfirst
\newcommand{\toporfirstxmark}{%
  \tl_set:Nx \tl_toporfirst \topleftxmark
  \tl_if_empty:VTF \tl_toporfirst {\firstleftxmark} {\topleftxmark}
}
\ExplSyntaxOff

\renewcommand{\sectionmark}[1]{\extramarks{\thesection}{#1}}
\fancypagestyle{main}{
  \fancyhead[L]{Top is \toporfirstxmark}
  \fancyhead[C]{First is \firstleftxmark}
  \fancyhead[R]{Bot is \lastleftxmark}
}
\pagestyle{main}

\begin{document}

\section{First}

\lipsum[1]

\section{Second}

\begin{paracol}{2}
\lipsum[1]
\switchcolumn
\lipsum[1]
\end{paracol}

\end{document}

在此处输入图片描述

相关内容