运行头和 babel 中的引用

运行头和 babel 中的引用

如果章节标题包含类似 的引用\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 页。

相关内容