升级 texmaker 后 \vfill 不起作用

升级 texmaker 后 \vfill 不起作用

我最近因为另一个原因将 MikTex 和 TexMaker 升级到最新版本(分别为 2.9.5840 和 4.5)。问题是列内容之前和之后的命令\null \vfill无法像旧版本那样工作,我在新版本中遇到了这个问题: 在此处输入图片描述

但希望得到与旧版本一样的结果:

在此处输入图片描述

我不知道问题出在哪里,因为我没有改变代码中的任何内容

谢谢大家!

答案1

对我来说很好

\documentclass{book}

\usepackage{multicol,lipsum}

\begin{document}
\begin{multicols}{2}
\null
\vfill
\subsubsection{Vitesse du Vent}
\lipsum[1]
\vfill
\null
\columnbreak

\rule{4cm}{0.8\textheight}
\end{multicols}
\end{document}

在此处输入图片描述

编辑

正如 egreg 在评论中提到的那样,最好使用 LaTeX 命令而不是低级 \null。(但他错了,末尾的 \vfill 就足够了,\vspace*{\fill}那里也需要。)

\documentclass{book}

\usepackage{multicol,lipsum}

\begin{document}
\begin{multicols}{2}
\vspace*{\fill}
\subsubsection{Vitesse du Vent}
\lipsum[1]
\vspace*{\fill}
\columnbreak

\rule{4cm}{0.8\textheight}
\end{multicols}
\end{document}

答案2

去年,我修复了列尾垂直空间的错误处理:除非明确要求,否则应删除那里的空间,但并非所有情况都是如此。摘自变更日志:

2015-03-31 Frank Mittelbach  <[email protected]>

    * multicol.dtx: Another rewrite of \remove@discardable@items to
    capture the case of \vspace (remove) and \vspace* (keep) correctly

2015-03-23  Frank Mittelbach  <[email protected]>

    * multicol.dtx: Detect when columns get too large during balancing
    because the user requested more forced breaks than available
    columns.

    Fixed the logic for removing excess white space at column bottoms
    (this is a source of trouble for sure)

因此,在过去\null\vfill,结尾处的 可能还保留着,而删除 才是正确的\vfill。现在它被删除了。此时,将框移到填充后会将其隐藏,因此它会保留下来。

然而,正如指出的那样,正确的 LaTeX 命令应该是\vsapce*{\fill}--- 它可以在上面和下面正确运行。

相关内容