当我嵌套enumerate
环境时,似乎会多次生成较低级别的引用。我应该如何在不修改模板本身的情况下修复此问题?
最小示例
\documentclass[sn-aps,pdflatex]{sn-jnl}
\begin{document}
\begin{enumerate}
\item \label{itm:1}
\item \label{itm:2}
\begin{enumerate}
\item \label{itm:2a}
\item \label{itm:2b}
\begin{enumerate}
\item \label{itm:2b1}
\end{enumerate}
\end{enumerate}
\end{enumerate}
\ref{itm:1}, \ref{itm:2}, \ref{itm:2a}, \ref{itm:2b}, \ref{itm:2b1}.
\end{document}
参考文献的预期输出:1, 2, 2a, 2b, 2b.i
实际输出参考:1, 2, 22a, 22b, 2(2b)2b.i.
我想我应该\theenumii
改变\theenumiii
\renewcommand{\theenumii}{\alph{enumii}}
\renewcommand{\theenumiii}{\roman{enumiii}}
然而,在这种情况下,参考的输出是:1, 2, 2a, 2b, 2(b)i.
看来,应该还有一些东西影响着参考文献的输出。
答案1
该班级有
\def\labelenumi{\theenumi.} \def\theenumi{\arabic{enumi}}
\def\labelenumii{(\alph{enumii})} \def\theenumii{\theenumi\alph{enumii}}
\def\labelenumiii{(\roman{enumiii})}\def\theenumiii{\theenumii.\roman{enumiii}}
\def\labelenumiv{(\Alph{enumiv})} \def\theenumiv{\theenumiii.\Alph{enumiv}}
这似乎不是一个问题,按照类开发人员的意图,你应该但在文件中我们2a
看到\ref{itm:2a}
.aux
\newlabel{itm:2a}{{22a}{1}{}{Item.3}{}}
发生了什么?该类的开发人员忘记了\p@<counter>
。
\documentclass[sn-aps,pdflatex]{sn-jnl}
\labelformat{enumi}{#1}
\labelformat{enumii}{#1}
\labelformat{enumiii}{#1}
\labelformat{enumiv}{#1}
\begin{document}
\begin{enumerate}
\item \label{itm:1}
\item \label{itm:2}
\begin{enumerate}
\item \label{itm:2a}
\item \label{itm:2b}
\begin{enumerate}
\item \label{itm:2b1}
\end{enumerate}
\end{enumerate}
\end{enumerate}
\ref{itm:1}, \ref{itm:2}, \ref{itm:2a}, \ref{itm:2b}, \ref{itm:2b1}.
\end{document}