建立巨集/環境時出現編譯器錯誤

建立巨集/環境時出現編譯器錯誤

我正在嘗試創建一個新的命令或環境或其他東西來格式化本質上是一個部分的內容,但它需要有自己的計數器。當我深入了解它們提供的全部深度時,我不想使用任何 \section \subsection 等。

我的想法是我會輸入類似的內容...

\session{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> 

\後群

l.13 \開始{會話}

誰能看見我哪裡出錯了?我認為 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}

在文件中。

相關內容