minipage 15.0pt 太宽

minipage 15.0pt 太宽

有时我会有两个(或更多)图形环境,我想将它们布局在一页上,并在中间放置一条水平线。为了实现这一点,我在两个环境之间放置了一个 \vfill\hrule\vfill。但是,这只有在我创建一个跨页面整个文本区域的迷你页面时才有效。

但是,如果我这样做,则会出现水平框或垂直框溢出,具体取决于文档类别。对于 article,水平框溢出为 15pt;对于 phdthesis(我从网上抓取的类别),垂直框溢出也为 15pt。

这是一个最小的工作示例:

\documentclass{article}
\newlength{\minipagewidth}
\newlength{\minipageheight}

\begin{document}%
%results in:  Badbox, line 9: Overfull \hbox (15.0pt too wide) in paragraph at lines 9-26
\setlength{\minipagewidth}{\textwidth}%
\setlength{\minipageheight}{\textheight}%
\begin{minipage}[t][\minipageheight]{\minipagewidth}%
Top of the page

\vfill\hrule\vfill

Bottom of the page
\end{minipage}
% no vbox or hbox overflow:
\addtolength{\minipagewidth}{-15pt}%
%\addtolength{\minipageheight}{-15pt}%
\begin{minipage}[t][\minipageheight]{\minipagewidth}%
Top of the page

\vfill\hrule\vfill

Bottom of the page
\end{minipage}%
\end{document}

第二个 minipage 没有出现这样的警告,但我不得不从宽度中减去 15pt。这个 15pt 是从哪里来的?为什么 \textwidth 比文本区域的宽度更宽?

答案1

这是默认缩进。就 LaTeX 而言,aminipage就像一个大写字母。因此,\begin{minipage}如果段落尚未包含在段落内,则 a 会开始一个段落。

\noindent\begin{minipage}{\textwidth}

解决了这个问题。

关于高度,我不确定你真正想要达到什么。

对于整页浮动,你可以这样做

\documentclass{article}
\usepackage{graphicx}
\usepackage{lipsum} % just for the example

\begin{document}

\lipsum[1-3]

\begin{figure}[p]
\centering
\begin{minipage}[c][\dimexpr\textheight-\baselineskip+\topskip\relax][s]{\textwidth}
\centering

\includegraphics[width=8cm]{example-image-a}

\caption{A caption to the first figure}

\vfill
\hrule
\vfill

\includegraphics[width=8cm]{example-image-b}

\caption{A caption to the second figure}

\end{minipage}

\end{figure}

\lipsum[4-10]

\end{document}

相关内容