我偶然发现了一份文件,开头是这样的:
\DocumentMetadata{pdfversion=1.2}
\nonstopmode\synctex=1
\documentclass{article}
我见过 2 号线和 3 号线,但从未见过 1 号线。我很好奇它是什么,它有什么用处,它接受什么值?
答案1
\DocumentMetadata
是一个相当新的命令,它于一年前在LaTeX 新闻。它是告诉 LaTeX 当前文档是一个新的/现代文档的触发器,应该使用传统 LaTeX2e 文档中没有的概念,例如,为 PDF 标记项目开发的所有内容,其目标是使 LaTeX 能够轻松自动地生成标记的 PDF。(https://www.latex-project.org/publications/indexbytopic/pdf/)
这个新命令必须首先出现在 LaTeX 文档中,在 之前\documentclass
。顾名思义,它用于设置有关整个文档的元数据,但在处理 PDF 标记项目时,它还用于启用来自该项目的新代码。
如果您不带任何选项使用它,它将加载新的 PDF 管理代码(当前位于 pdfmanagement-testphase 包中),该代码用于各种 PDF 相关任务,如透明度、专色、XMP 元数据、更改 pdfversion 和支持 PDF 标准。可见的效果是它将更改 hyperref 的默认链接颜色。
\DocumentMetadata
具有许多在 documentmetadata-support-doc.pdf(以及 pdfmanagement-testphase 包的 ltdocinit.pdf)中描述的键:
pdfversion
:设置 pdfversion,例如pdfversion=2.0
(我不建议像您的示例那样将其设置为 1.2)。pdfstandard
:设定标准,例如pdfstandard=A-2b
lang
:在 pdf 目录中设置 /Lang 键,例如lang=de
xmp
:用于抑制 XMP 元数据的布尔值colorprofiles
:添加和配置颜色配置文件(更多信息请参阅 l3pdfmeta.pdf)uncompress
:生成未压缩的 PDF(它是的简写debug={uncompress}
,但我经常需要它……)。backend
:设置不能自动检测的后端/引擎,例如 dvipdfmx。debug
:设置调试选项
\DocumentMetadata
有一些包和类与 PDF 管理不兼容,但对于大多数文档来说,使用上面提到的键应该没有问题。
但 last key 并非如此testphase
。它支持标记自动化,所有这些自动化目前都处于原型状态,仅限于使用标准类(文章、报告和书籍),并且仅支持有限数量的附加包(欢迎反馈有关其他包的问题)。
该testphase
键接受逗号分隔的值列表。目前主要的值是
phase-I
(一些标记)、phase-II
(更多标记)、phase-III
(需要 LaTeX 2023-06-01 或更新版本,也许还需要 latex-dev)。但还有更多,例如,您可以额外加载数学标记的原型。如果您想测试它,\DocumentMetadata{testphase={phase-III,math}}
建议您关注 LaTeX 新闻并检查软件包。latex-lab
答案2
如果其他一切都失败了,可以阅读源代码texdoc source2e
。
根据建议,继续texdoc documentmetadata-support
。
因此在这种情况下,命令将“明确设置 PDF 版本”为 1.2。
在内部,你可以猜测 LaTeX 只是将其转发到相应的引擎原语:
从技术上讲,你可以设置任何你想要的值,而且它似乎无论如何都能起作用:
\DocumentMetadata{pdfversion=9.9}
\documentclass{article}
\begin{document}
hello world
\end{document}
给出以以下内容开头的 PDF 文件
%PDF-9.9
%¿÷¢þ
事实上,根据维基百科最新版本是2.0,查看器兼容性有所不同。
看为什么 1.5 是默认的 pdf 版本? - TeX - LaTeX Stack ExchangePDF 格式版本之间的差异以及选择哪个版本。