重置计数器但更改其格式化的字符串仍然会出现 pdfTeX 警告(ext4)

重置计数器但更改其格式化的字符串仍然会出现 pdfTeX 警告(ext4)

这个问题看似很长,但因为我包含了 3 段代码——它们很容易理解。
重置计数器并通过更改其格式化的字符串\renewcommand\themycounter{\Alph{mycounter}}在使用时仍然会给出以下警告\refstepcounter

pdfTeX warning (ext4): destination with the same identifier (name{mycounter.1}) has been already used, duplicate ignored

如果没有 hyperref,则不会打印任何警告。我以为\alph我已经对计数器进行了足够的更改,以便再次使用它的值进行引用,但显然这还不够。

问题 1.我该如何消除这些警告?

平均能量损失

\documentclass{article}
\usepackage{hyperref}
\newcounter{mycounter}

\begin{document}

\refstepcounter{mycounter}\themycounter

\renewcommand{\themycounter}{\Alph{mycounter}}
\setcounter{mycounter}{0}

\refstepcounter{mycounter}\themycounter

\end{document}

还有更多...

有趣的是,当我使用\counterwithin{mycounter}{section}(包提供的命令chngcntr)时,重置计数器后\appendix没有发出任何警告

\documentclass{article}
\usepackage{hyperref}
\newcounter{mycounter}
\usepackage{chngcntr}
\counterwithin{mycounter}{section}

\begin{document}

\section{Some section}
\refstepcounter{mycounter}\themycounter

\appendix
\setcounter{mycounter}{0}

\section{Some appendix}
\refstepcounter{mycounter}\themycounter

\end{document}

\counterwithin{mycounter}{yourcounter}在更改后会发出警告\theyourcounter

\documentclass{article}
\usepackage{hyperref}
\newcounter{mycounter}
\newcounter{yourcounter}
\usepackage{chngcntr}
\counterwithin{mycounter}{yourcounter}
\setcounter{yourcounter}{1}

\begin{document}

\refstepcounter{mycounter}\themycounter

\renewcommand{\theyourcounter}{\Alph{yourcounter}}
\setcounter{mycounter}{0}

\refstepcounter{mycounter}\themycounter

\end{document}

问题2。我怎样才能yourcounter以类似于 的方式进行section更改\appendix以避免出现警告?

答案1

使用 hyperref 您还应该重新定义内部 hyperref 表示:

\documentclass{article}
\usepackage{hyperref}
\newcounter{mycounter}

\begin{document}

\refstepcounter{mycounter}\themycounter

\renewcommand{\themycounter}{\Alph{mycounter}}
\renewcommand\theHmycounter{\Alph{mycounter}}
\setcounter{mycounter}{0}

\refstepcounter{mycounter}\themycounter

\end{document}

相关内容