我正在尝试单独控制数学字符的字体、字体大小和粗细。我在 stackexchange 上找到了这个解决方案; XeTeX/mathspec 标点符号问题
...
\makeatletter
\ernewcommand\eu@MathPunctuation@symfont{Latin:m:n}
\DeclareMathSymbol{,}{\mathpunct}{\eu@MathPunctuation@symfont}{`,}
...
为了使 +-= 变得粗体和普通,我尝试了这种方法(但没有成功);
\documentclass[9pt]{article}
\usepackage{extsizes}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{mathspec}
\setmathfont(Digits,Latin)[Numbers={Lining,Proportional},Lowercase={Regular},Uppercase={Regular}]{Arial}
\setmathfont(Greek)[Scale=1.15, Lowercase={Regular},Uppercase={Regular}]{Symbol}
\setmainfont[Ligatures=TeX]{Arial}
\makeatletter
\ernewcommand\eu@MathPunctuation@symfont{Latin:bx:n}
\DeclareMathSymbol{+}{\mathpunct}{\eu@MathPunctuation@symfont}{`+}
\DeclareMathSymbol{-}{\mathord}{\eu@MathPunctuation@symfont}{`-}
\DeclareMathSymbol{=}{\mathrel}{\eu@MathPunctuation@symfont}{`=}
\makeatother
\begin{document}
\thispagestyle{empty}
$+-=$+-=
\end{document}
问题 1) 如何才能仅将字符“+-=”变为粗体,而将其他字符变为纯文本。问题 2) 我们可以设置表达式“x^a”中“a”的字体大小吗?我希望我的普通文本为 9pt,而 sub、sup、frac 和 frac{frac} 字符固定在 8pt,不会随着级别的增加而缩小。任何帮助都非常感谢。感谢大家阅读或回复。
答案1
\XeTeXDeclareMathSymbol
您忘记声明合适的数学符号字体;如果您想要真正的减号,您还必须使用它。
\documentclass[9pt]{article}
\usepackage{extsizes}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{mathspec}
\setmathfont(Digits,Latin)[
Numbers={Lining,Proportional},
Lowercase=Regular,
Uppercase=Regular
]{Arial}
\setmathfont(Greek)[
Scale=1.15,
Lowercase=Regular,
Uppercase=Regular
]{Symbol}
\setmainfont[Ligatures=TeX]{Arial}
% subscripts are 8pt at any level
\DeclareMathSizes{9}{9}{8}{8}
\makeatletter
\DeclareSymbolFont{Latin:bx:n}{EU1}{\eu@Latinmathsfont}{bx}{n}
\ernewcommand\eu@MathPunctuation@symfont{Latin:bx:n}
\DeclareMathSymbol{+}{\mathbin}{\eu@MathPunctuation@symfont}{`+}
\DeclareMathSymbol{=}{\mathrel}{\eu@MathPunctuation@symfont}{`=}
% fight against amsmath using the mathcode of `-`
\AtBeginDocument{%
\XeTeXDeclareMathSymbol{-}{\mathbin}{\eu@MathPunctuation@symfont}{"2212}%
}
\makeatother
\begin{document}
\thispagestyle{empty}
$+-=$+-=
$a^{a^a}$
\end{document}