
Estoy formateando un documento para alguien y él quiere que cada número de sección tenga tres dígitos, comenzando con 000 y con ceros como relleno cuando sea necesario.
Encontré una pregunta similar e intenté adaptar el ejemplo., pero me da un
! 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.
Mi MNWE es:
\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}
Respuesta1
No existe ningún \three@digits
en elnúcleopor defecto. Sin embargo, puede definirlo y también debe ajustar el espaciado numérico relacionado con la ToC para las secciones:
\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}
El espaciado relacionado con ToC se ajusta usando unetoolbox
parche. Es posible que \subsection
también desee ajustar el espaciado, que se define como
\newcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
por defecto (dearticle.cls
). Aquí 1.5em
está la sangría y 2.3em
el espacio para los números. Así que podrías ir con
\renewcommand*\l@subsection{\@dottedtocline{2}{2em}{3em}}
decir.
Para obtener más información sobre el relleno de contadores con ceros, consulte¿Cómo generar un contador con ceros a la izquierda?