跳过列表中的某些数字

跳过列表中的某些数字

我的组织制定了正式信函模板。规则规定每行/每段都必须编号。以下是一些规则:

  1. 段落。段落使用阿拉伯数字,数字后接句号。

  2. 子段落。括号中的小写字母(i)和(o)用于编号子段落。

我已经创建了一个新环境我的列表用于对段落和子段落进行编号。但我不知道如何在嵌套列表中跳过 (i) 和 (o)。我对如何实现它有基本的想法,但无法在 LaTeX 中实现它。

对于每个列表,LaTeX 都会创建一个计数器。例如,对于第一个子段,计数器的值为 1,对于第二个子段,计数器的值为 2。同样,当计数器的值为 9 时,将打印 (i)。可以使用 If else 条件语句跳过计数器值 9 并直接从 8 (h) 跳转到 10 (j)。我需要帮助在 LaTex 中实现这一点。

下面给出了一个最小的工作示例:-

\documentclass[oneside, 12pt]{article}
\usepackage{enumitem}
\newlist{mylist}{enumerate}{2}
\setlist[mylist]{wide, align = left}

\setlist[mylist, 1]{leftmargin = 0in, label = \arabic*.}
\setlist[mylist, 2]{leftmargin = 0.5in, label = (\alph*)}

\begin{document}

\begin{mylist}
    
    \item Foo
    
    \begin{mylist}
        
        \item bar
        
        \item bar
        
        \item bar
        
        \item bar
        
        \item bar
        
        \item bar
        
        \item bar
        
        \item bar
        
        \item bar
        
        \item There are too many bars and not enough foo's in this list!
        
    \end{mylist}

\end{mylist}

\end{document}

答案1

mylistii您可以插入一个测试来检查列表开头的值mylist

在此处输入图片描述

\documentclass{article}

\usepackage{enumitem}

\newlist{mylist}{enumerate}{2}
\setlist[mylist]{wide, align = left}

\newcommand{\noIorO}{%
  \let\olditem\item
  \renewcommand{\item}{%
    \ifnum\value{mylistii}=8
      \stepcounter{mylistii}% Skips (i)
    \fi
    \ifnum\value{mylistii}=14
      \stepcounter{mylistii}% Skips (o)
    \fi
    \olditem
  }%
}
\setlist[mylist, 1]{leftmargin = 0in, label = \arabic*.}
\setlist[mylist, 2]{leftmargin = 0.5in, label = (\alph*),before=\noIorO}

\begin{document}

\begin{mylist}
  \item Foo
  \begin{mylist}
    \item bar
    \item bar
    \item bar
    \item bar
    \item bar
    \item bar
    \item bar
    \item bar
    \item bar
    \item bar
    \item bar
    \item bar
    \item bar
    \item bar
    \item bar
    \item bar
    \item bar
    \item There are too many bars and not enough foo's in this list!
  \end{mylist}
\end{mylist}

\end{document}

答案2

你可以直接添加\stepcounter{mylistii}。对于更大的跳跃,你可以使用\addtocounter,例如\addtocounter{mylistii}{3}

\documentclass[oneside, 12pt]{article}
\usepackage{enumitem}
\newlist{mylist}{enumerate}{2}
\setlist[mylist]{wide, align = left}

\setlist[mylist, 1]{leftmargin = 0in, label = \arabic*.}
\setlist[mylist, 2]{leftmargin = 0.5in, label = (\alph*)}

\begin{document}

\begin{mylist}
    
    \item Foo
    
    \begin{mylist}
        
        \item bar
        
        \item bar
        
        \item bar
        
        \item bar
        
        \item bar
        
        \item bar
        
        \item bar
        
        \item bar\stepcounter{mylistii}
        
        \item bar
        
        \item There are too many bars and not enough foo's in this list!
        
    \end{mylist}

\end{mylist}

\end{document}

在此处输入图片描述

相关内容