当我运行以下代码时:
\documentclass{article}
\usepackage[papersize={4in, 3in}]{geometry}
\usepackage{xcolor}
\makeatletter
\let\old@makefntext\@makefntext
\renewcommand\@makefntext[1]{\old@makefntext{{\color{green}#1}}}%
\makeatother
\begin{document}
a \vspace{1.5in}
a\footnote{a\\a}
{\color{red} a} a
\end{document}
发生了两件奇怪的事情:(i)第二页上的a
两个footnote
的颜色反转,第二个的颜色没有改变。a
这应该与重新定义脚注有关,但我不知道为什么(也许colorstack
?)出于某种原因,我需要\@makefntext
以这种方式重新定义,我想知道如何处理这个问题。
答案1
您需要使用包pdfcolfoot
。然后一切都会按预期进行。
\documentclass{article}
\usepackage[papersize={4in, 3in}]{geometry}
\usepackage{xcolor}
\usepackage{pdfcolfoot}
\makeatletter
\renewcommand{\@footnotetext}[1]{%
\insert\footins{\reset@font\footnotesize%
\interlinepenalty\interfootnotelinepenalty%
\splittopskip\footnotesep%
\splitmaxdepth\dp\strutbox%
\floatingpenalty\@MM%
\hsize\columnwidth%
\@parboxrestore%
\def\@currentcounter{footnote}%
\protected@edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}%
\color@begingroup
\@makefntext{\color{green}% <-- color set to green
\rule\z@\footnotesep\ignorespaces #1\@finalstrut\strutbox}\par
\color@endgroup}
}
\makeatother
\begin{document}
a \vspace{1.5in}
a\footnote{a\\ a}
{\color{red} a} a
\end{document}