매크로/환경 생성 시 컴파일러 오류

매크로/환경 생성 시 컴파일러 오류

새로운 명령이나 환경을 만들거나 본질적으로 섹션의 형식을 지정하려고 하는데 자체 카운터가 필요합니다. 나는 그들이 제공하는 전체 깊이에 들어갈 때 \section \subsection 등을 사용하고 싶지 않습니다.

내가 다음과 비슷한 것을 입력하겠다는 아이디어는 ...

\session{Hello World}

... 그리고 그것은 다음과 같은 것을 출력할 것입니다. (비록 중앙에 있지만) ...

세션 1 : Hello World

현재 제가 받은 명령은 다음과 같습니다.

\newcounter{sessioncounter}
\newcommand{\session}
{
\begin{center}
\begin{emph}
\begin{textbf}
\begin{Large}
Session \value{sessioncounter}\stepcounter{sessioncounter}: 
}{
\end{Large}
\end{textbf}
\end{emph}
\end{center}
}

이것을 정확하게 시도하면 Latex 컴파일러는 다음과 같은 오류를 발생시킵니다(참고: 이는 \begin{document}가 호출되기 전입니다).

LaTeX 오류: \begin{document}가 \end{Large}로 끝났습니다.

또한 문자 그대로 \newcommand{\session}을 \newenvironment{session}으로 교체하여 새 환경을 생성해 보았습니다. 컴파일하는 동안 \begin{session} 줄에 다음 오류가 발생합니다.

누락된 \endcsname이 삽입되었습니다.

        <to be read again> 

\aftergroup

l.13 \begin{세션}

누구든지 내가 어디로 잘못 가고 있는지 볼 수 있습니까? 오류로 인해 newcommand를 내가 원하는 구문과 정확하게 사용할 수 없다고 가정합니다. 그러나 왜 환경이 작동하지 않는지 혼란스럽습니다.

답변1

귀하의 정의는환경, 명령이 아닙니다.

환경은 다음과 같이 정의됩니다.

\newenvironment{example}{<starting commands>}{<ending commands>}

그런 다음 다음과 같이 사용됩니다.

\begin{example}
<text>
\end{example}

하지만 내 생각엔 네가 원하는 것 같아명령이 예에서와 같이 하나의 인수를 사용합니다. 또한 \thesessioncounter숫자를 텍스트로 제공합니다. \value다른 내부 명령에 사용됩니다. (형식 명령도 약간 조정했습니다.)

\documentclass{article}
\newcounter{sessioncounter}
\newcommand{\session}[1]{%
    \hfil\bgroup\Large\itshape\bfseries 
    Session~\thesessioncounter: #1\egroup\par\bigskip
    \stepcounter{sessioncounter}%
}

\begin{document}
\session{Hello World}
\session{Hello again}
\session{Hello for the last time}
\end{document}

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

답변2

할 수도 없고 \begin{textbf}, \begin{emph}해서도 안 됩니다 \begin{Large}.

당신이 원하는

\newcommand{\session}[1]{%
  \begin{center}\Large\itshape\bfseries
    \stepcounter{sessioncounter}%
    Session \value{sessioncounter}: #1%
  \end{center}%
}

서문 및 사용에서

\session{Hello world}

문서에서.

관련 정보