在 \nth 内评估 \arabic (列表中的第 1、第 2......)

在 \nth 内评估 \arabic (列表中的第 1、第 2......)

我正在尝试定义以下环境:

\newlist{aims}{enumerate}{1}
\setlist[aims,1]{
      label={~ \textbullet ~ ~ ~ ~ ~\nth{\arabic*} best  ~~~ =},
      leftmargin=*,
      align=left,
 labelsep=10mm,
 }

我想要的是自动第一、第二、第三……等等。上面的代码返回错误。

/home/snake91/Desktop/.econ.tex.swp:295: Missing number, treated as zero.
<to be read again> 
               \arabic 
l.295 \item
        0.000425%

[编辑]

\documentclass[a4paper, left=5cm, right=5cm, 10pt]{article}
\usepackage{enumitem}
\usepackage[super]{nth}
\newlist{aims}{enumerate}{1}
\setlist[aims,1]{
    label={~ \textbullet ~ ~ ~ ~ ~\arabic* best estimator ~~~ =},
    leftmargin=*,
    align=left,
    labelsep=10mm,
    }
\usepackage[T1]{fontenc}
\begin{document}

\begin{aims}
    \item 
\end{aims}
\end{document}

答案1

对于带有包的序数列表enumitem,您还需要使用该moreenum包:

\documentclass{article}
\usepackage{enumitem}
\usepackage{moreenum}
\begin{document}
\begin{enumerate}[label=\raisenth*] 
\item foo
\item bar
\end{enumerate}
\end{document}

如果您不想要上标序数,请使用\levelnth*而不是\raisenth*

在 LaTeX 中,最快写出“2nd”、“3rd”等的方法是什么?更广泛地讨论 LaTeX 中的序数。

对您的实际示例的一些评论:我不会在标签中使用不间断空格,而是使用 来\hspace{}表示一些金额em。此外,您应该将 设置itemindent为一个值,而不是在项目符号前留一个空格:

\documentclass{article}
\usepackage{enumitem}
\usepackage{moreenum}
\newlist{aims}{enumerate}{1}
\setlist[aims,1]{
    label={\textbullet\hspace{3em}\raisenth* best estimator\hspace{2em}=},
    leftmargin=*,
    labelindent=1em,
    align=left,
    labelsep=10mm,
    }
\begin{document}

答案2

如果你有足够的勇气去冒险enumitemenumerate领土,使用格式化计数器fmtcount

在此处输入图片描述

\documentclass{article}
\usepackage{fmtcount}
\newenvironment{aims}
  {\begin{enumerate}
   \renewcommand{\theenumi}{\ordinal{enumi}}
   \renewcommand{\labelenumi}{\textbullet~\theenumi: }% label = \textbullet~\ordinal*
   \renewcommand{\makelabel}[1]{\makebox[4em][l]{##1}}}% align = left
  {\end{enumerate}}
\begin{document}

\begin{aims}
  \item \item \item \item 
\end{aims}

\end{document}

相关内容