在 Latex 中仅对选定的数字进行编号(枚举?)

在 Latex 中仅对选定的数字进行编号(枚举?)

我应该回答教科书中的以下数学问题:1、10、19 和 34。如何使用 LaTeX 对这些问题进行编号?

答案1

一点代码高尔夫:定义一个序列,例如1,10,19,34并重新定义,如果计数器是,则\refstepcounter使用另一个并从序列中获取相关值。\theenumienumi

当列表中没有足够的项目时,不会进行检查。

为了清除列表并恢复到原始状态enumi,请使用\clearenumerateselection

其他方式:使用enumitem特殊AddEnumerateCounter设置。

\documentclass{article}

\makeatletter

\let\latex@@refstepcounter\refstepcounter
\usepackage{expl3}

\ExplSyntaxOn


\seq_new:N \g_thomas_enumerateselection_seq 
\int_new:N \g_thomas_enumi_int

\cs_new:Npn \setenumerateselection #1{%
  \seq_set_from_clist:Nn \g_thomas_enumerateselection_seq  {#1}
}

\cs_new:Npn \clearenumerateselection {
  \seq_gclear:N \g_thomas_enumerateselection_seq
}

\cs_generate_variant:Nn \str_if_eq:nnT  {xnT}

\AtBeginDocument{%
  \cs_set:Npn \refstepcounter #1 {%
    \str_if_eq:xnT {#1} {enumi} {
      \seq_if_empty:NF \g_thomas_enumerateselection_seq {%
        % Redefine \theenumi
        \cs_set:cpn {the#1} {\seq_item:Nn \g_thomas_enumerateselection_seq {\value{#1}}}
      }
    }
    \latex@@refstepcounter{#1}
  }
}

\ExplSyntaxOff

\makeatother

\begin{document}

\setenumerateselection{1,10,19,34}

\begin{enumerate}
  \item Foo
  \item Bar
  \item And now for something completely different
  \item May the Fourth/Force be with you ;-)
\end{enumerate}

\clearenumerateselection

\begin{enumerate}
  \item Foo
  \item Bar
  \item And now for something completely different
  \item May the Fourth/Force be with you ;-)
\end{enumerate}


\end{document}

在此处输入图片描述

相关内容