我在 .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
环境内重新定义等不会产生任何效果。解决方案是将\renewcommand
s 放在 之前\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}