
首先,一個最小的工作示例如下:
\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
以下是修訂版的輸出: