我正在尝试使用mathspec
firamath-otf
包。我收到选项冲突错误fontspec
。
\documentclass{article}
\usepackage{firamath-otf}
%\usepackage[no-math]{mathspec}
%\usepackage[quiet]{mathspec}
\usepackage{mathspec}
\setmainfont{Arial}[Scale=1.2]
\setmathsfont(Digits){Arial}
\setmathsfont(Latin){Arial}
\begin{document}
Test.
\(ABCDEFGHJKLMNOPQRSTUVWXYZ\)
\(1234567890\)
\end{document}
我尝试使用不同的选项加载 mathspec,no-math
以及quiet
不使用任何选项。 都不起作用。firamath-otf
加载unicode-math
和不使用任何选项
unicode-math
加载。使用默认选项加载。 如何解决这种冲突?fontspec
mathspec
fontspec
no-math
答案1
抱歉,我错过了你 9 个月前发的帖子。另一种解决方案可能会在某些无法以不同顺序加载软件包或由 加载的情况下起作用,\documentclass
即把这个命令放在序言的顶部附近:
\PassOptionsToPackage{no-math}{fontspec}
现在是一个框架挑战。
mathspec
如果您正在加载,则不需要unicode-math
。您没有使用旧式数学字体,或者任何其他功能unicode-math
本身不提供,并且您会注意到,它们会发生冲突。删除对的依赖mathspec
还可以让您在 LuaTeX 上进行编译。
\setmathfont
您可以使用unicode-math
或将数学字母设置为 OpenType 字体mathastext
。最好将此 MWE 写为:
\documentclass{article}
\usepackage{firamath-otf}
\defaultfontfeatures{ Scale=MatchLowercase, Ligatures=TeX }
\setmainfont{Arial}
\setmathfont{Arial}[range=up]
\setmathfont{Arial Italic}[range=it]
\setmathfont{Arial Bold}[range=bfup]
\setmathfont{Arial Bold Italic}[range=bfit]
\begin{document}
Test. \textit{ABC} 123 \\
\(ABCDEFGHJKLMNOPQRSTUVWXYZ\) \\
\(1234567890\) \\
\end{document}
或者:
\documentclass{article}
\usepackage{firamath-otf}
\defaultfontfeatures{ Scale=MatchLowercase, Ligatures=TeX }
\setmainfont{Arial}
\usepackage{mathastext}
\begin{document}
Test. \textit{ABC} 123 \\
\(ABCDEFGHJKLMNOPQRSTUVWXYZ\) \\
\(1234567890\) \\
\end{document}
答案2
fontspec
我最终通过在之前加载选项 no-math 解决了这个问题firamath-otf
。修改后的 mwe 是
\documentclass{article}
\usepackage[no-math]{fontspec}
\usepackage{firamath-otf}
\usepackage{mathspec}
\setmainfont{Arial}[Scale=1.2]
\setmathsfont(Latin,Digits)[Uppercase=Regular,Lowercase=Regular,Scale=1.2]{Arial}
\begin{document}
Test.\\
\noindent ABCDEFGHIJKLMNOPQRSTUVWXYZ\\
\(ABCDEFGHIJKLMNOPQRSTUVWXYZ\)\\
1234567890\\
\(1234567890\)
\end{document}
编译时没有错误,输出也符合要求。希望使用 no-math 选项加载 fontspec 不会造成问题,因为 unicode-math 加载时没有任何选项。我祈祷一切顺利!