Выполнять setcounter только для включенного файла

Выполнять setcounter только для включенного файла

У меня сейчас следующая ситуация: я включаю Latex-файл в свой основной файл. В этом файле уже есть несколько \section{}частей. Теперь я хочу, чтобы их подсчет начинался 1снова, но не нарушая при этом глобальный подсчет в моем основном файле. Я попробовал следующее:

\subsection{First}
\setcounter{section}{0}
\input{first_file}
\subsection{Second}
\setcounter{section}{0}
\input{second_file}

Это работает для сброса счетчика, но это также портит мой глобальный подсчет. Есть ли способ сбросить счетчик, не портя глобальный документ? Я не хочу менять включенные файлы, и желательно иметь портативное решение.
Редактировать: Объяснение для портинга: Что я получаю:

1
2
3
\begin{input}
1
2
\end{input}
3
4
5

Что я хочу:

1
2
3
\begin{input}
1
2
\end{input}
4
5
6

решение1

Определите вспомогательный счетчик и используйте его для временного хранения номера раздела.

Затем используйте \inputreset{file}для ввода файла, в котором вы хотите сбросить номер уравнения.

Однако, вам придетсябольшойпроблемы, как только вы пытаетесь загрузить hyperref.

\newcounter{storedsection}

\newcommand{\inputreset}[1]{%
  \setcounter{storedsection}{\value{section}}%
  \setcounter{section}{0}%
  \input{#1}%
  \setcounter{section}{\value{storedsection}}%
}

решение2

\inputЭто использует временный счетчик для хранения значения счетчика раздела перед использованием первого . Кроме того, \inputкоманда изменяется на \refstepcounterвходной счетчик, который затем сбрасывает sectionсчетчик в свою очередь.

РедактироватьАвтоматическое сохранение значения счетчика раздела для первого \input.

Недостаток: Каждый раз \inputпри использовании if сбрасывается счетчик секций. Если это проблема, можно убрать сброс после некоторого порога.

\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}

введите описание изображения здесь

Связанный контент