更改标题颜色

更改标题颜色

我成功地将部分和子部分的颜色更改为我定义的颜色。但是我想用\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}

相关内容