latex phantom:占位不显示让公式对齐
更新于
latex phantom 的作用是:把括号里的内容按原样排一遍、占住它的宽度和高度,但不画出来。\phantom{-} 就是一个看不见、却和负号一样宽的空位。它有两个变体:\hphantom 只占宽度、高度记为零,\vphantom 只占高度和深度、宽度记为零。三者都是 LaTeX 内核命令,不用加载宏包,数学模式和正文里都能用。
速查表:占位与相关命令 11 条
| 命令 | 占宽度 | 占高度 / 深度 | 典型用途 |
|---|---|---|---|
\phantom{x} |
是 | 是 | 矩阵列里补一个看不见的负号 |
\hphantom{x} |
是 | 否 | 只要横向空位,不想撑高行距 |
\vphantom{x} |
否 | 是 | 让两段公式高度一致 |
\smash{x} |
是 | 否(画出来) | 与 vphantom 相反:画出来但不占高度 |
\mathstrut |
否 | 与圆括号同高 | 相当于 \vphantom{(} |
\phantom{-}3 |
负号宽 | 是 | 让正数与负数右端对齐 |
{}_{\phantom{1}} |
下标宽 | 是 | 给张量指标留空位 |
\sqrt{\vphantom{b}a} |
否 | 与 b 同高 | 让两个根号一样高 |
\left.\vphantom{\frac{a}{b}}\right\} |
否 | 与分式同高 | 单边大括号有了参照高度 |
\quad |
1 em 固定 | 否 | 固定空白,对照用 |
\hspace{2em} |
指定长度 | 否 | 固定空白,对照用 |
后两行是固定宽度的空白,放在这里是为了对比:phantom 的宽度随内容变,空白命令的宽度是写死的。
例一:矩阵里正负数对不齐
pmatrix 的每一列默认居中。同一列里有 −2 和 3 时,3 与 −2 居中对齐,数字末端差出半个负号宽,看起来参差不齐。给正数前面补一个看不见的负号,整列就按数字对齐了:
\begin{pmatrix} -2 & \phantom{-}1 \\ \phantom{-}3 & -4 \\ -1 & \phantom{-}5 \end{pmatrix}
补的位置只看同一列:第一列 3 前面补,第二列 1 和 5 前面都补,本来就带负号的格子不用动。列里全是正数或全是负数时不用补。


例二至例四:指标、根号与填空横线
例二:上下标错开排
张量或混合指标要求上标、下标左右错开,不能叠在同一竖线上。写成 T^{\mu}_{\nu} 时 μ 和 ν 会上下对齐;用 phantom 给对方留出空位,就能排成先上后下:
T^{\mu\phantom{\nu}}_{\phantom{\mu}\nu}
读法是:上标位置写 μ 再空出一个 ν 宽,下标位置先空出一个 μ 宽再写 ν。于是 ν 落在 μ 的右下方。
同样的思路可以补齐一串下标:a_{1}、a_{12} 排在一列时,给短的那个补 \phantom{2},下标末端就对齐了。

例三:两个根号高度不一致
\sqrt{a}+\sqrt{b} 里,b 有上伸部分,第二个根号会比第一个高一点。给第一个根号里加 \vphantom{b},两者就一样高,且不多占横向位置:
\sqrt{\vphantom{b}a}+\sqrt{b}
例四:正文里留填空横线
phantom 在正文里同样有效。出试卷时,填空题的横线长度常常要和答案差不多,又不能把答案印出来。把答案放进 phantom,再套一层下划线:
方程的解为 x = \underline{\phantom{0.375}}。
横线正好是「0.375」这几个字符的宽度。做答案卷时,把同一处的 phantom 去掉,横线长度不变,答案就出现在横线上,两份卷子的版面完全一致。
常见错误
- 用
\quad代替\phantom{-}:10pt 正文里 quad 宽 10pt,负号只有约 7.8pt,补出来的空位多了一截,列会往另一边歪。 - 需要只占宽度却用了
\phantom:占位内容很高(比如一个分式)时会把整行撑高,改用\hphantom。 \smash与\vphantom弄反:smash 是「画出来、不算高度」,vphantom 是「不画、只算高度」,两者常配合使用而不是互换。

挑占位命令前只问一句:缺的是宽度还是高度。矩阵那例删掉或补回负号,第一列怎么移动一目了然。
延伸阅读
- LaTeX数学命令:120 个常用命令按 10 类整理的速查
- LaTeX转OMML兼容性:复杂命令转成 Word 公式前先做小样验证
- latex dagger:厄米共轭与转置共轭的写法
常见问题
- 和空格命令有什么不同?
- 空格命令留出的宽度是固定的,比如 quad 恒等于一个 em,不管旁边写的是什么。phantom 留出的宽度正好等于括号里那段内容排出来的宽度,还带着它的高度和深度,所以拿负号、数字或一个下标去占位时,空出来的位置和真写上去分毫不差,对齐更准。
