\xrightarrow 内の分数がエラーになる

\xrightarrow 内の分数がエラーになる

私が書いた場合:

    $\xrightarrow{\makebox[4cm]{\frac{m}{n}}}$

エラーが発生しています:

    Missing $ inserted \end{frame}
    Extra}, or forgotten $ \end{frame}

しかし、\frac{m}{n}を1に置き換えると(確認のため)、

    $\xrightarrow{\makebox[4cm]{1}}$

期待通りに動作しています。何か助けはありますか?

答え1

その理由

$\xrightarrow{\makebox[4cm]{\frac{m}{n}}}$

エラーメッセージが表示される一方、

$\xrightarrow{\makebox[4cm]{1}}$

の必須引数の内容は、\makeboxデフォルトでテキスト モードで評価されるということではありません。1は有効なテキスト モード オブジェクトですが、は\fracそうではありません。

エラーメッセージが表示されないようにするには、次のように記述する必要があります。

$\xrightarrow{\makebox[4cm]{$\frac{m}{n}$}}$

補遺: @daleif(パッケージのメンテナーmathtools)がコメントで指摘したように、mathtoolsパッケージをロードして以下の命令を発行することでも問題を解決できます。

$\xrightarrow{\makemathbox[4cm]{\frac{m}{n}}}$

マクロの名前が示すように、引数の内容は\makemathbox数式モードの項目として扱われます。

関連情報