\color 在页面上的奇怪行为

\color 在页面上的奇怪行为

当我运行以下代码时:

\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}

相关内容