
Ich versuche, ein Layout für ein zweispaltiges Buch mit einem bestimmten Seitenlayout (mit dem geometry
Paket angegeben) und mit demText in beiden Spalten aneinander ausgerichtet. Dazu habe ich bereits die Längen der Abstände zwischen Absätzen und vor und nach Floats angepasst:
%%% 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}
und es funktioniert gut für das Standard-Seitenlayout*:
Sobald ich jedoch das Seitenlayout, insbesondere den Fließtext, mit dem geometry
Paket ändere, funktioniert es nicht mehr.
Kann mir jemand erklären, warum das passiert und wie ich es beheben kann?
Hier ist das 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}
Antwort1
Wenn man Ihr Beispiel betrachtet, gibt es nichts, was die Ausrichtung der Textzeilen an Ihrem Raster erzwingen könnte. Auch wenn die Zeilen in einem Fall möglicherweise eng ausgerichtet erschienen, war das reines Glück.
Wenn Sie Text an einem Raster ausrichten möchten, dannalleDas platzierte vertikale Material muss ein Vielfaches von sein \baselineskip
. Sie haben die Längen festgelegt, aber die Abbildung scheint eine beliebige Höhe zu haben, das Bild hat die Höhe, die es hat, wenn seine Breite skaliert wird, und die Überschrift scheint auf eine andere Schriftgröße eingestellt zu sein, sodass die Abbildung kein Vielfaches des Hauptteils ist \baselineskip
. Der Text nach der Abbildung liegt also außerhalb des Rasters und die Ausrichtung mit der folgenden Spalte geht verloren.
Eine Möglichkeit zum Erzwingen der Größe der Abbildung wäre die Verwendung von , minipage
wobei das optionale Höhenargument auf ein Vielfaches von festgelegt ist \baselineskip
, und die Elemente \includegraphics
und \caption
darin einzufügen.
Es gibt Pakete, die bei der Rastergestaltung helfen und wahrscheinlich einige der erforderlichen Messungen automatisieren.