我想创建一个新的命令 \exsec,其行为类似于 \section,并具有以下属性。我正在使用 book 类。
它产生与 \section 相同格式的标题,只是按字母顺序而不是数字顺序编号。
\subsection 应该从属于 \exsec。(这并不是绝对必要的。)
它有一个独立于 \section 的计数器,该计数器会随着每个 \part 重置,但不会随着每个 chapter 重置。
它在目录中生成条目,就像 \section 一样,只是按字母顺序排列。
它就像 \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
还需要调整适当的计数器,否则您的超链接将无法按预期工作。