您能设置用 pdflatex 编译的 PDF 的自然语言吗?

您能设置用 pdflatex 编译的 PDF 的自然语言吗?

你能指定自然语言pdflatex用?编译的 PDFTingtun 无障碍检查器不喜欢我的 PDF,因为没有设置。这一页将其称为“PDF 文档目录中的 /Lang 条目”,并描述了如何在 Adob​​e Acrobat 中更改它。但如果能在编译时自动设置它就好了。我猜想应该有一个设置可以传递到该设置hyperref来设置自然语言,但我还没有找到它。

答案1

以下文档通过了您链接的测试。从示例中可以看出如何设置语言。

\documentclass{article}

\usepackage{hyperref}
\hypersetup{
  pdftitle={Test},
  pdflang={en-US}, % PDF language identifier (RFC 3066)
}

\begin{document}

\section{foobar}

\end{document}

如果由于某种原因您无法使用hyperref,您也可以使用手动修改 PDF 目录

\pdfcatalog{/Lang (en-US)}

如果您想生成真正可访问的 PDF,上述任何方法都不够。它所做的只是让这个特定的检查器闭嘴。

答案2

答案亨利·孟克截至 2020 年已过时。

现在有一种更优雅的方式来设置语言,通过使用包hyperxmp

\documentclass{article}

\usepackage{hyperref}
\usepackage[english]{babel}
\usepackage{hyperxmp}[2020/06/15]

\title{Test}

\begin{document}

\section{foobar}

\end{document}

babel也可以使用

\usepackage{polyglossia}
\setdefaultlanguage[variant=US]{english}

该方法的优点hyperxmp是避免了元数据中的语言与用于格式化文本的语言不匹配。此外,由于几乎每个人都使用其中一种,babel因此polyglossia代码更短。

不是使用,\pdfcatalog{/Lang (en-US)}因为此方法不会写入 XMP 元数据。依赖此方法的一些阅读器可能无法正常工作。此外,\pdfcatalog将仅包含主要语言,而 XMP 将包含所有主要语言。如果您不想要超链接,请使用环境NoHyper

相关内容