我正在尝试使用标签/引用机制来获取定理的编号 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}