мини-страница 15.0pt слишком широкая

мини-страница 15.0pt слишком широкая

Иногда у меня есть два (или более) окружения фигур, которые я хочу разместить на одной странице, и разместить горизонтальную линию в центре. Чтобы это сделать, я помещаю \vfill\hrule\vfill между двумя окружениями. Однако это работает только в том случае, если я создаю мини-страницу, охватывающую всю текстовую область страницы.

Однако если я это сделаю, то получу либо переполнение hbox, либо переполнение vbox, в зависимости от класса документа. Для статьи это переполнение hbox в 15pt, для phdthesis (cls, который я схватил из сети) это переполнение vbox также в 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}

Вторая мини-страница не выдает такого предупреждения, но мне пришлось вычесть 15pt из ширины. Откуда взялись эти 15pt? почему \textwidth шире ширины текстовой области?

решение1

Это отступ по умолчанию. Что касается LaTeX, a minipage— это как большая буква. Так \begin{minipage}начинается абзац, если он еще не внутри другого.

\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}

Связанный контент