数学字体替换缺失的字形

数学字体替换缺失的字形

我已经使用LuaLaTeX V: 1.12.0以及如何自动完成缺失字符Math

我的 LaTeX:

\documentclass{article}
\tracinglostchars=2 % Warn if the current font does not have a character!
\usepackage[tuenc]{fontspec}
\usepackage{unicode-math} 
\defaultfontfeatures{Ligatures=TeX}
\setmainfont[Scale=1.0,SmallCapsFeatures={Renderer=Basic}]{Dejavu Sans}
%%% Math Fonts
\setmathfont{dejavusans.ttf}
\setmathfont{Dejavu Sans}
\setmathrm{FreeSerif.otf}
\setmathfont[range={it}]{FreeSerif.otf}

\title{Math Substitute Fonts}

\begin{document}

\maketitle

\begin{equation*}
ż 0 \times 0 \hbox{ and } \mathrm{ż}
\end{equation*}

\end{document}

在 LuaLaTeX 中自动用另一个替换缺失的字形

使用\usepackage{newunicodechar}包时我需要声明所有字形。我可以进行自动替换而不声明ё为活动字符吗?

如果数学中缺少字符,我需要自动采用FreeSerif字体。

答案1

如果您想在数学模式中引入任意文本模式字符,请将它们包装在\textnormal\textit\mathrm\mathit任何适当的内容中。

如果您想要数学符号的后备字体,请使用 加载它\setmainfont,然后加载您想要替换的任何符号\setmainfont[range=...]

以下是 MWE:

\documentclass{article}
\tracinglostchars=2 % Warn if the current font does not have a character!
\usepackage[math-style=upright]{unicode-math} 
\defaultfontfeatures{ Ligatures=TeX, Scale=MatchLowercase }
\setmainfont[Scale=1.0,SmallCapsFeatures={Renderer=Basic}]{Dejavu Sans}
%%% Math Fonts
\setmathfont{TeX Gyre DejaVu Math}
\setmathfont{FreeSerif}[range=up, Script=Default]
\setmathrm{FreeSerif}

\title{Math Substitute Fonts}

\begin{document}

\maketitle

\[ \textnormal{ż} 0 \times 0 \textnormal{ and } \mathrm{ż}
\]

\end{document}

这解决了问题中示例的一些问题,主要是将数学字体设置为 DejaVu 数学字体而不是文本字体,而且还正确缩放了字体。由于您选择直立字体作为斜体数学字体,因此我假设您想要直立数学,因此进行了设置。默认情况下math-style=upright会使用此功能,但如果您需要,也可以使用它。\symup\symit

如果你想要文本模式下的后备字体,你可以尝试combofont这些解决方案。

相关内容