具有相同标识符名称的目的地 {xtheorem.1}

具有相同标识符名称的目的地 {xtheorem.1}

我有警告

具有相同标识符(name{xtheorem.1})的目标已被使用,重复项已忽略 \relax l.31 \begin{definition}[DefinitionInChapterTwo]

虽然关于“具有相同标识符的目的地”的问题有很多,但我无法根据标识符找到一个xtheorem

\begin{definition}仅当我在多个章节中使用时才会出现此问题,因此我认为在一个章节内,标识符是唯一的,但在整个文档中不是唯一的......

这是我的 MWE:

\documentclass[twoside, openright, 12pt]{book}

\usepackage[plainpages=false,pdfpagelabels]{hyperref}

\usepackage[titles]{tocloft}
\newlistof[chapter]{theorems}{lthm}{\theoremsname}

\newcommand\addtotheorems[2]{
    \refstepcounter{theorems}
    \addcontentsline{lthm}{theorems}{\protect\numberline{\thetheorems}\textbf{#1:} #2}
}

\usepackage{shadethm}
\newshadetheorem{xtheorem}{Satz}[chapter]
\newshadetheorem{xdefinition}[xtheorem]{Definition}

\newenvironment{definition}[1][]{%
    \addtotheorems{Definition}{#1}
    \begin{xdefinition}[#1]%
    }{\end{xdefinition}}

\begin{document}

\chapter{Title1}
\section{Section 1-1}

\begin{definition}[DefinitionInChapterOne]
\end{definition}

\chapter{Title2}
\section{Section 2-1}

\begin{definition}[DefinitionInChapterTwo]
\end{definition} 

\end{document}

您能告诉我哪里需要做改动才能解决这个问题吗?


更新:我发现它与行有关\newshadetheorem{xtheorem}{Satz}[chapter] 这给了我(章节号)。(每章计数器)。但在我看来,这是独一无二的!?!不是吗?如果我改为chaptersection我得到了一个定理数,如 1.1.1,这显然意味着(章节号)。(节号)。(每节计数器)

答案1

而不是shadethm我会看一下tcolorbox。无论如何,您只需要定义\theHxtheorem,它将hyperref用于设置锚点。

最后加载hyperref

\documentclass[twoside, openright, 12pt]{book}

\usepackage[titles]{tocloft}
\usepackage{shadethm}

\usepackage[plainpages=false,pdfpagelabels]{hyperref}

\newlistof[chapter]{theorems}{lthm}{\theoremsname}

\newcommand\addtotheorems[2]{% <-- don't forget
    \refstepcounter{theorems}% <-- don't forget
    \addcontentsline{lthm}{theorems}{\protect\numberline{\thetheorems}\textbf{#1:} #2}% <-- don't forget
}

\newshadetheorem{xtheorem}{Satz}[chapter]
\newshadetheorem{xdefinition}[xtheorem]{Definition}
% keep hyperref happy
\newcommand{\theHxtheorem}{\thechapter.\arabic{xtheorem}}

\newenvironment{definition}[1][]
 {\addtotheorems{Definition}{#1}\begin{xdefinition}[#1]}
 {\end{xdefinition}}

\begin{document}

\chapter{Title1}
\section{Section 1-1}

\begin{definition}[DefinitionInChapterOne]
\end{definition}

\chapter{Title2}
\section{Section 2-1}

\begin{definition}[DefinitionInChapterTwo]
\end{definition} 

\end{document}

相关内容