你好!
我正在尝试使用 LuaLaTeX 中的 Arno Pro 排版数学运算。但是,我还没有找到合适的解决方案。由于 Arno Pro 没有正确数学排版所需的所有符号,因此需要某种解决方法。
下面是我在尝试回答这个问题时尝试过的两种方法。
解决方案 1 ·mathastext
\documentclass{article}
\usepackage{blindtext}
\usepackage[no-math]{fontspec}
\setmainfont{Arno Pro}
\usepackage[italic]{mathastext}
\begin{document}
\blindmathpaper
\end{document}
编译此 MWE 发现mathastext
不使用 Arno Pro 的希腊字形。尽管mathastext
的文档做有一个名为的选项部分LGRgreek
,由于处理希腊语的方式,此选项不产生任何效果fontspec
。
解决方案 2 ·unicode-math
我不会重复我在这里尝试过的方法,但我尝试的方法是基于这个臭名昭著的答案。这存在相当多的问题,并且正如回答者恰如其分地指出的那样,会“浪费你的时间!”
我遇到的一些问题是:
- 不尊重
Numbers={OldStyle,Proportional}
(即只尊重最后一个{ ... }
- 大量缺失字体功能错误(因为 Arno Pro 没有任何数学字符)
结论
最后,我真正想要的是一种使用任意字体进行一些非常基本的数学运算(只是一些基本的代数、算术,包括根和分数等)的方法,这种字体可以很好地与fontspec
字体中可能存在的任何希腊字形(即比例文本图形和其他 OpenType 功能在数学模式下都得到尊重)和希腊字形集成在一起。仔细想想,这听起来与mathspec
提供的非常相似……这mathspec
在 LuaLaTeX 中不可用,真是太遗憾了。如果有人知道实现我的目标的方法,我将不胜感激。
谢谢!
答案1
我没有 Arno Pro,因此我使用免费的 Crimson。
\documentclass{article}
\usepackage{blindtext}
\usepackage{unicode-math}
\setmainfont{Crimson}
% Set baseline math font (Crimson goes well with Pagella)
\setmathfont{TeX Gyre Pagella Math}
% Get alphabets from text font
\setmathfont[range={up}]{Crimson-Roman.otf}
\setmathfont[range={it}]{Crimson-Italic.otf}
\setmathfont[range={bfup}]{Crimson-Bold.otf}
\setmathfont[range={bfit}]{Crimson-BoldItalic.otf}
% Restore the broken symbols (if there are none, just use range={})
\setmathfont[range={\partial}]{TeX Gyre Pagella Math}
\begin{document}
\blindmathpaper
\end{document}
您还可以mathspec
在 LuaTeX 中使用XeTeXemulate
下载链接文件XeTeXemulate.sty
并将其放在与您的文档相同的目录中。
\documentclass{article}
\usepackage{blindtext}
\usepackage{XeTeXemulate}
\XeTeXemulate
\usepackage{mathspec}
\setallmainfonts{Crimson}
\begin{document}
\blindmathpaper
\end{document}