答案1
感谢@Ross 向我展示mathastext
我认为我找到了一个可行的解决方案。
解决方案
数学符号
\usepackage{fourier}
在我看来,傅立叶符号在风格上更匹配,但是我不想保留与字体相关的更改,所以我先添加它(以便其他字体包覆盖它)。
数学字体
\usepackage{plex-serif}
我想使用衬线字体来表示数学,因此我在后面添加了这个字体,fourier
以便覆盖它,并在前面添加了这个字体,mathastext
以便它实际上用于数学
将字体应用于数学
\usepackage[basic,italic,symbolgreek]{mathastext}
mathastext
看起来不错,但对我来说,在没有任何选项的情况下使用时会出现一些问题。
- 矩阵的括号,当需要多行括号时,
mathastext
只会抓取[]
字体使用的字符,而不会做任何事情来使它们变成多行。通过添加选项解决了这个basic
问题——尽管这也产生了不替换其他一些符号的效果(在我看来这是值得的代价) - 默认情况下,数学符号为非斜体。这是一个简单的修复方法:
italic
- 未使用字体中的希腊字母。同样,解决方法很简单:
symbolgreek
- 字距错误/字母重叠(或挤在一起)
为了解决最后一个问题,我使用了另一个命令,可在本小节的末尾看到。
文本字体
\usepackage[sfdefault]{plex-sans}
将衬线变体设置为在数学中使用后,mathastext
我将字体更改为要在文档其余部分使用的无衬线字体。
间距问题
默认情况下,间距与斜体/倾斜文本相同。这对数学来说是一个问题,因为它会导致重叠/拥挤。为了看到这一点,我0.1ex
在\hspace{-0.1ex}
它们后面画了垂直宽度规则,产生了
对于大多数字母,在两侧增加 0.5mu 的空间即可解决问题,但带有“尾巴”的字母则需要额外注意。经过一些调整后,我设法得到了以下结果:
虽然我不认为这是“修复”的,但还是比较好的。这是使用的代码(无):
\makeatletter
\@for\@tempa:=a,b,c,d,e,h,i,k,l,m,n,o,q,r,s,t,u,v,w,x\do{%
\MTsetmathskips{\@tempa}{0.5mu}{0.5mu}}%
\makeatother
\MTsetmathskips{f}{2.5mu}{0.5mu}
\MTsetmathskips{g}{1.5mu}{0.5mu}
\MTsetmathskips{j}{2.5mu}{0.5mu}
\MTsetmathskips{p}{1.5mu}{0mu}
\MTsetmathskips{y}{1.5mu}{0.5mu}
\MTsetmathskips{z}{1mu}{0.5mu}
然后对于衬线版本:
\makeatletter
\@for\@tempa:=a,b,c,d,e,h,i,k,l,m,n,o,q,r,t,u,v,w\do{%
\MTsetmathskips{\@tempa}{0.5mu}{0.5mu}}%
\makeatother
\MTsetmathskips{f}{4.5mu}{0.5mu}
\MTsetmathskips{g}{2.5mu}{0.5mu}
\MTsetmathskips{j}{4mu}{0.5mu}
\MTsetmathskips{p}{2.5mu}{0mu}
\MTsetmathskips{s}{1mu}{0.5mu}
\MTsetmathskips{x}{1.5mu}{0.5mu}
\MTsetmathskips{y}{3.5mu}{0.5mu}
\MTsetmathskips{z}{1.5mu}{0.5mu}
前
后
虽然很小,但是一种进步
全部一起
\usepackage{fourier}
\usepackage{plex-serif}
\usepackage[basic,italic,symbolgreek]{mathastext}
\usepackage[sfdefault]{plex-sans}
\makeatletter
\@for\@tempa:=a,b,c,d,e,h,i,k,l,m,n,o,q,r,s,t,u,v,w,x\do{%
\MTsetmathskips{\@tempa}{0.5mu}{0.5mu}}%
\makeatother
\MTsetmathskips{f}{2.5mu}{0.5mu}
\MTsetmathskips{g}{1.5mu}{0.5mu}
\MTsetmathskips{j}{2.5mu}{0.5mu}
\MTsetmathskips{p}{1.5mu}{0mu}
\MTsetmathskips{y}{1.5mu}{0.5mu}
\MTsetmathskips{z}{1mu}{0.5mu}
结果
衬线
\usepackage[sfdefault]{plex-sans}
\usepackage[basic,italic,symbolgreek]{mathastext}
桑斯
\usepackage{plex-serif}
\usepackage[basic,italic,symbolgreek]{mathastext}
混合
\usepackage{plex-serif}
\usepackage[basic,italic,symbolgreek]{mathastext}
\usepackage[sfdefault]{plex-sans}