現在、次のような状況です。メイン ファイルに Latex ファイルを含めています。このファイルにはすでにいくつかの\section{}
-part があります。マスター ファイル内のグローバル カウントを混乱させずに、それらのカウントを再び開始するようにしたいです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
セクション カウンターがリセットされます。これが問題になる場合は、一定のしきい値を超えた後にリセットを削除できます。
\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}