双列文档中的图形和文本垂直对齐

双列文档中的图形和文本垂直对齐

我正在尝试为具有特定页面布局(使用包指定)的双栏书籍设置布局,geometry并使用两列文本彼此对齐。为此,我已经调整了段落之间以及浮动前后的空格长度:

%%% adjust all spacings to \baselineskip to align text paragraphs and floats 
\usepackage{setspace}
\setstretch{1.5}
\setlength{\parskip}{\baselineskip}
\usepackage{etoolbox}
\BeforeBeginEnvironment{figure}{\kern \baselineskip}

并且它对于标准页面布局来说运行良好*:

在此处输入图片描述

但是,一旦我使用该软件包改变页面布局,特别是正文,geometry它就会停止工作。

在此处输入图片描述

有人可以解释一下为什么会发生这种情况以及如何解决它吗?

这是 MWE。

\documentclass[twocolumn]{book}

% page layout settings with geometry 
\usepackage[papersize={240mm,300mm}
            ,hmargin={25mm}
            ,top={20mm}
            ,columnsep={10mm}
            ,body={190mm, 220mm} % <- when textbody is changed, fig/float placement changes!
            ]{geometry} %,

\usepackage{lipsum}         % generates filler dummy text          
\usepackage[demo]{graphicx} % demo option replace images with black rectangles for testing purposes
\usepackage{caption}

% adjust all spacings to \baselineskip to align text paragraphs and floats 
\usepackage{setspace}
\setstretch{1.5}
\setlength{\parskip}{\baselineskip}
\usepackage{etoolbox}
\BeforeBeginEnvironment{figure}{\kern \baselineskip}

\begin{document}

\lipsum[4]    

\begin{figure}[tb]
  \centering
  \includegraphics[width=0.8\columnwidth]{castle}
  \caption{This is a caption This is a caption This is a caption This is a cThis is a captionThis is a captionThis is a captionThis is a captionaption This is a caption.}
\end{figure}

\lipsum

\end{document}

答案1

查看您的示例,没有什么可以强制将文本行与网格对齐,因此,虽然在某种情况下,文本行可能看起来紧密对齐,但这只是运气而已。

如果你想将文本与网格对齐,那么全部垂直放置的材料必须是 的倍数\baselineskip。您已设置长度,但图形似乎是任意高度,图像在缩放其宽度时具有其高度,并且标题似乎设置为不同的字体大小,因此图形不会是主体的倍数\baselineskip。因此,图形后的文本将脱离网格,并且与以下列的对齐将丢失。

强制图形大小的一种方法是使用,minipage并将其可选高度参数设置为的倍数\baselineskip,然后将\includegraphics和放在\caption其中。

有一些旨在帮助网格布局的软件包,可能会自动执行一些所需的测量。

相关内容