![PDF/A 与 TikZ 的兼容性](https://linux22.com/image/290836/PDF%2FA%20%E4%B8%8E%20TikZ%20%E7%9A%84%E5%85%BC%E5%AE%B9%E6%80%A7.png)
当 LaTeX 文档包含具有颜色渐变的 TikZ 图形时,Acrobat Pro 的预检功能似乎无法再将 PDF 转换为符合 PDF/A-1b 标准。
例如,代码
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\tikz \draw [left color=green, right color=blue] (0, 0) rectangle (1, 1);
\end{document}
生成一个具有绿色到蓝色渐变颜色的矩形,
这会导致两个 PDF/A 合规性错误(“语法问题:实际值超出范围”),即“使用的最大正实数:32768.0”和“使用的最大负实数:-32768.0”。下面的屏幕截图表明这可能与边界框问题有关。
在http://www.callassoftware.com/callas/doku.php/en:products:pdftoolbox:all_features:properties关于“使用的最大正实数”的说法是 “在许多环境中,有效范围仅限于 IEEE 为单精度浮点数定义的值。这将范围限制为:+/- 32,767。”
有没有办法解决这个问题并获取 PDF/A 文件?
编辑:当我向 TikZ \draw 选项添加非统一不透明度值(例如“opacity=0.9999”)时,其中一个错误(“使用的最大正实数:32768.0”)消失。
答案1
使用 TeX Live 2014、pdfTeX 3.14159265-2.6-1.40.15,我似乎没有遇到这些问题。也许更新 TeX 系统可以解决这些问题。
这是您的 MWE 的修改,它嵌入了颜色配置文件和元数据(我无法访问 Adobe 的 Preflight 工具或其他可以在后处理步骤中执行此操作的软件)。有关如何嵌入此额外数据的信息可在https://tex.stackexchange.com/a/99666和https://tex.stackexchange.com/a/136653。颜色配置文件可从http://www.color.org/srgbprofiles.xalter。
\documentclass{standalone}
\pdfminorversion 4
\immediate\pdfobj stream attr{/N 3} file{sRGB_IEC61966-2-1_black_scaled.icc}
\pdfcatalog{%
/OutputIntents [ <<
/Type /OutputIntent
/S/GTS_PDFA1
/DestOutputProfile \the\pdflastobj\space 0 R
/OutputConditionIdentifier (sRGB IEC61966-2-1 black scaled)
/Info(sRGB IEC61966-2-1 black scaled)
>> ]
}
\usepackage{hyperxmp}
\usepackage[pdftex, pdfa]{hyperref}
\hypersetup{%
pdfauthor = {a},
pdfkeywords = {a, b, c},
pdflang = {en},
pdftitle = {a},
pdfsubject = {a},
pdfcaptionwriter = {a},
pdfcontactaddress = {a},
pdfcontactcity = {a},
pdfcontactcountry = {a},
pdfcontactemail = {a},
pdfcopyright = {a},
pdfmetalang = {en}
}
\usepackage{tikz}
\begin{document}
\tikz \draw [left color=green, right color=blue] (0, 0) rectangle (1, 1);
\end{document}
PDFBox 预检(http://en.wikipedia.org/wiki/Apache_PDFBox) 和 3-Heights PDF Validator 在线工具 (http://www.pdf-tools.com/pdf/validate-pdfa-online.aspx) 表示我从中得到的是一个有效的 PDF/A-1b 文件。