方程式のコメントを右揃えにするにはどうすればいいですか?

方程式のコメントを右揃えにするにはどうすればいいですか?

各行のコメントを右揃え(\raggedleft のようなもの)にしたいです。\ \ \ \ を使用していますが、これは良くありません。これを書くより良い方法を提案してください。分割などを使用するべきでしょうか?

\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*}

答え1

flalign*詳しくは知りませんが、私の最初の提案は、利用可能な最大幅を使用する環境を使用し、コメントを次の配置グループの右揃えの部分に次のように配置することです。

\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}

コメント付きの整列した方程式

いくつか追加事項があります。非常に長いコメントは、注釈の「列」を広くしすぎてしまうため、以前は\mathllap方程式の一部に水平方向に重ねられるようにしていました。幸い、コメントが適用される行はそれほど長くありません。長い場合は、そのコメントを独自の行に配置する必要があるでしょう。

\DeclareMathOperatorまた、 mathmode の完全な「単語」は別の方法で処理しないと正しく表示されないため、「Cost」や「Opt」などの項目に使用することをお勧めします。

Zarko がコメントで述べたように、最適な方法はページのサイズによって異なるため、実際の使用例では調整しないと機能しない可能性があります。

答え2

\intertext私は に基づいて、コンテンツが左揃えになったソリューションを提案します。

    \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} 

ここに画像の説明を入力してください

答え3

mathtoolsおよびパッケージを使用しますlinegoal。方程式が非常に広いため、サイズgeometryを増やすためにパッケージを追加します\textwidth

方程式が使用されalign*split環境が使用されています。長いコメントは次のように記述されます\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}

ここに画像の説明を入力してください

関連情報