梅威瑟:
\documentclass[12pt]{article}
\usepackage{icomma}
\usepackage[english]{babel}
\newcommand{\bookcite}[6]{#1, #2: \textit{#3}. #4 ed. #5, #6 pp.}
\usepackage{enumitem}
\usepackage{hyperref}
\hypersetup{
colorlinks,
linkcolor=blue,
urlcolor=blue
}
\begin{document}
Text Text Text
\tableofcontents
\newpage
\section{Section Here}
\begin{enumerate}[label=(\thesection.\arabic*)]
\item \begin{enumerate}[label={(\alph*)},ref=(\thesection.\arabic*.\alph*)]
\item \bookcite{Authors}{Year}{Title}{Edition}{Publisher}{Number of Pages}\label{book-A}
\item \bookcite{Authors}{Year}{Title}{Edition}{Publisher}{Number of Pages} \label{book-B}
\end{enumerate}
\item \ref{book-B}
\end{enumerate}
\end{document}
图像:
引用以蓝色显示为 (1.2.b),不应为 (1.2.b),而应为 (1.1.b)。我在这里做错了什么?
我已将范围缩小到不喜欢的标签(出于某种原因,其中的连字符ref
有问题)或不喜欢我的bookcite
命令。 (注意:我确实知道一些 BibTeX……如果它有可能给我比这里更好的结果,我会很想知道!)
答案1
错误在于ref={(\thesection.\arabic*.\alph*)}
,确切地说是命令\arabic*
,因为它将被替换为enumii
(它是第二级),而不是按照要求,向后引用到更高级别enumi
。
手册中以某种方式说明了这一点enumitem
,它ref
不是继承的,必须使用\ref{level1}
等等(但在我看来,这是一个不明确的说法。)
\arabic{enumi}
一种解决方案是在第二级用户定义引用的中间部分明确引用,即
\begin{enumerate}[label={(\alph*)},ref={(\thesection.\arabic{enumi}.\alph*})]
...
作为第二级设置。
\documentclass[12pt]{article}
%\usepackage{icomma} % Is this needed?
\usepackage[english]{babel}
\newcommand{\bookcite}[6]{#1, #2: \textit{#3}. #4 ed. #5, #6 pp.}
\usepackage{enumitem}
\usepackage{hyperref}
\hypersetup{
colorlinks,
linkcolor=blue,
urlcolor=blue
}
\begin{document}
Text Text Text
\tableofcontents
\newpage
\section{Section Here}
\begin{enumerate}[label=(\thesection.\arabic*),ref={(\thesection.\arabic*)}]
\item
\begin{enumerate}[label={(\alph*)},ref={(\thesection.\arabic{enumi}.\alph*})]
\item \label{book-A}\bookcite{Authors}{Year}{Title}{Edition}{Publisher}{Number of Pages}
\item \label{book-B}\bookcite{Authors}{Year}{Title}{Edition}{Publisher}{Number of Pages}
\end{enumerate}
\item \ref{book-B}
\end{enumerate}
\end{document}