PDFA 合规性与使用 newtx 的 pdf 元数据

PDFA 合规性与使用 newtx 的 pdf 元数据

根据 newtx 包版本 1.704(2022 年 1 月 9 日)文档第 28-29 页,以下来源包括“生成符合 PDF/A-1b 标准的 pdf 所需指定的元素,经 Adob​​e Acrobat Pro 验证”。

pdfx随着和包hyperxmp以及pdfa选项的加载\hypersetup

  • Adobe Acrobat Pro 的文件 > 属性 > 自定义显示 PDF/A-1b;但是
  • Adobe Acrobat Pro 的文件 > 属性 > 描述仅显示元数据项标题和主题的值,但不显示作者或关键字的值。

另一方面,如果我注释掉 loading pdfx,那么:

  • Acrobat Pro 的文件 > 属性 > 自定义不再显示 PDF/A-1b;现在
  • Acrobat Pro 的文件 > 属性 > 描述也显示作者和关键字元数据的值。

我正在使用 Adob​​e 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,但是现在检查已经太晚了。

相关内容