使用 amsthm 和 enumerate 时出现 Hyperref 警告

使用 amsthm 和 enumerate 时出现 Hyperref 警告

hyperref给出警告,表示已引用某些内容但该内容不存在。当我使用enumerate(或itemize)列表时,我收到警告。以下是最小工作示例(MWE):

\documentclass{scrartcl}
\usepackage{amsthm}
\usepackage{hyperref}
\newtheorem{Bem}{Bemerkung}
\begin{document}
\begin{Bem}
\label{Bemelm}
\begin{enumerate}
    \item 
\end{enumerate}
\end{Bem}
\ref{Bemelm}
\end{document}

当我使用cleveref或者不使用时hyperref,它不会发出任何警告。

答案1

如果在一个列表环境中立即启动另一个列表环境,LaTeX 会处于一种奇怪的状态,hyperref 最终会引用它从未真正使用过的内部标签。

\documentclass{scrartcl}
\usepackage{amsthm}
\usepackage{hyperref}
\newtheorem{Bem}{Bemerkung}
\begin{document}
\begin{Bem}
\mbox{}\label{Bemelm}
\begin{enumerate}
    \item 
\end{enumerate}
\end{Bem}
\ref{Bemelm}
\end{document}

消除错误,但也会改变布局。如果你想要原始布局,我需要更仔细地查看:-)

相关内容