我知道原始的 LaTeX 诗句环境是基于一般的 LaTeX 列表的。具体来说,诗句环境由 article 类定义如下:
{\newenvironment{verse}
{\let\\\@centercr
\list{}{\itemsep \z@
\itemindent -1.5em%
\listparindent\itemindent
\rightmargin \leftmargin
\advance\leftmargin 1.5em}%
\item\relax}
{\endlist}
我想知道此诗句环境中节之间的默认分隔是什么。它似乎是\z@
,但我不知道这是什么意思。或者,它是\z@ + \parsep
?
以下是我使用 verse 环境的方法,希望对您有所帮助:
\documentclass[12pt,draft]{article}
\begin{document}
\begin{verse}
Thinking thought convolutes the brain \\
Because tomorrow comes too soon \\
When the squirrel sings doctor.
But maybe there be hope \\
In the middle of nowhere \\
When the sandman comes a-calling.
\end{verse}
\end{document}
答案1
我记不清了,可能\parsep
是\z@
一个内部命令,意思是 0pt。
在verse
包和memoir
类中,节之间的分隔由长度\stanzaskip
(实际上是文本行之间的距离)控制,当然也可以由用户控制。
答案2
间隙由\parsep
(设置为\parskip
)给出,具体取决于文档类别选项:
10pt
(默认):4pt plus 2pt minus 1pt
11pt
:4.5pt plus 2pt minus 1pt
12pt
:5pt plus 2.5pt minus 1pt
\documentclass{article}
\usepackage[margin=1cm]{geometry}% Just for this example
\newcommand{\mrk}{\makebox[0pt][l]{\rule{\textwidth}{.4pt}}}
\begin{document}
\begin{minipage}{.4\linewidth}
\begin{verse}
\mrk Thinking thought convolutes the brain \\
\mrk Because tomorrow comes too soon \\
\mrk When the squirrel sings doctor.
\mrk But maybe there be hope \\
\mrk In the middle of nowhere \\
\mrk When the sandman comes a-calling.
\end{verse}
\end{minipage} \qquad
\begin{minipage}{.4\linewidth}
Thinking thought convolutes the brain \\
Because tomorrow comes too soon \\
When the squirrel sings doctor.
\vspace{4pt plus 2pt minus 1pt}
But maybe there be hope \\
In the middle of nowhere \\
When the sandman comes a-calling.
\end{minipage}
\end{document}
答案3
根据 Peter Wilson 的回答,基于 Werner 引用的问题(\z@ 起什么作用?) 在对这个问题的评论之一中,尤其是对他的回答,我正在回答我自己的问题。到目前为止的答案有点不完整,我希望得到一个能把所有答案整合在一起的答案。因此,答案是:
从 的代码定义中verse
,可以清楚地看出\itemsep
设置为\z@
。由于\z@
根据定义 等同于零个点,并且由于一般列表( 基于verse
)中两个项目之间的垂直距离由 给出\itemsep + \parsep
,因此节之间的默认诗节距离为\parsep
。 \parsep
因此必须初始化为等于\parskip
,这就是 Werner 发现节之间的距离为 的原因\parskip
。