答案1
将所包含图像的高度定义为的倍数\baselineskip
。
\newcommand\vspacer
{\par
{\centering
\raisebox{-0.2\baselineskip}%
{\includegraphics[height=3\baselineskip]{example-image}%
}%
\par
}%
}
根据评论中的讨论,一页的行应该与其他页的相应行对齐。因此,必须注意空间对齐\parskip
,\lineskip
不要拉伸或收缩。这可以通过发出命令\raggedbottom
并消除拉伸来实现。
\raggedbottom
\lineskip0pt
\parskip0pt
在下面的例子中,我加载包showframe
来标记文本区域的边框。
\documentclass[12pt]{scrbook}
\usepackage{graphicx}
\usepackage{blindtext}
\usepackage{showframe}
\newcommand\vspacer
{\par
{\centering
\raisebox{-0.2\baselineskip}%
{\includegraphics[height=3\baselineskip]{example-image}%
}%
\par
}%
}
\raggedbottom
\lineskip0pt
\parskip0pt
\begin{document}
\Blindtext
\vspacer
\Blindtext
\vspacer
\Blindtext
\vspacer
\Blindtext
\blindtext
\end{document}
答案2
我会在垫片前后的空间里加一些胶水。这样它们就可以根据需要拉伸/收缩,以保持\flushbottom
:
\documentclass{book}
\usepackage{graphicx,lipsum}
\newcommand{\insertseparator}{%
\par
\vspace{.2\baselineskip plus .2\baselineskip minus .2\baselineskip}% Space above
\noindent
\makebox[\linewidth]{\includegraphics[height=3\baselineskip]{example-image}}%
\par
\vspace{.2\baselineskip plus .2\baselineskip minus .2\baselineskip}% Space below
}
\begin{document}
\lipsum[1]
\insertseparator
\lipsum[2-14]
\insertseparator
\lipsum[15-29]
\insertseparator
\lipsum[30-45]
\insertseparator
\lipsum[46-50]
\end{document}
您可能需要尝试使用plus
和/或的合适值minus
。我刚刚使用了部分\baselineskip
。