我对 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
存储其值的宏(记得在使用后全局清除它)