캡션 내에서 numdef 명령을 사용하지 않는 이유는 무엇입니까?

캡션 내에서 numdef 명령을 사용하지 않는 이유는 무엇입니까?

명령어 내에 \32s16o2정의된 명령어를 사용하고 싶은데 "Tex 용량을 초과했습니다. 죄송합니다."라는 오류 메시지가 생성됩니다. 문제는 무엇입니까?\num\def\32s16o2{S$^{16}$O$_{2}$}\caption{}

답변1

numdef문서에서 package를 사용해야 하는 상황은 없습니다 . 나는 그것을 흥미로운 tex 매크로 정의의 기록으로 내 github에 넣었지만 ctan에는 없으므로 사용해서는 안됩니다.

사용하는 경우 해당 위치의 숫자만 허용됩니다.어떤 시점에서도 이름이 아닙니다.

당신이 가지고 있는 정의는 기본적으로 기본 정의와 동일합니다.

 \def\32s16o2{S$^{16}$O$_{2}$} 

numdef전혀 사용하지 않고 \3이것이 뒤에 오는 유일한 문자열인 한 작동합니다(정의) \3. 이러한 두 개의 문자열을 정의하려고 하면 하나만 작동합니다.

\documentclass{article}

\usepackage{numdef}

\begin{document}

\num\def\32s16o2{S$^{16}$O$_{2}$} 
\num\def\32g12h5{G$^{12}$H$_{5}$} 

\32s16o2

\end{document}

유용하지 않으며 오류가 발생합니다.

! Use of \\3{2} doesn't match its definition.

답변2

나는 당신이 \s16o2입력하는 것보다 더 쉽다 는 것을 이해합니다

$\mathrm{S}^{16}\mathrm{O}_{2}$

또는 mhchem, \ce{S^{16}O2}.

그러나\num\def매우부서지기 쉬운.

이 아이디어를 고집한다면 논쟁 이나 다른 논쟁이 \protect있을 때 사용하세요.\caption

\documentclass{article}
\usepackage{numdef}

\num\def\s16o2{\ensuremath{\mathrm{S}^{16}\mathrm{O}_{2}}}

\begin{document}

\s16o2 is nice

\begin{figure}

\caption{\protect\s16o2 is nice}

\end{figure}

\end{document}

여기에 이미지 설명을 입력하세요

당신도 같은 것을 얻습니다

\documentclass{article}
\usepackage{etoolbox}
\usepackage[version=4]{mhchem}

\newcommand{\definecompound}[2]{\csdef{cmp@#1}{#2}}
\newrobustcmd{\cmp}[1]{\csuse{cmp@#1}}


\definecompound{32s16o2}{\ce{S^{16}O2}}

\begin{document}

\cmp{32s16o2} is nice

\begin{figure}

\caption{\cmp{32s16o2} is nice}

\end{figure}

\end{document}

없이 mhchem대신 할 수 있습니다

\definecompound{32s16o2}{\ensuremath{\mathrm{S}^{16}\mathrm{O}_{2}}}

관련 정보