Haga un setcounter solo para un archivo incluido

Haga un setcounter solo para un archivo incluido

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 1nuevo, 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 \inputse use el primero. Además, el \inputcomando se cambia a \refstepcounterun contador de entrada, que luego reinicia el sectioncontador a su vez.

EditarAlmacenamiento automatizado del valor del contador de sección para la primera \input.

Algún inconveniente: Cada vez que \inputse 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}

ingrese la descripción de la imagen aquí

información relacionada