Atualmente tenho a seguinte situação: estou incluindo um arquivo Latex no meu arquivo principal. Este arquivo já possui várias \section{}
partes. Agora quero que a contagem comece 1
novamente, mas sem atrapalhar a contagem global no meu arquivo mestre. Eu tentei o seguinte:
\subsection{First}
\setcounter{section}{0}
\input{first_file}
\subsection{Second}
\setcounter{section}{0}
\input{second_file}
Isso funciona para zerar o contador, mas também atrapalha minha contagem global. Existe uma maneira de zerar o contador sem atrapalhar o documento global? Não quero alterar os arquivos incluídos e, de preferência, quero uma solução portátil.
Editar: Explicação para bagunçar: O que recebo é:
1
2
3
\begin{input}
1
2
\end{input}
3
4
5
O que eu quero:
1
2
3
\begin{input}
1
2
\end{input}
4
5
6
Responder1
Defina um contador auxiliar e utilize-o para armazenamento temporário do número da seção.
Em seguida, use \inputreset{file}
para inserir um arquivo onde deseja redefinir o número da equação.
No entanto, você terágrandeproblemas assim que você tenta carregar o arquivo hyperref
.
\newcounter{storedsection}
\newcommand{\inputreset}[1]{%
\setcounter{storedsection}{\value{section}}%
\setcounter{section}{0}%
\input{#1}%
\setcounter{section}{\value{storedsection}}%
}
Responder2
Isso usa um contador temporário para armazenar o valor do contador de seção antes que o primeiro \input
seja usado. Além disso, o \input
comando é alterado para \refstepcounter
um contador de entrada, que section
por sua vez reinicia o contador.
EditarArmazenamento automatizado do valor do contador de seção para first \input
.
Alguma desvantagem: Cada vez que \input
é usado, o contador de seções é zerado. Se isso for um problema, pode-se remover a redefinição após algum limite.
\documentclass{article}
\usepackage{etoolbox}
\usepackage{xpatch}
\usepackage[hypertexnames=false]{hyperref}
\newcounter{inputfilecounter}
\newcounter{storesection}
\xpretocmd{\input}{%
\ifnumequal{\value{inputfilecounter}}{0}{%
\setcounter{storesection}{\value{section}}%
}{}%
\refstepcounter{inputfilecounter}
}{}{}
\newcommand{\RestoreSectionCounter}{%
\setcounter{section}{\value{storesection}}%
}
\makeatletter
\@addtoreset{section}{inputfilecounter}
\makeatother
\begin{document}
\tableofcontents
\section{Regular}
\clearpage
\input{firstfile}
\clearpage
\input{secondfile}
\RestoreSectionCounter
\clearpage
\section{Continued regular sections}
\end{document}