我是 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}
这也可以更改为打印内联列表,以及大量其他修改。