我正在使用enumitem
并尝试仅使用其当前级别来标记项目,但使用其完整的“绝对”值来引用它们。以下是示例文档:
\documentclass[letterpaper]{article}
\usepackage{enumitem}
\newlist{parin}{enumerate}{4}
\setlist[parin,1]{label=\arabic*.,ref=\arabic*,leftmargin=*}
\setlist[parin,2]{label=(\alph*),ref=\theenumi\alph*,leftmargin=*}
\setlist[parin,3]{label=(\arabic*),ref=\theenumii\arabic*,leftmargin=*}
\setlist[parin,4]{label=(\roman*),ref=\theenumiii\roman*,leftmargin=*}
\begin{document}
\begin{parin}
\item Foo
\label{foo}
\begin{parin}
\item Bar
\label{bar}
\begin{parin}
\item Baz
\label{baz}
\begin{parin}
\item Label Me
\label{labelme}
\end{parin}
\end{parin}
\end{parin}
\end{parin}
\ref{foo}
\ref{bar}
\ref{baz}
\ref{labelme}
\end{document}
预期输出的引用如下所示:
1 1a 1a1 1a1i
但实际上,它们显示为:
1 0a 1 i
希望得到一些指导,谢谢!
答案1
您的新列表是,因此parin
相关计数器是parini
、、,而不是、、:parinii
pariniii
enumi
enumii
enumiii
\documentclass[letterpaper]{article}
\usepackage{enumitem}
\newlist{parin}{enumerate}{4}
\setlist[parin,1]{label=\arabic*.,ref=\arabic*,leftmargin=*}
\setlist[parin,2]{label=(\alph*),ref=\theparini\alph*,leftmargin=*}
\setlist[parin,3]{label=(\arabic*),ref=\theparinii\arabic*,leftmargin=*}
\setlist[parin,4]{label=(\roman*),ref=\thepariniii\roman*,leftmargin=*}
\begin{document}
\begin{parin}
\item Foo
\label{foo}
\begin{parin}
\item Bar
\label{bar}
\begin{parin}
\item Baz
\label{baz}
\begin{parin}
\item Label Me
\label{labelme}
\end{parin}
\end{parin}
\end{parin}
\end{parin}
\ref{foo}
\ref{bar}
\ref{baz}
\ref{labelme}
\end{document}