Como ter títulos coloridos com uma cor por capítulo

Como ter títulos coloridos com uma cor por capítulo

Estou compondo um livro em estilo de anais que contém artigos em ordem cronológica. Como os artigos também são categorizados, cada categoria recebe uma cor e os estilos de capítulo devem usar essa cor como cor de fundo para algumas artes de capítulo sofisticadas. Esta parte funciona como esperado com titlesec.

Além disso, gostaria também de alterar a cor dos títulos, que deve ser a mesma “cor do capítulo” do capítulo atual.

O problema que observo com a minha abordagem ingénua é que a cor dos títulos é alterada demasiado cedo, ou seja, a página antes do novo capítulo já é impressa com a nova cor.

Aqui está um MWE:

\documentclass[fontsize=12pt, paper=a4]{scrbook} 
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage[automark]{scrpage2} 
\usepackage{xcolor}

\newcommand{\chaptercolor}{red}

\clearscrheadfoot 
\pagestyle{scrheadings}
\ihead[\color{\chaptercolor}\leftmark]{\color{\chaptercolor}\leftmark} 
\ohead[\color{\chaptercolor}\rightmark]{\color{\chaptercolor}\rightmark}
\cfoot[\color{\chaptercolor}\pagemark]{\color{\chaptercolor}\pagemark}

\begin{document} 

\renewcommand{\chaptercolor}{blue}
\chapter{Ch1}
\Blindtext

\renewcommand{\chaptercolor}{green}
\chapter{Ch2}
\Blindtext

\end{document}

Como você pode ver, na página 2 o título já está verde, embora esta página ainda pertença ao capítulo 1, que deveria estar azul.

O que também tentei foi usar duas variáveis ​​diferentes ( headercolore chaptercolor), onde usei \headercolornas *headinstruções e usei titlesec's \titelformatpara atribuir chaptercoloro headercolorsomente quando o próprio título do capítulo estiver definido. Infelizmente isso também não funcionou.

Atualizar:Estou procurando uma solução de preâmbulo. O MWE simplifica demais meu roteiro atual e como a cor também é usada no próprio título do capítulo, é importante que a cor do capítulo seja definida antes do início do capítulo. Eu gostaria de manter esse tipo de “interface” o mais estável possível para que os autores não precisem mexer com detalhes.

Qualquer conselho sobre como posso definir preguiçosamente a cor para que a mudança de cor nos títulos aconteça apenas na primeira página do novo capítulo é muito apreciado. Obrigado!

Responder1

Defina um novo comando que execute \cleardoublepagee mude a cor:

\newcommand{\changechaptercolor}[1]{%
  \cleardoublepage%
  \renewcommand\chaptercolor{#1}%
}

Então você pode usar

\documentclass[fontsize=12pt]{scrbook} 
\usepackage[ngerman]{babel}
\usepackage{blindtext}

\usepackage{xcolor}
\newcommand\chaptercolor{red}
\newcommand{\changechaptercolor}[1]{%
  \cleardoublepage%
  \renewcommand\chaptercolor{#1}%
}

\usepackage[automark]{scrpage2}% or scrlayer-scrpage
\clearscrheadfoot 
\pagestyle{scrheadings}
\addtokomafont{pageheadfoot}{\color{\chaptercolor}}
\addtokomafont{pagenumber}{\color{\chaptercolor}}
\ihead[\leftmark]{\leftmark} 
\ohead[\rightmark]{\rightmark}
\cfoot[\pagemark]{\pagemark}

\begin{document} 
\changechaptercolor{blue}
\chapter{Ch1}
\Blindtext

\changechaptercolor{green}
\chapter{Ch2}
\Blindtext
\end{document}

insira a descrição da imagem aqui

Responder2

Conforme mencionado nos comentários, basta colocar a mudança de cor (feita via \chaptercolor) após chamar o chapter comando.

\documentclass{scrbook} 
\usepackage{blindtext}
\usepackage[automark]{scrlayer-scrpage}
\usepackage{xcolor}

\clearscrheadfoot 
\ihead[\leftmark]{\leftmark} 
\ohead[\rightmark]{\rightmark}
\cfoot[\pagemark]{\pagemark}
%Now adding color to all elements in the pagehead
%This is much easier to maintain
\addtokomafont{pagehead}{\color{\chaptercolor}}

\begin{document} 

\chapter{Mark Twain}
\newcommand{\chaptercolor}{blue}
\Blindtext

\chapter{Ambrose Bierce}
\renewcommand{\chaptercolor}{green}
\Blindtext

\end{document}

Mas eu preferiria ver texto preto normal em um fundo de cor suave. Para um documento unilateral você pode definir algo como isto

\DeclareLayer[clone=plain.scrheadings.head.oneside,
    contents={%
        \color{\chaptercolor}%
        \rule[-\dp\strutbox]%
        {\paperwidth}{\headheight}%
    }%
]{plain.scrheadings.head.oneside.background}
\DeclareLayer[clone=scrheadings.head.oneside,
    contents={%
        \color{\chaptercolor}%
        \rule[-\dp\strutbox]%
        {\paperwidth}{\headheight}%
    }%
]{scrheadings.head.oneside.background}

Resultando na seguinte saída:

insira a descrição da imagem aqui

Outra coisa que pode valer a pena dar uma olhada é esse resultado

insira a descrição da imagem aqui

Isso pode ser conseguido usando o código a seguir.

\documentclass{scrbook} 
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage[automark]{scrlayer-scrpage}
\usepackage{xcolor}


\clearscrheadfoot 
\ihead[\leftmark]{\leftmark} 
\ohead[\rightmark]{\rightmark}
\cfoot[\pagemark]{\pagemark}


%Defining the Layer
\makeatletter
\newlength{\topheight}
\setlength{\topheight}{\sls@topmargin}
\addtolength{\topheight}{\headheight}
\DeclareLayer[
    background,
    contents={%
        \color{\chaptercolor}%
        \rule{\paperwidth}{\topheight}%
    }%
]{scrheadings.head.background}
\makeatother

%Adding the Layer to the pagestyles
\AddLayersAtBeginOfPageStyle{scrheadings}{%
    scrheadings.head.background,%
}
\AddLayersAtBeginOfPageStyle{plain.scrheadings}{%
scrheadings.head.background}

\usepackage{etoolbox}
\newcommand{\basecolor}{%
    \ifcase\arabic{chapter}\or blue\or orange\or green\or red\fi%
}
\newcommand{\chaptercolor}{\basecolor!20!white}
\begin{document} 

\chapter{Mark Twain}
\Blindtext
\Blindtext
\chapter{Walt Whitman}
\Blindtext
\Blindtext
\Blindtext
\chapter{F. Scott Fitzgerald}
\Blindtext
\Blindtext
\chapter{Ambrose Bierce}
\Blindtext
\Blindtext
\end{document}

Você pode torná-lo ainda mais sofisticado alterando a cor do título do capítulo adicionando

\newcommand{\chaptertitlecolor}{\basecolor!70!white}
\addtokomafont{chapter}{\color{\chaptertitlecolor}}

Tanto a barra colorida na parte superior quanto o título compartilham a mesma cor base. Mas decidi optar por uma variante mais escura para melhor legibilidade. A saída é semelhante a esta:

insira a descrição da imagem aqui

Pode-se ir além e imprimir o cabeçalho em um tom mais escuro da cor base, que poderia ser algo assim

insira a descrição da imagem aqui

Por favor lembre-se

As cores podem distrair muito e atrapalhar a legibilidade. Imprimir páginas coloridas também é bastante caro.

informação relacionada