为 Adob​​e 设置语言元数据

为 Adob​​e 设置语言元数据

我正在提交用 LaTex 创建的博士论文,图书馆要求创建的 pdf 的元数据包含标题、作者和语言,特别提到在 Adob​​e 中打开时语言必须正确(在高级阅读选项下)。图书馆建议在 texfile 中添加以下代码:

\usepackage{hyperref}
\hypersetup {
pdfpagemode = {UseNone},
pdftitle = {Titel},
pdfauthor = {Vorname Nachname},
pdflang = {de-DE}
}

如果我将其添加到我的文档中,标题和作者会被正确插入,但 Adob​​e 中的语言字段仍然为空白。

起初我以为有些包不兼容,所以我创建了以下最小(不)工作示例:

\documentclass{book}
\usepackage[utf8]{inputenc}
\title{metatest}

\usepackage{hyperref}
\hypersetup{
pdftitle = {Some title},
pdfauthor = {Name Name},
pdflang = {en-US},
} 

\begin{document}

\section{Introduction}

\end{document}

编译后,会生成一个包含元数据作者和标题的 PDF,但语言字段仍为空。那么,如何生成 Adob​​e 可识别的语言元数据呢?

答案1

语言设置在那里。但与作者和标题不同,它不是写在信息字典中,而是写在 PDF 目录中。如果您创建未压缩的 PDF,然后查看文件,您就可以看到它。

\RequirePackage{expl3}
\ExplSyntaxOn
\pdf_uncompress:
\ExplSyntaxOff
\documentclass{book}
\title{metatest}

\usepackage{hyperref}
\hypersetup{
 pdftitle = {Some title},
 pdfauthor = {Name Name},
 pdflang = {en-US},
}

\begin{document}

\section{Introduction}

\end{document}

给出

30 0 obj
<<
/Type /Catalog
/Pages 14 0 R
/Outlines 27 0 R
/Names 29 0 R
/PageMode/UseOutlines/Lang(en-US)%<---- /Lang is there
/OpenAction 5 0 R
>>
endobj

使用 Adob​​e Reader 时看不到该语言。但使用 Acrobat 时,我可以在扩展选项中看到它:

在此处输入图片描述

答案2

在此处输入图片描述

使用以下设置。它适用于 pdflaltex 和 lualatex。

% !TeX TS-program = pdflatex

\documentclass{book}
\usepackage[utf8]{inputenc}
\title{metatest}

\usepackage{hyperref}

\hypersetup{%
    pdfinfo={%
        Author={Simon Dispa},
        Title={Metadata of PDF document using PDFLaTeX},
        CreationDate={D:20210607195600},
        ModDate={...},
        Keywords={PDF,LaTeX},
        Subject={Add custom properties},
        version=0.9.b,  % custom property <<<<<<<<<<
        language=en-US  % custom property  <<<<<<<
    }
}

\begin{document}
    
    \section{Introduction}
    
\end{document}

響

瓦

笔记 我认为现在您不想加深对 XMP 主题的了解以将元数据包含在文档中。

其他读者可能对这个hyperxmp软件包及其出色的手册感兴趣https://ctan.org/pkg/hyperxmp?lang=en

相关内容