minipage 内的 hrule 拒绝显示

minipage 内的 hrule 拒绝显示

在小型页面内,\hrule除非小型页面内已经有一些材料,否则似乎不会执行任何操作。

\documentclass{article}
\begin{document}
\hrule width\textwidth\relax
\noindent
\begin{minipage}[b]{\textwidth}%
  %\strut
  \hrule width0.5\textwidth\relax
\end{minipage}%
\end{document}

第一个宽度规则\textwidth已绘制,但第二个宽度规则却不见了。但是,如果您\strut在规则前添加(或其他任何内容),则它会神秘地出现。

答案1

它被绘制出来但触及了你之前的规则。如果你注释掉它,你就会看到它。

在此处输入图片描述

\documentclass{article}
\begin{document}
%\hrule width\textwidth\relax
\noindent
\begin{minipage}[b]{\textwidth}%
  %\strut
  \hrule width0.5\textwidth\relax
\end{minipage}%
\end{document}

答案2

minipage没什么奇怪的:在路的尽头,它本质上变成了

\vbox{\hrule width0.5\textwidth\relax}

并且 TeX 为其分配与规则相同的高度,即 0.4pt。

TeX 的一个独特特性是它在 之后不添加行间粘连\hrule,因此第一条规则和下一段之间没有添加垂直空格。

事实上,通过以下说法可以得到同样的结果

\hrule width\textwidth\relax
\hrule width0.5\textwidth\relax

使用更粗的规则,效果更加明显:

\documentclass{article}
\begin{document}

\hrule width 2cm height 2pt\relax
\noindent
\begin{minipage}[b]{\textwidth}
  \hrule width 1cm height 2pt\relax
\end{minipage}

\medskip

\hrule width 2cm height 2pt\relax
\hrule width 1cm height 2pt\relax

\end{document}

在此处输入图片描述

在规则后添加一些垂直空间,例如\medskip

相关内容