新しいコマンドをカスタマイズするにはどうすればいいですか?

新しいコマンドをカスタマイズするにはどうすればいいですか?

コマンドをカスタマイズしたいです\myvec{arg}

引数が1文字の場合、\bm{arg}

そうでなければ\vv{arg}

答え1

次のコードを適応:

次のようにすれば動作するようです:

\documentclass{article}
% This code by Hendrik Vogt https://tex.stackexchange.com/a/70562/2693
\newcommand*\ifsingle[3]{%
  \setbox0\hbox{$\mathaccent"0362{#1}^H$}%
  \setbox2\hbox{$\mathaccent"0362{\kern0pt#1}^H$}%
  \ifdim\ht0=\ht2 #3\else #2\fi
  }
\usepackage{bm}
\def\vv{} % define as needed
\newcommand*\myvec[1]{\ifsingle{#1}{\bm{#1}}{\vv{#1}}}
\begin{document}
$\myvec{a}$
$\myvec{aa}$
$\myvec{\alpha}$
$\myvec{\alpha\beta}$
\end{document}

コードの出力

関連情報