我在文本和数学中都使用了无衬线字体,但后来我遇到了问题\帽子.如何解决?

以下是MWE:

\documentclass[12pt,信纸,双栏]{article}\usepackage[缩放]{helvet}%。。。将helvet设置为文本字体\更新命令{\familydefault}{\sdefault}\usepackage{fouriernc}%。。。控制数学字体\usepackage[helvet]{sfmath}%。。。将helvet设置为数学字体\使用包{isomath}%。。。处理mathrm以匹配文本字体(?)\使用包{siunitx}\title{将sans-serif字体应用于文本和数学}\开始{文档}\制作标题方程式为\[\mathbf{E}=E\hat{r}。\]\结束{文档}

在此处输入图像描述

5个答案5

重置为默认值
6

一般性意见

让我们检查一下您对代码的注释。

女巫

\usepackage[缩放]{helvet}%。。。将helvet设置为文本字体\更新命令{\familydefault}{\sdefault}

是的,这使得Helvetica(实际上是它的克隆)成为主要的文本字体。

fouriernc公司

\usepackage{fouriernc}%。。。控制数学字体

不,这并不能“控制”数学字体:软件包根据新世纪教科书选择一组数学字体。既然您的目标是无衬线数学,为什么要加载衬线数学字体?

sfmath公司

\usepackage[helvet]{sfmath}%。。。将helvet设置为数学字体

好吧,这几乎就是你所说的。

等径线

\使用包{isomath}%。。。处理mathrm以匹配文本字体(?)

不,该软件包设置了数学字体,以便它们符合臭名昭著的ISO数学规则(基本上没有数学家坚持)。

具体问题

包裹fouriernc公司对数学字体使用了一组非常特殊的编码,它应该从未与其他处理数学字体的字体包一起加载。

排版不良

让我们删除有问题的包,并尝试使用一些更复杂的数学公式。

\documentclass[12pt,信纸,双栏]{article}\usepackage[缩放]{helvet}%。。。将helvet设置为文本字体\usepackage[helvet]{sfmath}%。。。将helvet设置为数学字体\usepackage{isomath}%。。。ISO 89000惯例\使用包{siunitx}\更新命令{\familydefault}{\sdefault}\开始{文档}方程式为\[\mathbf{E}=E\hat{r}。\]让我们试试希腊语$\alpha+\beta$和更复杂的公式\[\int_{-\infty}^{+\infty}e^{-x^2}\,dx=\sqrt{\pi}\]数量为{3.14}{厘米}\结束{文档}

在此处输入图像描述

正如你所看到的,数学的排版质量相当差:希腊字母在Computer Modern中,远非“无衬线”。积分符号和无穷符号也是如此。

通过以下方式可以获得稍好的输出新txsf.

\文档类[12pt,信纸,双栏]{article}\usepackage[缩放]{helvet}%。。。将helvet设置为文本字体\usepackage{newtxsf}%。。。无衬线数学符号\使用包{siunitx}\更新命令{\familydefault}{\sdefault}\声明SymbolFont{vert}{OT1}{\familydefault}{m}{n}\声明MathAlphabet{\mathbf}{\encodingdefault}{\familydefault}{b}{n}\声明符号字体字母{\mathrm}{竖排}\DeclareMathSymbol{0}{\mathalpha}{vertical}{`0}\声明MathSymbol{1}{\mathalpha}{垂直}{`1}\声明MathSymbol{2}{\mathalpha}{垂直}{`2}\声明MathSymbol{3}{\mathalpha}{垂直}{`3}\声明MathSymbol{4}{\mathalpha}{垂直}{`4}\声明MathSymbol{5}{\mathalpha}{垂直}{`5}\声明MathSymbol{6}{\mathalpha}{垂直}{`6}\声明MathSymbol{7}{\mathalpha}{垂直}{`7}\声明MathSymbol{8}{\mathalpha}{垂直}{`8}\声明MathSymbol{9}{\mathalpha}{垂直}{`9}\开始{文档}方程式为\[\mathbf{E}=E\hat{r}。\]让我们试试希腊语$\alpha+\beta$和更复杂的公式\[\int_{-\infty}^{+\infty}e^{-x^2}\,dx=\sqrt{\pi}\]数量为{3.14}{厘米}\结束{文档}

在此处输入图像描述

一个可能的替代方案

使用LuaLaTeX和乐团传人。文本字体不是Helvetica,但我认为大多数人不会注意到差异。

