Latex 和 PDF:使用 ghostscript 的 pdfmark 中出现范围检查错误

Latex 和 PDF:使用 ghostscript 的 pdfmark 中出现范围检查错误

我正在尝试从 latex 生成的 ps 文档生成 pdf。(注意:由于 pstricks,我无法使用 pdflatex。)

在 tex 文件中我加载

\usepackage[dvips,
    a4paper,
    bookmarksopen=true,
    bookmarksnumbered=true,
    pdfborder=0 0 0]{hyperref}

运行 latex 后,我生成 ps 文件dvips -Ppdf -GO input.dvi,我的 gs 命令是:

gs -dPDFX -dBATCH -dNOPAUSE -dPDFSETTINGS=/screen -sDEVICE=pdfwrite \
   -sPAPERSIZE=a4 -sOutputFile=output.pdf input.ps

运行该命令后output.pdf包含前三页。错误输出为:

GPL Ghostscript 9.01 (2011-02-07)
Copyright (C) 2010 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Error: /rangecheck in --pdfmark--
Operand stack:
   --nostringval--   Subtype   Link   Dest   chapter.1   H   I   Border   --nostringval--   Color   --nostringval--   Rect   --nostringval--   ANN
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1910   1   3   %oparray_pop   1909   1   3   %oparray_pop   1893   1   3   %oparray_pop   1787   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   1917   14   5   %oparray_pop   --nostringval--
Dictionary stack:
   --dict:1160/1684(ro)(G)--   --dict:0/20(G)--   --dict:87/200(L)--   --dict:196/300(L)--   --dict:36/200(L)--
Current allocation mode is local
Last OS error: 2
Current file position is 758023
GPL Ghostscript 9.01: Unrecoverable error, exit code 1
GPL Ghostscript 9.01: ERROR: A pdfmark destination page 4 points beyond the last page 3.

有人知道这个错误并能帮助我吗?

编辑: 我发现它总是在第一个\footnote{}或之前的页面中断\tableofcontents。因此,生成的 PDF 包含这些对象第一次出现之前的所有页面,并将所有章节的链接作为 pdfmarks 显示在侧边栏中。所以我猜是这些文档内的链接导致了错误。有什么想法吗?

答案1

该作业包含一个 pdfmark,它试图在文件末尾之外建立链接或书签(即,它引用最后一页之外的页面)。

我相信这在最新版本的 Ghostscript (9.02) 中不再会产生错误,但如果没有看到您的文件,就无法检查。版本 9.04 将在几天内发布,您可能想等待并尝试一下。

答案2

hypertexnames=false该问题似乎可以通过在调用中添加选项来解决hyperref

来自http://www.pa.op.dlr.de/~PatrickJoeckel/pdflatex/index.html

谢谢大家的提示!

答案3

我通过删除输出 *.ps 文件然后重新运行 LaTeX 解决了这个问题。

虽然不能解决问题的根源,但可以非常快速轻松地解决...:)

相关内容