
\defineThisCommand
새 명령을 정의한 \TheCommand
다음 이를 로컬에서 호출하는 매크로를 작성합니다 . 코드는 다음과 같아야 합니다.
\defineThisCommand{}{
\newcommand \ThisCommand{
#1
}
\ThisCommand
}
\begin{document}
\defineTopicOne{Some text printed}
\defineTopicTwo{and this too}
\end{document}
마지막에 출력을 생성합니다.
Some text printed
and this too
이 문제를 해결하는 방법을 제안해 주실 수 있나요?
답변1
답변2
TeX가 제어 시퀀스를 찾으면 \foo
먼저 구별해야 할 두 가지 경우가 있습니다. TeX가 매크로 확장을 수행 중이거나 그렇지 않은 경우입니다. 후자의 경우는 귀하의 상황에서 문제가 되지 않으므로 전자의 경우에 어떤 일이 일어나는지 살펴보겠습니다. 사례는 다음과 같습니다.
- 제어 순서에 의미가 할당되었거나
- 제어 순서가 정의되지 않았습니다.
첫 번째 경우 TeX는 문맥에 적합한 의미를 사용합니다. \foo
매크로이면 확장되고, 토큰이면 \chardef
해당 문자가 인쇄됩니다.
두 번째 경우에는 TeX가 중지되고 오류 메시지가 표시됩니다.무시하다정의되지 않은 토큰.
따라서 이전에 여러 매크로를 정의하지 않은 한 원하는 대로 할 수 없습니다.
\newcommand\defineThisCommand[1]{\newcommand\ThisCommand{#1}\ThisCommand}
필요한 모든 로컬 명령에 대해. 이는 명백히 귀하의 의도에 어긋납니다. \defineOtherCommand
이전에 정의하지 않았다면 가질 수 없습니다 .
사용할 전략은 다음과 같은 일반 매크로를 사용하는 것입니다.둘인수:
\newcommand\define[2]{%
\newcommand#1{#2}% define the local command
#2% and also use it now
}
당신이 말할 수있게 해주는
\define\ThisCommand{whatever}
당신이 원하는 것을하기 위해.