Actualmente tengo la siguiente situación: estoy incluyendo un archivo Latex en mi archivo principal. Este archivo ya tiene varias \section{}
partes. Ahora quiero dejar que el conteo comience de 1
nuevo, pero sin estropear el conteo global en mi archivo maestro. Intenté lo siguiente:
\subsection{First}
\setcounter{section}{0}
\input{first_file}
\subsection{Second}
\setcounter{section}{0}
\input{second_file}
Eso funciona para restablecer el contador, pero también arruina mi conteo global. ¿Hay alguna manera de restablecer el contador sin estropear el documento global? No quiero cambiar los archivos incluidos y preferiblemente quiero tener una solución portátil.
Editar: Explicación del error: Lo que obtengo es:
1
2
3
\begin{input}
1
2
\end{input}
3
4
5
Lo que quiero:
1
2
3
\begin{input}
1
2
\end{input}
4
5
6
Respuesta1
Defina un contador auxiliar y utilícelo para el almacenamiento temporal del número de sección.
Luego utilícelo \inputreset{file}
para ingresar un archivo donde desea restablecer el número de ecuación.
Sin embargo, tendrásgrandeProblemas tan pronto como intentas cargar hyperref
.
\newcounter{storedsection}
\newcommand{\inputreset}[1]{%
\setcounter{storedsection}{\value{section}}%
\setcounter{section}{0}%
\input{#1}%
\setcounter{section}{\value{storedsection}}%
}
Respuesta2
Esto utiliza un contador temporal para almacenar el valor del contador de sección antes de que \input
se use el primero. Además, el \input
comando se cambia a \refstepcounter
un contador de entrada, que luego reinicia el section
contador a su vez.
EditarAlmacenamiento automatizado del valor del contador de sección para la primera \input
.
Algún inconveniente: Cada vez que \input
se utiliza se pone a cero el contador de secciones. Si esto es un problema, se puede eliminar el restablecimiento después de cierto umbral.
\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}