我使用 pdfx 生成文档的元数据。有没有办法通过 xmpdata 文件生成更多条目?
我认为相关的条目(根据参考书目要求)例如是副标题、技术报告的机构或论文的学校。
\documentclass{scrbook}
\usepackage[a-2u]{pdfx}
\begin{filecontents}{test_pdfx.xmpdata}
\Title{Test PDF/A-2u standard}
\Subtitle{This subtitle is not added to the document}
\Author{Me T. Author}
\end{filecontents}
\begin{document}
Tested PDF/A-2u.
\end{document}
更多书目条目可参见维基百科。
应用
在阅读pdfx 手册,我不太明白/Info
元数据部分是用来做什么的。如果我在标题、作者或关键词中包含 \sep,我会在哪里看到效果?
答案1
元数据有两种类型:信息字典中的条目和 xmp 元数据。在 PDF 2.0 中,信息字典已弃用,不应再使用。
信息词典
hyperref 允许向信息字典中添加更多条目:
\documentclass{scrbook}
\pdfcompresslevel=0
\usepackage{hyperref}
\hypersetup{pdfinfo={Subtitle=some subtitle}}
\begin{document}
Tested
\end{document}
然后可以在 pdf 属性中看到此条目:
但pdfx
重新定义了内部 hyperref 命令并破坏了这些附加组件。
xmp 元数据
pdfx
xmp-metadata 可以通过和添加hyperxmp
(这两个包不兼容,所以你必须选择)。pdfx
不知道字幕元数据,而且据我所知也没有添加新元数据的界面。hyperxmp
你可以通过 添加字幕元数据,但就像覆盖内部命令hyperxmp
一样,这也会破坏信息字典中的条目。如果你想保留这个,你将不得不求助于低级原语,例如使用 pdftexpdfx
hyperref
\pdfinfo{/Subtitle (text)}
text
必须是有效的 pdf 字符串,或者您必须通过 \pdfstringdef 传递它。
如果您使用 PDF 管理,则会自动添加 XMP 元数据。请参阅https://tug.org/TUGboat/tb43-3/tb135fischer-xmp.pdf并texdoc l3pdfmeta
了解更多信息。
\DocumentMetadata{}
\documentclass{scrbook}
\usepackage{hyperref}
\hypersetup{pdfinfo={Subtitle=some subtitle}}
\begin{document}
Tested
\end{document}
答案2
正如评论中所述,您可以使用该hyperxmp
包。这允许输入大量附加元数据字段,其中包括副标题字段和各种书目信息字段。请注意,默认情况下,文档属性对话框中不显示额外信息,可以使用Additional Metadata...Acrobat Pro 中的按钮查看。
梅威瑟:
\documentclass{article}
%\usepackage[a-2u]{pdfx}
\usepackage[pdfa]{hyperref}
\usepackage{hyperxmp}
\hypersetup{
pdftitle={Test PDF/A-2u standard},
pdfauthor={Me T. Author},
pdfsubtitle={Subtitle of the document},
pdfpubtype={Technical Report},
pdfpublisher={Scientific Institution of Tech Reports},
pdfapart={2},
pdfaconformance={U},
keeppdfinfo
}
\begin{document}
Tested PDF/A-2u.
\end{document}
结果:
请注意,pdfx
未使用包。一致性由选项和字段的pdf/a-2u
组合设置。还要注意,指定选项,如果没有指定,则除 Adobe Reader/Acrobat 之外的查看器中根本不会显示任何元数据。使用此选项,其他查看器(Evince、终端等)中仅显示标准信息,而不显示其他元数据字段。pdfa
hyperref
pdfapart
pdfaconformance
hyperxmp
keeppdfinfo
pdfinfo
如果您想添加尚未预定义的自定义字段,hyperxmp
那么您可以使用xmpincl
包。 注意事项手册hyperxmp
:
hyperxmp
和xmpincl
可以相互补充。作者可能希望使用hyperxmp
来生成一组基本的 XMP 代码,然后使用文本编辑器从 pdf 文件中提取 XMP 代码,使用 不支持的任何元数据来扩充 XMP 代码hyperxmp
,并使用xmpincl
将修改后的 XMP 代码包含在 pdf 文件中。