Mastering Page Layout With Latex Floats And Figures
Controlling LaTeX Figure and Table Placement
LaTeX offers sophisticated tools for controlling the placement of figures and tables within your document. Unlike word processors that arbitrarily place figures based on your cursor location, LaTeX floats allow you to determine optimal positioning while maintaining proper page layout and typesetting.
In this article, we will cover the core concepts, features, and techniques in LaTeX for mastering control over figure, table, and other float placement in your documents.
Understanding float environments and LaTeX page layout
In LaTeX, figures, tables, algorithms, listings, and other content are contained within predefined float environments. These include:
- figure: For diagrams, illustrations, plots, photos, etc.
- table: For tabular data
- algorithm: For algorithms and code
Floats behave differently from normal text content. LaTeX attempts to place them in optimal positions on the page based on the available space and their size. This allows LaTeX to seamlessly wrap text around floats without resorting to extensive manual adjustments.
However, this automated behavior can sometimes cause floats to appear out-of-order or on suboptimal pages. Mastering floats requires understanding how LaTeX makes placement decisions and providing guidance through placement specifiers.
Placing figures and tables at the top or bottom of pages
The simplest float placement control is specifying whether a float should appear at the top or bottom of the page where LaTeX decides to place it. This is done using placement specifiers:
t
: Places the float at the top of the page.b
: Places the float at the bottom of the page.
For example:
\begin{figure}[t]
\includegraphics[width=\linewidth]{figure.png}
\caption{A figure placed at the top of the page.}
\end{figure}
The [t]
specifier tells LaTeX to place this figure only at the top, allowing text to wrap around below it. Similarly, [b]
would force the bottom.
Using the figure and table placement specifiers
In addition to t
and b
, LaTeX provides commonly used float placement specifiers:
h
: Places the float here, at the precise location in the text where it is declared.!
: Overrides LaTeX's automated placement to force the float to appear where specified. Allows manual control over the layout.H
: Places the float right Here, at the precise location, likeh
. But if there is insufficient space, permits letting it float to the top or bottom instead.
Some examples of using these:
\begin{table}[h]
\begin{table}[!]
\begin{table}[H]
The [h]
and [H]
specifiers should be used sparingly, only when the precise location of a float is critical. Relying too much on manual placements can negatively impact LaTeX's typesetting quality.
Fine-tuning float parameters for optimal control
In addition to placement specifiers, LaTeX offers parameters to fine-tune exactly where and how floats are placed:
\renewcommand{\topfraction}
: Controls the maximum fraction of the page a float can take up before forcing a new page.\renewcommand{\bottomfraction}
: The maximum fraction for bottom floats.\renewcommand{\textfraction}
: The minimum fraction of text there must be on a float page.\renewcommand{\floatpagefraction}
: The minimum fraction of floats for forcing dedicated float pages.
Tuning these parameters allows perfect alignment between your textual and graphical content across pages. Set them in your document preamble before \begin{document}
. Typical values range between 0.5 and 1.
Keeping figures and tables in sequence
Since LaTeX automatically places floats based on space, they can easily appear out-of-order. Several techniques can help keep them numbered sequentially:
- Place all floats after their first text reference
- Use the
H
placement specifier - Set the
floatsintext
package option - Reduce float sizes to improve space flexibility
Small source code changes assess big improvements in sequential float placement. Focus floats near their first textual citation for minimal disjointedness.
Troubleshooting displaced and out-of-order floats
Dealing with misplaced floats takes experimentation and fine-tuning. Try these troubleshooting steps when figures, tables or listings float away:
- Use more explicit placement specifiers e.g.
[H]
- Tune the fraction parameters as described above
- Set
\usepackage{flafter} \flafter{float}
to pull each stray float back - Adjust content to reduce tight page packing near floats
- Enable
\interlinepenalty=10000
globally or locally to avoid widows/orphans
Finding the right balance through troubleshooting will enable all floats to obey their specified placements.
Strategies for multi-page floats and landscape figures
Large, complex tables and very wide figures often require an entire page. LaTeX offers specialized environments for these cases:
landscape
: Rotates entire pages containing the figure or tableContinuedFloat
: Splits content over multiple float pagessubfig
: Creates subfigures to partition a single figurelongtable
: Breaks tables cleanly across pages
Additionally, using the afterpage
package can ensure no mid-paragraph page breaks right before the float begins. This keeps the presentation clean.
With these multi-float environments and tweaked page breaking, even extensive graphical content can be neatly placed.
Customizing captions and special float content
LaTeX offers commands to customize captions, cross-referencing, and notes around floats:
\caption
: Specifies the figure or table number and caption text\label
: Adds identifiers to refer to floats in text\ref
: Inserts references to labels\footnote
: Attaches footnote markers and text
The caption
and wrapfig
packages add further abilities like styling, continued captions, margin content, and more.
With practice, aesthetically perfect, semantically tagged captions can augment all graphical content.
Example code walkthroughs for common figure and table layouts
Let's examine source code excerpts for several frequently occurring float layout needs:
Two images side-by-side
\begin{figure*}
\begin{minipage}{0.48\textwidth}
\includegraphics[width=\linewidth]{img1.png}\caption*{(a) Image 1}
\end{minipage}\hfill
\begin{minipage}{0.48\textwidth}
\includegraphics[width=\linewidth]{img2.png}\caption*{(b) Image 2}
\end{minipage}
\caption{Two images placed side-by-side.}
\end{figure*}
The figure*
span both column widths. minipage
partitions each image, captions, then the full \caption
cites both.
Table broken over pages
\begin{longtable}{ccc}
\caption{A lengthy table split across pages}\\
\toprule
Col 1 & Col 2 & Col 3\\
\midrule
\endfirsthead
\caption[]{(continued)}\\
\toprule
Col 1 & Col 2 & Col 3\\
\midrule
\endhead % All subsequent pages
\bottomrule
\endlastfoot
\end{longtable}
The structural markup here cleanly paginates the table with headings, footers, and "(continued)" caption.
With similar examples and structural patterns, practically any float content can be tamed into place.
Conclusion
Controlling float placement is key to professional document layout with LaTeX. Through mastering concepts like specifiers, parameters, environments, and troubleshooting techniques, extraordinarily robust page design is possible.
By leveraging floats' automated positioning while providing manual guidance, LaTeX authors can produce perfectly structured, sequenced figures, algorithms, tables and illustrations.