我有每年的部分:
\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
使用新的计数器时都会更新。