我正在排版一本包含人物之间通信的小说。对于整本书,我使用的是 documentclass memoir
。但是,为了排版通信,我想使用 letter 环境(或等效环境),因为有内置宏,例如\address
和\signature
。但 letter 环境似乎没有在 letter 文档类之外定义。除了重新定义 letter 环境之外,有没有推荐的方法来排版这些通信?
非常感谢您提供的任何帮助。
答案1
想想您在这本小说中可能要排版的所有类型的信件……它们可能非常多样化。因此……
我一直热衷于避免结构化letter
环境(同样,默认的letter
文档类) 用于排版字母。这样做的原因是,其中的设置letter
通常非常严格:您需要定义某些命令,否则编译会失败,并且间距是固定的。如果您正在编写单个信件,那么您可以根据需要调整这些内容,但是当您编译多个信件时,您可能需要一些随时可用的灵活性,而无需大惊小怪。举一个小例子,更直观的写法是(比如说)
\begin{letter}
% OPENING
To whom it may concern: \par\medskip
% BODY
The body of the letter goes here.
% CLOSING
Sincerely, \par
Random Randofsky
\end{letter}
而不是使用提供的宏
\begin{letter}{}
\opening{To whom it may concern:}
The body of the letter goes here.
\closing{Yours sincerely,}
\end{letter}
因为您确切地知道格式和间距发生了什么(如果需要,可以通过注释提供指定)。此外,您是否知道命令的顺序可以更改\opening
,\closing
但输出相同(因为整个字母实际上是在letter
环境的末尾设置的)。
所以我会建议定义你自己的letter
环境,并且可能(取决于你的信件的范围)定义一些格式化命令一致性。它允许您完全控制信件内容的设置。即使它很简单
\newenvironment{letter}{\quote\itshape}{\endquote}