我想在引文中的段落之间添加一个额外的空白行,但仅限于该引文内。我知道你可以使用 来做到这一点\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,那么您可以\AtBeginEnvironment
从etoolbox
包中使用,或者更简单地说,您可以创建一个调用标准环境并调整 parskip 的新环境:
\newenvironment{myquote}
{\begin{quote}\setlength{\parskip}{\baselineskip}}
{\end{quote}}