The Fundamental Box Model
In LaTeX, every visual component—whether a character, formula, or raster image—is treated as a rectangular container known as a box. Each box possesses a reference anchor point located on its lower-left edge. A baseline runs horizontally through this anchor. During horizontal typesetting, LaTeX aligns the baselines of successive characters and objects onto a single continuous line called the current baseline.
The geometric footprint of any box is defined by three measurements:
- Height: Distance from the reference point upward to the box's top edge.
- Depth: Distance from the reference point downward to the box's bottom edge.
- Width: Total horizontal span.
- Overall Height: Sum of height and depth, representing the physical extent from top to bottom.
Standard Image Importation
The graphicx package provides the core interface for embedding external visuals via the \includegraphics directive. By default, it attempts to locate the requested asset using the active driver's supported formats.
Compilation Drivers and Extension Handling
Modern TeX distributions route graphics processing through different backend engines depending on the compiler used:
- pdflatex / lualatex / xelatex: Directly ingest PDF, PNG, JPEG, and SVG formats without intermediate conversion.
- Legacy latex + dvips workflow: Primarily relies on Encapsulated PostScript (
.eps). Older systems may also resolve.ps,.gif, or compressed variants.
You can override default driver behavior at multiple levels. Global settings in graphics.cfg serve as the base layer. Class-level options in \documentclass take precedence, while package-loading options in \usepackage{graphicx} provide the highest priority override.
To streamline cross-compatibility, omit file extensions during import. LaTeX will automatically append the appropriate suffix based on the loaded driver:
\includegraphics{architecture} % Resolves to .eps, .pdf, or .png depending on engine
\includegraphics{flowchart} % Auto-extends based on active driver
Geometric Transformations
The inclusion command accepts numerous keys to modify dimensions, orientation, and viewport boundaries. The following table outlines primary parameters:
| Option Key | Functionality |
|---|---|
width |
Target horizontal dimension. |
height |
Target vertical dimension (from anchor to top). |
totalheight |
Target overall span (top to bottom). |
scale |
Multiplicative factor aplied to original dimensions. |
angle |
Rotation degree counter-clockwise around an origin point. |
origin |
Pivot coordinate for rotation. Defaults to the anchor point. Supports combinations like c (center), t/b/l/r (edges), or br (bottom-right). |
bb |
Explicit bounding box coordinates: llx lly urx ury. |
trim |
Marginal removal values: left bottom right top (in big points). Negative values expand the effective area. |
clip |
Toggles visibility of areas outside the declared viewport bounds. |
draft |
When enabled, bypasses disk I/O for faster previews. |
keepaspectratio |
Preserves intrinsic proportions during independent dimension adjustments. |
Practical application patterns for dimensional control:
\includegraphics[width=\linewidth]{data_viz.pdf}
\includegraphics[width=0.75\linewidth]{signal_plot.png}
\includegraphics[width={\linewidth-1.2in}]{schematic.eps}
Note that transformation order impacts the final output. Scaling followed by rotation differs from rotating then scaling. Comment out trailing spaces or lines to prevent unintended horizontal whitespace accumulation:
\begin{center}
\includegraphics[angle=45, totalheight=2cm]{icon_a.png}%
\includegraphics[totalheight=2cm, angle=45]{icon_a.png}
\end{center}
Spacing, Alignment, and Positioning
Nest visual assets within formatting environments to control placement precisely. The \centering switch behaves similarly to the center environment but avoids injecting extra vertical padding, making it safer inside figure or minipage containers.
Manage horizontal gaps using distribution primitives:
% Push object to the far right
Some preamble text.\hspace{\fill}\includegraphics[height=2cm]{logo.png}%
% Distribute two images symmetrically
\hfill\includegraphics{left_frame.png}\hfill\includegraphics{right_frame.png}\hspace*{\fill}
% Fixed typographic spacing
Label\quad\includegraphics{marker.png}\qquad Result
Vertical alignment across adjacent containers is achieved through optional arguments in minipage:
\begin{minipage}[t]{0.3\linewidth}% Top-aligned
Header content above\par
Main body text flows here...
\end{minipage}%
\begin{minipage}[b]{0.3\linewidth}% Bottom-aligned
Baseline touches the bottom margin regardless of internal height.
\end{minipage}
Path Resolution and Custom Rules
Telemetry searches for assets across configured directories. You can inject custom routes using:
\graphicspath{{assets/diagrams/}{exports/rendered/}}
Environment variables like TEXINPUTS also dictate search hierarchies during runtime execution. Prefixing a path with // enables recursive subdirectory scanning.
For non-standard file formats, register explicit conversion directives:
% Syntax: \DeclareGraphicsRule{ext}{type}{sizefile}{command}
\DeclareGraphicsRule{.myformat}{eps}{.myformat.bb}{convert #1.ps --output=#1.eps}
Omitting size metadata requires manual definition of the bb parameter during invocation.
Overlaying Annotations and Label Replacement
EpsFrag Workflow: Exchange placeholder strings in vector graphics with native LaTeX typography. Best suited for .eps sources compiled via dvi pipelines.
\usepackage{psfrag}
\psfrag{nodeA}{$\mathcal{H}_1$}
\psfrag{nodeB}[][]{$\nabla f(x)$}[0.85][-15]
\includegraphics{process_flow.eps}
OverPic Integration: Superimpose arbitrary markup onto raster or PDF images using relative or absolute coordinate systems.
\usepackage[abs,tics=10]{overpic}
\begin{overpic}[width=\linewidth,grid]{heatmap_base}
\put(52,38){\small \textbf{Critical Threshold}}
\put(80,65){\color{red} $\Delta t > 0.5$ s}
\end{overpic}
Enable grid visualization during debugging, then disable it for final publication.
Caching and Reuse Strategies
Repeatedly loading identical assets increases compilation overhead. Wrap static visuals in saveboxes to load them once and reference them freely:
\newsavebox{\cachedBadge}
\sbox{\cachedBadge}{\includegraphics[height=1.8cm]{seal_vector.pdf}}
\section{Introduction}
Insert badge here: \usebox{\cachedBadge}
\section{Conclusion}
Reuse elsewhere: \usebox{\cachedBadge}
Page Margins, Headers, and Background Watermarks
Integrate illustrations into header/footer zones using fancyhdr. Because headers strip vertical context, wrap images in boxes to preserve alignment:
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[L]{\usebox{\cachedBadge}}
\fancyhead[C]{\large Quarterly Report}
\fancyfoot[C]{\thepage}
% Override default plain style for chapter start pages
\fancypagestyle{plain}{%
\fancyhead{}%
\fancyhead[C]{\raisebox{-0.5\height}{\usebox{\cachedBadge}}}%
\fancyfoot[C]{\thepage}%
\renewcommand{\headrulewidth}{0pt}%
}
For full-page background overlays, leverage eso-pic hooks that execute during the shipout phase:
\usepackage{eso-pic}
\newsavebox{\bgWatermark}
\sbox{\bgWatermark}{\includegraphics[width=0.6\paperwidth]{confidential_stamp}}
\AddToShipoutPictureBG*{%
\AtPageCenter{%
\parbox{\paperwidth}{%
\centering\vspace*{3in}\usebox{\bgWatermark}%
}%
}%
}
Synchronized Multi-Image Arrangements
Side-by-Side Configuration:
\begin{figure}[htbp]
\begin{minipage}[b]{0.48\linewidth}
\centering
\includegraphics[width=\linewidth]{experiment_alpha.pdf}
\caption{Baseline performance metrics}
\label{fig:alpha}
\end{minipage}\hfill
\begin{minipage}[b]{0.48\linewidth}
\centering
\includegraphics[width=\linewidth]{experiment_beta.pdf}
\caption{Optimized resource distribution}
\label{fig:beta}
\end{minipage}
\end{figure}
Stacked Vertical Layout:
\begin{figure}[htbp]
\centering
\begin{minipage}[b]{0.65\textwidth}
\centering
\includegraphics[width=\textwidth]{day_cycle_graph.pdf}
\caption{Diurnal variation pattern}
\label{fig:day}
\end{minipage}
\vspace{0.8em}
\begin{minipage}[b]{0.65\textwidth}
\centering
\includegraphics[width=\textwidth]{night_cycle_graph.pdf}
\caption{ nocturnal adjustment trends}
\label{fig:night}
\end{minipage}
\end{figure}