我检索了方法 \renewcommand MakeTitle 来设置标题的颜色。
\makeatletter
\renewcommand{\title}[1]{\renewcommand{\@title}{\color{\@titlecolor}#1}}
\newcommand{\@titlecolor}{red}
\newcommand{\titlecolor}[1]{\renewcommand{\@titlecolor}{#1}}
\makeatother
这对我来说非常成功并且有效。我使用了类似的命令来修改作者,但只有作者的一部分改变了颜色。
\documentclass[10pt]{article}
\usepackage{color}
\makeatletter
\renewcommand{\author}[1]{\renewcommand{\@author}{\color{\@authorcolor}#1}}
\newcommand{\@authorcolor}{red}
\newcommand{\authorcolor}[1]{\renewcommand{\@authorcolor}{#1}}
\makeatother
\title{My Title}
\author{Author One$^1$ \\ Author Two$^2$
\\
\normalsize{$^1$Organization 1}\\
\normalsize{$^2$Organization 2}\\
\\
\normalsize{Emails: [email protected], [email protected]}\thanks{Thanks} }
\begin{document}
\maketitle
\end{document}
输出:
您能否设计一个更好的方案来更改 author 中所有内容的颜色(包括 \thanks 等)?顺便说一句,由于我有很多文档需要处理,因此我想通过 renewcommand 来实现。
答案1
您必须了解标题构造的结构。\title
(或\@title
) 通常只包含一个元素,因此为其着色相当容易/直接。但是,由于\author
(或\@author
) 可能包含多个成员/元素,因此默认情况下它设置在 内tabular
;这允许您使用 来\\
分隔作者。但是,这确实提供了有限的范围。事实上,每个单元格都形成一个组,这解释了为什么您的颜色变化仅适用于第一的细胞。
了解的\@author
结构类似于tabular
,以下将更新您对的重新定义以了解在(嵌套)内\author
设置,从而允许颜色应用于整个(嵌套)作者列表。\@author
tabular
\documentclass{article}
\usepackage{xcolor}
\makeatletter
\renewcommand{\author}[1]{\renewcommand{\@author}{%
\color{\@authorcolor}
\begin{tabular}{@{}c@{}}
#1
\end{tabular}}}
\newcommand{\@authorcolor}{red}
\newcommand{\authorcolor}[1]{\renewcommand{\@authorcolor}{#1}}
\makeatother
\title{A Title}
\author{%
Author One\textsuperscript{1} \\
Author Two\textsuperscript{2} \\
\textsuperscript{1}Organization 1 \\
\textsuperscript{2}Organization 2 \\
\\
Emails: [email protected], [email protected]\thanks{Thanks}
}
\begin{document}
\maketitle
\end{document}