hyperef 与特设定理编号章节编号

hyperef 与特设定理编号章节编号

我正在尝试使用标签/引用机制来获取定理的编号 chapter.nb。我得到了正确的编号,但超引用链接指向错误的地址:它忘记了“章节”部分,因此“2.1”指向(thm 编号)“1”,第一个这样的实例是“1.1”。我保留了 fancyhdr 和 mdframed 在 ECM 中,以防它影响解决方案。

非常感谢您抽出时间和提供建议!祝好,Olivier

\documentclass{book}
\usepackage{fancyhdr, mdframed, hyperref}
\newcounter{mythmcnt}
\setcounter{mythmcnt}{0}
\renewcommand*\themythmcnt{\thechapter.\arabic{mythmcnt}}
\newmdenv{ispecialthm}
\newenvironment{thmenvN}[2][]{\refstepcounter{mythmcnt}%
\begingroup\begin{ispecialthm}[frametitle={#2\ \themythmcnt}]}{\end{ispecialthm}\endgroup}

\newenvironment{thmN}[1][]{\begingroup\begin{thmenvN}[#1]{Theorem}}{\end{thmenvN}\endgroup}

\begin{document}
\chapter{First}
\setcounter{mythmcnt}{0}

\begin{thmN}
  \label{thm1} A first theorem.
\end{thmN}

Here are Theorem~\ref{thm1} and Theorem~\ref{thm2}.

\chapter{Second}
\setcounter{mythmcnt}{0}

\begin{thmN}
  \label{thm2} A second theorem.
\end{thmN}

Here are Theorem~\ref{thm1} and Theorem~\ref{thm2}.
\end{document}

答案1

只是定义mythmcnt为从属于chapter

我还删除了多余的分组。但是,有些部分没有用到。

\documentclass{book}
\usepackage{fancyhdr, mdframed, hyperref}

\newcounter{mythmcnt}[chapter]
\renewcommand*\themythmcnt{\thechapter.\arabic{mythmcnt}}

\newmdenv{ispecialthm}

\newenvironment{thmenvN}[2][]
  {%
   \refstepcounter{mythmcnt}%
   \ispecialthm[frametitle={#2\ \themythmcnt}]%
  }
  {\endispecialthm}

\newenvironment{thmN}[1][]
  {\thmenvN[#1]{Theorem}}
  {\endthmenvN}

\begin{document}

\chapter{First}

\begin{thmN}[abc]
  \label{thm1} A first theorem.
\end{thmN}

Here are Theorem~\ref{thm1} and Theorem~\ref{thm2}.

\chapter{Second}

\begin{thmN}
  \label{thm2} A second theorem.
\end{thmN}

Here are Theorem~\ref{thm1} and Theorem~\ref{thm2}.

\end{document}

相关内容