这是我上一次问题。我想beamer
使用字体制作演示文稿Helvetica Neue
。我正在使用这个 MWE:
\documentclass[]{beamer}
\usepackage{fontspec}
\setsansfont[
BoldFont=HelveticaNeueLTCom-Md,
ItalicFont=HelveticaNeueLTCom-LtIt,
SmallCapsFont=TeXGyre Heros,
SmallCapsFeatures={Letters=SmallCaps},
]{HelveticaNeueLTCom-Lt}
\begin{document}
\begin{frame}{Test 1 2 3}
\begin{itemize}
\item \textit{italic}
\item \textbf{bold}
\item normal
\item numbers: 1, 2, 3 and 4
\item math
\begin{align}
a^2 + b^2 &= c^\text{2} \text{ (used \texttt{\textbackslash text} to produce sans serif 2 for $c$)}\\
\alpha^2 + \beta^2 &= \gamma^2
\end{align}
\item \textsc{SmallCaps}
\item Dash -- Dash
\end{itemize}
\end{frame}
\end{document}
结果如下:
- 如何更改数学模式下用于数字的字体?我可以
\text
一直使用,但这不是一个聪明的解决方案。 - 这样代码可以吗?我没有使用
\usefonttheme{professionalfonts}
beamer 命令,因为我认为这对我而言没用。 - 仪表板
--
无法使用。如何修复? - SmallCaps 字体与较细的主字体搭配起来显得太粗了。有人能推荐更好的 SmallCaps 替代品吗?我在这里查看了http://www.gust.org.pl/projects/e-foundry/tex-gyre/它还说
TeX Gyre Heroes 可以替代流行的 Helvetica 字体
更新
按照 Mico 的建议,会导致缺少希腊字母,如\alpha
和\beta
。我删除了greek
和Greek
选项,但字母仍然缺失:
\setmathfont[range=\mathup/{latin,Latin,num}]{HelveticaNeueLTCom-Th}
\setmathfont[range=\mathit/{latin,Latin,num}]{HelveticaNeueLTCom-ThIt}
\setmathfont[range=\mathbfup/{latin,Latin,num}]{HelveticaNeueLTCom-Roman}
\setmathfont[range=\mathbfit/{latin,Latin,num}]{HelveticaNeueLTCom-It}
日志文件中的警告如下所示:
*************************************************
* fontspec warning: "icu-feature-not-exist-in-font"
*
* OpenType feature 'Style=MathScript' (+ssty) not available for font
* 'HelveticaNeueLTCom-ThIt' with script 'Math' and language 'Default'.
*************************************************
luaotfload: font no 25 (HelveticaNeueLTCom-ThIt) does not define feature ssty fo
r script latn with language dflt
luaotfload: no font with id 25
*************************************************
* fontspec warning: "icu-feature-not-exist-in-font"
*
* OpenType feature 'Style=MathScriptScript' (+ssty) not available for font
* 'HelveticaNeueLTCom-ThIt' with script 'Math' and language 'Default'.
*************************************************
使用\usefonttheme{professionalfonts}
与否对输出没有影响(据我所知)。
答案1
尝试
\usepackage[no-math]{fontspec}
\usepackage{unicode-math}
\setsansfont[
BoldFont=HelveticaNeueLTCom-Md,
ItalicFont=HelveticaNeueLTCom-LtIt,
SmallCapsFont=TeXGyre Heros,
SmallCapsFeatures={Letters=SmallCaps},
]{HelveticaNeueLTCom-Lt}
\setmathfont{HelveticaNeueLTCom-Lt}
\setmathfont[range=\mathit/{greek}]{TeXGyre Heros Italic}
答案2
按照相反的顺序回答你的问题:
--
要启用 endash 和 emdash 符号的自动替换---
,请确保使用选项加载相关字体Ligatures=TeX
,即\setsansfont[Ligatures=TeX, Extension=.ttf, BoldFont=HelveticaNeueLTCom-Md, ItalicFont=HelveticaNeueLTCom-LtIt, SmallCapsFont=TeXGyre Heros, SmallCapsFeatures={Letters=SmallCaps}, ]{HelveticaNeueLTCom-Lt}
我无法显示此修改产生的输出,因为我的系统上没有这些字体。设置选项 option
Ligatures=TeX
还会将 `` 替换为印刷正确的左双引号。到目前为止,您已指定文本(无衬线)字体,但没有指定数学字体;因此,数学部分显示在 Computer/Latin Modern 中。您应该加载包
unicode-math
(反过来,加载包fontspec
)并发出一些指令,告诉 LuaLaTeX 尽可能多地使用文本字体系列中的字符。(据我所知,没有 opentype无衬线字体数学字体可用。\usepackage{unicode-math} \setsansfont{TeXGyre Heros} \setmathfont[range=\mathup/{greek,Greek,latin,Latin,num}]{TeXGyre Heros} \setmathfont[range=\mathit/{greek,Greek,latin,Latin,num}]{TeXGyre Heros Italic} \setmathfont[range=\mathbfup/{greek,Greek,latin,Latin,num}]{TeXGyre Heros Bold} \setmathfont[range=\mathbfit/{greek,Greek,latin,Latin,num}]{TeXGyre Heros Bold Italic}
这里,我使用了各种粗细和形状的 TeXGyre Heros 字体。假设 HelveticaNeue 字体有希腊字母,您可以用等
TeXGyre Heros
替换HelveticaNeueLTCom-Lt
。如果您的 beamer 文档中有很多数学内容,您可以认真考虑使用其中一个
professionalfonts
选项,比如说,arev
class。前面的讨论还应该允许在数学模式下使用无衬线数字。