hyperref、natbib 和 PDF/A 兼容性

hyperref、natbib 和 PDF/A 兼容性

我的电子论文提交需要采用 PDF/A-1b 格式,而我很难使用 LaTeX 生成符合此标准的输出。

我已成功排版了一章,用于dvips生成 PostScript 文件,然后可以使用 Adob​​e Distiller(Acrobat Pro v8.1.2)将其转换为 PDF/A,但存在以下问题:

  1. 如果我使用hyperref彩色链接,转换会失败,因为 PS 文件不符合 PDF/A 标准(见下文)
  2. 如果我打开draft模式hyperref,生成的 PS 文件natbib可以使用 Adob​​e Distiller 成功输出为 PDF/A,但在排版参考书目(使用 BibTeX 生成并使用自定义参考书目样式)时,我会收到错误,有时是 2

对于 1) 我已经看到了对这个已知问题的引用:超链接本身与 PDF/A 并不不兼容,但hyperref不包括 PDF/A 合规性所需的所有标志: http://tug.org/mailman/htdig/pdftex/2008-January/007522.html 我尝试hyperref.sty按照建议进行编辑,但这似乎对我不起作用(无论是使用pdftex还是通过dvips排版)。Acrobat 仍然抱怨每个链接(引用和交叉引用)缺少 Print 和 Annot 标志。

我可以接受 2) 作为官方版本(没有链接,但至少它是“档案质量”)。然而,错误非常烦人。每个书目条目都会产生此错误:

    Argument of \hyper@anchorstart has an extra }

有时还:

    Paragraph ended before \hyper@anchorstart was complete.

通过排版时从未发生过这些错误pdflatex,即使在草稿模式下也是如此。我需要制作一个用于 PDF/A-1b 转换的 PS 文件,但这些错误非常麻烦。

我无法完全禁用 hyperref,因为我\autoref{}经常使用宏,而且我不想手动替换所有这些。

我也尝试使用该pdfx包(使用pdflatex驱动程序),但是在排版运行的早期就出现了一些奇怪的错误:

/usr/local/texlive/2011/texmf-dist/tex/latex/pdfx/pdfx.sty:121: Use of \getTZh 
doesn't match its definition.
<inserted text> D:20121114223403-
                                 05'00'
l.121 \expandafter\convertDate\pdfcreationdate

我希望上面有足够的信息供人们提出替代方案或修复错误的方法。我还没有整理 MWE,但如果有帮助的话,我可能会整理一个。

谢谢你尽你所能的帮助。

我在 Mac(OS X 10.6.8)上使用 TexLive 2011,在 TeXShop 中使用 simpdftex(版本 20070809)或 pdfTeX(版本 3.1415926-2.3-1.40.12)进行文档处理

答案1

我不确定答案是否仍然有趣。无论如何:

1)我强烈建议使用 pdfx 包:

\usepackage[a-1b]{pdfx}

2) pdfx 包中的错误是由时间戳的组合方式引起的。根据您的时区(例如 UTC+1、UTC-1 等),那里的符号会有所不同。这会导致问题。

Use of \getTZh doesn't match its definition.

因此,您需要将 pdfx.sty 放在您的工作目录中,并需要相应地调整该特定行:

\def\getTZh +#1#2{\edef\xTZh{#1#2}\getTZm} % change - to + if error occurs (due to timezone)

...

T\xHour:\xMin:\xSec+\xTZh:\xTZm}} % change - to + if error occurs (due to timezone)

或者,您可以更改系统的时区。

3) pdfx 也会自动加载 hyperref 包。如果您想要自定义 hyperref 设置,可以使用:

\hypersetup{
   unicode,
   colorlinks=true
}

除此之外,您还需要提供颜色配置文件和有效的 xmp 文件。有关此信息可在 pdfx 手册中找到。此解决方案依赖于 pdftex。

我不知道有任何使用 dvips 的解决方案。

答案2

您是否尝试过使用 pdflatex 而不是 latex-dvips-ps2pdf?

我的情况其实也差不多,因为我也在写论文,我发现直接生成 pdf 更简单。我知道这可能会破坏很多包,但我的序言中有 25 多个包,我已经成功地完成了这件事。

我正在使用 TeXLive 2012。

相关内容