Изменить цвет заголовка

Изменить цвет заголовка

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

Связанный контент