Disappearing \hrule in otherwise empty minipage

Re: Disappearing \hrule in otherwise empty minipage

- Z. R. の投稿
返信数: 0

hrule が“消えて”しまう理由はこれのようです。

\documentclass[a4paper]{article}
\begin{document}
\parindent=0pt

No rule appesrs:\par
\vbox{\hsize=20em
\hrule}

A rule with width 1em appears:\par
\vbox{\hsize=20em
\hrule \hbox to 1em{!\hfill}}

A rule with width 20em appears:\par
\vbox{\hsize=20em
\hrule !}
\end{document}

一般的に、vbox の横幅は「中に存在する物の横幅の最大値」(ただし width 無しの \hrule のような横幅が未定のものを除く)となります。ここで、vbox 内で直接段落が開始された場合は、その段落は結果的に横幅 \hsize の hbox を生じます。しかし、そういう段落がない場合は、vbox の横幅が \hsize に満たないこともありえるわけです。