这是引号环境内的行距。我正在使用amsart
文档类,对整个文档的行距进行了专门定义。当我在环境中调整行距时quote
,引用的材料上方会出现额外的空白,如下例所示。有什么办法可以防止这种情况发生吗?谢谢。
编辑:仔细检查后发现,quote 环境通常会在正文和引文之间插入一点额外的空格,以便稍微突出引文。我同意这个额外的空格,但我希望将其添加到间距中正文而不是引文的间距。如果额外边距为 e,正文间距为 m,引文间距为 q,我希望正文和引文之间的间距为 m + e,而不是 q + e。
\documentclass{amsart}
\usepackage{setspace}
\usepackage{lipsum}
\setstretch{1.5}
\begin{document}
\lipsum[2]
\begin{quote}
\singlespacing
\lipsum[1]
\end{quote}
\lipsum[2]
\end{document}
答案1
你可以用一个带有因子的环境quote
来包围这个环境;另外,为了满足问题编辑中的新标准,你需要纠正环境前后的间距:spacing
1
\documentclass{amsart}
\usepackage{setspace}
\usepackage{lipsum}
\doublespacing
\let\oldquote\quote
\let\oldendquote\endquote
\renewenvironment{quote}
{\vspace{\dimexpr-12pt-\topsep+\baselineskip\relax}\begin{spacing}{1}\oldquote}
{\oldendquote\end{spacing}\vspace{\dimexpr-12pt-\topsep+\baselineskip\relax}}
\begin{document}
\lipsum[2]
\begin{quote}
\lipsum[1]
\end{quote}
\lipsum[2]
\end{document}
在示例中,我使用了\doublespacing
原来的设置而不是原来的设置\setstretch{1.15}
只是为了使结果更加明显,但原来的设置也会产生所请求的结果。
答案2
\singlespacing
切换到它时会按照设计插入额外空间。将其替换为\setstretch{1}
。
\documentclass{amsart}
\usepackage{setspace}
\usepackage{lipsum}
\setstretch{1.15}
\begin{document}
\lipsum[2]
\begin{quote}
\setstretch{1}
\lipsum[1]
\end{quote}
\lipsum[2]
\end{document}
下面说明了如何在序言中应用此更改,而不是将其添加到文档中的\setstretch{1}
每个环境中:quote
\documentclass{amsart}
\usepackage{setspace}
\usepackage{lipsum}
\setstretch{1.15}
\usepackage{etoolbox}
\AtBeginEnvironment{quote}{\setstretch{1}}
\begin{document}
\lipsum[2]
\begin{quote}
\lipsum[1]
\end{quote}
\lipsum[2]
\end{document}
两个示例的输出: