子部分自动显示三位数

子部分自动显示三位数

我是 LaTeX 的新手,如果这篇文章太愚蠢,请原谅我。

我有一些像这样的代码:

\documentclass{article}
\newcounter{qnumber}
\newcommand{\autossection}{\stepcounter{qnumber}\subsection{\theqnumber}}

\begin{document}

\section{A}
\autossection
test
\autossection
test
\autossection
test
\autossection
test

\end{document}

用于自动打印渐进数字作为小节名称。

我想要的是将子部分编号格式化为 001、002、...010、011、...100、101 等。

现在我只有 1、2、...10、11、...100、101 等。

这可能吗?

答案1

\documentclass{article}
\newcounter{qnumber}
\newcommand{\autossection}{\refstepcounter{qnumber}\subsection{\theqnumber}}
\renewcommand\theqnumber{%
\ifnum\value{qnumber}<10 0\fi
\ifnum\value{qnumber}<100 0\fi
\arabic{qnumber}}

\begin{document}

\section{A}
\autossection
test
\autossection
test
\autossection
test
\autossection
test

\end{document}

答案2

使用包的解决方案numprint

\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fourier}
\usepackage{lipsum}

\usepackage{numprint}

\renewcommand\thesection{\nplpadding{3}\numprint{\arabic{section}}}

\begin{document}

\section{A First Section}
\lipsum[1-2]

\section{A Second Section}
\lipsum[4-5]

\end{document} 

在此处输入图片描述

答案3

您可以使用包中的 pad-with-zero 功能siunitx并重新定义\thesubsection命令以相应地打印数字。

\documentclass{article}
\usepackage{siunitx}%
\usepackage{blindtext}

\renewcommand{\thesubsection}{\num[minimum-integer-digits = 3]{\number\value{subsection}}}

\begin{document}
\tableofcontents
\clearpage%
\section{A}
\subsection{One}
\blindtext
\subsection{Two}
\blindtext

%And now jump to subsection 59
\setcounter{subsection}{58}
\subsection{Fifty-Eight}
\blindtext
\setcounter{subsection}{99}
\subsection{Hundred}
\blindtext
\end{document}

在此处输入图片描述

编辑:使用命令的替代解决方案\autossection(如果需要)

\documentclass{article}
\usepackage{siunitx}%
\usepackage{blindtext}

\renewcommand{\thesubsection}{\num[minimum-integer-digits = 3]{\number\value{subsection}}}

\newcommand{\autossection}{\refstepcounter{subsection}\subsection*{\thesubsection}}

\begin{document}
\tableofcontents
\clearpage%

\section{A -- with autossection command}
\autossection
\blindtext
\autossection
\blindtext
\autossection
\blindtext
\autossection
\blindtext

\section{B -- with direct subsection command}
\subsection{One}
\blindtext
\subsection{Two}
\blindtext

%And now jump to subsection 59
\setcounter{subsection}{58}
\subsection{Fifty-Eight}
\blindtext
\setcounter{subsection}{99}
\subsection{Hundred}
\blindtext



\end{document}

相关内容