如何在对齐环境中对齐负值和正值?

如何在对齐环境中对齐负值和正值?

align我在and环境中有以下等式split,但我想将下方的常数值(的c_1c_2和的c_3)对齐,即使带有负号。

\begin{align}
\begin{split} 
    \cos(x) &= c_1 + c_2x^2 + c_3x^4 \\
            &= c_1 + x^2(c_2 + c_3x^2) \\
    \text{where} \\
    c_1 &= 0.99940307 \\
    c_2 &= -0.49558072 \\
    c_3 &= 0.03679168 
\end{split}
\end{align}

此代码生成以下内容:

在此处输入图片描述

我想将减号后的所有值对齐,如下所示:

在此处输入图片描述

我怎样才能做到这一点?

答案1

最简单的方法是使用缺少符号的幻影;就间距而言,\mathbin{\phantom{-}}其行为在所有情况下都完全相同,但不打印任何内容。-

\documentclass{article}
\usepackage{amsmath}

% first strategy
\newcommand{\nm}{\mathbin{\phantom{-}}}

% second strategy
\begingroup\lccode`~=``\lowercase{\endgroup\def~}{\mathbin{\phantom{-}}}
\AtBeginDocument{\mathcode``="8000 }

\begin{document}

\begin{equation}
\begin{split} 
    \cos(x) &= c_1 + c_2x^2 + c_3x^4 \\
            &= c_1 + x^2(c_2 + c_3x^2) \\
    \text{where} \\
    c_1 &= \nm 0.99940307 \\
    c_2 &=   - 0.49558072 \\
    c_3 &= \nm 0.03679168 
\end{split}
\end{equation}

\begin{equation}
\begin{split} 
    \cos(x) &= c_1 + c_2x^2 + c_3x^4 \\
            &= c_1 + x^2(c_2 + c_3x^2) \\
    \text{where} \\
    c_1 &= `0.99940307 \\
    c_2 &= -0.49558072 \\
    c_3 &= `0.03679168 
\end{split}
\end{equation}

\end{document}

从编程的角度来看,第一种策略更简单;对于第二种策略,我使用了数学中不常用的字符,并使其“数学活跃”扩展为与 中的相同的幻影\nm

在此处输入图片描述

答案2

按照提供的方法这个答案

\documentclass{article}
\usepackage{mathtools}
\newlength{\myindent}
\setlength{\myindent}{10pt}
\newcommand{\LHS}[2][\myindent]{\hspace{#1}\mathrlap{#2}} 
\newcommand{\RHS}[2][\myindent]{\mathrlap{#2}\hspace{#1}}

\begin{document}
    \begin{align}
        \begin{split} 
            \cos(x) &= c_1 + c_2x^2 + c_3x^4 \\
            &= c_1 + x^2(c_2 + c_3x^2) \\
            \shortintertext{where}
            c_1 &= \LHS{0.99940307}\\
            c_2 &=\RHS{-}0.49558072\\
            c_3 &= \LHS{0.03679168}
        \end{split}
    \end{align}
\end{document}

在此处输入图片描述

相关内容