Estou tentando criar um novo comando ou ambiente ou algo para formatar o que é essencialmente uma seção, mas precisa ter seu próprio contador. Eu gostaria de não usar nenhum \section \subsection etc. à medida que me aprofundo em tudo o que eles fornecem.
A ideia é que eu digitasse algo semelhante a ...
\session{Hello World}
... e geraria algo como (embora centralizado) ...
Sessão 1: Olá, Mundo
O comando que tenho atualmente é o seguinte:
\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}
}
Tentando exatamente isso, o compilador Latex gera o seguinte erro (observe que isso ocorre antes mesmo de \begin{document} ter sido chamado).
Erro LaTeX: \begin{document} finalizado com \end{Large}
Também tentei criar um novo ambiente trocando literalmente \newcommand{\session} por \newenvironment{session}. Enquanto isso compila, recebo o seguinte erro na linha de \begin{session}.
\endcsname ausente inserido.
<to be read again>
\pósgrupo
1.13 \begin{sessão}
Alguém pode ver onde estou errando? Presumo pelo erro que newcommand não pode ser usado exatamente com esta sintaxe para o que desejo; no entanto, também estou confuso sobre por que o ambiente também não funciona.
Responder1
Sua definição corresponde ao formato de umambiente, não um comando.
É assim que os ambientes são definidos:
\newenvironment{example}{<starting commands>}{<ending commands>}
Eles são então usados assim:
\begin{example}
<text>
\end{example}
Mas acho que você quer umcomandoisso leva um argumento, como neste exemplo. Além disso, \thesessioncounter
fornece o número como texto; \value
é para uso em outros comandos internos. (Também ajustei um pouco os comandos de formatação.)
\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}
Responder2
Você não pode fazer \begin{textbf}
ou \begin{emph}
e também não deveria fazer \begin{Large}
.
Você quer
\newcommand{\session}[1]{%
\begin{center}\Large\itshape\bfseries
\stepcounter{sessioncounter}%
Session \value{sessioncounter}: #1%
\end{center}%
}
no preâmbulo e uso
\session{Hello world}
no documento.