如何将“'”和“\prime”更改为设置字体中的符号以及如何仅在数学模式下在斜体“f”的两边添加间距?

如何将“'”和“\prime”更改为设置字体中的符号以及如何仅在数学模式下在斜体“f”的两边添加间距?

首先,一个最小的工作示例如下:

\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

在此处输入图片描述

我的问题是:

  1. 代码生成的图片中的素数'\prime都是默认Computer Modern字体的,那么如何把'和改成\prime设置字体中的符号Times呢?希望是全局设置,不要是局部设置。
  2. 数学模式下斜体两边的间距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

修订后的输出如下:

在此处输入图片描述

相关内容