手动设置章节计数器覆盖目录

手动设置章节计数器覆盖目录

我有每年的部分:

\part{2011}
...
\part{2012}
...
etc.
...

为了达到文体目的,我希望章节编号为该年份的月份(例如,像章节编号的显示方式一样这里

\setcounter{chapter}{7}
\chapter{August 2011}

但现在ToC“2011 年 8 月”章节的链接指向“2010 年 8 月”页面。我该如何修复此问题?

答案1

hyperref在某些情况下,新部分(=年份)之后章节计数器的重置会混淆超链接设置,除非hypertexnames=false使用该选项。

这个“解决方案”使用循环自动设置月份名称,但这种形式当然不适合在月份章节之间高效运行内容

\documentclass{scrbook}

\usepackage{forloop}
\usepackage{assoccnt}%
\usepackage{datetime}

\usepackage{hyperref}

\usepackage{bookmark}

\hypersetup{%
  hypertexnames=false
}%

\newcounter{monthloopcounter}
\newcounter{yearcounter}
\setcounter{yearcounter}{2009}

\DeclareAssociatedCounters{part}{yearcounter}



\makeatletter
\@addtoreset{chapter}{part}
\makeatletter



\begin{document}
\tableofcontents

\part{\theyearcounter}

\forloop{monthloopcounter}{1}{\value{monthloopcounter} < 13}{%
  \chapter{\monthname[\number\value{monthloopcounter}] \theyearcounter}%
}%


\part{\theyearcounter}

\forloop{monthloopcounter}{1}{\value{monthloopcounter} < 13}{%
  \chapter{\monthname[\number\value{monthloopcounter}] \theyearcounter}%
}%


\part{\theyearcounter}

\forloop{monthloopcounter}{1}{\value{monthloopcounter} < 13}{%
  \chapter{\monthname[\number\value{monthloopcounter}] \theyearcounter}%
}%

\end{document}

我使用assoccnt包添加了一个共同行进计数器,每次\part使用新的计数器时都会更新。

在此处输入图片描述

相关内容