摘要页面问题

摘要页面问题

我正在使用报告文档类。目录之前有摘要和致谢部分。

这是我对致谢的定义。我从网上某个地方获取了它,因此可能有错误。

\makeatletter
\newcommand\ackname{Acknowledgements}
\if@titlepage
  \newenvironment{acknowledgements}{%
      \titlepage
      \null\vfil
      \@beginparpenalty\@lowpenalty
      \begin{center}%
        \bfseries \ackname
        \@endparpenalty\@M
      \end{center}}%
     {\par\vfil\null\endtitlepage}
\else
  \newenvironment{acknowledgements}{%
      \if@twocolumn
        \section*{\abstractname}%
      \else
        \small
        \begin{center}%
          {\bfseries \ackname\vspace{-.5em}\vspace{\z@}}%
        \end{center}%
        \quotation
      \fi}
      {\if@twocolumn\else\endquotation\fi}
\fi
\makeatother

每次我编译文件时都会得到以下信息:

(../abstract/abstract.tex)pdfTeX warning (ext4): destination with the same identifier (name{page.a}) has been already used, duplicate ignored
[1]) (../ack/root.texpdfTeX warning (ext4): destination with the same identifier (name{page.a}) has been already used, duplicate ignored

我的猜测是,它试图将这两页排版为与标题页相同的页面。

答案1

hyperref 创建页面锚点。由于您有 2 个具有相同编号的页面,即使可能不会打印,您也会获得两个具有相同名称的锚点。如果不需要页面锚点,pageanchor=false请删除锚点和警告。

但如果它们是必需的,例如索引,则需要另一个修复。可以将其关闭并打开:

\hypersetup{pageanchor=false}
\begin{document}
\maketitle
\begin{abstract}
...
\end{abstract}
\hypersetup{pageanchor=true}
...

或者检查致谢的定义:您使用 titlepage 环境的原因是什么?这会将页码(再次)设置为 1。您可以用另一种方式执行此操作,例如,\thispagestyle{empty}如果您的原因是想要一个没有可见页码的页面,则使用 。

此外,还有超链接选项可以避免此类问题:如果页码重复,则pdfpagelabelsplainpages=false很有用,但如果重复,它们就无济于事\thepage。看看Hyperref 和重复页码在 TeX FAQ 中。

答案2

对分支进行小幅修正\else应该可以解决问题。

\section*{\ackname}%

在您的版本中您仍然有\abstractname此行。

相关内容