我正在尝试从 LaTeX 制作 PDF/A(不是来自 LuaTeX 等)在 Fedora Linux 上使用 TeX Live 2013。这有效:
\documentclass{article}
\begin{document}
What cat says? \label{meow}
See question on page \pageref{meow}.
\end{document}
使用命令latex
,dvips
最后
gs -dPDFA -dBATCH -dNOPAUSE -dNOOUTERSAVE -dUseCIEColor
-sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite
-sOutputFile=meow.pdf meow.ps
现在,当我添加时,\usepackage[pdfa]{hyperref}
我收到了类似的验证错误
dc:description :: Wrong value type. Expected type 'lang alt'.
The XMP property 'dc:title' is not synchronized with the document
information entry 'Title'.
A device-specific color space (Annotation C or IC) without an
appropriate output intent is used.
hyperref 的文档说
-- 结果通常不在 PDF/A 中,因为许多功能不受 hyperref 控制 --
但如何控制这些呢?
我是否应该尝试这条路?还有其他选择,例如pdfx
。该使用哪条路?
答案1
- 将颜色配置文件
eciRGB_v2.icc
在工作目录中。 - 将以下代码添加到你的序言中:
\usepackage{hyperxmp}
\usepackage[pdfa, linktoc=none]{hyperref}
% ===============================
% Embedding the color profile.
% Requires eciRGB_v2.icc in the working directory
% http://www.eci.org/_media/downloads/icc_profiles_from_eci/ecirgbv20.zip
\immediate\pdfobj stream attr{/N 3} file{eciRGB_v2.icc}
\pdfcatalog{%
/OutputIntents [ <<
/Type /OutputIntent
/S/GTS_PDFA1
/DestOutputProfile \the\pdflastobj\space 0 R
/OutputConditionIdentifier (eciRGB v2)
/Info(eciRGB v2)
>> ]
}
hyperxmp
使用和添加元数据\hypersetup
:\title{Title} \author{First Author, Last Author} \hypersetup{% pdfauthortitle={Title of the Author}, pdfcopyright={Copyright (C) 20xx, Copyrightholder}, pdfsubject={Something}, pdfkeywords={Keyword1, Keyword2}, pdflicenseurl={http://creativecommons.org/licenses/by-nc-nd/3.0/}, pdfcaptionwriter={Scott Pakin}, pdfcontactaddress={Street}, pdfcontactcity={City}, pdfcontactpostcode={101}, pdfcontactcountry={Country}, pdfcontactemail={[email protected]}, pdfcontacturl={http://www.institute.edu}, pdflang={en}, bookmarksopen=true, bookmarksopenlevel=3, hypertexnames=false, linktocpage=true, plainpages=false, breaklinks }
所有内容放在一起会产生如下文档:
% ===============================
% Filename: test.tex
\documentclass{article}
\usepackage{hyperxmp}
\usepackage[pdfa, linktoc=none]{hyperref}
% ===============================
% Embedding the color profile.
% Requires eciRGB_v2.icc in the working directory
% http://www.eci.org/_media/downloads/icc_profiles_from_eci/ecirgbv20.zip
\immediate\pdfobj stream attr{/N 3} file{eciRGB_v2.icc}
\pdfcatalog{%
/OutputIntents [ <<
/Type /OutputIntent
/S/GTS_PDFA1
/DestOutputProfile \the\pdflastobj\space 0 R
/OutputConditionIdentifier (eciRGB v2)
/Info(eciRGB v2)
>> ]
}
% ----------------------------------------------
% Add metadata
\title{Title}
\author{First Author, Last Author}
\hypersetup{%
pdfauthortitle={Title of the Author},
pdfcopyright={Copyright (C) 20xx, Copyrightholder},
pdfsubject={Something},
pdfkeywords={Keyword1, Keyword2},
pdflicenseurl={http://creativecommons.org/licenses/by-nc-nd/3.0/},
pdfcaptionwriter={Scott Pakin},
pdfcontactaddress={Street},
pdfcontactcity={City},
pdfcontactpostcode={101},
pdfcontactcountry={Country},
pdfcontactemail={[email protected]},
pdfcontacturl={http://www.institute.edu},
pdflang={en},
bookmarksopen=true,
bookmarksopenlevel=3,
hypertexnames=false,
linktocpage=true,
plainpages=false,
breaklinks
}
\begin{document}
What cat says? \label{meow}
See question on page \pageref{meow}.
\end{document}
符合 PDF/A-1b 标准:
更新:自最初的答案以来,情况发生了多次变化。有一段时间luatex85
必须加载,但今天它会破坏编译。但它也不再需要了。必须加载软件包前今天设置 OutputIntent。
这仅适用于pdfLaTeX
、LuaHBTeX
和LuaLaTeX
。