我已经使用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}
使用\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
或这些解决方案。