与 unicode-math 一起使用时,使用 TeX Gyre DejaVu Math 替换字体

与 unicode-math 一起使用时,使用 TeX Gyre DejaVu Math 替换字体

选择这种字体后,我收到以下警告:

字体形状“U/esvect/m/n”的大小 <6.5> 不可用(字体)大小 <6> 在输入行 11 中替换。

我理解它的含义和原因(所选字体没有指定的大小,因此用其他可用大小代替)。我尝试的每种字体都不会发生这种情况。我可以忍受,但希望能够消除它。我的问题是,除了使用其他字体外,我是否可以在字体设置中做任何事情来消除它。我搜索了这个网站、文档unicode-mathfontspec文档和整个网络,但没有找到任何明显相关的内容。

% !TEX TS-program = lualatexmk
% !TEX encoding = UTF-8 Unicode

\documentclass{article}
\usepackage{unicode-math}
\setmathfont{TeX Gyre DejaVu Math} 
\usepackage{esvect}

\begin{document}

\( \vv{a} \)

\end{document}

答案1

附带的字体定义文件esvect仅定义固定大小的字体,即 5、6、7、8、9、10、10.95、12、14.4、17.28、20.74、24.88,以 10 之后的通常平方根级数进行。

您可以利用字体采用 Type1 格式这一事实来解决此问题,这样就可以随意缩放它们。

\documentclass{article}
\usepackage{unicode-math}
\setmathfont{TeX Gyre DejaVu Math} 
\usepackage{esvect}

\DeclareFontFamily{U}{esvect}{}
\DeclareFontShape{U}{esvect}{m}{n}{%
  <-5.5> vect5
  <5.5-6.5> vect6
  <6.5-7.5> vect7
  <7.5-8.5> vect8
  <8.5-9.5> vect9
  <9.5-> vect10
}{}


\begin{document}

\( \vv{a} \)

\end{document}

这样,LaTeX 就可以选择任意大小的字体,对于较小的尺寸仍然使用光学字体。

相关内容