如果章节标题包含类似 的引用\section{Proof of Theorem~\ref{maintheorem}}
,我们加载 babel,但不包含,\nouppercaseheads
则 LaTeX 会将其解释\ref{maintheorem}
为\ref{MAINTHEOREM}
并报告缺少引用。可以通过 来修复它Theorem~\lowercase{\ref{maintheorem}}
。
但是,如果标签还包含大写字母,则不起作用,例如{MainTheorem}
\documentclass[12pt]{article}
\newtheorem{theorem}{Theorem}
\usepackage[english.us]{babel}
\usepackage{blindtext}
\pagestyle{headings}
%\nouppercaseheads
\begin{document}
\title{Some crap}
\author{A. Author}
\date{\today}
\maketitle
\section{Results}
\begin{theorem}\label{maintheorem}
\blindtext
\end{theorem}
\section{Proof of {\ref{maintheorem}}}
\blindtext
\newpage
\blindtext
\newpage
\blindtext
\newpage
\blindtext
\end{document}
答案1
如果你不需要在裁判(或围兜)中使用简写,只需写:
\usepackage[english, safe=none]{babel}
@barbarabeeton 链接的问题解释了原因hyperref
,因为它完全相同(受保护的\ref
)。在的情况下babel
,\ref
如果使用简写来命名标签,则会重新定义以使其“安全”。请参阅手册第 15 页。