我遇到了一个奇怪的问题。在文档的正文中,我使用 将行距设置为 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
。