根据枚举计数器的值更改标签分隔

根据枚举计数器的值更改标签分隔

我正在尝试编写一个自定义列表,其中标签间距(文本和标签之间的间距)应根据标签中的数字数量而变化。例如,如果标签小于 10,则标签间距应为 0.36 英寸;对于 10 到 99 之间的标签,标签间距应为 0.27 英寸。

在第一步中,我尝试编写一个自定义列表,如果列表计数器等于 1,则应显示 foo,否则应显示 bar。但是,无论有多少条目,它都适用于最后一个 \item 条目。以下是 MWE。

\documentclass{article}
\usepackage{enumitem}
\usepackage{etoolbox}
\setlist[enumerate]{wide, align=left, topsep=0mm, parsep=0.20in, partopsep=0mm, itemsep=0in, labelindent=0pt, labelsep=0.36in}
\newenvironment{FirstList}[1][]{
    \begin{enumerate}[#1] } {
    \ifnumcomp{\theenumi}{=}{1}{
    FOO } {
    BAR}
    \end{enumerate} }

\begin{document}

    \begin{FirstList}
    \item 

    \item 

    \item 

    \item 
    \end{FirstList}

\end{document}

答案1

如果您希望对每个项目应用测试,您可能需要在本地重新定义\item

\documentclass{article}
\usepackage{enumitem}
\setlist[enumerate]{wide, align=left, topsep=0mm, parsep=0.20in, partopsep=0mm, itemsep=0in, labelindent=0pt, labelsep=0.36in}
\newenvironment{FirstList}[1][]{\begingroup\let\olditem\item
    \renewcommand\item{\olditem
    \ifnum\value{enumi}=1
    FOO
    \else
    BAR
    \fi}
    \begin{enumerate}[#1] } {
    \end{enumerate} \endgroup}

\begin{document}

\begin{FirstList}
    \item 

    \item 

    \item 

    \item 
\end{FirstList}

\end{document}

在此处输入图片描述

然后,您可以\labelsep在计数器的一些临界值处更改。这里我选择这个数字为 2,但您可以选择999等等。

\documentclass{article}
\usepackage{enumitem}
\setlist[enumerate]{wide, align=left, topsep=0mm, parsep=0.20in, partopsep=0mm, itemsep=0in, labelindent=0pt, labelsep=0.36in}
\newenvironment{FirstList}[1][]{\begingroup\let\olditem\item
    \renewcommand\item{\olditem
    \ifnum\value{enumi}=1
    FOO
    \else
    BAR
    \fi
    \ifnum\value{enumi}=2
     \addtolength\labelsep{-0.2in}
    \fi}
    \begin{enumerate}[#1] } {
    \end{enumerate} \endgroup}

\begin{document}

\begin{FirstList}
    \item 

    \item 

    \item 

    \item 
\end{FirstList}

\end{document}

相关内容