
Tengo varias ecuaciones cortas y quiero mostrarlas en dos columnas. Esencialmente:
A = B (1) || C = D (2)
mi = F (3) || GRAMO = H (4)
Primero probé el flalign
entorno (preferiría esto antes que align
, pero no es necesario) pero no pude numerar las ecuaciones como quiero. El align
entorno trata cada fila como una ecuación.
Ejemplo:
\documentclass{article}
\usepackage{mathtools}
\usepackage{amsmath}
\begin{document}
\begin{flalign}
A = & B & C = & D \\
E = & F & G = & H
\end{flalign}
\end{document}
Otro enfoque fue un multicolumn
entorno simple, con un salto de columna forzado:
\documentclass{article}
\usepackage{mathtools}
\usepackage{amsmath}
\usepackage{multicol}
\begin{document}
\begin{multicols}{2}
\begin{align}
A = & B \\
E = & F
\end{align}
\columnbreak
\begin{align}
C = & D \\
G = & H
\end{align}
\end{multicols}
\end{document}
Sin embargo, existen múltiples problemas:
- Las ecuaciones parecen estar fuera de lugar verticalmente.
- La numeración es vertical y no horizontal (esto sería aceptable para mí)
Le agradecería cualquier ayuda en esto.
Respuesta1
Creo que sólo deberías numerar las ecuaciones si tienes la intención de hacer referencia a ellas más adelante, así que, de acuerdo con esta filosofía, ¿por qué no definir una macro que inserte el número de la ecuación y también cree la etiqueta?
\newcommand\Label[1]{&\refstepcounter{equation}(\theequation)\ltx@label{#1}&}
Esto primero incrementa el equation
contador, lo imprime y luego hay algunos trucos para crear la etiqueta (los entornos amsmath imprimen mensajes de error cuando aparecen varias etiquetas en una línea y debemos evitar esto). Debido a @
esto es necesario envolverlo por dentro \makeatletter...\makeatother
.
Posiblemente imprudentemente, he incluido &
's dentro de la macro y, por lo tanto, asumí implícitamente que \Label
siempre se usará dentro de algo como un align*
entorno; tenga en cuenta que *
no desea que el entorno proporcione etiquetas adicionales. Por otro lado, requirió un poco de esfuerzo extra para evitar align*
dar un error (ya que align*
suprime los números de ecuación), por lo que esta macro no funcionará fuera de un entorno de alineación ams.
El uso de esta macro proporciona:
Aquí está el código completo:
\documentclass{article}
\usepackage{mathtools}
\usepackage{amsmath}
\makeatletter
\newcommand\Label[1]{&\refstepcounter{equation}(\theequation)\ltx@label{#1}&}
\makeatother
\begin{document}
\begin{align*}
A &= B \Label{one}& C &= D \Label{two}\\
E &= F \Label{three}& G &= H \Label{four}
\end{align*}
See equations \ref{one}, \ref{two}, \ref{three} and \ref{four}.
\end{document}
Como dije anteriormente, probablemente no sea prudente colocar los dos &
dentro de la \Label
macro, ya que oculta parte de la estructura en el align*
entorno, lo que eventualmente podría confundir a alguien.
Por cierto, esto funciona igualmente bien con flalign*
los entornos.
Respuesta2
No puedo agregar un comentario a la respuesta, por lo que lo agrego como respuesta a cualquier otra persona que tenga un problema similar al \Label
usar solo la primera letra.
Agregué una variable ficticia \tmpLabel
usando primitivo \def
para que pueda expandirse adecuadamente en el interior \ltx@label
.
\makeatletter
\newcommand{\allignLabel}[1]{&\refstepcounter{equation}(\theequation)\def\tmplab{#1}\ltx@label\tmplab&}
\makeatother
Estoy seguro de que hay una solución más elegante para esto, así que comente o edite esta respuesta con una solución adecuada.