Führen Sie einen Setcounter nur für eine eingebundene Datei aus

Führen Sie einen Setcounter nur für eine eingebundene Datei aus

Ich habe derzeit folgende Situation: Ich binde eine Latex-Datei in meine Hauptdatei ein. Diese Datei hat bereits mehrere \section{}-Teile. Nun möchte ich deren Zählung neu beginnen lassen 1, ohne jedoch die globale Zählung in meiner Masterdatei durcheinander zu bringen. Ich habe Folgendes versucht:

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

Das funktioniert zwar, um den Zähler zurückzusetzen, bringt aber auch meine globale Zählung durcheinander. Gibt es eine Möglichkeit, den Zähler zurückzusetzen, ohne das globale Dokument durcheinander zu bringen? Ich möchte die enthaltenen Dateien nicht ändern und am liebsten eine portable Lösung haben.
Bearbeiten: Erklärung für das Durcheinander: Was ich bekomme, ist:

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

Was ich möchte:

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

Antwort1

Definieren Sie einen Hilfszähler und verwenden Sie ihn zur temporären Speicherung der Abschnittsnummer.

Verwenden Sie dann \inputreset{file}zur Eingabe einer Datei, in der Sie die Gleichungsnummer zurücksetzen möchten.

Sie müssen jedochgroßProbleme, sobald Sie versuchen zu laden hyperref.

\newcounter{storedsection}

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

Antwort2

Dabei wird ein temporärer Zähler verwendet, um den Abschnittszählerwert zu speichern, bevor der erste \inputverwendet wird. Zusätzlich wird der Befehl in einen Eingangszähler \inputumgewandelt , der den Zähler dann wiederum zurücksetzt.\refstepcountersection

BearbeitenAutomatische Speicherung des Abschnittszählerwertes für den ersten \input.

Ein kleiner Nachteil: Bei jeder \inputVerwendung wird der Abschnittszähler zurückgesetzt. Wenn dies ein Problem darstellt, kann das Zurücksetzen nach einer bestimmten Zeitspanne entfernt werden.

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

Bildbeschreibung hier eingeben

verwandte Informationen