首先,一个最小的工作示例如下:
\documentclass{article}
\usepackage{amsmath,amsfonts,amssymb,mathrsfs}
\usepackage{mathspec}
\setallmainfonts(Digits,Latin){Times}%a replacement of the font that I am using now
\title{Test}
\begin{document}
\maketitle
$a'+b=c^\prime$ and $(f),[f],\{f\}$.
\end{document}
其输出xelatex
为
我的问题是:
- 代码生成的图片中的素数
'
和\prime
都是默认Computer Modern
字体的,那么如何把'
和改成\prime
设置字体中的符号Times
呢?希望是全局设置,不要是局部设置。- 数学模式下斜体两边的间距
f
太小,导致括号和f
太近。那么如何f
只在数学模式下(而不是在文本模式下)给斜体两边添加间距?希望是全局设置,而不是局部设置。
问题 2 已解决如下,那么对于问题 1 谁能帮助我?
答案1
您应该使用"f
手册中提到的方法(对于其他字母也类似)mathspec
。
请注意 与'
相同^{\prime}
。
\documentclass{article}
\usepackage{amsmath,amsfonts,amssymb,mathrsfs}
\usepackage{mathspec}
\setallmainfonts(Digits,Latin){Times}%a replacement of the font that I am using now
\title{Test}
\begin{document}
\maketitle
$a'+b="f^\prime$ and $("f),["f],\{"f\}$.
\end{document}
答案2
对于问题 2,我得到的答案来自链接在@egreg 的帮助下。我在这里发布了答案:
\makeatletter
\AtBeginDocument{%
\Umathcharnumdef\math@f\Umathcodenum`f
\mathcode`f=\string"8000}
\begingroup\lccode`~=`f
\lowercase{\endgroup
\def~{%
\mkern3mu\math@f
\ifnum\mathgroup=\m@ne
\expandafter\@firstofone
\else
\expandafter\@gobble
\fi
{\@ifnextchar_{\relax}{\mkern3mu}}%
}
}
\makeatother
修订后的输出如下: