我正在寻找一种简单的方法,在枚举的左侧添加星号或一些小图像,以使枚举的缩进不受后者的影响。我读过在枚举中的标签后添加星号和在目录中的章节标签前添加星号其中后者具有我所寻求的效果。
更新: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
使用:\moditem
enumerate
\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}