![使用 ieeecolor 文档类“弹出空颜色页面堆栈 0”](https://linux22.com/image/428695/%E4%BD%BF%E7%94%A8%20ieeecolor%20%E6%96%87%E6%A1%A3%E7%B1%BB%E2%80%9C%E5%BC%B9%E5%87%BA%E7%A9%BA%E9%A2%9C%E8%89%B2%E9%A1%B5%E9%9D%A2%E5%A0%86%E6%A0%88%200%E2%80%9D.png)
我仍在使用ieeecolor.cls
- 从这里获取https://www.embs.org/tmi/authors-instructions/,即https://www.embs.org/wp-content/uploads/2020/04/TMI-Template-LaTeX-2020.zip
通过这个非常简短的 MWE,
\documentclass[print]{ieeecolor}
\usepackage{tmi}
\begin{document}
\begin{figure}
\caption{X}
\end{figure}
\end{document}
我得到一个
pdfTeX warning: pdflatex: pop empty color page stack 0
可能是因为标题颜色问题。这个问题能修复吗?
答案1
这是 中的一个错误ieeecolor.cls
。它误用了\color
,\hbox
颜色范围\special
“泄漏”。问题缩小到这个(看看world
红色也是这样):
\documentclass{article}
\usepackage{color}
\begin{document}
\setbox0\hbox{\color{red}hello}
\box0 world
\end{document}
被\color
插入到 中\hbox
,并且该框稍后被使用,但由于在使用 时没有进行分组\color
(它在框被使用时起作用用过的,而不是在设置时),缺少“结束颜色”指令。如果你只使用\hbox{\color{red}hello}
(即没有\setbox
... \box
),那么来自的隐式结束组将\hbox
结束颜色,因为框正在被用过的。
这是针对此问题的补丁。它插入\color@begingroup
并\color@endgroup
围绕框的内容,以便\color
正确结束:
\documentclass[print]{ieeecolor}
\usepackage{tmi}
% Fix ieeecolor's \caption
\usepackage{etoolbox}
\makeatletter
\@ifundefined{color@begingroup}%
{\let\color@begingroup\relax
\let\color@endgroup\relax}{}%
\def\fix@ieeecolor@hbox#1{%
\hbox{\color@begingroup#1\color@endgroup}}
\patchcmd\@makecaption{\hbox}{\fix@ieeecolor@hbox}{}{\FAILED}
\patchcmd\@makecaption{\hbox}{\fix@ieeecolor@hbox}{}{\FAILED}
%
\begin{document}
\begin{figure}
\caption{X}
\end{figure}
\end{document}