\documentclass[12pt,信纸,双栏]{article}\usepackage{unicode-math}\使用包{lete-sans-math}\使用包{siunitx}\setmainfont{Lato}\开始{文档}方程式为\[\mathbf{E}=E\hat{r}。\]让我们试试希腊语$\alpha+\beta+\Gamma$和更复杂的公式\[\int_{-\infty}^{+\infty}e^{-x^2}\,dx=\sqrt{\pi}\]数量为{3.14}{厘米}\结束{文档}

在此处输入图像描述

  • 新txsf有一个选项(无可否认,没有很好的文档记录)无STIXops它不会改变数字。
    – 瞻波
    评论 5月25日11:06
  • @campa事实上,你在《计算机现代》中得到了数字…
    – 白鹭
    评论 5月25日12:20
  • 1
    我查过了,你可以避免重新定义数字和\马特布夫通过使用无STIXops选项,但重新定义\家族性故障必须在装货前到达新txsf.
    – 瞻波
    评论 5月25日14:13
6

如果您希望文本和数学材料都使用匹配的无衬线字体,并且希望生成具有适当“帽子”重音的字符,我建议您使用这样的包阿雷夫.

在此处输入图像描述

\文档类[12pt]{文章}\usepackage{arev}%请参阅https://ctan.org/pkg/arev\开始{文档}方程式是$\mathbf{E}=E\hat{r}$。\结束{文档}
5

您正在加载多个安装了冲突数学字体编码的软件包。

在此处输入图像描述

\documentclass[12pt,信纸,双栏]{article}\usepackage[缩放]{helvet}%。。。将helvet设置为文本字体\更新命令{\familydefault}{\sdefault}%\usepackage{fouriernc}%。。。控制数学字体\usepackage[helvet]{sfmath}%。。。将helvet设置为数学字体%\usepackage{isomath}%。。。处理mathrm以匹配文本字体(?)\使用包{siunitx}\title{将sans-serif字体应用于文本和数学}\开始{文档}\制作标题方程式为\[\mathbf{E}=E\hat{r}。\]\结束{文档}
5

如果不加载,它的工作效率最低fouriernc公司,它设置了不兼容的字体配置。我说“最低限度”是因为我不希望这种配置能很好地适用于任何包含大量数学内容的文档。数学不是专门用sans排版的,因为数学中sans的使用通常具有意义,即它是语义的函数,而不是(或不是主要)美学的函数。

在此处输入图像描述

\documentclass[12pt,信纸,双栏]{article}\usepackage[缩放]{helvet}%。。。将helvet设置为文本字体\更新命令{\familydefault}{\sdefault}\usepackage[helvet]{sfmath}%。。。将helvet设置为数学字体%\usepackage{isomath}%。。。处理mathrm以匹配文本字体(?)\使用包{siunitx}\开始{文档}方程式是$\mathbf{E}=E\hat{r}$。\结束{文档}

这将为您提供一个使用Nimbus Sans L Regular和Regular Italic(也称为Helvetica look-somewhat)的复合字符排版,这可能是您想要的。(我假设你没有,比如说,Adobe Helvetica或其他东西。)无论如何,它将使用你正在使用的任何东西作为文本的'Helvetica'。

2
  • 2
    +1.我添加了一个屏幕截图。:-)
    – 米科
    评论 5月25日8:14
  • @哦,谢谢你。我认为我的图像正在改进,但较小的图像似乎更有问题。(希望Okular能修复这个错误,尽管我想我真的应该试着找出Wayland。) 评论 5月25日17:13

我在使用命令的位置添加了一个MWE\倾斜。此命令专门用于移动重音符号,同时保持底层字符静止。

\文档类[12pt,信纸,双栏]{article}\使用包{amsmath}\usepackage[scaled]{helvet}%将helvet设置为文本字体\更新命令{\familydefault}{\sdefault}\usepackage[helvet]{sfmath}%将helvet设置为数学字体\使用包{siunitx}%宏的定义将重音向右移动一点\新命令{\rhat}[1]{\skew{3}\hat{#1}}\开始{文档}方程式是$\mathbf{E}=E\rhat{r}$。\结束{文档}

例如,在这个定义中,\歪斜{3}改变…的口音\帽子向左移动3个数学点。

在此处输入图像描述

6
  • 2
    +1代表\偏斜命令。
    – 米科
    评论 5月25日11:44
  • @Mico总是很有礼貌😄 . 评论 5月25日11:45
  • 1
    \倾斜不是来自阿姆斯玛斯。它在内核中定义,并且已经在普通TeX中定义。
    – 瞻波
    评论 5月25日14:33
  • 2
    第二个@Mico;)。 评论 5月25日17:17
  • 1
    @cfr非常感谢您对我的回答。 评论 5月25日20:31

你必须登录来回答这个问题。

不是你想要的答案吗?浏览标记的其他问题.