我使用 xelatex 和mathspec
's \setmathfont(Digits,Latin,Greek)
,效果很好,并且url
使用带有 Computer Modern Unicode Typewriter 字体的软件包。结果是我的 URL 中的所有数字都以文本字体显示,而不是打字机字体:
当我删除该\setmathfont
命令时,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}