我遇到了文本和数学字体编码的问题。
首先,最终的目标是拥有一个可以搜索和复制的 .pdf 和 .tex。该文档是用 XeTex 编译的,并且 (.tex) 完全用 unicode 字符编写。因此,而ω
不是\omega
.
我遇到的最大问题是字体。经过一番搜索,我发现 Latin Modern Roman 字体实际上并没有太多字符。除了 latinmodern-math.otf 之外,我找不到更广泛的版本,它有自己的问题。能够在数学环境之外输入每个字符非常重要。
在探索了 unicode-math 包(使用 latinmodern-math.otf)之后,我发现它会破坏输出 .pdf,因为它使用的数学字体索引。例如,所有斜体字符都有一个唯一的十六进制值,而不是与它们的直立字符相同(后者是标准)。这使得在 .pdf 中搜索所有粗体、斜体和 Fraktur 变得不可能。
类似地,如果没有 unicode-math 包(因为在数学设置中输入 ω 没有任何作用),使用\omega
会创建一个!
字符,这也会使文档无法搜索。(我还没有弄清楚为什么它没有!
在 .pdf 中显示为)。
例如,如果没有 unicode-math 包:
$H_{2}(j Ω \Omega ω \omega)$
将产生H2(jΩ!)
。 和 都Ω
被ω
从最终结果中省略。
例如,使用 unicode-math 包:
$H_{2}(jΩω)$
将产生
答案1
这是我的实验:
\documentclass{article}
\usepackage{unicode-math}
\setmainfont{XITS}
\setmathfont{XITS Math}
\begin{document}
Here is some text, Ω, ω, $H_{2}(jΩω)$
\end{document}
输出如下:
以下是我从 PDF 复制并粘贴到http://rishida.net/tools/conversion/并使用“Unicode U+十六进制表示法”
Here is some text, U+03A9, U+03C9, U+1D43B2(U+1D457U+03A9 U+1D714)
因此,数学 H (U+1D43B)、数学 j (U+1D457)、Omega (U+03A9) 和数学 omega (U+1D714) 被正确识别。
如果我使用该math-style=ISO
选项unicode-math
,数学模式下的大写 Omega 将打印为 U+1D6FA。
如果使用\omega
或\Omega
作为输入,结果不会改变。