我在用mathspec
使数学模式中的字体与文本主体中使用的罗马字体相匹配。 中的“数字”环境对文档中的所有数字都有效。 这意味着,尽管加载了命令(我原以为会覆盖) mathspec
,但通常使用罗马字体以外的字体的数字(例如 URL 中的数字)最终也会使用此字体。mathspec
\setallmonofonts
\setmathfont
\documentclass{article}
\usepackage{mathspec}
\setmainfont{Book Antiqua}
\setmathfont(Digits,Latin){Book Antiqua}
\setallmonofonts{Courier New}
\usepackage[hidelinks]{hyperref}
\begin{document}
Some text. Some figures: 123456789\\
\url{http://some.urlwithnumbers/123456789}
$$Some text in math mode. Some figures in math mode: 12345789$$
\end{document}
有没有办法只为数学模式中出现的数字设置字体?我想为等宽字符串中的数字保留我指定的等宽字体(如果需要使用无衬线字体,也一样)。
答案1
来自的诀窍https://tex.stackexchange.com/a/99774似乎有效:
\documentclass{article}
\usepackage{mathspec}
\setmainfont{Arial}
\setmathfont(Digits,Latin){Arial}
\setallmonofonts{Courier New}
\makeatletter
\DeclareMathSymbol{0}{\mathalpha}{\eu@DigitsArabic@symfont}{`0}
\DeclareMathSymbol{1}{\mathalpha}{\eu@DigitsArabic@symfont}{`1}
\DeclareMathSymbol{2}{\mathalpha}{\eu@DigitsArabic@symfont}{`2}
\DeclareMathSymbol{3}{\mathalpha}{\eu@DigitsArabic@symfont}{`3}
\DeclareMathSymbol{4}{\mathalpha}{\eu@DigitsArabic@symfont}{`4}
\DeclareMathSymbol{5}{\mathalpha}{\eu@DigitsArabic@symfont}{`5}
\DeclareMathSymbol{6}{\mathalpha}{\eu@DigitsArabic@symfont}{`6}
\DeclareMathSymbol{7}{\mathalpha}{\eu@DigitsArabic@symfont}{`7}
\DeclareMathSymbol{8}{\mathalpha}{\eu@DigitsArabic@symfont}{`8}
\DeclareMathSymbol{9}{\mathalpha}{\eu@DigitsArabic@symfont}{`9}
\makeatother
\usepackage[hidelinks]{hyperref}
\begin{document}
Some text. Some figures: 123456789\\
\url{http://some.urlwithnumbers/123456789}
\[Some text in math mode. Some figures in math mode: 12345789\]
\end{document}