レポートを入力しているときに問題が発生しました。これを修正する方法がわかりません。問題は次のとおりです。
次のように定義された 2 つのカスタム コマンドがあります。
\newcommand{\slr}[1][n]{\ensuremath{{\bf SL}(#1,\mathbb{R})}}
\newcommand{\lie}[1][G]{\ensuremath{{\bf L}(#1)}}
したがって、最初のコマンドは のような出力を生成し${\bf SL}(n,\mathbb{R})$
、2 番目のコマンドは のような出力を生成します${\bf L}(G)$
。ここで$n$
、 と は$G$
それぞれデフォルトの引数です。
これら2つのコマンドを一緒に使用すると、
$${\bf L}({\bf SL}(2,\mathbb{R}))$$
しかし、どういうわけか私が得ているのは
$$ {\bf L}({\bf SL}(2),\mathbb{R})$$
ここで何が起こっているのか、何か分かりますか?
答え1
の問題は\lie[\slr[2]]
、 のオプション引数\lie
が と解釈されることです\slr[2
。 次のようにすると、この問題を解決できますxparse
。
\documentclass{article}
\usepackage{amsmath,amssymb,xparse}
\DeclareMathOperator{\slrop}{\mathbf{SL}}
\DeclareMathOperator{\lieop}{\mathbf{L}}
\NewDocumentCommand{\slr}{O{n}}{\slrop(#1,\mathbb{R})}
\NewDocumentCommand{\lie}{O{G}}{\lieop(#1)}
\begin{document}
Here it is: $\lie[\slr]$
With optional argument: $\lie[\slr[2]]$
\end{document}
テキストで ではなく\ensuremath
を使用しても何も得られないと思われるため、を削除しました。それどころか、数学は常に数学として扱われるため、後者の形式の方がはるかに優れていると確信しています。\lie
$\lie$
答え2
見えない:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\newcommand\slr[1][n]{\ensuremath{\mathbf{SL}(#1,\mathbb{R})}}
\newcommand\lie[1][G]{\ensuremath{\mathbf{L}}(#1)}
\begin{document}
\[ {\bf L}({\bf SL}(2,\mathbb{R})) \]
\[ \lie[{\slr[2]}] \]
\[ \slr[\lie] \]
\end{document}
オプションの引数を中括弧で囲む必要があります。[{\slr[2]}]