我有一份文档,我想在附录中包含一些问卷(每个问卷都在一个新章节中)。文本包含对附录中各章节的交叉引用:
\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[main=american]{babel}
\usepackage[pdftex]{hyperref}
\usepackage{prettyref}
\usepackage{lipsum}
\newrefformat{app}{Appendix~\ref{#1}}
\begin{document}
\chapter{Dummy chapter}
\lipsum (See \prettyref{app:A})
\appendix
\chapter{First chapter of appendix}\label{app:A}
\lipsum
\end{document}
上面的例子有效,并且在交叉引用的位置我得到了“(参见附录 A)”。
现在,我的问卷都是现有的 PDF 文件。我使用 pdftk 将它们拆分成单独的页面,并使用 \includegraphic 包含每个页面。由于包含的 PDF 中的页面填满了整个页面,因此使用常规的 \chapter{} 命令并不好——它会导致章节标题位于一页的顶部,而第一个 PDF 页面位于下一页。
因此,我定义了一个命令 \appchap,将 chaptertitle 在页面上水平和垂直居中,将条目放入目录中,并设置标签:
\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[main=american]{babel}
\usepackage[pdftex]{hyperref}
\usepackage{prettyref}
\usepackage{lipsum}
\newcommand{\appchap}[1]{%
\cleardoubleoddemptypage
\thispagestyle{empty}
\vspace*{\fill}%
\begin{center}
\usekomafont{disposition}%
\stepcounter{chapter}%
\phantomsection\label{app:\thechapter}%
\addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}#1}%
\markboth{Appendix~\thechapter: #1}
{Appendix~\thechapter: #1~}%
Appendix~\thechapter:\\[.2\baselineskip]#1%
\end{center}
\vfill
\clearpage
}
\newrefformat{app}{Appendix~\ref{#1}}
\begin{document}
\chapter{Dummy chapter}
\lipsum (See \prettyref{app:A})
\chapter{Another chapter}
\lipsum
\appendix
\appchap{First chapter of appendix}
\lipsum
\end{document}
这有点管用——我得到了指向正确章节的超链接,但链接文本是错误的:我得到的不是“(参见附录 A)”,而是“(参见附录 2)”。显然,章节编号设置不正确,显示的编号始终是附录之前最后一章的编号。我的代码可能出了什么问题?
答案1
你可能想要
\refstepcounter{chapter}
不是
\stepcounter{chapter}
但是在参数中使用节号(或字母)的代码看起来很奇怪\label
几乎总是错误的做法。