我想使用 pdfx 包在 LaTeX 中创建一个兼容 pdf/a 的文件。不幸的是,不是使用正确创建的 xmp 文件将文件转换为 pdf/a,而是将几行神秘的文本直接写入 pdf 文件中。我的最小示例(主要基于http://www.golatex.de/pdfx-bzw-pdf-a-oder-pdf-x-t4427.html) 是
\begin{filecontents*}{\jobname.xmpdata}
\Keywords{pdfTeX\sep PDF/X-1a\sep PDF/A-b}
\Title{Sample LaTeX input file}
\Author{Das war KOMA}
\Org{goLaTeX}
\end{filecontents*}
\documentclass{article}
\usepackage[a-1b]{pdfx}
\usepackage[pdfa]{hyperref}
\begin{document}
Hello world!
\end{document}
这会产生错误! LaTeX Error: Missing \begin{document}
,尽管文件中有一个\begin{document}
,以及以下文件:
知道问题出在哪里吗?
答案1
你需要eciRGB_v2.icc在工作目录中。
\documentclass{article}
% ===============================
% Embedding the color profile.
% Requires eciRGB_v2.icc in the working directory
% http://www.eci.org/_media/downloads/icc_profiles_from_eci/ecirgbv20.zip
\pdfminorversion 4
\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)
>> ]
}
\usepackage{xcolor}
\usepackage{hyperxmp}
\usepackage[pdftex, pdfa, linktoc=none]{hyperref}
% ----------------------------------------------
% Add metadata
\hypersetup{%
pdftitle={Sample LaTeX input file},
pdfauthor={Das war KOMA},
pdfsubject={Thema},
pdfkeywords={pdfTeX, PDF/X-1a, PDF/A-b},
pdflang={de},
bookmarksopen=true,
bookmarksopenlevel=3,
hypertexnames=false,
linktocpage=true,
plainpages=false,
breaklinks
}
\begin{document}
Hello world!
\end{document}
答案2
错误:
LaTeX 错误:缺少 \begin{document}
当某些内容出现在 TeX 的排版列表中时触发前\begin{document}
遇到了真正的命令。当字节最终出现在.xmpdata
文件中,而不是包含在其特殊宏\Title
、\Author
、\Subject
等的参数中时,就会发生这种情况。这可能包括不可见字符。
您是否曾在另一个编辑器中生成内容,并将字节顺序标记 (BOM) 复制到环境中filecontents*
?刚刚熟悉此类问题,的下一个版本pdfx.sty
已编码以防止任何此类无关字节进入 TeX 列表。