我如何重新定义章节命令以在标题下方显示附加文本?

我如何重新定义章节命令以在标题下方显示附加文本?

我对 Latex 相对缺乏经验。我正在使用 Memoir 类,并一直在尝试开发基于 Danie Els 的 BlueBox 样式的自定义章节样式(此样式的来源在第 46 页给出回忆录章节风格)。

我想重新定义章节命令以采用两个参数,如下所示:

\chapter{ExampleChapter}{A short description of the contents of this chapter}

然后我想将两个参数传递给 \printchaptertitle 的重新定义版本,以便我可以在标题下方打印描述:

\renewcommand{\printchaptertitle}[2]{%
\usebox{\ChpNumBox}\hfill
\parbox[t]{\hsize-\wd\ChpNumBox-1em}{%
\vspace{\midchapskip}%
\thickhrulefill\par
\chaptitlefont ##1\par}}%2
% ##2 is used somewhere here
}

编辑

我把一些丑陋的东西拼凑在一起,非常接近我想要的东西:

我将章节样式中的 afterchapskip 长度重新定义为负数:

\setlength{\afterchapskip}{-45pt}

然后我定义以下宏:

\newcommand{\addChapter}[2] {
\chapter{#1}
\begin{flushright}
\parbox[t]{\hsize-\wd\ChpNumBox-5em}{\flushright\small{\textcolor{dark-gray}{#2}}}
\end{flushright}
\vspace{30pt}
}

然后在文档本身中我使用:

\addChapter{Example Chapter}{A short description of the contents of this chapter. I can ramble on a bit just to point out that this is flushed right.}

其结果如下:

编辑2

使用下面 daleif 推荐的方法,我得到了一些效果很好的结果。

我定义如下:

\def\chapterDesc{}
%...
\newcommand{\setChapterDescription}[1]{%
\def\chapterDesc{#1}%
}
%...
\newcommand{\addChapter}[2]{
\setChapterDescription{#2}
\chapter{#1}
\setChapterDescription{}
}
%...
\renewcommand{\printchaptertitle}[1]{%
\usebox{\ChpNumBox}\hfill
\parbox[t]{\hsize-\wd\ChpNumBox-1em}{%
\vspace{\midchapskip}%
\thickhrulefill\par
\chaptitlefont ##1\par
\vspace{20pt}
\normalfont\small\textcolor{dark-gray}{\chapterDesc}}
}%2
}

然后我可以做如下的事情:

\addChapter{Example Chapter}{A short description of the contents of this chapter. I can ramble on a bit just to point out that this is flushed right.}

要不就:

\chapter{Descriptionless Chapter}

答案1

这需要做很多工作。使用两个宏的方法会更容易。

我通常独立于\chapter使用来执行此操作\chapterprecis

如果你想直接将其纳入章节样式,最好使用类似

\setchapterdesc{....}
\chapter{....}

然后让章节样式使用虚构的宏\setchapterdesc存储其值的宏(记得在使用后全局清除它)

相关内容