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 \input
verwendet wird. Zusätzlich wird der Befehl in einen Eingangszähler \input
umgewandelt , der den Zähler dann wiederum zurücksetzt.\refstepcounter
section
BearbeitenAutomatische Speicherung des Abschnittszählerwertes für den ersten \input
.
Ein kleiner Nachteil: Bei jeder \input
Verwendung 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}