使用私有使用区域而不替换主字体

使用私有使用区域而不替换主字体

我是 LaTeX 新手,由于字体问题,我至今还没有用过它——Unicode 刚出来时我就用了,而且我一直都不喜欢 Knuth 的原始字体(他做的很棒,但他对字体的看法和我的看法并不总是一样)。我的问题是,我的字体在私人使用区域和 ASCII 区域大约有 2,000 个字符。XeLaTeX 和 LuaLaTeX 让我有希望现在终于可以使用 LaTeX 了。

我愿意不是想要替换主字体,我只想使用我的私有字体中的字符,将它们嵌入到我的文档中,最好是 .pdf。我可以在 Word 和 HTML 中执行此操作。这样做时,我可能会使用包含这些符号的数学表达式,但它们只会被视为一个块。使用普通数学表达式的默认字体(或 Cambria Math)就可以了。那么,我如何以这种方式使用私有 unicode 字体?目前它是 .ttf,但我可能可以将字体构建为 .ps,尽管所有字体轮廓都是 ttf。

仅嵌入 unicode 值不起作用,因为其中不包含字体名称或字体文件(字体通常不安装在操作系统中,我直接使用字体文件)。这只会从当前字体中获取符号,而这不是我想要的。我也不想将字体分成 10 个或更多单独的字体。字体没有变体,它包含各种性质的数学字母,但分类与预期分类不符。这些分类是无衬线、无衬线粗体、无衬线粗体倾斜、粗衬线、粗衬线倾斜、衬线、衬线斜体、衬线粗体斜体、手写体、空心、希腊文。所有这些都包含小写和大写字母和数字(希腊文除外,因为它没有数字)。它们在设计方面和非字母符号方面都是兼容的。有些符号与定义的 Unicode 位置重叠,但大多数符号在 Unicode 中不可用。

答案1

这似乎有效。

\documentclass{amsart}
\usepackage{fontspec}
\usepackage[]{unicode-math}
\newfontfamily \myFont {myFont.ttf}

\newcommand \mf[1] {{\text{\myFont{\char"#1}}}}
\newcommand \mfOp  {\mf{E8A8}}
\newcommand \mfp   {\mf{F470}}
\newcommand \mfq   {\mf{F471}}

\begin{document}

These are three symbols in myFont's Private Use Area, where
two are letters and one is an operator: {\mfp\mfOp\mfq} used
in normal text.

It also now works in math mode: $ \sqrt{\mfp\mfOp\mfq} $

\end{document}

相关内容