在以下文档中,小节标题显示为红色。为什么会发生这种情况?
\documentclass{article}
\usepackage{color}
\newcommand{\comment}[1]{{\color{red}#1}}
\begin{document}
\paragraph{This should not be red!}
\comment{Only this!}
\end{document}
我该如何修复它?如果我用 替换,{\color{red}#1}
则会\textcolor{red}{#1}
收到“失控参数”错误。
答案1
发生这种情况的原因是颜色更改命令不会导致 TeX 进入水平模式。因此,颜色变为红色,然后当处理参数的第一个字符时\comment
,TeX 从垂直模式切换到水平模式以开始新的段落。\everypar
插入\paragraph
标题(正如 Philipp 指出的那样,缺少该标题),\normalcolor
因此它会以您选择的颜色排版。
为了解决这个问题,您需要让 TeX 在改变颜色之前开始一个新段落。
\newcommand{\comment}[1]{\leavevmode{\color{red}#1}}
话虽如此,正如威尔所说,
\newcommand{\comment}[1]{\textcolor{red}{#1}}
也有效。
答案2
这是标准类中的一个错误:的 style 参数\@startsection
必须包含\normalcolor
。暂时修复:
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{3.25ex \@plus1ex \@minus.2ex}%
{-1em}%
{\normalfont\normalsize\normalcolor\bfseries}}
其他课程(如 KOMA-Script)包括必需的\normalcolor
。可能应该报告http://www.latex-project.org/bugs-upload.html。