块引用周围正文的行距不一致

块引用周围正文的行距不一致

我遇到了一个奇怪的问题。在文档的正文中,我使用 将行距设置为 1.5 \usepackage[onehalfspacing]setspace。正文具有一致的行距,除了围绕块引用。在块引用之前和之后,主文本的行距随机地变为更小的行距。更奇怪的是,在多次编译过程中,这个间距似乎发生了变化。下面的图片也许可以帮助您理解我的意思。 在此处输入图片描述

我只修改了 quote 环境以设置较小和 sf 字体。我没有修改其他任何地方的行距。使用 \usepackage[doublespacing]{setspace} 将行距设置为双倍后,这个问题似乎消失了,我在整个文档中都获得了一致的双倍行距。

你知道这是什么原因造成的吗?

我不确定我是否可以发布 MWE,因为这是一个很大的文档,约 600 页,包含多个软件包。我正在使用 XeLaTeX 进行编译。

编辑:这是我用来修改 blockquote 的代码:

AtBeginEnvironment{quote}{\smaller}
\renewcommand{\sfdefault}{lmss}
\newfontfamily{\quotefont}{Linux Biolinum}
\let\quoteOld\quote
\let\endquoteOld\endquote
\renewenvironment{quote}{\quotefont\quoteOld}{\endquoteOld}

现在,注释第一行确实会创建一致的行距。但是如何在引用环境中使用较小的字体大小而不影响行距?

答案1

你的定义是倒着的。让我们看一个例子:

\documentclass{article}
\usepackage{etoolbox}
\usepackage{relsize}
\usepackage{setspace}
\usepackage{fontspec}

\usepackage{lipsum} % for mock text

\AtBeginEnvironment{quote}{\smaller}
\newfontfamily{\quotefont}{Linux Biolinum O}
\let\quoteOld\quote
\let\endquoteOld\endquote
\renewenvironment{quote}{\quotefont\quoteOld}{\endquoteOld}

\onehalfspacing

\begin{document}

\lipsum*[2]
\begin{quote}
\lipsum*[3]
\end{quote}
\lipsum*[4]

\end{document}

在此处输入图片描述

出了什么问题?这是在作为 的一部分发出\smaller之前的问题,因此引用之前的段落使用与 相关的行间空间进行排版。\par\quoteOld\smaller

解决方法:\smaller稍后发布。

\documentclass{article}
\usepackage{relsize}
\usepackage{setspace}
\usepackage{fontspec}

\usepackage{lipsum} % for mock text

\newfontfamily{\quotefont}{Linux Biolinum O}

\let\quoteOld\quote
\let\endquoteOld\endquote
\renewenvironment{quote}{\quoteOld\smaller\quotefont}{\endquoteOld}

\onehalfspacing

\begin{document}

\lipsum*[2]
\begin{quote}
\lipsum*[3]
\end{quote}
\lipsum*[4]

\end{document}

在此处输入图片描述

在我看来你应该定义你自己的环境,而不是重新定义quote

相关内容