在多枚举包中的特定编号中添加星号

在多枚举包中的特定编号中添加星号

@egreg 很好地回答了我的问题在本地为项目添加星号通过引入命令\moditem。我想知道这是否可以用于multienum包中的特定项目。这是我目前所拥有的:

\documentclass[letterpaper]{article}

\usepackage{multienum}

\begin{document}
    \begin{multienumerate}
    {\renewcommand{\labelname}{\llap{*}\csname
labelenum\romannumeral\themultienumdepth\endcsname}
        \mitemx{one}
        \mitemxx{two}{three}}
        \mitemxx{four}{five}
    \end{multienumerate}
\end{document} 

在此处输入图片描述

我发现的问题是,没有multienum单独定义每个项目,例如\mitemxx{<content>}{<content>}。例如,如果我想在第 3 项上加一个星号,至少对我来说有点困难。本质上,我希望能够以两种不同的方式放置星号:

  1. \mitemax{<content with asterisk>}{<content without asterisk>}类似这样的命令a,使得 出现在的位置就是 出现在的位置。这样\mitemxa就定义了不同的场景。当然,我认为这很难,因为您可能需要为\mitemx\mitemxx\mitemxxx\mitemxxxx、的所有场景创建多个自定义命令\mitemxxxxx
  2. 简单来说,就是一个命令,\astmitem在本地重新定义标签。例如,\mitemxx{\astitem <content>}{<content>}将在第一项前面放置一个星号。这比较简单,但我搞不懂。

更新

@cgnieder 提供的答案非常好,但是当我做类似的事情时:

\newcommand*\doexercise[1][\includegraphics[scale=0.125]{g3016}]{%
  \gdef\labelname{%
    \llap{#1}%
    \csname labelenum\romannumeral\themultienumdepth\endcsname
    \gdef\labelname{%
      \csname labelenum\romannumeral\themultienumdepth\endcsname}%
  }}

它不起作用。为什么?图形文件可以用任何符号替换。如果用 替换,效果\includegraphics[scale=0.125]{g3016}很好*


\includegraphics[scale=0.125]{g3016}通过将 替换为 来解决{\includegraphics[scale=0.125]{g3016}}。你可以阅读] 位于可选参数内有关修复的更多信息。

答案1

\starnext以下是一个重新定义命令的想法\labelname,该命令在调用时会自行恢复。这几乎为您提供了您在问题中概述的语法:

\documentclass{article}

\usepackage{multienum}
\newcommand*\starnext{%
  \gdef\labelname{%
    \llap{*}%
    \csname labelenum\romannumeral\themultienumdepth\endcsname
    \gdef\labelname{%
      \csname labelenum\romannumeral\themultienumdepth\endcsname}%
  }}

\begin{document}

\begin{multienumerate}
  \mitemx{one\starnext}
  \mitemxx{two}{three}
  \mitemxx{four\starnext}{five}
\end{multienumerate}

\begin{multienumerate}\starnext
  \mitemx{one}
  \mitemxx{two}{three\starnext}
  \mitemxx{four}{five}
\end{multienumerate}

\end{document}

在此处输入图片描述

相关内容