平衡页面中图片或框之间的垂直间距

平衡页面中图片或框之间的垂直间距

我有一个由文本和图片组成的系列组(每组 1 到 6 张图片)。我希望页面中图片之间的垂直间距保持平衡。

这是一个最小的工作示例(为了便于说明,这里用黑框替换真实图像并显示页面框架):

https://fr.sharelatex.com/project/5860184917ccee00403ef8ca

\documentclass[DIV=12,paper=a4,10pt,notitlepage]{report}
\usepackage[
    showframe,
    paperwidth=210mm,
    paperheight=297mm,
    top=27.5mm,
    bottom=27.5mm,
    inner=20mm,
    outer=20mm,
    marginparsep=7mm,
    marginparwidth=48mm,
]{geometry}

\usepackage{blindtext}


\begin{document}

\section{Section}
\blindtext[5]
\vfill
\makebox[\textwidth]{
\centering
    \rule{8cm}{5cm}
}
\vfill

\clearpage
\section{Section}
\blindtext[5]
\vfill
\makebox[\textwidth]{
\centering
    \rule{8cm}{5cm}
}
\vfill

\vfill
\makebox[\textwidth]{
\centering
    \rule{8cm}{5cm}
}
\vfill

\vfill
\makebox[\textwidth]{
\centering
    \rule{8cm}{5cm}
}
\vfill

\clearpage
\section{Section}
\blindtext[5]
\vfill
\makebox[\textwidth]{
\centering
    \rule{8cm}{5cm}
}
\vfill

\vfill
\makebox[\textwidth]{
\centering
    \rule{8cm}{5cm}
}
\vfill

\vfill
\makebox[\textwidth]{
\centering
    \rule{8cm}{2cm}
}
\vfill

\vfill
\makebox[\textwidth]{
\centering
    \rule{8cm}{5cm}
}
\vfill
\end{document}

典型案例:

  • 第一种情况:看起来不错!图片上方(到文本底部)和下方(到页面底部)似乎有相等的可用空间

看起来不错!图片上方(到文本底部)和下方(到页面底部)的可用空间似乎相等

  • 第二种情况:第一张图片下方缺少一些垂直间距,第二张图片顶部缺少空间,第三张图片看起来不错

第一张图片下方缺少一些垂直间距,第二张图片顶部缺少空间,第三张图片看起来不错

  • 第三种情况:与前一种情况相同,第三和第四张图片看起来不错

与上一个案例相同,第三和第四张图片看起来不错

实际文档约有 450 页,包含 200 个不同的部分(组),其中文本的长度和图像的数量各不相同。

答案1

除了垂直空间外,每幅图像还提供了

Overfull \hbox (15.0pt too wide) in paragraph at lines 70--74

由于段落缩进。

在里面也不\centering执行任何操作\makebox(因为它是水平模式)。

但是,通常情况下,分页符处的空格会被丢弃,但在这里,你似乎想保留它,以便可以使用\vspace*

在此处输入图片描述

\documentclass[DIV=12,paper=a4,10pt,notitlepage]{report}
\usepackage[
    showframe,
    paperwidth=210mm,
    paperheight=297mm,
    top=27.5mm,
    bottom=27.5mm,
    inner=20mm,
    outer=20mm,
    marginparsep=7mm,
    marginparwidth=48mm,
]{geometry}

\usepackage{blindtext}


\begin{document}

\section{Section}
\blindtext[5]

\nopagebreak
\vspace*{\fill}
\noindent\makebox[\textwidth]{
    \rule{8cm}{5cm}
}

\nopagebreak
\vspace*{\fill}

\clearpage
\section{Section}
\blindtext[5]

\nopagebreak
\vspace*{\fill}
\noindent\makebox[\textwidth]{
    \rule{8cm}{5cm}
}

\nopagebreak
\vspace*{\fill}

\pagebreak[0]

\vspace*{\fill}
\noindent\makebox[\textwidth]{
    \rule{8cm}{5cm}
}

\nopagebreak
\vspace*{\fill}

\pagebreak[0]

\vspace*{\fill}
\noindent\makebox[\textwidth]{
    \rule{8cm}{5cm}
}

\vspace*{\fill}

\clearpage
\section{Section}
\blindtext[5]

\nopagebreak
\vspace*{\fill}
\noindent\makebox[\textwidth]{
    \rule{8cm}{5cm}
}

\nopagebreak
\vspace*{\fill}

\pagebreak[0]

\vspace*{\fill}
\noindent\makebox[\textwidth]{
    \rule{8cm}{5cm}
}

\nopagebreak
\vspace*{\fill}

\pagebreak[0]

\vspace*{\fill}
\noindent\makebox[\textwidth]{
    \rule{8cm}{2cm}
}

\nopagebreak
\vspace*{\fill}

\pagebreak[0]

\vspace*{\fill}
\noindent\makebox[\textwidth]{
    \rule{8cm}{5cm}
}

\nopagebreak
\vspace*{\fill}

\end{document}

相关内容