Zahlen pro Abschnitt in nicht nummerierten Abschnitten

Zahlen pro Abschnitt in nicht nummerierten Abschnitten

Ich versuche, ein Dokument mit nicht nummerierten Abschnitten (d. h. \setcounter{secnumdepth}{0}) und nummerierten Abbildungen zu schreiben, wobei die Abbildungen innerhalb des Abschnitts nummeriert sind. Ich kann secnumdepthund nicht chngcntrzusammenarbeiten. Das Beste, was ich hinbekomme, ist:

\documentclass{article}

\usepackage{chngcntr}
\counterwithin*{figure}{section}
%\setcounter{secnumdepth}{0}    

\begin{document}

\section{Section the First }

\begin{figure}[h]
  \centering
  \caption{Figure A}
\end{figure}

\begin{figure}[h]
  \centering
  \caption{Figure B}
\end{figure}

\section{Section the Second}

\begin{figure}[h]
  \centering
  \caption{Figure C}
\end{figure}

\end{document}

Dadurch werden die Abbildungsnummern richtig angezeigt, ich habe jedoch Abschnittsnummern:

Bildbeschreibung hier eingeben

Wenn ich die Zeile auskommentiere \setcounter{secnumdepth}{0}, werden die Abschnitte wie gewünscht unnummeriert, die Abbildungen sind nun jedoch wieder „countwithout“:

Bildbeschreibung hier eingeben

Wie erreiche ich eine abschnittsweise Abbildungsnummerierung in nicht nummerierten Abschnitten?

Antwort1

Der Grund, warum die Zähler nicht zurückgesetzt werden, liegt im gemeinsamen \@sectCode (siehe latex.ltx).

\def\@sect#1#2#3#4#5#6[#7]#8{%
  \ifnum #2>\c@secnumdepth
    \let\@svsec\@empty
  \else
    \refstepcounter{#1}%
    \protected@edef\@svsec{\@seccntformat{#1}\relax}%
  \fi
....

Der Code prüft, ob die Abschnittsebene ( #2) größer als der Wert von ist secnumdepth. Wenn dies nicht der Fall ist, wird der Abschnittszähler erneut gestartet und alle anderen Zähler in der Reset-Liste des Zählers werden ebenfalls zurückgesetzt.

Wenn der Zähler jedoch nicht zurückgesetzt wird, \counterwithoutist dies hier sowieso nutzlos (unabhängig davon, ob \counterwithout*oder \counterwithoutverwendet wird).

Eine Möglichkeit wäre, \sectionden Zahlenzähler automatisch auf Null zu setzen, allerdings würde das \section*auch mit verwendet werden. Ich denke aber, dass das kein wirkliches Problem ist.

\documentclass{article}

%\usepackage{chngcntr}
\usepackage{xpatch}
\setcounter{secnumdepth}{0}    
%\counterwithin*{figure}{section} Not needed any longer


\xpretocmd{\section}{\setcounter{figure}{0}}{}{} % Prepend the \section code with a figure counter reset. 

\begin{document}

\section{Section the First }

\begin{figure}[h]
  \centering
  \caption{Figure A}
\end{figure}

\begin{figure}[h]
  \centering
  \caption{Figure B}
\end{figure}

\section{Section the Second}

\begin{figure}[h]
  \centering
  \caption{Figure C}
\end{figure}

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen