如何在回忆录类的汉森风格中最好地设置章节标题颜色?

如何在回忆录类的汉森风格中最好地设置章节标题颜色?

我正在修改 Hansen 回忆录课程的章节风格,如文本博客。遗憾的是,回忆录类文献中没有讨论汉森风格。

我将其改为左对齐并使用\sfstyle章节标题字体。我现在想控制章节标题的颜色。

我目前的尝试:

\documentclass[12pt,english,american]{memoir}
\makeatletter
\usepackage{color} 

\usepackage{kpfonts}
\usepackage{calc}
\definecolor{ChapNumColor}{gray}{0.90}
\definecolor{ChapTitleColor}{gray}{0.65}
% helper macros
\newcommand\numlifter[1]{\raisebox{-18mm}[0pt][0pt]{\smash{#1}}}
\newcommand\numindent{\kern08mm}
\newlength\chaptertitleboxheight
\makechapterstyle{hansen}{
  \renewcommand\printchaptername{%
    \color{ChapTitleColor}%
  %\raggedleft
  }
  \renewcommand\printchapternum{%
    \begingroup%
    \leavevmode%
    \chapnumfont%
    \strut%
    \numindent%
    \numlifter{\thechapter}%
    \endgroup%
  }
  \renewcommand*{\printchapternonum}{%
    \vphantom{\begingroup%
      \leavevmode%
      \chapnumfont%
    \numlifter{\vphantom{9}}%
    \numindent%
    \endgroup}
  \afterchapternum}
  \setlength\midchapskip{0pt}
  \setlength\beforechapskip{0.5\baselineskip}
  \setlength{\afterchapskip}{3\baselineskip}
  \renewcommand\chapnumfont{%
    \fontsize{40mm}{0mm}%
    \bfseries%
    \fontfamily{\sfdefault}\selectfont%
    \color{ChapNumColor}%
  }
  \renewcommand\chaptitlefont{%
    \huge%
    \sffamily%
    %\color{ChapTitleColor}%
    %\raggedleft%
  }%
  \settototalheight\chaptertitleboxheight{%
  \parbox{\textwidth}{\chaptitlefont \strut bg\\bg\strut}}
  \renewcommand\printchaptertitle[1]{%
    \parbox[t][\chaptertitleboxheight][t]{\textwidth}{%
    %\microtypesetup{protrusion=false}% add this if you use microtype
    \chaptitlefont\strut ##1\strut}%
  }
}
\chapterstyle{hansen}

\makeatother

\usepackage{babel}
\begin{document}
\chapter*{Preface}
content
\chapter{Introduction}
content
\chapter{Conclusion}
content
\end{document}

这会正确地为编号的\chapters 着色,但不能正确地为未编号的\chapter*s 着色,包括目录标题。

选项1

\color{ChapTitleColor}如果我注释掉宏中的语句\printchaptername并取消注释下面宏中的颜色语句\chaptitlefont,我确实会得到正确的颜色,但现在章节标题已经被向下推了一行左右。

选项 2

也许我错过了某个地方的行尾百分比标记,因为我对 TeX 的语法还不太熟悉。

\chapter*(注意:虽然我在图片中指出了这一点,但我不确定这是否适用于。我可以在乳胶页面上覆盖标尺网格来检查这些内容吗?)

如何在不影响格式的情况下修复选项 1 或选项 2?

按照开发人员的意图,为这种风格着色的“正确”方法是什么?

答案1

您走在正确的道路上。您可以\chaptertitlefont只使用修改,只需\leavevmode在颜色命令前添加一个。

  \renewcommand\chaptitlefont{%
    \huge%
    \sffamily%
    \leavevmode\color{ChapTitleColor}%
    %\raggedleft%
  }%

因为您可能想问\leavevmode实际上做了什么,这里有一个解释的链接:

顺便说一句,最好使用xcolor而不是color

相关内容