答案1
变体\hphantom
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{flalign}
& \mathbin{\hphantom{+}}3x+2y-5z=\hphantom{+0}4 \\
& \mathbin{\hphantom{+}}2x+4y-\hphantom{1}z=\hphantom{+}12 \\
& -4x-8y+9z=\hphantom{0}{-}6 &
\end{flalign}
\end{document}
后面的空格
=
有点太大,因为所需的空格是两位数或一位带符号的数的最大值,而不是两位数带一个符号。由于符号大于一位数,所以通过 来1
设置。12
\llap
另外,我不认为行中的第一个符号
-4x
应该像二元运算符那样隔开,因此下面的例子使用一元减号来代替:
例子:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{flalign}
& \hphantom{+}3x+2y-5z = \hphantom{+}4 \\
& \hphantom{+}2x+4y-\hphantom{1}z = \hphantom{+}\llap{$1$}2 \\
& {-}4x-8y+9z = {-}6 &
\end{flalign}
\end{document}
答案2
正如 @vonbrand 所说,你可以很容易地使用包编写方程组systeme
,但对我来说不幸的是文档是法语。
代码:
\documentclass{article}
\usepackage{systeme}
\begin{document}
\systeme{3x+2y-5z=4,2x+4y-z=12,-4x-8y+9z=-6}%Default settings
\medskip
\sysdelim{.}{.}\systeme{3x+2y-5z=4,2x+4y-z=12,-4x-8y+9z=-6}%Without the left brace
\medskip
\sysdelim{.}{.}\systeme{3x+2y-5z=4@E_{*},2x+4y-z=12,-4x-8y+9z=-6}%Equations with numbers
\end{document}
输出
更新
这个问题向您展示如何改变方程式右侧的对齐方式,为此,您只需重新定义命令,\SYS@makesyspreamble@i
正如@egreg 所述
更新代码
\documentclass{article}
\usepackage{systeme}
\usepackage{regexpatch}
\makeatletter
\xpatchcmd{\SYS@makesyspreamble@i}
{$##$\hfil\null}% left alignment
{\hfil$##$\null}% right alignment
{}{}
\makeatother
\begin{document}
\systeme{3x+2y-5z=4,2x+4y-z=12,-4x-8y+9z=-6}
\medskip
\sysdelim{.}{.}\systeme{3x+2y-5z=4,2x+4y-z=12,-4x-8y+9z=-6}
\medskip
\sysdelim{.}{.}\systeme{3x+2y-5z=4@E_{*},2x+4y-z=12,-4x-8y+9z=-6}
\end{document}
答案3
该systeme
软件包(在 TeXlive 和 MikTeX 中)就是为此而设计的。不过我还没用过。