amsart 中引号环境内的行距(删除多余的空白)

amsart 中引号环境内的行距(删除多余的空白)

这是引号环境内的行距。我正在使用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来包围这个环境;另外,为了满足问题编辑中的新标准,你需要纠正环境前后的间距:spacing1

\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}

两个示例的输出:

在此处输入图片描述

相关内容