ベクトルの矢印の高さの一括設定

ベクトルの矢印の高さの一括設定

- 髙橋 政晴 の投稿
返信数: 2
数学の教材作成時にベクトルの矢印の高さを揃えたいと思いましてネットで調べてみるとどうやらそうするコマンドがあるようでした。
参考:https://note.com/dan_oyama/n/n1103a26bf037#XZXVX
そこで真似してみようと思ったのですが,一回一回
 \vect{\mathstrut a}-2\vect{\mathstrut b}   \vect{\vphantom{b}a}-2\vect{b}
と言ったふうに入力していくのが面倒なので,プリアンブルにコマンドを設定したいと思うのですが初心者なもので,どうしたら実現できるかわかりません。 解答お願いします。
※関係あるかわかりませんが一応。
・\usepackage[ ]{esvect}を使用して、\vv{a} \vv{\mathrm{AB}}といったコマンドでベクトルを出力しています。
・uplatexを使用しています。
髙橋 政晴 への返信

Re: ベクトルの矢印の高さの一括設定

- 北見 けん の投稿
こんな感じにマクロを定義するとよいでしょうか。
\def\vectWithStrut#1{\vect{\mathstrut#1}}
こうしておくと、本文中に\vectWithStrut{a}と書けば\vect{\mathstrut a}と書いたのと同じになります。
高さを揃える対象をオプション引数にするなら LaTeX の \newcommand を使って、
\newcommand\vectMayBeTheSameHeightAs[2][]{\vect{\vphantom{#1}#2}}
としておけば、\vect{\vphantom{b}a}-2\vect{b}の代わりに
\vectMayBeTheSameHeightAs[b]{a}-2\vectMayBeTheSameHeightAs{b}
のように書くことができます。
マクロの名前は適当に短くしてもよいですが、\vect にするのはやめてください。
マクロが展開された後にも\vect が出てくるので無限ループに陥ってしまいます。
あれ? \vect じゃなくて \vv というのを使っているのなら、ここで私が \vect と書いたものはすべて \vv に読み替えてください。

マクロ定義について、詳しくは「TeX Wiki/TeX入門/マクロの作成#定義と代入」など。
https://texwiki.texjp.org/?TeX%E5%85%A5%E9%96%80%2F%E3%83%9E%E3%82%AF%E3%83%AD%E3%81%AE%E4%BD%9C%E6%88%90#v38e683c