使用另一种字体来表示当前字体中没有的字形

使用另一种字体来表示当前字体中没有的字形

我想声明多个字体,这样当第一个字体没有特定字形时,XeTeX 可以使用其他字体。我该怎么做?在 Windows 中,当当前字体没有字形时,将使用其他字体来显示该字形。(例如,我想直接插入勾号 (✓),而不是使用\Checkmark

我知道我可以使用像 code2000 这样的 Unicode 字体,但正如您所知,这种字体通常不够漂亮。

\documentclass{article}
\usepackage{bbding}
\begin{document}
\section{NOK}
 (✓)  (✗)
\section{OK}
(\Checkmark )  (\XSolidBrush)
\end{document}

在此处输入图片描述

\documentclass{article}
\usepackage{bbding}
\usepackage{fontspec}
\setmainfont{Arial Unicode MS}

\begin{document}
\section{OK}
 (✓)  (✗)
\section{OK}
(\Checkmark )  (\XSolidBrush)
\end{document}

在此处输入图片描述

至少我想要指定两种字体(例如\setfont{Arial,Code200}),一种主字体和一种 Unicode 字体,以便可以用于错过的字形。

答案1

在 XeLaTeX(或 LuaLaTeX)中使用两种(或更多)字体非常容易,因为fontspec处理这些引擎的字体的包提供了用于加载新字体并为其分配宏名的命令。

不能如果 XeTeX 无法在某种字体中找到字形,则会自动从一种字体切换到另一种字体。

以下是用于插入语音字符(许多字体没有)的字体切换示例。语言学家用于语音的标准字体是道洛斯 SIL。您可以在 XeLaTeX 中按以下方式使用它:

\documentclass{article}
\usepackage{fontspec}
% We are using Linux Libertine O as our main serifed font
\setmainfont{Linux Libertine O}
% now declare a command \doulos to load the Doulos SIL font
\newfontfamily\doulos{Doulos SIL}
% now create a \textIPA{} command
\DeclareTextFontCommand{\textIPA}{\doulos}
\begin{document}
Here is some text in the main font.
% We now have two ways to enter IPA characters directly in the document:
% Use the \doulos command inside a group
{\doulos [ðɪsɪzsəmfənɛtɪks]}
% or use the \textIPA command
\textIPA{[ðɪsɪzsəmfənɛtɪks]}
\end{document}

在您使用复选标记和叉号的新示例中,您可以做类似的事情。在这里,我使用了 Arial Unicode MS 和 Zapf Dingbats 来显示这些字符的两个不同版本(我没有 Code2000 字体)。但原理完全相同。

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Arial Unicode MS}
\newfontfamily\dingbats{Zapf Dingbats}
\DeclareTextFontCommand{\textding}{\dingbats}
\begin{document}
\section{In the main font}
 (✓)  (✗)
\section{In the Dingbats font}
{ (\textding{✓})  (\textding{✗})}
\end{document}

代码输出

相关内容