多页脚注扰乱了正文颜色,而且 pdfcolfoot 没有帮助

多页脚注扰乱了正文颜色,而且 pdfcolfoot 没有帮助

原始情况:我有几份文档,其中的文本颜色变化频率各不相同(每种颜色从几行到很多页)。中间有许多脚注,应该使用与引用处相同的颜色。 重新着色文本,以便浮动和脚注能够正确受到影响指出如何实现这一目标的方法。

原则上,这确实有效,除非脚注被换到下一页:然后,脚注和正文的颜色都会在下一页丢失。

带脚注的颜色和分页符指向pdfcolfoot包,即应该修复了这个问题(通过为脚注添加额外的 pdftex 颜色寄存器)。但即使我使用它,脚注结束后的下一页失去颜色

MWE(不可避免地是康德式的)

\documentclass[a6paper,12pt]{article}
\usepackage{kantlipsum}
\usepackage{xcolor}
%\usepackage{pdfcolfoot} % Un-commented for the figure below.

\begin{document}
\color{blue}
\kant[3-4]
foo\footnote{\color{red}\kant[9-11]}
\kant[4-5]
\color{.}
\kant[5]
foo\footnote{\color{red}\kant[9-11]}
\kant[4-6]
\end{document}

即使加载了 pdfcolfoot,多页脚注结束后颜色也会丢失

预期结果:第 3 页(和第 5 页)上的文本应全部为蓝色。文本颜色没有重置。只有当我添加\color{.}应该是无操作),引擎会记住文本实际上应该是彩色的。

显然,的承诺pdfcolfoot没有得到满足,所以这也可能是那里的一个错误。

我的低级问题:是否有一些(正确或黑客)方法来说服 pdftex开始每一个带有活动文本颜色的页面,无论上一页有多少脚注结束?

语义解决方案是一些代码或包,可以自动将脚注与正文的字体格式状态同步。

答案1

更新:在最新版本(1.4)的 pdfcolfoot 中,这个错误已经得到解决。

旧答案: 有点晚了,但这是一个错误pdfcolfoot:它将脚注切换到新的颜色堆栈,但后来忘记添加一个组,这意味着脚注后的重置代码会从主堆栈中获取颜色。

\documentclass[a6paper,12pt]{article}
\usepackage{kantlipsum}
\usepackage{xcolor}
\usepackage{pdfcolfoot} % Un-commented for the figure below.
\makeatletter
\AtBeginDocument{%
  \renewcommand{\@makefntext}[1]{%
    \pdfcolfoot@makefntext{%
      \if@minipage
      \else
        \pdfcolfoot@switch
      \fi
      \color@begingroup %missing
      #1
      \color@endgroup% missing
    }%
  }%
}
\makeatother
\begin{document}
\color{blue} \kant[3-4] foo\footnote{\color{red}\kant[9-11]} \kant[4-5] 
\color{.} \kant[5] foo\footnote{\color{red}\kant[9-11]} \kant[4-6] 
\end{document}

在此处输入图片描述

相关内容