假设我有一份简单的文档,其中包含一些章节,标题中包含 Unicode 和/或数学。如何生成一份像样的 PDF 输出?我的意思是:
- 它包含正确的元数据。
- 它包含正确的书签。
- 它是一个 PDF/A 文档。
我制作了以下示例。(我知道在标题中包含那么多数学和 Unicode 可能不是一个好主意,但在某种程度上这是可以的,下面的来源只是一个例子。)
\begin{filecontents*}{\jobname.xmpdata}
\Title{Properties of ℝ^ω}
\Author{Foo Barovič\sep Baz Pequeño}
\end{filecontents*}
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[nomath]{lmodern}
\usepackage{amssymb}
\usepackage[a-2u]{pdfx}
\pdfstringdefDisableCommands{
\def\omega{ω}
}
\begin{document}
\title{Properties of $\mathbb{R}^\omega$}
\author{Foo Barovič, Baz Pequeño}
\date{}
\maketitle
\section{\texorpdfstring
{Basic properties of $\mathbb{R}^\omega$}
{Basic properties of ℝ\textasciicircumω}
}
Here we shall talk about the basic properties.
\subsection{\texorpdfstring
{$\mathbb{R}^\omega$ vs.\ $\bigcup_{n \in \omega} \mathbb{R}^n$ according to Pequeño}
{ℝ\textasciicircumω vs. ⋃\_\{n ∈ ω\} ℝ\textasciicircum n according to Pequeño}
}
A short note about this inductive limit approach.
\section{\texorpdfstring
{Advanced properties of $\mathbb{R}^\omega$}
{Advanced properties of ℝ\textasciicircum\omega}
}
Here we shall talk about the advanced properties.
\end{document}
仍然让我烦恼的是:
- 标题中的重复。可以通过
inputenc
包将 Unicode 字符映射到宏。对于 PDF 书签,情况正好相反:可以使用 将宏映射到 Unicode 字符\pdfstringdefDisableCommands
。这对于\omega
或效果很好,但对于上标、下标、组、和 该\bigcup
怎么办?有没有办法声明、、、应该按字面意思理解,应该被忽略,并且表示 ℝ?那么,就不需要了。$
\mathbb{R}
^
_
{
}
$
\mathbb{R}
\texorpdfstring
- 主标题和作者的重复。
- 事实上
filecontents*
不会重写现有文档。我知道这可以通过包来更改filecontents
,但它仍然会发出警告,并且无法在 之前加载\documentclass
,而建议在 之前生成 xmpdata\documentclass
。
我很高兴得到任何能改善给定来源的提示或技巧。