新级别的部分,与 hyperref 交互

新级别的部分,与 hyperref 交互

我想创建一个新的命令 \exsec,其行为类似于 \section,并具有以下属性。我正在使用 book 类。

  1. 它产生与 \section 相同格式的标题,只是按字母顺序而不是数字顺序编号。

  2. \subsection 应该从属于 \exsec。(这并不是绝对必要的。)

  3. 它有一个独立于 \section 的计数器,该计数器会随着每个 \part 重置,但不会随着每个 chapter 重置。

  4. 它在目录中生成条目,就像 \section 一样,只是按字母顺序排列。

  5. 它就像 \section 一样在 PDF 索引中生成条目。

(注意:我并没有尝试按字母顺序标记我的部分。我希望有两个命令, \section 和 \exsec,它们可以独立运行。)

我已经使用以下代码实现了1-4:

\documentclass{book}

\usepackage{chngcntr}
\usepackage[colorlinks=true]{hyperref}



\counterwithout{section}{chapter}

\newcounter{exsec}
\setcounter{exsec}{0}
\renewcommand{\theexsec}{\Alph{exsec}}


\makeatletter
\let\exsecmark\@gobble

\def\l@exsec#1#2{ \@dottedtocline{1}{1.5em}{2.3em}{#1}{#2}}
\long\def\exsec#1{%
\setcounter{subsection}{0}
\renewcommand{\thesubsection}{\Alph{exsec}.\arabic{subsection}}
\@startsection {exsec}{1}{\z@ }{-3.5ex \@plus -1ex \@minus -.2ex}{2.3ex \@plus .2ex}{\normalfont \Large \bfseries }{#1}
}

\long\def\section#1{%
\setcounter{subsection}{0}
\renewcommand{\thesubsection}{\arabic{section}.\arabic{subsection}}
\@startsection {section}{1}{\z@ }{-3.5ex \@plus -1ex \@minus -.2ex}{2.3ex \@plus .2ex}{\normalfont \Large \bfseries }{#1}
}

\makeatother



\begin{document}

\tableofcontents

\part{The first part}

\section{A section}

\exsec{The other kind of section}

\section{Another section}

In the PDF table of contents, this section is listed as a subsection of Section A.

\exsec{Another one of the other kind}

\chapter{A chapter}

This one is also listed as a subsection instead of a chapter.


\end{document}

如上所述,此代码无法实现 5。如何才能使 5 正常工作?谢谢您的帮助。

答案1

以下内容似乎符合您的要求:

在此处输入图片描述

\documentclass{book}

\usepackage{chngcntr}
\usepackage{bookmark}% Loads hyperref
\hypersetup{colorlinks=true}

\newcounter{exsec}

\counterwithout{section}{chapter}
\counterwithout{exsec}{chapter}
\counterwithin{subsection}{exsec}
\counterwithin*{exsec}{part}

\renewcommand{\theexsec}{\Alph{exsec}}

\makeatletter
\def\toclevel@exsec{1}
\let\exsecmark\@gobble

\let\l@exsec\l@section
\long\def\exsec#1{%
  \renewcommand{\thesubsection}{\theexsec.\arabic{subsection}}%
  \renewcommand{\theHsubsection}{ex.\theexsec.\arabic{subsection}}%
  \@startsection {exsec}{1}{\z@ }{-3.5ex \@plus -1ex \@minus -.2ex}{2.3ex \@plus .2ex}{\normalfont \Large \bfseries }{#1}%
}

\long\def\section#1{%
  \renewcommand{\thesubsection}{\thesection.\arabic{subsection}}%
  \renewcommand{\theHsubsection}{\theexsec.\arabic{subsection}}%
  \@startsection {section}{1}{\z@ }{-3.5ex \@plus -1ex \@minus -.2ex}{2.3ex \@plus .2ex}{\normalfont \Large \bfseries }{#1}%
}
\makeatother

\begin{document}

\tableofcontents

\part{The first part}

\section{A section}

\exsec{The other kind of section}
\subsection{A subsection}

\section{Another section}
\subsection{Another subsection}

\exsec{Another one of the other kind}

\chapter{A chapter}

\section{A section}

\exsec{The other kind of section}
\subsection{A subsection}

\section{Another section}
\subsection{Another subsection}

\exsec{Another one of the other kind}

\end{document}

为了正确地在同一结构级别(\exsec\section)上超链接内容,您需要小心谨慎。H还需要调整适当的计数器,否则您的超链接将无法按预期工作。

相关内容