如何创建步长不同于 1 的列表?

如何创建步长不同于 1 的列表?

我必须输入很多问题,但每 4 个问题输入一次(4、8、12……),所以我想知道我是否可以让 Latex 自动对项目进行编号。我知道我可以手动更改每个项目的编号,但我希望计数器自动增加 4。

我不知道从哪里开始,谷歌搜索只显示了我已经熟悉的属性(阿拉伯语、添加标签、字母),但没有提到步长。它可能被称为其他名称,所以我不知道要设置哪个参数(如果有的话)。

答案1

您可以创建一个新命令,利用您所了解的所有计数器功能来完成这个任务;)

\documentclass{article}

\newcommand{\myitem}{\addtocounter{enumi}{3}\item}

\begin{document}
\begin{enumerate}
  \myitem One
  \myitem Two
  \myitem \dots
\end{enumerate}
\end{document}

结果

您也可以创建一个以步长作为参数的新命令:

\newcommand{\myitem}[1]{\addtocounter{enumi}{\numexpr#1-1\relax}\item}

或者在开始时“设定步长”:

\documentclass{article}

\let\olditem\item
\newcommand{\myitem}[1]{\addtocounter{enumi}{\numexpr#1-1\relax}\olditem}
\newcommand{\setenumstep}[1]{%
  \renewcommand{\item}{\myitem#1}
}

\begin{document}
\begin{enumerate}
  \myitem4 One
  \myitem4 Two
  \myitem4 \dots
\end{enumerate}

\begin{enumerate}
  \setenumstep{4}
  \item One
  \item Two
  \item \dots
\end{enumerate}
\end{document}

这两个枚举的结果与第一个发布的结果相同。

你可能已经知道了,但无论如何它可能会有所帮助:如果你想调整单个项目,你可以手动进行

\item[4.] One
\item[8.] Two

答案2

如果您不关心\labels \item,您可以使用以下设置:

在此处输入图片描述

\documentclass{article}

\usepackage{enumitem,etoolbox,xfp}

\newlist{fourenumerate}{enumerate}{4}
\setlist[fourenumerate]{label = {\mulfour{\value*}.}}

\newrobustcmd{\mulfour}[1]{\inteval{#1 * 4}}

\begin{document}

\begin{enumerate}
  \item One
  \item Two
  \item \ldots
\end{enumerate}

\begin{fourenumerate}
  \item One
  \item Two
  \item \ldots
\end{fourenumerate}

\end{document}

相关内容