マクロ/環境作成時のコンパイラ エラー

マクロ/環境作成時のコンパイラ エラー

基本的にセクションをフォーマットするための新しいコマンドや環境などを作成しようとしていますが、独自のカウンターが必要です。\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}

でも、あなたは指示この例のように、1 つの引数を取ります。また、\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}

文書内。

関連情報