![使用回忆录类自定义章节格式(颜色和编号)](https://linux22.com/image/249863/%E4%BD%BF%E7%94%A8%E5%9B%9E%E5%BF%86%E5%BD%95%E7%B1%BB%E8%87%AA%E5%AE%9A%E4%B9%89%E7%AB%A0%E8%8A%82%E6%A0%BC%E5%BC%8F%EF%BC%88%E9%A2%9C%E8%89%B2%E5%92%8C%E7%BC%96%E5%8F%B7%EF%BC%89.png)
我在回忆录中看到\部分实现如下:
\newcommand{\section}{%
\sechook%
\@startsection{section}{1}% level 1
{\secindent}% heading indent
{\beforesecskip}% skip before the heading
{\aftersecskip}% skip after the heading
{\normalfont\secheadstyle}} % font
\newcommand{\sechook}{}
\newcommand{\setsechook}[1]{\renewcommand{\sechook}{#1}}
\newlength{\secindent}
\newcommand{\setsecindent}[1]{\setlength{\secindent}{#1}}
\setsecindent{\z@}
\newskip\beforesecskip
\newcommand{\setbeforesecskip}[1]{\setlength{\beforesecskip}{#1}}
\setbeforesecskip{-3.5ex \@plus -1ex \@minus -.2ex}
\newskip\aftersecskip
\newcommand{\setaftersecskip}[1]{\setlength{\aftersecskip}{#1}}
\setaftersecskip{2.3ex \@plus .2ex}
\newcommand{\secheadstyle}{}
\newcommand{\setsecheadstyle}[1]{\renewcommand{\secheadstyle}{#1}}
%%% \setsecheadstyle{\Large\bfseries\raggedright}
\setsecheadstyle{\Large\bfseries\memRTLraggedright}
我想尝试为我的部分编号添加颜色,并首先尝试:
\renewcommand{\sechook}{\color{blue}}
这没有起作用,因为蓝色的范围是一切之后并包括该部分。接下来我尝试:
\setsecheadstyle{\color{blue}\Large\bfseries\memRTLraggedright}
这样比较好,但是会给章节编号和章节标题添加颜色。我看不到\部分计数器上面的实现,所以我认为我找错了地方。
以下是我失败的尝试的 MWE:
\documentclass[openany]{memoir}
\usepackage{color}
\setsecheadstyle{\color{blue}\Large\bfseries\memRTLraggedright}
\begin{document}
\chapter{Foo}
\section{blah}
\section{stuff}
\subsection{more stuff}
\subsubsection{even more stuff}
\end{document}
这产生了
我还发现我丢失了小节和小节编号(我在书籍类中拥有这些编号)。所以有两个问题:
- 我怎样才能找回我的 sub 和 subsub 部分号码?
- 如何才能为章节编号(以及我取回的子章节编号)添加颜色?
答案1
要控制分区单位的编号级别,可以使用\setsecnumdepth{<sectional unit>}
;要为分区单位编号着色,可以使用\setsecnumformat
:
\documentclass[openany]{memoir}
\usepackage{xcolor}
\setsecnumformat{\color{blue}\csname the#1\endcsname\quad}
\setsecnumdepth{subsubsection}
\begin{document}
\chapter{Foo}
\section{blah}
\section{stuff}
\subsection{more stuff}
\subsubsection{even more stuff}
\end{document}