mathspec 和 url 包之间不兼容

mathspec 和 url 包之间不兼容

我使用 xelatex 和mathspec's \setmathfont(Digits,Latin,Greek),效果很好,并且url使用带有 Computer Modern Unicode Typewriter 字体的软件包。结果是我的 URL 中的所有数字都以文本字体显示,而不是打字机字体:

URL 中的数字不正确

当我删除该\setmathfont命令时,URL 就完美地出现了:

更正 URL 中的数字

应 Ulrike 的要求,这里有一个完整的示例(我讨厌 Arial,使用它只是因为它是一种广泛使用的字体)。对于字体,cmuntt您需要更改磁盘上的位置:

\documentclass{article}
\usepackage{mathspec,xltxtra,url}
\setmainfont{Arial}
\setmathfont(Digits,Latin,Greek){Arial}
\setmonofont{cmuntt}[
    Path           = /somewhere/,
    Extension      = .ttf,
    UprightFont={cmuntt},
    ItalicFont={cmunti},
    BoldFont={cmuntb},
    BoldItalicFont={cmuntx}
]
\def\UrlFont{\ttfamily}
\begin{document}
Test URL: \url{http://www.1234.com}

Test math: $x^2+y^2=z^2$.
\end{document}

下面是小型测试文件的结果,您可以看到 URL 中的数字是 Arial 而不是 Computer Modern Unicode Typewriter:

在此处输入图片描述

我怎样才能知道mathspec不要干扰url包中的 URL?

答案1

像这样的事情可能会有用(我没有 cmuntt 并且也没有时间去搜索它):

\documentclass{article}
\usepackage{mathspec}
\usepackage{url}

\def\UrlFont{\ttfamily}
\setmathfont(Digits,Greek,Latin)[Numbers=Lining]{Arial}
\makeatletter
\DeclareMathVersion{url}
\SetSymbolFont{\eu@DigitsArabic@symfont}{url}{TU}{\ttdefault}{m}{n}
\makeatother
\def\UrlFont{\ttfamily\mathversion{url}}  
\begin{document}
$a=123$

\url{www.abc123.de}

$a=123$

\end{document}

在此处输入图片描述

相关内容