
보고서를 입력할 때 문제가 발생했습니다. 이 문제를 해결하는 방법을 모르겠습니다. 문제는 다음과 같습니다.
다음과 같이 정의된 두 가지 사용자 정의 명령이 있습니다.
\newcommand{\slr}[1][n]{\ensuremath{{\bf SL}(#1,\mathbb{R})}}
\newcommand{\lie}[1][G]{\ensuremath{{\bf L}(#1)}}
따라서 첫 번째 명령은 다음과 같은 출력을 제공 ${\bf SL}(n,\mathbb{R})$
하고 두 번째 명령은 다음과 같은 출력을 제공합니다 ${\bf L}(G)$
. 여기서 $n$
및 $G$
는 각각 기본 인수입니다.
이제 이 두 명령을 함께 사용하면 다음을 얻을 수 있기를 바랍니다.
$${\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]}]