如何结合使用 \color 和 \MakeUppercase

如何结合使用 \color 和 \MakeUppercase

我一直在修改一个.cls文件,它定义了我的“部分”是什么样子。目前它看起来像这样:

% Defines the rSection environment for the large sections
\newenvironment{rSection}[1]{ % 1 input argument - section name
  \sectionskip  
  \MakeUppercase{\bf #1} % Section title
  {\color{blue} {\bf #1}} % MY LINE
  \sectionlineskip
  \hrule % Horizontal line
  \begin{list}{}{ % List for each individual item in the section
    \setlength{\leftmargin}{1.5em} % Margin within the section
  }
  \item[]
}{
  \end{list}
}

过了一会儿,我使用颜色包和带有注释的行添加了注释MY LINE,它按预期工作(它使章节标题加粗并变成蓝色)。它之前的行使其加粗并大写,因此章节标题出现了两次。我一直在尝试将它们合并为一个,例如:

{\color{blue} {\MakeUpperCase {\bf #1}}

但上述方法不起作用。正确的做法是什么?

答案1

我不确定环境应该做什么,但这是以粗体显示大写蓝色标题的正确方法:

\textcolor{blue}{\bfseries\MakeUppercase{#1}}

\bf声明已被弃用二十年了;正确的声明应为\bfseries;对于您的情况,我还要补充一点\normalfont,以避免外部字体产生任何影响。无论如何,这应该放在外面\MakeUppercase

所以定义应该是

\newenvironment{rSection}[1]{% 1 input argument - section name
  \sectionskip  
  \textcolor{blue}{\normalfont\bfseries\MakeUppercase{#1}}% Section title
  \sectionlineskip
  \hrule % Horizontal line
  \begin{list}{}{% List for each individual item in the section
    \setlength{\leftmargin}{1.5em}% Margin within the section
  }%
  \item\relax
}{%
  \end{list}%
}

%注意行尾的正确用法。

答案2

你的示例行

{\color{blue} {\MakeUpperCase {\bf #1}}

包含两个错误:括号不匹配(注意,有多余的{)和控制序列\MakeUpperCase包含大写C。 消除这两个错误后,你的想法就可以奏效了:

 {\color{blue} \MakeUppercase {\bf #1}}

相关内容