在新环境中逐项列出

在新环境中逐项列出

我是 LaTeX 新手。我的问题是为什么这段代码不起作用。

\documentclass[a4paper,12pt]{article}

\usepackage{fullpage} 

 \newcounter{const}
 \renewcommand{\theconst}{\roman{const}}

 \renewcommand{\item}{\stepcounter{const} (\theconst)}
 \newcommand{\myitem}{\item}

\newenvironment{myenumerate}
{ \begin{itemize} }
{ \end{itemize} }

\begin{document}

\begin{myenumerate}
   \myitem A
   \myitem B
   \myitem C
\end{myenumerate}

\end{document}

答案1

问题是,它\item所做的不仅仅是打印列表中的项目。具体来说,它会设置一个标志来标识您已\item在任何列表中提供了至少一个项目(除其他事项外)。\item以您的方式重新定义会删除此功能,因此会在常规列表环境下引发错误(myenumerate在您的示例中模拟常规enumerate列表)。

如果你想要的是一个使用\roman数字的枚举列表,那么你可以使用enumitem

在此处输入图片描述

\documentclass{article}

\usepackage{enumitem}

\newlist{myenumerate}{enumerate}{1}
\setlist[myenumerate,1]{label = (\roman*)}
\newcommand{\myitem}{\item}

\begin{document}

\begin{myenumerate}
 \myitem A
 \myitem B
 \myitem C
\end{myenumerate}

\end{document}

这也可以更改为打印内联列表,以及大量其他修改。

相关内容