附录中的章节引用有误

附录中的章节引用有误

我有一份文档,我想在附录中包含一些问卷(每个问卷都在一个新章节中)。文本包含对附录中各章节的交叉引用:

\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几乎总是错误的做法。

相关内容