超链接书签中可以混合使用虚线​​和非虚线章节编号吗?

超链接书签中可以混合使用虚线​​和非虚线章节编号吗?

我必须排版一份包含一些非常规章节编号的文档。有些章节级别的编号方式是不能在编号后加点,而其他章节级别则需要加点。

在文档本身中实现这一点不是问题。但是,关于hyperref书签,我只知道\renewcommand*{\Hy@numberline}[1]{#1. }它只是到处都放点。当我可以hyperref像文档中一样使用精确的编号(包括点)时,这将解决问题。

这是一个可以工作的最小示例:

\documentclass[paper=a5]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{hyperref}
\usepackage{bookmark}
\hypersetup{
    bookmarksnumbered=true
}
\makeatletter
\renewcommand*{\Hy@numberline}[1]{#1. }% for dots in bookmarks
\makeatother

\newcommand*{\partnum}[1]{% the (unorthodox) part numbering
    \ifcase \value{#1}%
        VALUE INCORRECT%
    \or%
        A.%
    \or%
        B.%
    \or%
        C. (AA)%
    \or%
        (BB)%
    \or%
        (CC)%
    \or%
        (DD)%
    \else%
        VALUE INCORRECT%
    \fi%
}

\renewcommand*{\thepart}{\partnum{part}}
\renewcommand*{\thechapter}{\Roman{chapter}}
\renewcommand*{\thesection}{\alph{section}}
\RedeclareSectionCommand[tocdynnumwidth]{part}

\begin{document}

\tableofcontents

\part{Example}
\chapter{Example}
\section{Example}
\part{Example}
\part{Example}
\part{Example}
\part{Example}
\part{Example}

\end{document}

仅零件级别需要偏差(无点)。

答案1

我不会声称我理解你的编号系统。但你可以检测书签代码中的级别,并使用它来仅为级别 0 及更高级别添加点:

\documentclass[paper=a5]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{hyperref}
\usepackage{bookmark}
\hypersetup{
    bookmarksnumbered=true
}
\makeatletter
\renewcommand*{\Hy@numberline}[1]{#1\ifnum\Hy@toclevel=-1\else.\fi\space}% for dots in bookmarks
\makeatother

\newcommand*{\partnum}[1]{% the (unorthodox) part numbering
    \ifcase \value{#1}%
        VALUE INCORRECT%
    \or%
        A.%
    \or%
        B.%
    \or%
        C. (AA)%
    \or%
        (BB)%
    \or%
        (CC)%
    \or%
        (DD)%
    \else%
        VALUE INCORRECT%
    \fi%
}

\renewcommand*{\thepart}{\partnum{part}}
\renewcommand*{\thechapter}{\Roman{chapter}}
\renewcommand*{\thesection}{\alph{section}}
\RedeclareSectionCommand[tocdynnumwidth]{part}

\begin{document}

\tableofcontents

\part{Example}
\chapter{Example}
\section{Example}
\part{Example}
\part{Example}
\part{Example}
\part{Example}
\part{Example}

\end{document}

在此处输入图片描述

相关内容