![pdfx - 软件包导致超链接无效](https://linux22.com/image/280993/pdfx%20-%20%E8%BD%AF%E4%BB%B6%E5%8C%85%E5%AF%BC%E8%87%B4%E8%B6%85%E9%93%BE%E6%8E%A5%E6%97%A0%E6%95%88.png)
我想制作符合 PDF/A-1b 标准的文档。我使用的是 pdflatex (MikTex 2.9) 和 TeXnicCenter。在网上,我读到“pdfx”包是实现此目的的最佳方法。我按照网上的说明安装了 pdfx,它似乎可以正常工作。
然而,一旦我开始\usepackage[a-1b]{pdfx}
在我的 tex 文件中实现“”,我的文档中的链接就不再起作用,即我无法单击链接切换到它的目的地,例如参考章节或引用参考书目条目。
查看“pdfx.sty”发现“hyperref”包中加载了“draft”选项:
\RequirePackage[draft,pdftex,pdfpagemode=UseNone,bookmarks=false]{hyperref}
我尝试使用 更改此选项\hypersetup{final}
,但是没有效果。
我还尝试将“pdfx.sty”中的相应行直接更改为
\RequirePackage[final,pdftex,pdfpagemode=UseNone,bookmarks=false]{hyperref}
但这也不起作用(我在运行 pdflatex 之前更新了 Miktex 文件名数据库)。
此外,更改链接的外观(例如其颜色)也无法被操纵(参见示例)。
有人能告诉我是否可以在使用“ \usepackage[a-1b]{pdfx}
”命令创建的 PDF 文档中拥有有效链接吗?
以下是 MWE:
\documentclass{book}
\usepackage[a-1b]{pdfx}
\usepackage{lipsum}
% Appearance of links cannot be manipulated
\hypersetup{linkcolor = {0 0 1}}
% Activating "Final" option does not influence links
\hypersetup{final = true}
\begin{document}
\chapter{Dummy title 1}
\label{label_1}
\lipsum
\chapter{Dummy title 2}
Make reference to chapter \ref{label_1}
\end{document}
答案1
使用---,超链接在 PDF/A 文档中应该可以正常工作,pdfx
但请将您发现的任何不符合情况的示例发送给我。
然而 PDF/X 中禁止主动操作,该标准仅用于精确的高质量打印。
中的一项新功能pdfx (v.1.5.8)
是在 PDF/X 文档中强制执行此操作,方法是修补 的hyperref
链接编码,但尊重为链接的锚文本指定的任何颜色。另一项改进是强制使用xcolor
,以适应已指定的颜色配置文件的性质;通常 PDF/A 为 RGB,PDF/X 为 CMYK。这是为了确保以任何方式在其他包中指定的任何颜色,或 最终都与\definecolor
所选的颜色模型匹配。否则 PDF 可能无法通过验证。
答案2
在网上,我读到“pdfx”包是实现这一目标的最佳方法。
这是错误。PDF/A-1a 主要涉及正确的元数据。包hyperxmp
关心元数据。要使 PDF/A-1a 正常工作,您唯一需要添加的是用于颜色管理的 OutputIntent。
平均能量损失
%\pdfobjcompresslevel=0 %uncomment for Texlive
\documentclass{book}
\usepackage{lipsum}
\usepackage[pdfa]{hyperref}
\usepackage{hyperxmp}
\hypersetup{%
pdftitle={title},
pdfauthor={author},
pdflang=la,
%pdfcreator={pdfLaTeX}, %uncomment for PDF/A-1
%pdfproducer={pdfLaTeX}, %uncomment for PDF/A-1
%keeppdfinfo=1, %uncomment for PDF/A-1
pdfapart=2, %set to 1 for PDF/A-1
pdfaconformance=B
}
\makeatletter
%Create an OutputIntent in order to correctly specify colours
\immediate\pdfobj stream attr{/N 3} file{sRGB.icc}
\edef\iccobj{\the\pdflastobj}
\pdfcatalog{%
/OutputIntents [
<<
/Type /OutputIntent
/S /GTS_PDFA1
/DestOutputProfile \iccobj\space 0 R
/OutputConditionIdentifier (sRGB)
/Info (sRGB)
>>
]
}
\makeatother
% Appearance of links /can/ be manipulated
\hypersetup{colorlinks, linkcolor = green}
\begin{document}
\chapter{Dummy title 1}
\label{label_1}
\lipsum
\chapter{Dummy title 2}
Make reference to chapter \ref{label_1}
\end{document}
此示例在 Acrobat DC 中验证,并且3个高度hyperref
,使用 MikTeX 中的 LuaLaTeX 和 pdfLaTeX。它具有可点击的链接,您可以按照手册中所述定义颜色。
我推荐使用 PDF/A-2a,而不是 PDF/A-1a。区别在于 1 在 XMP 和 DocumentInfo 中存储了一些元数据两次。没有冗余元数据更优雅。