这个问题看似很长,但因为我包含了 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}