TeXでベクトルや根号の高さを揃える方法についての備忘録です。
$\TeX$で特に何もせずに平方根を出力すると$$\sqrt{a}+\sqrt{b}$$のようになり、中身の文字の高さによって根号の高さも微妙に伸び縮みします。この高さを揃えるコマンドには、
・高さを広げて揃える \mathstrut コマンド
・高さを潰して揃える \smash コマンド
の2種類があります。ただし \smash コマンドは文字の高さを無視して圧し潰してしまうので、あまり使い勝手が良いとは言えません。普通は \mathstrut コマンドの方を使います。
\sqrt{a}+\sqrt{b}
(\mathstrutなし)$\sqrt{a}+\sqrt{b}$
\sqrt{\mathstrut a}+\sqrt{\mathstrut b}
(\mathstrutあり)$\sqrt{\mathstrut a}+\sqrt{\mathstrut b}$
高さが揃っていないと何となく不格好に見えますよね。
例えば、以下のように込み入った式だと \mathstrut を使った方(下)がスッキリした見た目になります。
(\mathstrutなし)$$\small \frac{\sqrt[2^k]{a_1 \cdots a_{2^k}}+\sqrt[2^k]{a_{2^k+1} \cdots a_{2^{k+1}}}}2
\geqq \sqrt{\sqrt[2^k]{a_1 \cdots a_{2^k}} \cdot \sqrt[2^k]{a_{2^k+1} \cdots a_{2^{k+1}}}}$$
(\mathstrutあり)$$\small \frac{\sqrt[2^k]{\mathstrut a_1 \cdots a_{2^k}}+\sqrt[2^k]{\mathstrut a_{2^k+1} \cdots a_{2^{k+1}}}}2
\geqq \sqrt{\sqrt[2^k]{\mathstrut a_1 \cdots a_{2^k}} \cdot \sqrt[2^k]{\mathstrut a_{2^k+1} \cdots a_{2^{k+1}}}}$$
\mathstrut コマンドではなく、単に \strut を使っても高さを伸ばせますが、数式の高さ調節には不向きです。
(\strut)$\sqrt{\strut a}+\sqrt{\strut b}$
(\mathstrut)$\sqrt{\mathstrut a}+\sqrt{\mathstrut b}$
ベクトルも高さが気になるアクセント記号の一つですよね。$a$と$b$では高さが異なるので違いは歴然です。
(\mathstrutなし)$\vec{a}+\vec{b}$ (\mathstrutあり)$\vec{\mathstrut a}+\vec{\mathstrut b}$
(\mathstrutなし)$\vec{a}+\vec{b}$
(\mathstrutあり)$\vec{\mathstrut a}+\vec{\mathstrut b}$
根号やベクトルの他にも複素共役記号(バー)やチルダ記号でも \mathstrut コマンドが有効です。
(\mathstrutなし)$\tilde{a}+\tilde{b}$ (\mathstrutあり)$\tilde{\mathstrut a}+\tilde{\mathstrut b}$ (\mathstrutなし)$\bar{a}+\bar{b}$ (\mathstrutあり)$\bar{\mathstrut a}+\bar{\mathstrut b}$
(\mathstrutなし)$\tilde{a}+\tilde{b}$
(\mathstrutあり)$\tilde{\mathstrut a}+\tilde{\mathstrut b}$
(\mathstrutなし)$\bar{a}+\bar{b}$
(\mathstrutあり)$\bar{\mathstrut a}+\bar{\mathstrut b}$
また、\mathstrut コマンドに頼らず、自分で高さを調整する方法もあります。
\sqrt{x\rule[]{0pt}{2ex}}
$\sqrt{x\rule[]{0pt}{2ex}}$
( \rule[上方への移動]{幅}{高さ} )
\rule コマンドはあまり使われない方法ですが、シグマの中に根号がある場合は微調整に使えることがあります。