Estoy tratando de alinear un conjunto de ecuaciones largas, que son align
entornos ya que la mayoría de ellos se están extendiendo en varias líneas.
Actualmente solo tengo una secuencia de align
entornos, con cada ecuación adentro para alinear las piezas de cada ecuación. Adjunto una captura de pantalla del resultado:
Lo que me gustaría obtener en su lugar es algo que se parezca más a
que es el mismo conjunto de ecuaciones después de pasar por la oficina de corrección de estilo de una revista y se ve mucho mejor.
Aquí hay un MWE. Me gustaría que las tres ecuaciones se alineen en el signo igual.
\documentclass{article} \usepackage{amsmath} \begin{document} \begin{align} a & = b + c + d \nonumber \\ & \qquad + e + f + g \label{eq:1} \end{align} \begin{align} k & = l + m + n + m + n + m + n \nonumber \\ & \qquad + o + p + q \label{eq:2} \end{align} \begin{equation} r = s + t (u + v + w) \label{eq:3} \end{equation} \end{document}
Comentarios
Responda
sin un ejemplo real, así es como interpreto lo que quiero.
y aquí está la entrada:
\documentclass{article} \usepackage{mathtools} \begin{document} This example shows \verb|aligned| equations within an \verb|align| environment. \begin{align} \phantom{i + j + k} &\begin{aligned} \mathllap{a} &= b + c + d\\ &\qquad + e + f + g + x + y + z \end{aligned}\\ &\begin{aligned} \mathllap{i + j + k} &= l + m + n\\ &\qquad + o + p + q \end{aligned} \end{align} \end{document}
el elemento más largo de la izquierda se inserta al principio como un \phantom
y las longitudes de los elementos de la izquierda del los segmentos se hacen» invisibles «al traslaparlos hacia la izquierda usando \mathllap
del paquete mathtools
.
La respuesta original se anotó (correctamente) para alinear los segmentos correctamente solo cuando los lados izquierdos tenían la misma longitud. Esta modificación supera ese problema.
Comentarios
\phantom
es necesario para que el ancho del lado izquierdo del grupo de ecuaciones se incluya en el ancho de todo el grupo, de modo que el grupo quede centrado.
Respuesta
También puede utilizar el entorno split
dentro del align
, usando un ampersand (&
) donde desea que tenga lugar la alineación. Aquí hay un MWE:
\documentclass{article} \usepackage{amsmath} \begin{document} \begin{align} \begin{split}\label{eq:1} a ={}& b + c + d\\ & + e + f + g \end{split}\\ \begin{split}\label{eq:2} k ={}& l + m + n + m + n + m + n\\ & + o + p + q \end{split}\\ r ={}& s + t (u + v + w)\label{eq:3} \end{align} \end{document}
Observe que la última ecuación no está dentro de un entorno split
, pero aún se alinea con el resto, ya que todavía está dentro del entorno align
.
El resultado se ve así:
Tenga en cuenta los grupos vacíos ({}
) antes de los símbolos de unión. Sin estos, habría No se debe aplicar kerning entre los signos iguales y el carácter posterior, porque la alineación rompe el cuadro. Si bien los grupos vacíos no hacen nada por sí mismos, en el modo matemático los símbolos antes de ellos agregan kerning como si los grupos vacíos fueran caracteres ordinarios. Esto permite a TeX elegir el espaciado más apropiado. Si los símbolos de unión se colocaran antes de los signos iguales, el entorno de alineación se centraría alrededor de los signos iguales como debería sin tal molestia, pero entonces el signo de adición de la ecuación dividida quedaría incómodamente atrás, requiriendo algún tipo de ajuste manual de su propio.
Comentarios
- Lo bueno de esta solución es que no hay necesidad de jugar con
\phantom
o\mathllap
. - ¡Vaya!De hecho, parece que no ‘ ni siquiera necesita las divisiones, reemplazando
&=
con={}&
hace el truco! - Cuando trato de hacer eso, aparece el error » La pestaña de alineación adicional se ha cambiado a \ cr. » Recibo este error cuando intento usar más de un signo comercial dentro de split. ¿Alguna idea?
- @Blaisorblade: el motivo de las divisiones es aplicar correctamente los números de la ecuación a cada grupo. sí,
\notag
podría usarse, pero no ‘ t da el resultado deseado si el número de ecuación debe estar centrado en el grupo. - Probé esta técnica y funcionó al convertir a PDF, pero no funcionó al convertir a HTML usando el flujo de trabajo
mk4ht htlatex test.tex "xhtml,mathml"
. Supongo que ‘ es un error en el convertidor html.
Respuesta
Como una extensión de la respuesta de Barbara, puede envolver solo el lado derecho de sus ecuaciones en aligned
subambientes. Esto le permite alinear los signos iguales de los ecuaciones independientes del tamaño de los lados izquierdo o derecho.
\documentclass{article} \usepackage{amsmath} \begin{document} This example shows \verb|aligned| equations within an \verb|align| environment. \begin{align} a &= \begin{aligned}[t] &b + c + d +\\ &c + e + f + g + h + i \end{aligned}\\ k &= \begin{aligned}[t] &l + m + n\\ &+ o + p + q \end{aligned} \end{align} \end{document}
El signo más en la segunda línea de la segunda ecuación no coincide exactamente porque es «un símbolo mathbin
. Tal vez alguien con más conocimiento de TeX pueda comentar cómo solucionarlo mejor.
Comentarios
- Gracias, eso también funciona. La diferencia que veo es que los números de ecuación están en la línea superior de cada ecuación, mientras que cuando la ecuación completa está en la ‘ alineada ‘ entorno los números de la ecuación están centrados verticalmente. ¿Hay alguna manera de controlar eso?
- @eldering: para obtener el espaciado correspondiente después del primer signo más en la última línea, precedalo con un grupo vacío,
{}
.
Respuesta
Aquí hay un align
-sólo versión de sus ecuaciones:
\documentclass{article} \usepackage{amsmath}% http://ctan.org/pkg/amsmath \newcommand{\myvec}[1]{\hat{\mathbf{#1}}}% Vector notation \begin{document} \begin{align} f_{\textit{P},\textit{P}}\left(\myvec{n};\myvec{m}\right) &= \frac{\omega^2}{4\pi\rho\alpha^4} \textit{AF}\left(k_\alpha\left(\myvec{n}-\myvec{m}\right)\right) \nonumber \\ &\mathrel{\phantom{=}} \times\left\{\left(\lambda+\mu\right)^2\eta_N+\left(\lambda+\mu\right)\mu\eta_N\left(\cos 2\phi+\cos 2\theta\right)\right. \nonumber \\ &\mathrel{\phantom{=}} \left.\kern-\nulldelimiterspace +\;\mu^2\eta_N\cos 2\phi\cos 2\theta+\mu^2\eta_T\sin 2\phi\sin 2\theta\cos\varphi\vphantom{\left(\lambda\right)^2}\right\}, \\ f_{\textit{P},\textit{SH}}\left(\myvec{n};\myvec{m},\myvec{q}\right) &= \frac{\omega^2}{4\pi\rho\alpha\beta^3} \textit{AF}\left(k_\alpha\myvec{n}-k_\beta\myvec{m}\right) \nonumber \\ &\mathrel{\phantom{=}} \times\left(-\mu^2\eta_T\right)\sin 2\phi\cos\theta\sin\varphi, \\ f_{\textit{P},\textit{SV}}\left(\myvec{n};\myvec{m},\myvec{q}\right) &= \frac{\omega^2}{4\pi\rho\alpha\beta^3} \textit{AF}\left(k_\alpha\myvec{n}-k_\beta\myvec{m}\right) \nonumber \\ &\mathrel{\phantom{=}} \times\left\{\left(\lambda+\mu\right)\mu\eta_N\sin 2\theta+\mu^2\eta_N\cos 2\phi\sin 2\theta\right. \nonumber \\ &\mathrel{\phantom{=}} \left.\kern-\nulldelimiterspace -\;\mu^2\eta_T\sin 2\phi\cos 2\theta\cos\varphi\right\}, \end{align} \end{document}
Algunos de los ajustes incluyen
- El uso de
\mathrel
para el espacio adecuado alrededor de=
oculto (incluido a través de\phantom
); - Algunos
\nulldelimiter
kerning negativos alrededor de los delimitadores\left.
faltantes (de lo contrario se introduciría un espacio adicional entre el operador / operando); - Ajuste de altura para
\left\{
y\right\}
de varias líneas pares.
Como hilo conductor, puede ser útil leer detenidamente Herbert Voß « mathmode
documento .
Respuesta
Este es un manera de lograr esto para pequeñas cantidades de texto usando el comando \intertext
.
\documentclass{article} \usepackage{amsmath} \begin{document} This example shows \verb|aligned| equations within an \verb|align| environment. \begin{align} \begin{aligned} a &= b + c + d\\ &\qquad + e + f + g \end{aligned}\\ \begin{aligned} k &= l + m + n + m + n + m + n\\ &\qquad + o + p + q \end{aligned} \end{align} This example shows text and equations within an \verb|align| environment. \begin{align} a &= b + c + d\\ &\qquad + e + f + g \intertext{A small amount of text can go here with $x=2$ inline math and $$\int_a^b f(x)\,dx=F(b)-F(a)$$ (even inline math). But not a lot of text. } k &= l + m + n + m + n + m + n\\ &\qquad + o + p + q \end{align} \end{document}
Comentarios
- La parte relevante es sobre
\qquad
, que ‘ he usado, pero eso no ‘ t funciona lo suficientemente bien. - (+1) ¡Ah! 🙂 Estuve buscando algo así por un tiempo. Muchas gracias. 🙂
- En caso de que los párrafos dividan las ecuaciones para alinearlas, ¿cuál es la mejor solución?
Respuesta
Si en lugar de alinear las ecuaciones finales desea justificarlas a la derecha (de forma similar a como el entorno \multiline
maneja las ecuaciones finales), puede utilizar lo siguiente truco, que recogí de esta respuesta de Ulrike Fischer.
\documentclass{article} \usepackage{amsmath} \begin{document} \begin{align} a & = b + c + d + e + f + g + h \nonumber \\ & \hspace{7cm} + i + j + k \\ a & = b + c + d + e + f + g + h \nonumber \\ & \omit\hfill ${} + i + j + k$ \end{align} \end{document}
Responder
\begin{align} \ni Tdij (Ti,Tj,Sk,t) & = Tdij(Ti,Tj,Sk,t) \nonumber \\ & Tddir (Ti,Tj,Sk,t) \bigoplus \nonumber \\ & Tdrecom (Ti,Tj,Sk,t) \bigoplus \nonumber \\ & Tdiv (Ti,Tj,Sk,t) \label{eq:1} \end{align}
proporcionará el siguiente resultado
Comentarios
- ¿Cómo aborda esto la publicación original de tal manera que no ‘ ya haya sido abordado por las otras respuestas?
Respuesta
Esta respuesta funciona cuando usa el
paquete. El siguiente ejemplo define dos macros LaTeX\mymidline
y\mylastline
. Ambas macros esencialmente se expanden a su primer argumento dentro de entornosalign*
. La macro\mymidline
la centra y la macro\mylastline
la alinea a la derecha. Por lo tanto, el ancho del material en el segundo argumento se resta del «ancho de visualización» disponible. Para entornosalign*
, este debería ser el lado izquierdo (más largo) de la ecuación. El siguiente ejemplo muestra cómo puede hacerlo de manera más eficiente con una macro\LHS
.
\documentclass{article} \usepackage[DIV15]{typearea} \usepackage{amsmath,amsfonts} \usepackage{fleqn} \usepackage{ulem} \makeatletter \newdimen\@tzadima \newdimen\@tzadimb \newbox\@tzaboxa \def\mylinemeasures#1#2{% \@tzadima\displaywidth% \advance\@tzadima-\tagwidth@% \advance\@tzadima-\alignsep@% \setbox\@tzaboxa\hbox{$\displaystyle#1$}% \@tzadimb\wd\@tzaboxa% \advance\@tzadima-\@tzadimb% \setbox\@tzaboxa\hbox{$\displaystyle#2$}% \@tzadimb\wd\@tzaboxa% \advance\@tzadima-\@tzadimb% } \def\mymidline#1#2{% \mylinemeasures{#1}{#2}% \divide\@tzadima2% \hbox to \@tzadima{}#1\notag } \def\mylastline#1#2{% \mylinemeasures{#1}{#2}% \hbox to \@tzadima{}#1% } \makeatother \begin{document} \begin{align*} \gdef\LHS{(L\cdot R)^{(i)}[i+1:n,i+1:n]}\LHS &= \underbrace{L^{(i-1)}[i+1:n,1:i-1]\cdot R^{(i-1)}[1:i-1,i+1:n]}_{\text{untouched}}+\\ &\mymidline{+ L^{(i)}[i+1:n,i] \underbrace{R^{(i)}[i,i+1:n]}_{\text{untouched pivot row}}+}\LHS\\ &\mylastline{+ \underbrace{L^{(i)}[i+1:n,i+1:n]}_{=1_{n-i-1}}\cdot R^{(i)}[i+1:n,i+1:n]}\LHS\\ &= L^{(i-1)}[i+1:n,1:i-1]\cdot R^{(i-1)}[1:i-1,i+1:n] +\\ &\mymidline{+ \uwave{L^{(i)}[i+1:n,i]\cdot R^{(i-1)}[i,i+1:n]}+}\LHS\\ &\mylastline{+R^{(i-1)}[i+1:n,i+1:n]\uwave{\strut- L^{(i)}[i+1:n,i]\cdot R^{(i-1)}[i,i+1:n]}}\LHS\\ &=L^{(i-1)}[i+1:n,1:i-1]\cdot R^{(i-1)}[1:i-1,i+1:n] +\\ &\mymidline{+ \underbrace{L^{(i-1)}[i+1:n,i]}_{=0}\cdot R^{(i-1)}[i,i+1:n] +}\LHS\\ &\mylastline{+ \underbrace{L^{(i-1)}[i+1:n,i+1:n]}_{=1_{n-i}}\cdot R^{(i-1)}[i+1:n,i+1:n]}\LHS\\ &= A[i+1:n,i+1:n]. \end{align*} \end{document}
Si tiene la versión numerada align*
también debe considerar la ancho de la etiqueta de la ecuación y el separador de etiquetas en el segundo argumento de \mymidline
y \mylastline
. No encontré una medida predefinida para el ancho de la etiqueta. Después de algunas pruebas, resultó que \quad\quad(1)
es un marcador de posición apropiado para la etiqueta.
\documentclass{article} \usepackage[DIV15]{typearea} \usepackage{amsmath,amsfonts} \usepackage{fleqn} \usepackage{ulem} \makeatletter \newdimen\@tzadima \newdimen\@tzadimb \newbox\@tzaboxa \def\mylinemeasures#1#2{% \@tzadima\displaywidth% \advance\@tzadima-\tagwidth@% \advance\@tzadima-\alignsep@% \setbox\@tzaboxa\hbox{$\displaystyle#1$}% \@tzadimb\wd\@tzaboxa% \advance\@tzadima-\@tzadimb% \setbox\@tzaboxa\hbox{$\displaystyle#2$}% \@tzadimb\wd\@tzaboxa% \advance\@tzadima-\@tzadimb% } \def\mymidline#1#2{% \mylinemeasures{#1}{#2}% \divide\@tzadima2% \hbox to \@tzadima{}#1\notag } \def\mylastline#1#2{% \mylinemeasures{#1}{#2}% \hbox to \@tzadima{}#1% } \makeatother \begin{document} \begin{align} \gdef\LHS{(L\cdot R)^{(i)}[i+1:n,i+1:n]}\LHS &= \underbrace{L^{(i-1)}[i+1:n,1:i-1]\cdot R^{(i-1)}[1:i-1,i+1:n]}_{\text{untouched}}+\notag\\ &\mymidline{+ L^{(i)}[i+1:n,i] \underbrace{R^{(i)}[i,i+1:n]}_{\text{untouched pivot row}}+}\LHS\\ &\mylastline{+ \underbrace{L^{(i)}[i+1:n,i+1:n]}_{=1_{n-i-1}}\cdot R^{(i)}[i+1:n,i+1:n]}{\LHS\quad\quad(1)}\\ &= L^{(i-1)}[i+1:n,1:i-1]\cdot R^{(i-1)}[1:i-1,i+1:n] +\notag\\ &\mymidline{+ \uwave{L^{(i)}[i+1:n,i]\cdot R^{(i-1)}[i,i+1:n]}+}{(L\cdot R)^{(i)}[i+1:n,i+1:n]}\\ &\mylastline{+R^{(i-1)}[i+1:n,i+1:n]\uwave{\strut- L^{(i)}[i+1:n,i]\cdot R^{(i-1)}[i,i+1:n]}}{\LHS\quad\quad(1)}\\ &=L^{(i-1)}[i+1:n,1:i-1]\cdot R^{(i-1)}[1:i-1,i+1:n] +\notag\\ &\mymidline{+ \underbrace{L^{(i-1)}[i+1:n,i]}_{=0}\cdot R^{(i-1)}[i,i+1:n] +}{(L\cdot R)^{(i)}[i+1:n,i+1:n]}\\ &\mylastline{+ \underbrace{L^{(i-1)}[i+1:n,i+1:n]}_{=1_{n-i}}\cdot R^{(i-1)}[i+1:n,i+1:n]}{\LHS\quad\quad(1)}\\ &= A[i+1:n,i+1:n]. \end{align} \end{document}
!
al frente para convertirlo en un enlace. Un moderador u otro usuario con privilegios de edición pueden volver a insertar el!
para convertirlo en una imagen nuevamente.\documentclass
y los paquetes adecuados para que aquellos que intentan ayude a que no ‘ no tenga que volver a crearlo.split
para ecuaciones largas únicas en lugar dealign
. según el documento,split
es para ecuaciones largas únicas,align
es para ecuaciones múltiples. La numeración debería verse afectada.