暂时增加引文段落之间的间距,然后将其放回原位

暂时增加引文段落之间的间距,然后将其放回原位

我想在引文中的段落之间添加一个额外的空白行,但仅限于该引文内。我知道你可以使用 来做到这一点\parskip,但我如何恢复旧值?我尝试了类似

\begin{figure}
\begin{quotation}
\setlength{\oldparskip}{\parskip}
\setlength{\parskip}{\baselineskip}
This is some text.

This is more text.

This is yet another paragraph.
\end{quotation}
\end{figure}
\setlength{\parskip}{\oldparskip}

但这不起作用;我收到一条错误消息,说命令\oldparskip未定义。我基本上想要一个临时变量,除非有办法引入某种环境,在完成后自动恢复旧值。

答案1

设置\parskip不应自动成为全局的,并且如果它在“封闭”环境中被重置,则它应该在环境结束时自动恢复到以前的值。

quotation应该是一个“封闭”的环境,figure当然也是这样,所以这里唯一需要调整的就是单个

\setlength{\parskip}{\baselineskip}

在受影响的范围内quotation

答案2

芭芭拉的回答是正确的;对 parskip 的更改将在 quote 环境中进行本地更改。

但是,您的示例的实际问题是,\newlength\oldparskip \setlength{\oldparskip}{\newparskip}在进入引用环境之前,您需要在序言中。

(可以使用 Plain TeX 方法来执行此操作,\let\oldparskip\parskip \parskip=\baselineskip .... \let\parskip\oldparskip但这里不需要将 Plain synax 与 LaTeX 混合。)

如果您始终希望在某个环境中使用不同的 parskip,那么您可以\AtBeginEnvironmentetoolbox包中使用,或者更简单地说,您可以创建一个调用标准环境并调整 parskip 的新环境:

\newenvironment{myquote}
    {\begin{quote}\setlength{\parskip}{\baselineskip}}
    {\end{quote}}

相关内容