Я пытаюсь создать новую команду или среду или что-то еще для форматирования того, что по сути является разделом, но ему нужен свой счетчик. Я бы не хотел использовать \section \subsection и т. д., поскольку я иду в полную глубину, которую они предоставляют.
Идея была в том, чтобы ввести что-то похожее на...
\session{Hello World}
... и он выведет что-то вроде (хотя и центрированное) ...
Сессия 1: Привет, мир!
На данный момент у меня есть следующая команда:
\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
л.13 \begin{session}
Кто-нибудь может понять, где я ошибаюсь? По ошибке я предполагаю, что 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}
в документе.