我成功地将部分和子部分的颜色更改为我定义的颜色。但是我想用\title
相同的方式更改,但\titlefont{•}
不起作用(我猜它不应该起作用)。什么是简单的\title
还有什么方法可以改变颜色?我有以下简化的代码:
\documentclass[11pt,a4paper]{article}
\usepackage{amsmath, url}
\usepackage[utf8x]{inputenc}
\usepackage[czech]{babel}
\usepackage{xcolor}
\usepackage{sectsty}
\definecolor{astral}{RGB}{46,116,181}
\subsectionfont{\color{astral}}
\sectionfont{\color{astral}}
\title{...}
\author{...}
\begin{document}
\maketitle
\begin{abstract} ...
\end{abstract}
\smallskip
\noindent \textbf{Key words:} ...
\section{...}
\end{document}
非常欢迎任何帮助及其描述。
答案1
直接在中插入颜色\title
:
\documentclass{article}
\usepackage{lipsum}% Just for this example
\usepackage{xcolor,sectsty}
\definecolor{astral}{RGB}{46,116,181}
\subsectionfont{\color{astral}}
\sectionfont{\color{astral}}
\title{\color{astral} My title}
\author{An Author}
\begin{document}
\maketitle
\begin{abstract}
\lipsum[1]
\end{abstract}
\smallskip
\noindent \textbf{Summary:}
\lipsum*[2]
\section{A section}
\lipsum[3]
\end{document}
上述建议可能看起来很粗糙。但是,它是作为一次性使用宏的一部分插入的\title
,因此足以满足要求。对于更正式的方法,您可以修补内部\@maketitle
宏 - 负责设置标题显示:
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@maketitle}% <cmd>
{\@title}% <search>
{\color{\@titlecolor}\@title}% <replace>
{}{}% <success><failure>
\newcommand{\@titlecolor}{black}
\newcommand{\titlecolor}[1]{\renewcommand{\@titlecolor}{#1}}
\makeatother
上述代码提供了\titlecolor{<color>}
允许您根据需要切换到颜色的代码(例如,\titlecolor{astral}
将提供相同的输出)。此代码还依赖于的结构\@maketitle
,对于其他类,其结构可能有所不同或受某些包的影响。
\title
解决标题颜色变化的另一种(不太正式的)方法可能是仅更新处理其参数的方式:
\makeatletter
\renewcommand{\title}[1]{\renewcommand{\@title}{\color{\@titlecolor}#1}}
\newcommand{\@titlecolor}{black}
\newcommand{\titlecolor}[1]{\renewcommand{\@titlecolor}{#1}}
\makeatother
答案2
避免在命令内容中进行硬编码格式会更干净、更清晰\title
。虽然这通常是文档中的一次性命令 - 如果只是因为\maketitle
通过擦除所有内容来强制执行此命令 - 我认为最好还是避免。
而替代方案并不是看起来吓人的内部命令修补。而是像章节标题的情况一样,使用一个包来帮你完成那些吓人的事情。在这种情况下,包titling
专门用于自定义文档标题的格式。
例如:
\pretitle{\begin{center}\LARGE\color{astral}}
\posttitle{\par\end{center}\vskip 0.5em}
这比添加颜色稍微复杂一些,但也不复杂。我从复制自文档的\title
默认设置开始:titling
\pretitle{\begin{center}\LARGE}
\posttitle{\par\end{center}\vskip 0.5em}
然后,我只需根据字体规范添加颜色规范\LARGE
。
就是这样:
\documentclass[11pt,a4paper]{article}
\usepackage{amsmath,url}
\usepackage[utf8x]{inputenc}
\usepackage[czech]{babel}
\usepackage{xcolor}
\usepackage{sectsty,titling}
\definecolor{astral}{RGB}{46,116,181}
\subsectionfont{\color{astral}}
\sectionfont{\color{astral}}
\pretitle{\begin{center}\LARGE\color{astral}}
\posttitle{\par\end{center}\vskip 0.5em}
\title{Title}
\author{Author}
\begin{document}
\maketitle
\begin{abstract}
An abstract
\end{abstract}
\smallskip
\noindent \textbf{Klíčová slova:}\dots
\section{A section}
\end{document}