.cls 中的愿望清单(逐项列出)环境不起作用

.cls 中的愿望清单(逐项列出)环境不起作用

我在 .cls 文件中创建了这个愿望清单环境。但是,它不起作用。我得到的不是星号,而是一个点。在其他级别上,它也是一个完全正常的列表,没有我指定的任何标签。代码如下所示:

\newenvironment{wishlist}{\begin{itemize}{\renewcommand{\labelitemi}{\color{orange}$\bigstar$}
    \renewcommand{\labelitemii}{\roman{enumii}}
    \renewcommand{\labelitemiii}{\textendash}
    \renewcommand{\labelitemiv}{\alph{enumvi}}
    }}
    {\end{itemize}}

我使用这些包来制作标签:

\RequirePackage{xcolor}
\RequirePackage{pifont}
\RequirePackage{amssymb}

答案1

标签是在\begin{itemize}执行时设置的。因此,\labelitemi\itemize环境内重新定义等不会产生任何效果。解决方案是将\renewcommands 放在 之前\begin{itemize}

\documentclass{article}
\RequirePackage{xcolor}
\RequirePackage{pifont}
\RequirePackage{amssymb}

\newenvironment{wishlist}{
    \renewcommand{\labelitemi}{\color{orange}$\bigstar$}
    \renewcommand{\labelitemii}{\roman{enumii}}
    \renewcommand{\labelitemiii}{\textendash}
    \renewcommand{\labelitemiv}{\alph{enumvi}}
    \begin{itemize}}
    {\end{itemize}}

\begin{document}
\begin{wishlist}
\item AAA
\item BBB
\end{wishlist}
\end{document}

列表

答案2

我建议enumitem

\documentclass{article}
\usepackage{xcolor}
\usepackage{pifont}
\usepackage{amssymb}
\usepackage{enumitem}

\newlist{wishlist}{enumerate}{4}
\setlist[wishlist,1]{label=\textcolor{orange}{$\bigstar$}}
\setlist[wishlist,2]{label=\roman*}
\setlist[wishlist,3]{label=\textendash}
\setlist[wishlist,4]{label=\alph*}

\begin{document}

\begin{wishlist}
\item First (level 1)
\item Second (level 1)
  \begin{wishlist}
  \item First (level 2)
  \item Second (level 2)
    \begin{wishlist}
    \item First (level 3)
    \item Second (level 3)
      \begin{wishlist}
      \item First (level 4)
      \item Second (level 4)
      \end{wishlist}
    \end{wishlist}
  \end{wishlist}
\end{wishlist}

\end{document}

在此处输入图片描述

相关内容