![如何在 minipage 中保留相同的 parskip](https://linux22.com/image/245402/%E5%A6%82%E4%BD%95%E5%9C%A8%20minipage%20%E4%B8%AD%E4%BF%9D%E7%95%99%E7%9B%B8%E5%90%8C%E7%9A%84%20parskip.png)
我有以下结构:
\begin{document}
Paragraph1.
Paragraph2.
\begin{minipage}
Some paragraph1.
Some paragraph2.
\end{minipage}
\end{document}
如何才能使小页面部分中的段落间距与普通段落中的段落间距相同?我想将其制作成宏,以免重复多次,但这失败了:
\let\currentparskip\parskip
\newenvironment{minipage_parskip}{
\begin{minipage}{\textwidth}{
\setlength{\parskip}{\currentparskip}
}
}{
\end{minipage}
}
答案1
\parskip
是包含 parskip 当前值的长度参数的名称;因此\let\currentparskip=\parskip
和\setlength{\parskip}{\currentparskip}
相当于\setlength{\parskip}{\parskip}
minipage 内部的并且不执行任何操作,因为的值\parskip
已经为零。
\newlength{\currentparskip}
\newenvironment{minipageparskip}
{\setlength{\currentparskip}{\parskip}% save the value
\begin{minipage}{\textwidth}% open the minipage
\setlength{\parskip}{\currentparskip}% restore the value
}
{\end{minipage}}
虽然环境名称中的下划线并不被禁止,但最好不要使用它,因为有些软件包确实会改变其含义并可能破坏您的环境。
答案2
和 都会\parbox
暂时\begin{minipage}
重置\parindent=0pt
和\parskip=0pt
(以及一些其他参数),这可能会造成麻烦。
幸运的是,在此之后\begin{minipage}
还会执行\@minipagerestore
宏,这是一个钩子,允许 LaTeX 样式覆盖这些默认值。(请参阅“texdoc source2e”中的 ltboxes 部分。)
所以尝试一下
\usepackage{parskip}
\setlength{\parskip}{\medskipamount}
\newcommand{\@minipagerestore}{\setlength{\parskip}{\medskipamount}}
在您的样式或类文件中。
改变现有“minipage”环境的行为的优点在于,这将自动影响内部使用 minipage 的许多其他环境(例如 beamer 中的“columns”)。