![hyperref、natbib 和 PDF/A 兼容性](https://linux22.com/image/258531/hyperref%E3%80%81natbib%20%E5%92%8C%20PDF%2FA%20%E5%85%BC%E5%AE%B9%E6%80%A7.png)
我的电子论文提交需要采用 PDF/A-1b 格式,而我很难使用 LaTeX 生成符合此标准的输出。
我已成功排版了一章,用于dvips
生成 PostScript 文件,然后可以使用 Adobe Distiller(Acrobat Pro v8.1.2)将其转换为 PDF/A,但存在以下问题:
- 如果我使用
hyperref
彩色链接,转换会失败,因为 PS 文件不符合 PDF/A 标准(见下文) - 如果我打开
draft
模式hyperref
,生成的 PS 文件能natbib
可以使用 Adobe 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。