原始情况:我有几份文档,其中的文本颜色变化频率各不相同(每种颜色从几行到很多页)。中间有许多脚注,应该使用与引用处相同的颜色。 重新着色文本,以便浮动和脚注能够正确受到影响指出如何实现这一目标的方法。
原则上,这确实有效,除非脚注被换到下一页:然后,脚注和正文的颜色都会在下一页丢失。
带脚注的颜色和分页符指向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}
预期结果:第 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}