我正在尝试创建自定义列表,但一直收到错误消息。我觉得最好发布 MWE 和输出的屏幕截图。
\documentclass[]{article}
\usepackage{enumitem}
\newlist{mylist}{enumerate}{4}
\setlist[mylist,1]{
label=(\Roman*)}
\setlist[mylist,2]{
label=(\roman*),
ref=(\Roman{mylisti}.\roman*) }
\setlist[mylist,3]{
label=(\textit{\alph*}),
ref=(\Roman{mylisti},\roman{mylistii}.\textit{\alph*}) }
\setlist[mylist,4]{
label=(\arabic*),
ref=(\Roman{mylisti},\roman{mylistii}.\textit{\alph{mylistiii}}.\arabic*) }
\begin{document}
\begin{mylist}
\item level one, I
\begin{mylist}
\item level two, i
\begin{mylist}
\item level three, a
\begin{mylist}
\item level four, 1
\end{mylist}
\end{mylist}
\end{mylist}
\end{mylist}
\end{document}
我之前制作过自定义列表,enumitem
没有任何问题,例如以下运行没有错误。
\newlist{my_list}{enumerate}{3}
\setlist[my_list,1]{
label=(\roman*) }
\setlist[my_list,2]{
label=(\textit{\alph*}),
ref=(\roman{my_listi}.\textit{\alph*}) }
\setlist[my_list,3]{
label=\arabic*.,
ref=(\roman{my_listi}.\textit{\alph{my_listii}}.\arabic*) }
我已经玩了第一个很久了,但就是无法让它工作。如果能得到帮助我将不胜感激!谢谢 :)
答案1
您只需在逗号中添加括号即可ref=
:
\documentclass[]{article}
\usepackage{enumitem}
\newlist{mylist}{enumerate}{4}
\setlist[mylist,1]{
label=(\Roman*)}
\setlist[mylist,2]{
label=(\roman*),
ref=(\Roman{mylisti}.\roman*) }
\setlist[mylist,3]{
label=(\textit{\alph*}),
ref=(\Roman{mylisti}{,}\roman{mylistii}.\textit{\alph*}) }
\setlist[mylist,4]{
label=(\arabic*),
ref=(\Roman{mylisti}{,}\roman{mylistii}.\textit{\alph{mylistiii}}.\arabic*)}
\begin{document}
\begin{mylist}
\item level one, I\label{test-level-i}
\begin{mylist}
\item level two, i\label{test-level-ii}
\begin{mylist}
\item level three, a\label{test-level-iii}
\begin{mylist}
\item level four, 1 \label{test-level-iv}
\end{mylist}
\end{mylist}
\end{mylist}
\end{mylist}
We see in \ref{test-level-iv}…
\end{document}