titlesec、hyperref、algorithm2e 和 \appendix

titlesec、hyperref、algorithm2e 和 \appendix

当我同时使用titlesechyperref和时algorithm2e,之后的部分\appendix编号不正确。

\documentclass{article}
\usepackage{titlesec}
\usepackage{hyperref}
\usepackage{algorithm2e}
\begin{document}
\section{foo}
\appendix
\section{bar}
\end{document}

编译时出现警告

pdfTeX 警告(ext4):具有相同标识符(name{section.1})的目标已被使用,重复项被忽略

果然,.aux 文件显示

\@writefile{toc}{\contentsline {section}{\numberline {1}foo}{1}{section.1}}
\@writefile{toc}{\contentsline {section}{\numberline {A}bar}{1}{section.1}}
  • 删除titlesec将第二个更改section.1appendix.1
  • 删除algorithm2e将第二个更改section.1section.A
  • 删除两者会将第二个更改section.1appendix.A

不同于上次我尝试了所有六种包的排列组合,但是没有成功。

这样的组合包能起作用吗?

答案1

最后加载总是好的hyperref。(但你是对的,这并不能解决你的问题。)我认为问题的主要根源是algorithm2e。基于 这次讨论(德语)这里似乎有几种可能的解决方案。最简单的两个是:

添加

\renewcommand*{\theHsection}{\thesection}

加载后hyperref

或者

添加

\let\chapter\undefined

加载后algorithm2e

\documentclass{article}
\usepackage{titlesec}
\usepackage{algorithm2e}
\let\chapter\undefined % use this line
\usepackage[]{hyperref}
%\renewcommand*{\theHsection}{\thesection} % or this one
\begin{document}
\section{foo}
\appendix
\section{bar}
\end{document}

相关内容