Latex Packages For Mathematical Typesetting: A Review Of The Best Options
Core Problem: Typesetting Complex Mathematics
LaTeX excels at typesetting mathematics, but some packages provide additional functionality to make mathematical typesetting even easier. This article reviews the best LaTeX packages for writing formulas, aligning equations, drawing graphs, including symbols, and more.
Powerful Packages for Writing Formulas
The amsmath package provides common tools like matrices and multidimensional sums to empower users to typeset complex mathematics. For example:
\usepackage{amsmath} \begin{equation} \mathbf{A} = \begin{pmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{pmatrix} \end{equation}
With the amsmath package, users can typeset professional-looking matrices with ease. The pmatrix environment generates a matrix with parentheses instead of brackets, with proper spacing between rows and columns. This is just one of many useful features in amsmath.
Flexibility with Multline Environments
The amsmath package also provides the multline environment for equations that are too long to fit on one line. For example:
\begin{multline} a+b+c+d+e+f+g+h+i+j+k\\ +l+m+n+o+p+q+r+s+t+u+v \end{multline}
The multline environment automatically splits the long equation over multiple lines at the designated point while alignment the equals sign. This creates a professional, easy-to-read layout.
Typesetting Multi-Row Fractions
The frac environment enables proper formatting of multi-row fractions for complex inline equations:
$k = \frac{1}{ \frac{1}{ \frac{1}{x}+a}+b}+c$
Without amsmath, creating nested fractions with optimal line-breaking and alignment requires manual adjustments. The frac environment handles this automatically.
Scripting with Stackrel
The stackrel command makes light work of adding superscripts and subscripts to math operators:
$\stackrel{\textstyle-}{x}+\stackrel{\textstyle-}\int$
As shown, stackrel ensures the correct relative sizing of subscripted elements compared to the main symbol. The command allows up to two arguments - one superscript and one subscript.
Spanning Operators with Spacing
When using integral, sum, or other operators that span multiple lines, the amsmath package ensures proper spacing above and below the operator:
\documentclass{article} \usepackage{amsmath} \begin{document} \begin{equation*} \sum_{i=1}^{n} x_{i} \end{equation*} \end{document}
Without amsmath, the spacing around large operators would be uncomfortably tight. amsmath's pre-defined spacing creates a clean, professional look.
Native Equation Numbering
The amsmath package allows equations to be numbered sequentially right within LaTeX:
\begin{equation} x= y \end{equation} \begin{equation} y = z \end{equation}
Numbered equations are essential in scientific documents for reference purposes. amsmath provides easy-to-use tools to handle numbering automatically.
Fine-Tuned Control Spacing
For precise control over equation spacing, amsmath provides commands like \qquad, \quad, \enspace, and more to tweak the space between elements:
$x \qquad y \quad z$
Being able to fine-tune spacing makes it possible to achieve the perfect alignment within complex mathematical expressions.
Additional Notable Environments
Other handy amsmath environments include:
- align - Aligns sets of equations at the equals sign
- gather - Similar to align but does not align at a specific point
- split - For breaking large expressions across multiple lines
Flexible Alignment with eqnarray
While amsmath provides extensive alignment functionality through environments like align, users requiring even more control over equation layout can use the eqnarray environment:
\begin{eqnarray} x &=& y + 2 \\ z &=& 2y \end{eqnarray}
With eqnarray, users can align equations at any designated point, not just the equals sign. This environment can be used to achieve complex multi-line displays:
\begin{eqnarray} x + 3 &=& y - 2 + 4 && \text{for } x < 0 \\ x + 3 &=& y + 5 && \text{for } x \ge 0 \end{eqnarray}
For complete flexibility over equation alignment, eqnarray is a powerful choice.
Precise Spacing Control
Like amsmath, eqnarray provides fine-grained spacing control between elements:
\setlength\arraycolsep{2pt} \begin{eqnarray} x &=& y \\ z &=& w \end{eqnarray}
The \arraycolsep length controls the space between equation columns. This level of control over alignment and spacing helps optimize the reading experience.
Advanced Column Specifiers
Clamping symbols like &, &&, and \displaystyle further tune the alignment of eqnarray:
\begin{eqnarray} A + B &=& C \\ && D + E &=& F \end{eqnarray}
The && forces the second line to be aligned with the equals sign on the first line, creating an "align at" effect. The possiblities are nearly endless for mathematical layouts.
Automatic Equation Numbering
Like with amsmath environments, users can number equations typeset with eqnarray:
\begin{eqnarray} x &=& y \\ z &=& 2y \end{eqnarray} \end{pre}Referencing complex formulas in-text for explanations or proofs relies heavily on equation numbering. As such, automatic numbering is essential in documents using eqnarray.
Multiline Equations
Multiline equations can be created with ease:
\begin{eqnarray} x + y + z + a + b &=& 10 \\ &=& 5 + 5 \end{eqnarray}Spacing and indentation is automatically adjusted across lines, simplifying the process of typesetting long, complex expressions.
Additional Tips & Tricks
Further control over eqnarray output can be achieved by manipulating spacing, columns separators, row separators and other elements. The eqnarray environment enables fine-tuned mathematical typesetting.
Drawing Graphs Gracefully with TikZ
The TikZ package is useful for drawing a wide variety of graphs and diagrams directly within LaTeX:
\usepackage{tikz} \begin{tikzpicture} \draw [thick, ->] (0,0) -- (2,3); \end{tikzpicture}This produces a professional-quality line graph without relying on external tools. TikZ avoids problems with resolution or integration that often arise when trying to include externally-generated graphs.
Basic Shapes
TikZ contains built-in support for shapes like circles, rectangles, arrows and more:
\filldraw[fill=blue!20] (0,0) rectangle (2,2); \draw (0,0) circle (2cm);These basic shapes make it easy to add simple diagrams without much syntax. Shapes can be customized with tools like clipping, fading, sloping, and arrows.
Coordinate Systems
TikZ uses Cartesian coordinate systems for placing elements:
\draw (1,3) -- (3,-1);In addition to Cartesian coordinates, TikZ supports polar coordinates for added flexibility when graphing functions.
Graphing Functions
TikZ can graph various equations and plot data sets:
\draw [domain=0:4] plot (\x, {\x}); \draw [mark=x] plot coordinates {(0,0) (1,3) (2,1)};Along with built-in support for basic plots, data visualization libraries like pgfplots can be used for more advanced graphs.
Labels, Arrows & Symbols
Annotations like labels, arrows, and tick marks help highlight important aspects of graphs:
\draw [<->] (0,3) -- node [above] {$x$} (3,3); \draw (0,2) -- (0,0) node [below] {$0$};TikZ comes equipped with tools for augmenting graphs without cluttering up the LaTeX document itself.
Precision Drawing
For maximum precision, TikZ supports incrementally constructed paths instead of relying solely on absolute coordinates:
\draw (0,0) -| (3,3); \draw (0,0) |- (3,3);The -| and |- operators draw horizontal and vertical lines between the specified points. This facilitates programmatic drawing for complex diagrams.
Reusable Styles
TikZ styles allow customization and reuse of graphical properties:
\tikzset{ mydot/.style={ fill=yellow, circle, inner sep=2pt } } \node [mydot] at (0,0) {};Defining styles helps maintain consistency in large documents and saves duplication efforts through reuse.
Handy Mathematical Symbols with amssymb
The amssymb package provides a collection of mathematical symbols not found in the standard LaTeX distribution:
\usepackage{amssymb} \Game, \eth, \vartrianglerightThis enhances LaTeX's already substantial mathematical typesetting capabilities.
Binary Operators
Some notable amssymb binary operators include:
- \Cap - Intersection operator \Cap
- \Cup - Union operator \Cup
- \dotplus - Dot plus \dotplus
These operators help simplify notation for set theory and other advanced mathematics.
Relations
Amssymb also provides convenient relational operators like:
- \lessapprox - Less than or approximatel equal to \lessapprox
- \gtrapprox - Greater than or approximately equal to \gtrapprox
- \precsim - Precedes or equals \precsim
Including these symbols enhances math readability while reducing document clutter.
Arrows
Some notable amssymb arrows include:
- \hookrightarrow - Right harpoon over left harpoon \hookrightarrow
- \dashrightarrow - Dash arrow \dashrightarrow
- \rightsquigarrow - Right squig arrow \rightsquigarrow
These provide new options for denoting relationships and mappings in mathematical expressions.
Variable-sized Symbols
Amssymb contains useful variable-sized operators like summation and integration:
\sum \int \prod
As displayed equations become more complex across lines, having variable symbols ensures optimum fit and spacing.
Additional Symbols
Hundreds of additional mathematical symbols are available in amssymb across various categories including:
- Negated symbols like \nless
- Greeked letters like \digamma
- Modifier letters like \mathring
Amssymb contains everything from simple operators to obscure technical symbols.
Additional Useful Packages
While amsmath, eqnarray, TikZ and amssymb provide core mathematical typesetting functionality, some additional packages warrant consideration:
nccmath for Multicolumn Equations
The nccmath package improves amsmath's native handling of multicolumn layouts with equations that span column widths:
\usepackage{nccmath} \begin{multline*} a+b+c+d+e \\ +f+g+h \end{multline*}
Without nccmath, centered equations structured this way across multicol formats often produce misaligned elements. nccmath resolves this issue.
mathabx for Extra Mathematical Alphabets
The mathabx package provides additional mathematical alphabets like Euler Fraktur:
\usepackage{mathabx} {\eulerfrak ABCDEF}
For users requiring specialized mathematical fonts, mathabx saves the effort of loading multiple font packages.
Other Notable Options
Some other useful mathematical typesetting packages include:
- empheq - For emphasizing key equations
- Physics package - Common physics notation
- mathtools - Extends amsmath capabilities
Conclusion
Math typesetting in LaTeX provides users with publication-quality equation layout not achievable in traditional word processors. While the native LaTeX distribution already includes solid math support through the LaTeX math mode, certain packages like amsmath significantly augment these core capabilities with specialized tools and environments for complex formulas and alignment options.
For graphs and diagrams, TikZ offers a LaTeX-native solution that avoids file format and resolution challenges that often accompany external graphing package outputs. To access more mathematical symbols, the amssymb package saves users from loading multiple font and symbol packages.
For niche math typesetting needs, packages like nccmath and mathabx fill gaps in functionality around multicolumn equations and specialized mathematical alphabets, respectively.
By leveraging these packages together, LaTeX provides users with a comprehensive, fully-integrated toolchain for publishing professional scientific papers involving sophisticated mathematical expressions as well as diagrams spanning topology, geometry, statistics, physics and more. The packages reviewed here represent the best mathematical extensions to bring LaTeX's high-quality typesetting to advanced technical documents.