在枚举左侧添加星号

在枚举左侧添加星号

我正在寻找一种简单的方法,在枚举的左侧添加星号或一些小图像,以使枚举的缩进不受后者的影响。我读过在枚举中的标签后添加星号在目录中的章节标签前添加星号其中后者具有我所寻求的效果。

更新:egreg 的以下解决方案很好,确实解决了问题。但我希望能够newcommand使用而不引入newenvironment类似的东西,只需\moditem在枚举内部使用并使用enumitem

答案1

只需相应修改modenumerate定义的环境在枚举中的标签后添加星号

\documentclass[a4paper]{article}
\newenvironment{modenumerate}
  {\enumerate\setupmodenumerate}
  {\endenumerate}

\newif\ifmoditem
\newcommand{\setupmodenumerate}{%
  \global\moditemfalse
  \let\origmakelabel\makelabel
  \def\moditem##1{\global\moditemtrue\def\mesymbol{##1}\item}%
  \def\makelabel##1{%
    \origmakelabel{\ifmoditem\llap{\mesymbol\enspace}\fi##1}%
    \global\moditemfalse}%
}

\begin{document}
\begin{modenumerate}
\item uno
\item due
\moditem{*} tre
\item quattro
\end{modenumerate}
\begin{enumerate}
\item uno
\item due
\item tre
\item quattro
\end{enumerate}
\end{document}

您可以使用任何您想要的来代替*,只要它可以设置为\mbox。 以下enumerate只是为了表明结果是相同的。


如果您正在使用该包,则以下代码允许在任何环境中enumitem使用:\moditemenumerate

\usepackage{enumitem}
\setlist[enumerate]{before=\setupmodenumerate}

\newif\ifmoditem
\newcommand{\setupmodenumerate}{%
  \global\moditemfalse
  \let\origmakelabel\makelabel
  \def\moditem##1{\global\moditemtrue\def\mesymbol{##1}\item}%
  \def\makelabel##1{%
    \origmakelabel{\ifmoditem\llap{\mesymbol\enspace}\fi##1}%
    \global\moditemfalse}%
}

如果你不使用enumitem,则将前两行更改为

\usepackage{etoolbox}
\appto{\enumerate}{\setupmodenumerate}

相关内容