\vspace*{\fill} 在 multicols* 环境中超出页面

\vspace*{\fill} 在 multicols* 环境中超出页面

我正在使用 TexLive 2017,想记录物体的位置。但是\vspace*{\fill}当它在环境中时,最后一个物体的底部通常会超过一页multicols*。这是 MWE:

\documentclass[a4paper,12pt]{article}

\usepackage[demo]{graphicx}
\usepackage{zref-savepos}

\usepackage[%
includeheadfoot, headheight=15pt, headsep=14pt, footskip=25pt,
top=8mm, bottom=8mm, left=1cm, right=1cm]{geometry}

\usepackage{multicol}
\setlength{\columnseprule}{0.4pt}

\begin{document}

\newwrite\writer
\openout\writer=\jobname.coors\relax

\begin{multicols*}{2}

\noindent%
\begin{minipage}[t]{\linewidth}
    \zsavepos{tl}\includegraphics[width=0.9\linewidth]{demo}\zsavepos{br}
\end{minipage}%
\par%

\zsavepos{vfill-top}\vspace*{\fill}\zsavepos{vfill-bot}\pagebreak[0]

\edef\temp{\zposy{vfill-top} \zposy{vfill-bot}}
\write\writer\expandafter{\temp}

\end{multicols*}

\closeout\writer

\end{document}

经过两次编译后:

$ cat jobname.coors
44648671 -3423457

的底部\vspace*{\fill}为负数,表示底部超出页面。

我做了两个独立的实验:

  1. \zsavepos{tl}\includegraphics[width=0.9\linewidth]{demo}\zsavepos{br}替换为时\includegraphics[width=0.9\linewidth]{demo},记录的坐标为45435103 3130143。看起来不错。

  2. 当删除\begin{minipage}[t]{\linewidth}和时,记录的坐标为。看起来也不错。\end{minipage}%45435103 3130143

我不知道这是否是某些包的问题,​​或者我使用它们不正确,以及记录\vspace*{\fill}内部位置的正确方法是什么multicols*

答案1

如果您想记录结束位置,则应该使用一个盒子:

\documentclass[a4paper,12pt]{article}
\usepackage[demo]{graphicx}
\usepackage{zref-savepos}

\usepackage[%
includeheadfoot, headheight=15pt, headsep=14pt, footskip=25pt,
top=8mm, bottom=8mm, left=1cm, right=1cm]{geometry}

\usepackage{multicol}
\setlength{\columnseprule}{0.4pt}

\begin{document}%\today

\begin{multicols*}{2}

\noindent%
\begin{minipage}[t]{\linewidth}
    \zsavepos{tl}\includegraphics[width=0.9\linewidth]{demo}\zsavepos{br}
\end{minipage}%
\par%

\zsavepos{vfill-top}\vspace*{\fill}\mbox{\zsavepos{vfill-bot}}\pagebreak[0]

\edef\temp{\zposy{vfill-top} \zposy{vfill-bot}} \show\temp

\end{multicols*}
\end{document}

答案2

顺便提一下,我最近也遇到了同样的问题。解决此相关问题的方法是多编译几次 latex,这样就不需要使用 \hbox 或 \mbox 了。我目前已经编译了 3 次。

相关内容