
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
。因此,圖形後面的文字將脫離網格,並且與下一列的對齊將丟失。
強制調整圖形大小的一種方法是使用 a ,minipage
並將其可選高度參數設為 的倍數\baselineskip
,並將\includegraphics
和放在\caption
其中。
有些軟體套件旨在幫助網格佈局,可能會自動執行一些所需的測量。