根据 newtx 包版本 1.704(2022 年 1 月 9 日)文档第 28-29 页,以下来源包括“生成符合 PDF/A-1b 标准的 pdf 所需指定的元素,经 Adobe Acrobat Pro 验证”。
pdfx
随着和包hyperxmp
以及pdfa选项的加载\hypersetup
:
- Adobe Acrobat Pro 的文件 > 属性 > 自定义显示 PDF/A-1b;但是
- Adobe Acrobat Pro 的文件 > 属性 > 描述仅显示元数据项标题和主题的值,但不显示作者或关键字的值。
另一方面,如果我注释掉 loading pdfx
,那么:
- Acrobat Pro 的文件 > 属性 > 自定义不再显示 PDF/A-1b;现在
- Acrobat Pro 的文件 > 属性 > 描述也显示作者和关键字元数据的值。
我正在使用 Adobe Acrobat Pro 版本 2021.011.20039、pdfTeX、版本 3.141592653-2.6-1.40.23(TeX Live 2022/dev)、LaTeX2e <2021-11-15> 补丁级别 1 和 L3 编程层 <2022-01-21>。
问题:我怎样才能得到全部pdf 中包含指示的元数据属性,同时是否已通过 Acrobat Pro 验证符合 PDF/A-1b 标准?
% !TEX TS-program = pdflatex
\begin{filecontents*}{\jobname.xmpdata}
\Title{A Book}
\Author{A. Nonymous}
\Language{en}
\Subject{A General Introduction to Things}
\Keywords{things\sep stuff}
\Publisher{My Self, Inc.}
\Copyright{Creative Commons by-nc-nd}
\end{filecontents*}
\documentclass{article}
% To examine pdf as pure ASCII:
\pdfcompresslevel=0
\pdfobjcompresslevel=0
\input glyphtounicode
\usepackage{pdfx} % v 1.6.4 or higher
\InputIfFileExists{glyphtounicode-cmr.tex}{}{}
\InputIfFileExists{glyphtounicode-ntx.tex}{}{}
\usepackage[T2A,T1]{fontenc}
\usepackage{substitutefont} % to allow non-default Cyrillic
\usepackage[russian,ngerman,polish,english]{babel}
\babeltags{russian=russian,french=french,german=ngerman,polish=polish}%
\substitutefont{T2A}{\rmdefault}{Tempora-TLF} % for Cyrillic
\usepackage[type1,sfdefault,scale=1]{sourcesanspro}% used by \mathsf
\usepackage[nohelv,amsthm,largesc,trueslanted,vvarbb,smallerops]{newtx}
\usepackage[varqu,varl]{inconsolata} % typewriter
\usepackage{hyperxmp}
\RequirePackage[type={CC},modifier={by-nc-nd},version={4.0},lang={english}]{doclicense}
\usepackage{datetime2} % to satisfy the "\today" in \hypersetup
\DTMusemodule{english}{en-US}
\usepackage{hyperref}
\hypersetup{
pdfapart=2, pdfaconformance=u,
bookmarksnumbered,
pdftitle={A Book},
pdfauthor={A. Nonymous},
pdfcreator={somebody},
pdfpublisher={My Self, Inc.},
pdfsubject={A General Introduction to Things},
pdfkeywords={things, stuff},
pdfdate={\today},
pdflang={en},pdfmetalang={en},
pdflicenseurl={http://creativecommons.org/licenses/by-nc-nd/4.0/}
}
\pdfgentounicode=1
\pdfglyphtounicode{EM}{0058 0058 0058 0058 0058 0058 0058 0058}%
\pdfglyphtounicode{NUL}{0060 0060 0060 0060 0060 0060 0060 0060}%
\pdfglyphtounicode{uni222B.dsp}{222B}%
\pdfglyphtounicode{summationdisplay.1}{0060 0060 0060 0060 0060 0060 0060 0060}%
\pdfglyphtounicode{summationdisplay}{0060 0060 0060 0060 0060 0060 0060 0060}%
\pdfglyphtounicode{radicalBigg}{0060 0060 0060 0060 0060 0060 0060 0060}%
\pdfglyphtounicode{radicalbig}{0060 0060 0060 0060 0060 0060 0060 0060}%
\pdfglyphtounicode{radicalbigg}{0060 0060 0060 0060 0060 0060 0060 0060}%
\immediate\pdfobj stream attr{/N 3} file{sRGB.icc}
\pdfcatalog{%
/OutputIntents [
<<
/Type /OutputIntent
/S /GTS_PDFA1
/DestOutputProfile \the\pdflastobj\space 0 R
/OutputConditionIdentifier (sRGB)
/Info (sRGB)
>>
]
}
\usepackage{blindtext}
\begin{document}
To be finished!
\blindmathpaper
\end{document}
答案1
以下代码(更新于 2023-10)通过了 pdf/A-1b 的预检测试。它需要当前的 latex/tex 系统(例如最新的 texlive 2023)
\DocumentMetadata{pdfstandard=a-1b}
\documentclass{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[russian,ngerman,polish,english]{babel}
\babeltags{russian=russian,french=french,german=ngerman,polish=polish}%
\DeclareFontFamilySubstitution{T2A}{\rmdefault}{Tempora-TLF} % for Cyrillic
\usepackage[type1,sfdefault,scale=1]{sourcesanspro}% used by \mathsf
\usepackage[nohelv,amsthm,largesc,trueslanted,vvarbb,smallerops]{newtx}
\usepackage[varqu,varl]{inconsolata} % typewriter
\RequirePackage[type={CC},modifier={by-nc-nd},version={4.0},lang={english}]{doclicense}
\usepackage{datetime2} % to satisfy the "\today" in \hypersetup
\DTMusemodule{english}{en-US}
\usepackage{hyperref}
\hypersetup{
bookmarksnumbered,
pdftitle={A Book},
pdfauthor={A. Nonymous},
%pdfcreator={somebody},
pdfproducer=pdfTeX-1.40.23, %why needed ????????????
pdfpublisher={My Self, Inc.},
pdfsubject={A General Introduction to Things},
pdfkeywords={things, stuff},
pdfdate={\today},
pdflang={en},pdfmetalang={en},
pdflicenseurl={http://creativecommons.org/licenses/by-nc-nd/4.0/}
}
\pdfglyphtounicode{EM}{0058 0058 0058 0058 0058 0058 0058 0058}%
\pdfglyphtounicode{NUL}{0060 0060 0060 0060 0060 0060 0060 0060}%
\pdfglyphtounicode{uni222B.dsp}{222B}%
\pdfglyphtounicode{summationdisplay.1}{0060 0060 0060 0060 0060 0060 0060 0060}%
\pdfglyphtounicode{summationdisplay}{0060 0060 0060 0060 0060 0060 0060 0060}%
\pdfglyphtounicode{radicalBigg}{0060 0060 0060 0060 0060 0060 0060 0060}%
\pdfglyphtounicode{radicalbig}{0060 0060 0060 0060 0060 0060 0060 0060}%
\pdfglyphtounicode{radicalbigg}{0060 0060 0060 0060 0060 0060 0060 0060}%
\usepackage{blindtext}
\begin{document}
To be finished!
\blindmathpaper
\end{document}
我不知道为什么需要设置 pdfproducer,但是现在检查已经太晚了。