考虑以下文档。
\documentclass[12pt,a4paper]{article}
\usepackage{lipsum}
\pagestyle{empty}
\begin{document}
\begin{minipage}[t]{\textwidth}
\lipsum[1]
\end{minipage}
\medskip
{\large\scshape\bfseries\itshape Lorem Ipsum}
\medskip
\hrule
\medskip
\lipsum[2]
\end{document}
当我使用 pdflatex 编译它时,它会产生以下输出。
为什么我的小页面之后、文本之前没有空格?我\medskip
在它们之间放了一个。
\end{minipage}
\medskip
{\large\scshape\bfseries\itshape Lorem Ipsum}
\medskip
看起来\medskip
前后文本被合并为一个了。我该如何修复这个问题?
答案1
Aminipage
没有特殊的间距规则,它只是充当一个大字母,因此仅使用字母就更容易看出\medskip
(或\vspace
) 的工作原理:
\documentclass{article}
\begin{document}
\bigskip\hrule\bigskip
111 a b\\ c
\bigskip\hrule\bigskip
222 a \medskip b\\ c
\bigskip\hrule\bigskip
333 a
\medskip
b\\ c
\bigskip\hrule\bigskip
\end{document}
如果在段落中间添加垂直空格命令,则它会被保存在一个特殊位置(节点\vadjust
),直到段落被分成几行,然后额外的空格会插入到包含原始节点的行之后。因此,在这种情况下,即使位于和之间222
,额外的空格也会出现在 之后。b
\medskip
a
b
如果在任何垂直间距命令前放置一个空行,那么几乎总是更容易理解,这样垂直间距命令就会以垂直模式显示,而不是段落中间,在这种情况下,它会立即起作用并在该点添加间距,如 333 中,其中间距位于a
和 之间b
。
答案2
除了缺少段落之外:您还应该知道,带有 [t] 对齐的迷你页面就像一个带有相当大的下行部分(深度很大)的字母。这意味着以下行会以固定距离(默认为 1pt)粘在底部。如果您想要行之间的正常距离,您应该在迷你页面中使用 \strut 结束文本:
\documentclass[12pt,a4paper]{article}
\pagestyle{empty}
\begin{document}
X\begin{minipage}[t]{3cm}
t\\t\\t\\
aaaaaaaaaaa
\end{minipage}
xxxxxxx
\bigskip
X\begin{minipage}[t]{3cm}
t\\t\\t\\
yyyyyyyyyyyy
\end{minipage}
xxxxxxx
\bigskip
X\begin{minipage}[t]{3cm}
t\\t\\t\\
aaaaaaaaaaa\strut
\end{minipage}
xxxxxxx
\bigskip
X\begin{minipage}[t]{3cm}
t\\t\\t\\
yyyyyyyyyyyy\strut
\end{minipage}
xxxxxxx
\end{document}