我发现将数学表达式中的系统安装字体与圆角字母混合的唯一方法lxfonts
是将每个数字包装在 中\text{}
,如下所示:
\documentclass[a4paper,12pt]{article}
\usepackage{fontspec}
\setmainfont{Ubuntu}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{lxfonts}
\begin{document}
\fontspec{Ubuntu}
$\text{7}x - \text{1} = \text{13}$
\end{document}
这将编译成以下(期望的)输出:
问题
我想找到一种更简单的方法来获得相同的结果,而不使用这些\text{}
来包装数字。
困难
lxfonts
必须在最后的位置加载,但我尝试使用的其他包确实取消了它的效果。
我希望能够lxfonts
在数学模式下使用字母,但它看起来并不完全像另一种字体那样工作(或者也许我没有正确使用它?)。
失败的尝试
使用
unicode-math
,减号将丢失(所以其他运算符可能也是如此?),并且lxfonts
效果将被取消。\documentclass[a4paper,12pt]{article} \usepackage{fontspec} \usepackage{unicode-math} \setmainfont{Ubuntu} \setmathfont{Ubuntu} \setmathfont[range=\mathup] {Ubuntu} \setmathfont[range=\mathbfup]{Ubuntu Bold} \setmathfont[range=\mathbfit]{Ubuntu Bold Italic} \setmathfont[range=\mathit] {Ubuntu Italic} \usepackage{lxfonts} \begin{document} \fontspec{Ubuntu} $7x - 1 = 13$ \end{document}
使用
mathastext
,结果有些相反(数字不是 Ubuntu,字母是 Ubuntu)。\documentclass[a4paper,12pt]{article} \usepackage{fontspec} \setmainfont{Ubuntu} \usepackage{mathastext} \usepackage{lxfonts} \begin{document} \fontspec{Ubuntu} $7x - 1 = 13$ \end{document}
答案1
您应该避免在 fontspec 之后加载用于 pdflatex 的字体包。它们经常会破坏 fontspec 设置。在这种情况下,即使在之前加载它也无法避免所有问题,因为 lxfonts 会在 中设置字体\AtEndPreamble
。
我没有 Ubuntu 字体,因此我使用红色 Arial 代替。
\documentclass[a4paper,12pt]{article}
\usepackage{lxfonts}
\usepackage[no-math]{fontspec}
\AtEndPreamble{\setmainfont{Arial}[NFSSFamily=arial,Color=FF0000]}
\usepackage{amssymb}
\usepackage{amsmath}
\DeclareSymbolFont{mynumbers} {TU}{arial}{m}{n}
\SetSymbolFont {mynumbers}{bold}{TU}{arial}{bx}{n}
\AtBeginDocument{
\DeclareMathSymbol{0}{\mathalpha}{mynumbers}{`0}
\DeclareMathSymbol{1}{\mathalpha}{mynumbers}{`1}
\DeclareMathSymbol{2}{\mathalpha}{mynumbers}{`2}
\DeclareMathSymbol{3}{\mathalpha}{mynumbers}{`3}
\DeclareMathSymbol{4}{\mathalpha}{mynumbers}{`4}
\DeclareMathSymbol{5}{\mathalpha}{mynumbers}{`5}
\DeclareMathSymbol{6}{\mathalpha}{mynumbers}{`6}
\DeclareMathSymbol{7}{\mathalpha}{mynumbers}{`7}
\DeclareMathSymbol{8}{\mathalpha}{mynumbers}{`8}
\DeclareMathSymbol{9}{\mathalpha}{mynumbers}{`9}
}
\begin{document}
1234 x \textit{x}
$1234567890x - 1 = 13$
\boldmath
$1234567890$
\end{document}