
Я успешно изменил цвет разделов и подразделов на свой определенный. Однако я хотел бы изменить цвет \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}