章ごとに1色で色分けされた見出しを作成する方法

章ごとに1色で色分けされた見出しを作成する方法

私は、記事を時系列順に並べた議事録形式の本をタイプセットしています。記事もカテゴリ分けされているため、各カテゴリには色が割り当てられ、章のスタイルではその色が、装飾的な章のアートの背景色として使用されるはずです。この部分は、 で期待どおりに動作しますtitlesec

それに加えて、見出しの色も変更したいと思います。見出しの色は、現在の章の「章の色」と同じにする必要があります。

私の素朴なアプローチで観察された問題は、見出しの色の変更が早すぎることです。つまり、新しい章の前のページがすでに新しい色で印刷されているということです。

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}

ご覧のとおり、2 ページ目の見出しはすでに緑色になっていますが、このページはまだ青色であるはずの第 1 章に属しています。

headercolor私が試したのは、2 つの異なる変数 (とchaptercolor)を使用することです。ここでは、 ステートメント\headercolorで を使用し*head、 は、章のタイトル自体が設定されている場合にのみを に割り当てるために使用しtitlesecました。残念ながら、これも機能しませんでした。\titelformatchaptercolorheadercolor

アップデート:私は序文の解決策を探しています。MWE は現在のスクリプトを過度に単純化し、その色は章のタイトル自体にも使用されるため、章が始まる前に章の色を定義することが重要です。著者が詳細をいじらなくても済むように、この種の「インターフェース」をできるだけ安定した状態に保ちたいと思います。

見出しの色の変更が新しい章の最初のページでのみ行われるように、色を緩やかに設定する方法についてアドバイスをいただければ幸いです。ありがとうございます!

答え1

\cleardoublepage実行して色を変更する新しいコマンドを定義します。

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

次に、

\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}

ここに画像の説明を入力してください

答え2

\chaptercolorコメントで述べたように、コマンドを呼び出した後に、colorchange ( を介して実行)を配置するだけで十分ですchapter

\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}

しかし、私は淡い色の背景に通常の黒い文字を表示したいです。片面文書の場合は、次のように定義できます。

\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}

出力は次のようになります:

ここに画像の説明を入力してください

もう一つ注目すべき点は、この出力です

ここに画像の説明を入力してください

これは次のコードを使用して実現できます。

\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}

章のタイトルの色を変更してさらに派手にすることもできます。

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

上部の色付きバーとタイトルはどちらも同じベースカラーを共有しています。ただし、読みやすさを向上させるために、より暗い色にすることにしました。出力は次のようになります。

ここに画像の説明を入力してください

さらに進んで、ヘッダーをベースカラーのより暗い色調で印刷することもできます。次のようになります。

ここに画像の説明を入力してください

思い出してください

色は気を散らし、読みにくくなることがあります。また、カラーページの印刷にはかなりの費用がかかります。

関連情報