我STIXTwoMath-Regular.otf
从STIX 两个 Git 存储库,并将其另存为~/STIXTwoMath-Regular.otf
。
然后,我将以下 LaTeX 代码保存在文件中~/Hw2/Test.tex
。
\documentclass{article}
\usepackage{unicode-math}
\setmathfont{../STIXTwoMath-Regular.otf}
\begin{document}
\end{document}
然后我在终端中执行了以下命令。
> cd ~/Hw2
> lualatex Test
编译失败,出现如下信息~/Hw2/Test.log
。
Package fontspec Info: Font family '../STIXTwoMath-Regular.otf(0)' created for
(fontspec) font '../STIXTwoMath-Regular.otf' with options
(fontspec) [Renderer=Basic,BoldItalicFont={},ItalicFont={},SmallCap
sFont={},Script=Math,FontAdjustment={\__um_luatex_copy_fontdimens:
(fontspec) }].
(fontspec)
(fontspec) This font family consists of the following NFSS
(fontspec) series/shapes:
(fontspec)
(fontspec) - 'normal' (m/n) with NFSS spec.:
(fontspec) <->"[../STIXTwoMath-Regular.otf]:mode=base;script=math;l
anguage=dflt;"
(fontspec) - 'small caps' (m/sc) with NFSS spec.:
(fontspec) and font adjustment code:
(fontspec) \__um_luatex_copy_fontdimens:
LaTeX Font Info: Trying to load font information for TU+.. on input line 6.
LaTeX Font Info: No file TU...fd. on input line 6.
LaTeX Font Warning: Font shape `TU/../STIXTwoMath-Regular.otf(0)/m' undefined
(Font) using `TU/lmr/m/n' instead on input line 6.
! Missing number, treated as zero.
<to be read again>
n
l.6 \begin
{document}
?
! Emergency stop.
<to be read again>
n
l.6 \begin
{document}
End of file on the terminal!
问题
- 为什么编译失败?
- 我如何将字体文件
\setmathfont
的路径传递给命令STIXTwoMath-Regular.otf
?
进一步考虑
../STIXTwoMath-Regular.otf
如果我写的不是STIXTwoMath-Regular.otf
,编译将成功完成,但我想这可能是由于以下原因之一:
要么
STIXTwoMath-Regular.otf
是 TeXLive 安装的一部分,要么是操作系统字体目录的一部分,并且lualatex
引擎在与 TeXLive 字体或操作系统字体关联的规范文件夹中找到此字体文件,或者
\setmathfont
具有一些查找字体文件的内置方法,包括在活动目录的父目录中查找它们。
无论哪种情况,我都希望得到一个对我的问题的一般性回答,这将能够处理
.otf
之前没有保存在我的文件系统中的文件,\setmathfont
以及不会自动搜索的路径。
答案1
非 OS 系统安装的字体可以通过多种方式引用:在 texmf 树或当前文件夹中,Path= 不是必需的;在其他地方,Path= 是必需的。
平均能量损失
\documentclass{article}
\usepackage{xcolor}
\usepackage{unicode-math}
\defaultfontfeatures{Scale = MatchUppercase}
\setmathfont[Scale=0.97]{STIX Two Math}
\setmainfont[Scale=0.97]{STIX Two Text}
\setmathfontface{\texthiero}[
Path=C:/[long local path]/fonts/3/f/,
Extension=.otf,
]{Aegyptus}
\setmathfontface{\textcurr}[Scale=2]{Maya.otf}
\newfontface{\ttextcurr}[Scale=2,Colour=red]{Maya.otf}
\begin{document}
texmf-tree font (log = .../texlive/2022/texmf-dist/fonts/opentype
/public/stix2-otf/STIXTwoMath-Regular.otf):
\[ x^{2}+y^{2}=z^{2}\]
Path= font (C:/.../.../.../fonts/3/f/):
{\Large
\[ \texthiero{