Wie richte ich Abschnitte so ein, dass sie mit führenden Nullen aufgefüllt werden?

Wie richte ich Abschnitte so ein, dass sie mit führenden Nullen aufgefüllt werden?

Ich formatiere ein Dokument für jemanden und er möchte, dass jede Abschnittsnummer dreistellig ist, mit 000 beginnt und bei Bedarf mit Nullen aufgefüllt wird.

Ich habe eine ähnliche Frage gefunden und versucht, das Beispiel anzupassen, aber es gibt mir ein

! TeX capacity exceeded, sorry [input stack size=5000].
\thesection ->\thesection 
                          .\three@digits {\value {section}}
l.11 \section{Synopsis}

If you really absolutely need more capacity,
you can ask a wizard to enlarge me.

Mein MNWE ist:

 \documentclass[letterpaper]{article}

 %Padding the leading zeros \makeatletter
 \renewcommand\thesection{\thesection.\three@digits{\value{section}}}
 \makeatother

 \begin{document} \setcounter{section}{-1} \tableofcontents
 \section{Synopsis} foo

 \section{Language} bar

 \section{Legal} baz

 \end{document}

Antwort1

Es gibt keine \three@digitsin derKernelstandardmäßig. Sie können es jedoch definieren und müssen auch den Inhaltsverzeichnis-bezogenen Nummernabstand für Abschnitte anpassen:

Bildbeschreibung hier eingeben

\documentclass[letterpaper]{article}
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox

%Padding the leading zeros
\makeatletter
\patchcmd{\l@section}{1.5em}{2em}{}{}% Adjust section ToC number width
%\def\two@digits#1{\ifnum#1<10 0\fi\number#1}% http://mirrors.ctan.org/macros/latex/unpacked/latex.ltx
\def\three@digits#1{\ifnum#1>99\else\ifnum#1>9 0\else00\fi\fi\number#1}
\renewcommand\thesection{\three@digits{\value{section}}}
\makeatother

\begin{document} 
\setcounter{section}{-1}
\tableofcontents
\section{Synopsis} foo

\section{Language} bar

\section{Legal} baz

\end{document}

Die ToC-bezogenen Abstände werden mithilfe einesetoolbox\subsectionPatch. Möglicherweise möchten Sie auch den Abstand anpassen , der definiert ist als

\newcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}

standardmäßig (vonarticle.cls). Hier 1.5emist der Einzug und 2.3emder Platz für die Zahlen. Sie könnten also Folgendes wählen:

\renewcommand*\l@subsection{\@dottedtocline{2}{2em}{3em}}

sagen.


Weitere Informationen zum Auffüllen von Zählern mit Nullen finden Sie unterWie gibt man einen Zähler mit führenden Nullen aus?

verwandte Informationen