You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MathJax中实现矩阵内负号的对齐?

嘿,这个手动加\phantom{-}的方法确实太繁琐了,而且只能解决单列的问题,完全不是高效的做法。我给你几个更靠谱的解决方案,能一次性搞定所有列的负号对齐:

方案1:用array环境指定列对齐规则

amsmath包自带的array环境支持自定义每一列的对齐方式,我们可以把所有列设为右对齐,这样负号就会自动和其他数字的左侧对齐:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
\left[
\begin{array}{*{4}{r}}
0 & 1 & 5 & 2 \\
1 & -7 & 1 & 0 \\
0 & 0 & 1 & 3
\end{array}
\right]
\]
\end{document}

这里*{4}{r}是简写语法,代表“4个右对齐的列”,如果你有更多列,只需要把数字改成对应列数就行。

方案2:用mathtools的matrix*环境(更简洁)

mathtools是amsmath的扩展包,提供了matrix*环境,可以直接给整个矩阵指定全局对齐方式,写法更简洁:

\documentclass{article}
\usepackage{mathtools}
\begin{document}
\[
\left[
\begin{matrix*}[r]
0 & 1 & 5 & 2 \\
1 & -7 & 1 & 0 \\
0 & 0 & 1 & 3
\end{matrix*}
\right]
\]
\end{document}

[r]参数表示所有列右对齐,这个环境保留了matrix的默认间距,不用手动调整列之间的空隙,用起来更省心。

方案3:自定义专属对齐矩阵环境(适合高频使用)

如果你经常需要这种对齐风格的矩阵,可以自定义一个环境,避免重复写参数:

\documentclass{article}
\usepackage{mathtools}
\newenvironment{ralignmatrix}
  {\left[\begin{matrix*}[r]}
  {\end{matrix*}\right]}
\begin{document}
\[
\begin{ralignmatrix}
0 & 1 & 5 & 2 \\
1 & -7 & 1 & 0 \\
0 & 0 & 1 & 3
\end{ralignmatrix}
\]
\end{document}

之后只要用ralignmatrix环境,就能直接生成右对齐的矩阵,非常方便。

内容的提问来源于stack exchange,提问作者user875234

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:30:30