Las formulas en display a menudo necesitan mas de una linea. Se parte una formula larga en varias lineas, se alinean los signos igual, se asigna un numero consecutivo a cada linea y luego se hace referencia a el; casi toda esta maquinaria multilinea la proporciona el paquete amsmath. Esta pagina recorre equation con numero, los entornos de alineacion align, gather, multline y split, las definiciones por casos cases y el control de numeros (\notag, \tag, subequations). Las entradas basicas al modo matematico en linea y en display se cubren en “Math mode basics”; aqui avanzamos un nivel hacia varias lineas y numeracion.
Primero carga amsmath
Todos los entornos de esta pagina salvo equation los proporciona el amsmath package. Basta una linea en el preambulo. En cualquier documento nuevo que use matematicas, cargar amsmath es el estandar de facto: reune los entornos de ecuaciones en display, la alineacion y el control de numeracion.
\usepackage{amsmath}amsmath amplia mucho el conjunto de estructuras de ecuaciones en display mas alla de LaTeX basico. Junto al entorno equation (que ya existe en LaTeX simple) agrega align y align*, gather y gather*, multline y multline*, alignat y alignat*, flalign y flalign*, y split. Ten en cuenta que no debes dejar una linea en blanco dentro de estos entornos: se interpreta como un salto de parrafo y produce un error. Para poner los numeros de ecuacion a la izquierda usa \usepackage[leqno]{amsmath}; a la derecha (el valor predeterminado en escritura horizontal), [reqno]; y para displays alineados a la izquierda, la opcion [fleqn].
Una sola linea numerada — equation
El punto de partida para las matematicas en display es el equation environment. Coloca su contenido en una linea propia y anade automaticamente un numero consecutivo en el margen derecho (el valor predeterminado en escritura horizontal). El numero lo controla el contador equation; con \label{…} puedes referirte a el desde el texto mediante \ref{…} o \eqref{…} (las referencias se detallan mas abajo). Si simplemente no quieres numero, usa equation* con estrella, equivalente al displaymath de LaTeX basico (\[ … \]): un display sin numerar.
\begin{equation}
\label{eq:euler}
e^{i\pi} + 1 = 0
\end{equation}Esto muestra la identidad de Euler centrada en su propia linea, con un numero como (1) en el margen derecho de esa linea (es el conteo consecutivo del documento, no necesariamente 1). equation da un numero a una linea de formula. Para una formula que no cabe en una linea, o para varias formulas que quieras alinear, usa los entornos de alineacion de abajo. Los fundamentos de \[ … \] y de los displays sin numerar se cubren en la pagina hermana “Math mode basics.”
Alinear varias lineas — align y gather
Para apilar varias formulas verticalmente, la herramienta habitual es el entorno align. Separa las lineas con \\ y coloca un & en el punto que quieras alinear. Por convencion, el & va justo antes de una relacion, como un signo igual o una desigualdad, para que las relaciones se alineen verticalmente. La clave es poner & antes de la relacion (el antiguo eqnarray, tratado mas abajo, lo pone despues y estropea el espaciado). align numera cada linea; align* con estrella no anade numeros.
\begin{align}
(x + y)^2 &= x^2 + 2xy + y^2 \\
(x - y)^2 &= x^2 - 2xy + y^2
\end{align}La salida apila las dos formulas verticalmente, con ambos signos igual en exactamente la misma posicion horizontal, y con un numero en el margen derecho de cada linea. El material a la izquierda de & (el lado izquierdo) se alinea a la derecha y el material a su derecha (el lado derecho) a la izquierda, de modo que ambos lados se encuentran limpiamente en el signo igual. No pongas \\ despues de la ultima linea: anadiria espacio no deseado.
align tambien puede colocar varias formulas una junto a otra. El & sirve tanto como marca de alineacion como separador de columnas: alternas “& antes de la relacion” con “& antes de la siguiente formula.” En otras palabras, cada formula se escribe como “parte alineada a la derecha & relacion con parte alineada a la izquierda”, y otro & la separa de la formula siguiente.
\begin{align}
x &= y & X &= Y & a &= b + c \\
x' &= y' & X' &= Y' & a' &= b \\
x + x' &= y + y' & X + X' &= Y + Y' & a'b &= c'b
\end{align}La salida coloca tres pares de formulas en tres columnas a lo ancho de la pagina, con los signos igual alineados dentro de cada columna, y un numero por fila. amsmath inserta automaticamente un espacio fijo entre las columnas.
En cambio, cuando no necesitas alineacion y solo quieres centrar varias formulas, usa el entorno gather. En gather no hay alineacion con &; cada linea se centra de manera independiente. Las lineas se separan con \\ y cada una recibe un numero (gather* si no quieres ninguno). Una linea de gather puede contener a su vez un split (abajo) para partir una formula en varias lineas.
\begin{gather}
a^2 + b^2 = c^2 \\
e^x = \sum_{n=0}^{\infty} \frac{x^n}{n!}
\end{gather}La salida centra cada una de las dos formulas en su propia linea (sus simbolos no se alinean entre si), con un numero en el margen derecho de cada linea. Una comparacion util: align “alinea en la relacion”, mientras que gather “solo apila centrado”.
Partir una formula larga — multline y split
Hay dos entornos para partir una sola formula que no cabe en una linea: multline y split. Ambos se diferencian de align/gather en que dan un numero a esa unica formula.
multline no alinea. En su lugar coloca la primera linea a la izquierda y la ultima a la derecha, con las lineas intermedias centradas. Las lineas se separan con \\. El numero de toda la formula aparece en la ultima linea (o en la primera con la opcion leqno). Como multline da un numero a una formula, no debes suprimir lineas individuales con \notag. Para empujar una linea intermedia hacia un lado, usa \shoveleft{…} o \shoveright{…} y pasa toda la linea (sin el \\ siguiente) como argumento. La forma sin numerar es multline*.
\begin{multline}
a + b + c + d + e + f \\
+ g + h + i + j + k + l + m + n
\end{multline}La salida parte la suma larga en dos lineas, con la primera parte a + … + f alineada a la izquierda y la continuacion + g + … + n alineada a la derecha, y un unico numero para toda la formula. Cualquier linea intermedia se centra. multline no usa & de alineacion: solo marcas los puntos de corte con \\.
Cuando quieras que las lineas partidas queden alineadas, usa split. Como align, split alinea en &, pero permite solo una columna de alineacion (un & por linea) y no tiene numero propio. Se coloca dentro de una estructura numerada como equation (o align/gather), que proporciona un unico numero para todo. split no puede usarse dentro de multline.
\begin{equation}
\label{eq:cosh}
\begin{split}
\cosh x &= \frac{e^x + e^{-x}}{2} \\
&= 1 + \frac{x^2}{2!} + \frac{x^4}{4!} + \cdots
\end{split}
\end{equation}La salida parte una formula en dos lineas con los signos igual alineados, y con el unico numero proporcionado por equation (centrado verticalmente por defecto). split es la herramienta estandar para alinear en el signo igual las lineas de una formula partida, contraparte de multline (que no alinea). El cuerpo de un split debe ocupar todo el cuerpo de la estructura envolvente; solo pueden convivir con el comandos que no producen salida, como \label.
| Entorno | Formulas / numeros | Alineacion | Uso principal |
|---|---|---|---|
equation | Una / uno | No | Una sola linea en display |
align | Varias / por linea | Si, en & | Apilar y alinear en relaciones |
gather | Varias / por linea | No (cada una centrada) | Apilar centrado, sin alinear |
multline | Una / uno | No (izquierda→derecha) | Partir una formula larga, sin alinear |
split | Una / ninguno (lo da el contenedor) | Una columna & | Alinear las lineas de una formula |
Definiciones por casos — cases
Para definir una funcion por casos, usa el entorno cases. Se anade automaticamente una llave izquierda grande {; dentro de cada fila un & separa el “valor” de la “condicion”, y las filas se separan con \\. Las palabras de una condicion (“if …”, etc.) saldrian inclinadas y con espaciado apretado en modo matematico, asi que envuelvelas en \text{…} para que queden rectas y con el espaciado correcto. cases no tiene numero propio, por lo que normalmente se coloca dentro de equation para dar un unico numero al conjunto.
\begin{equation}
|x| =
\begin{cases}
x & \text{if } x \ge 0, \\
-x & \text{if } x < 0.
\end{cases}
\end{equation}La salida muestra una llave izquierda grande con dos filas a su derecha: x (condicion “if x ≥ 0”) y −x (condicion “if x < 0”), y un unico numero de equation. La columna de valores y la columna de condiciones se alinean a la izquierda. Ten en cuenta que cases compone su contenido en text style (tamano compacto); para mostrar fracciones grandes, usa el entorno dcases del paquete mathtools, que compone en display style.
Controlar numeros — \notag, \tag, subequations
En los entornos numerados como align y gather, cada linea se numera automaticamente. amsmath ofrece formas de ajustarlo linea por linea.
- Quitar el numero de una sola linea: coloca
\notag(o el sinonimo\nonumber) antes del\\de esa linea.\notagno puede usarse fuera de un entorno en display. - Fijar o sobrescribir un numero tu mismo:
\tag{…}compone lo que le des como numero, en lugar del automatico (los parentesis se anaden automaticamente).\tag*{…}no anade parentesis e imprime el texto literalmente. - Agrupar formulas relacionadas como 1a, 1b, …: al envolverlas en el entorno
subequations, las formulas internas se numeran como (1a), (1b), …, el numero padre mas una letra.
\begin{align}
y &= (x + 1)^2 \notag \\
&= x^2 + 2x + 1 \\
E &= mc^2 \tag{$\star$}
\end{align}En esta salida, la primera linea queda sin numero gracias a \notag, la segunda conserva su numero automatico normal, y la tercera recibe (⋆) en lugar del numero automatico. Al combinar \notag y \tag, puedes dejar sin numerar las lineas intermedias de una derivacion y numerar solo la linea de conclusion.
Para reunir formulas relacionadas bajo un mismo numero, envuelvelas en subequations. Si la formula numerada anterior era (4), las formulas del grupo pasan a ser (4a), (4b), (4c), …. Un \label colocado justo despues de \begin{subequations} apunta al numero padre (4), no al hijo (4a).
\begin{subequations}
\label{eq:max}
\begin{align}
\nabla \cdot \mathbf{E} &= \frac{\rho}{\varepsilon_0} \label{eq:gauss} \\
\nabla \cdot \mathbf{B} &= 0
\end{align}
\end{subequations}La salida alinea las dos formulas en el signo igual y las numera como (4a) y (4b): el numero padre mas una letra (el numero padre es el conteo consecutivo del documento). Entonces \eqref{eq:gauss} produce (4a), mientras que \eqref{eq:max} produce (4), que representa todo el grupo.
Referencias posteriores — \label y \eqref
Etiqueta una formula numerada con \label{…} y podras citarla por numero desde el texto. \ref{…} devuelve el numero en si (por ejemplo 3.2), mientras que \eqref{…} de amsmath anade los parentesis y devuelve (3.2). Los parentesis de \eqref siempre se componen rectos, sin importar la fuente circundante, lo que hace que \eqref sea comodo para referencias a ecuaciones. En un entorno multilinea, coloca \label en la linea cuyo numero quieres (por linea en align; por formula hija en subequations).
式~\eqref{eq:euler} より $e^{i\pi} = -1$ が従う。
By~\eqref{eq:euler}, we have $e^{i\pi} = -1$.La salida inserta, por ejemplo, “By equation (1), …”: el numero de la formula etiquetada como eq:euler, entre parentesis, dentro del texto. Para resolver referencias normalmente se compila dos veces, porque las referencias cruzadas lo requieren. El mecanismo general de \ref/\label se cubre en la pagina “Cross-references”. Para reiniciar la numeracion por capitulo o seccion (obteniendo (1.1), (2.1), …), escribe \numberwithin{equation}{section} en el preambulo. La apariencia del numero la controla el comando \theequation, cuyo valor predeterminado es \arabic{equation} en article y \thechapter.\arabic{equation} (numero de capitulo mas conteo consecutivo) en book/report. Para cambiar el formato directamente, redefinelo, por ejemplo, con \renewcommand{\theequation}{\thesection.\arabic{equation}}.
Evita eqnarray
Los documentos antiguos a veces usan eqnarray (y eqnarray*) para matematicas multilinea. Este entorno es anterior a amsmath, pero hoy no deberias usarlo. Su peor defecto es el espaciado alrededor de las relaciones: eqnarray inserta espacios anormalmente anchos a ambos lados de un signo igual, y ese espaciado no coincide con el de otros entornos matematicos. Peor aun, con lineas largas el numero de ecuacion puede sobreimprimirse sobre el texto, y \qedhere de los paquetes de teoremas no funciona dentro de el.
Tanto el manual oficial de amsmath como la referencia de LaTeX recomiendan evitar eqnarray y usar align (para alinear varias formulas) o equation + split (para partir una sola formula). Tambien importa donde va el &: la familia align pone & antes de la relacion, mientras que eqnarray fue disenado para ponerlo despues, parte de la razon por la que su espaciado falla. Para trabajo nuevo, elige sin dudar los entornos de amsmath.