我正在尝试为具有特定页面布局(使用包指定)的双栏书籍设置布局,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
其中。
有一些旨在帮助网格布局的软件包,可能会自动执行一些所需的测量。