
Quiero alinear a la derecha (¿algo así como \raggedleft?) los comentarios de cada línea. Estoy usando \ \ \ \ que no son buenos. Por favor sugiérame una mejor manera de escribir esto. ¿Debería usar división o algo así?
\begin{align*}
& \ \ \ Opt_\rho (i,j,M)\\
&= \min_{\kappa \in Seg(i,j)} (Cost(\rho, \kappa, M))\\
& \ \ \ \ \ \ \ \ \ \text{[Comment for the line]}\\
&= \min_{1\leq l\leq i} (\min_{\kappa' \in Seg(l,j)} (Cost(\rho,\kappa',M)))\\
& \ \ \ \ \ \ \ \ \ \text{[Comment for another line]} \\
&= \min_{1\leq l\leq i} (\min_{\kappa''[l:i] \in Seg(l,j)} (\max_{\iota'' \in
\kappa''[l:i]} (||Cost(\rho, \iota'')-M||)))\\
& \ \ \ \ \ \ \ \ \ \text{[More Comments]} \\
&= \min_{1\leq l\leq i} (\min_{\kappa''[l:i] \in Seg(l,j)} (\max (\max_{\iota'' \in \kappa''} (||Cost(\rho, \iota'')-M||)), &\\
& \ \ \ ||Cost(\rho,[l:i])-M||))\\
& \ \ \ \ \ \ \ \ \ \text{[This is a long long long long comment]} \\
&= \min_{1\leq l\leq i} (\max (\min_{\kappa'' \in Seg(l,j-1)} (\max_{\iota'' \in \kappa''} (||Cost(\rho, \iota'')-M||))), &\\
& \ \ \ ||Cost(\rho,[l:i])-M||)\\
& \ \ \ \ \ \ \ \ \ \text{[Finally this comment]} \\
\end{align*}
Respuesta1
Mi primera sugerencia, sin saber más, sería utilizar un flalign*
entorno que utilice el ancho máximo disponible y colocar los comentarios como la parte alineada a la derecha del siguiente grupo de alineación, más o menos así:
\documentclass[12pt]{article}
\usepackage{amsmath}
\DeclareMathOperator{\Opt}{Opt}
\DeclareMathOperator{\Cost}{Cost}
\DeclareMathOperator{\Seg}{Seg}
\usepackage{mathtools}
\begin{document}
\begin{flalign*}
&\phantom{=\ } \Opt_\rho (i,j,M)\\
&= \min_{\kappa \in \Seg(i,j)} (\Cost(\rho, \kappa, M)) & \text{[Comment for the line]}\\
&= \min_{1\leq l\leq i} (\min_{\kappa' \in \Seg(l,j)} (\Cost(\rho,\kappa',M))) & \text{[Comment for another line]} \\
&= \min_{1\leq l\leq i} (\min_{\kappa''[l:i] \in \Seg(l,j)} (\max_{\iota'' \in
\kappa''[l:i]} (||\Cost(\rho, \iota'')-M||))) & \text{[More Comments]} \\
&= \min_{1\leq l\leq i} (\min_{\kappa''[l:i] \in \Seg(l,j)} (\max (\max_{\iota'' \in \kappa''} (||\Cost(\rho, \iota'')-M||)), &\\
&\phantom{=\ } ||\Cost(\rho,[l:i])-M||)) & \mathllap{\text{[This is a long long long long comment]}} \\
&= \min_{1\leq l\leq i} (\max (\min_{\kappa'' \in \Seg(l,j-1)} (\max_{\iota'' \in \kappa''} (||\Cost(\rho, \iota'')-M||))), &\\
&\phantom{=\ } ||\Cost(\rho,[l:i])-M||) & \text{[Finally this comment]} \\
\end{flalign*}
\end{document}
Un par de cosas adicionales: el comentario realmente largo tal como está habría hecho que la "columna" de las notas fuera demasiado ancha, por lo que solía \mathllap
permitir que se superpusiera horizontalmente partes de la ecuación; por suerte la línea a la que se aplica no es tan larga. Si lo fuera, probablemente tendrías que poner ese comentario en su propia línea.
Además, sugiero usarlo \DeclareMathOperator
para cosas como "Costo" y "Optar", ya que las "palabras" completas en el modo matemático no se ven bien a menos que se manejen de una manera diferente.
Como mencionó Zarko en los comentarios, lo que funciona mejor será diferente para páginas de diferentes tamaños, por lo que es posible que esto no funcione en su caso de uso real sin realizar ajustes.
Respuesta2
Propongo una solución basada en \intertext
, con el contenido irregular a la izquierda:
\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator{\Cost}{Cost}
\DeclareMathOperator{\Opt}{Opt}
\DeclareMathOperator{\Seg}{Seg}
\begin{document}
\begin{align*}
& \Opt_\rho (i,j,M)\\
& = \min_{\kappa \in \Seg(i,j)} (\Cost(\rho, \kappa, M)) \\[-3ex]
\intertext{\raggedleft [From Eq. \ref{eq:opt}]}
& = \min_{1\leq l\leq i} (\min_{\kappa' \in \Seg(l,j)} (\Cost(\rho,\kappa',M))) \\[-3ex]
\intertext{[\raggedleft From Proposition \ref{prop:minmin}]}
&= \min_{1\leq l\leq i} (\min_{\kappa''[l:i] \in \Seg(l,j)} (\max_{\iota'' \in
\kappa''[l:i]} (\|\Cost(\rho, \iota'')-M\|))) \\[-2.5ex]
\intertext{\raggedleft [Definition of $\Cost(\rho, \kappa''[l:i],M)$]}
& = \min_{1\leq l\leq i} (\min_{\kappa''[l:i] \in \Seg(l,j)} (\max (\max_{\iota'' \in \kappa''} (\|\Cost(\rho, \iota'')-M\|)), \|\Cost(\rho,[l:i])-M\|)) \\[-2.5ex]
\intertext{\raggedleft [Separating the last segment $[l:i]$]}
& = \min_{1\leq l\leq i} (\max (\min_{\kappa'' \in \Seg(l,j-1)} (\max_{\iota'' \in \kappa''} (\|\Cost(\rho,
\iota'')-M\|))), \|\Cost(\rho,[l:i])-M \|) \\[-2.5ex]
\intertext{\raggedleft [From Proposition \ref{prop:minmax}]} \\
\end{align*}
\end{document}
Respuesta3
Con uso de mathtools
y linegoal
paquetes. Como su ecuación es bastante amplia, agrego geometry
un paquete para aumentar \textwidth
el tamaño.
Para las ecuaciones se utilizan align*
y split
ambientes. Los comentarios largos se escriben en \parbox
:
\documentclass{article}
\usepackage{geometry}
\usepackage{mathtools}
\DeclareMathOperator{\cost}{Cost}
\DeclareMathOperator{\opt}{Opt}
\DeclareMathOperator{\seg}{Seg}
\DeclarePairedDelimiterX{\norm}[1]\lVert\rVert{#1}
\usepackage{linegoal}
\begin{document}
\begin{align*}
\MoveEqLeft
\opt_\rho (i,j,M)
& = \min_{\kappa \in\seg(i,j)} (\cost(\rho, \kappa, M))
&& \text{[From Eq. \ref{eq:opt}]} \\
& = \min_{1\leq l\leq i} (\min_{\kappa' \in \seg(l,j)} (\cost(\rho,\kappa',M)))
&& \text{[From Proposition \ref{prop:minmin}]} \\
& = \min_{1\leq l\leq i} (\min_{\kappa''[l:i] \in Seg(l,j)}
(\max_{\iota'' \in \kappa''[l:i]} (\norm{\cost(\rho, \iota'')-M} )))
&& \text{[Definition of $\cost(\rho, \kappa''[l:i],M)$]} \\
\begin{split}
& = \min_{1\leq l\leq i} (\max (\min_{\kappa'' \in Seg(l,j-1)}
(\max_{\iota'' \in \kappa''}\\
&\qquad (\norm{\cost(\rho, \iota'')-M} ))), \norm{\cost(\rho,[l:i])-M})
\end{split} && \parbox{\linegoal}{\raggedright
[This is a very, very, very long comment in two lines]}
\end{align*}
\end{document}