\color 在内联部分之后为部分标题着色

\color 在内联部分之后为部分标题着色

在以下文档中,小节标题显示为红色。为什么会发生这种情况?

\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

相关内容