Epigrafica 字体和 mathastext 减号不兼容

Epigrafica 字体和 mathastext 减号不兼容

我喜欢 Optima 字体的外观,它适合我的图形符号,其中经常包含数学符号。我也更喜欢 pdflatex。因此,我发现 Epigrafica 字体是一个不错的 Optima 克隆,它可以在 pdflatex 中运行。但是,本机epigrafica软件包会切换到pxfonts以提供数学支持。

由于我更喜欢​​使用原生epigrafica斜体来表示我的图形数学符号,因此我选择将包与所选选项结合使用mathastext。除了一件事之外,一切都[italic]运行良好:数学中的减号-显示为非斜体左括号。{其他运算符似乎可以很好地翻译,例如+,,,,等。只有似乎受到影响。=><-

我有一个解决方法,我用它来\mathchardef定义一个符号\minus,它能给我所需的字形。但是,如果我能以一种方式重新定义事物,使-数学模式中的符号直接产生正确的字形,那就简单多了。

实际上,我使用与standalone文档类类似的设置来tikz创建图形图像,然后我只需将\includegraphics它们插入到使用完全不同的文本字体的报告中即可。在这里,MWE 省去了大部分工作。

\documentclass{article}
\usepackage[greek,english]{babel}
\usepackage[iso-8859-7]{inputenc}
\usepackage{epigrafica}
\usepackage[italic]{mathastext}
\mathchardef\minus="2200
\begin{document}
Epigrafica

-a-b

$-a-b$

$\minus a\minus b$
\end{document}

在此处输入图片描述

我意识到一种方法是让-“数学”活跃起来,通过以下序言添加来解决 MWE 中的问题:

{\catcode`-=\active \gdef-{\minus}}
\AtBeginDocument{\mathcode`-="8000 }

然而,如果我没有记错的话,没有比这个更糟糕的字符了,因为活动连字符会破坏各种维度和整数运算。所以我并不认为活动连字符是一个可行的解决方案,除非你让我相信这不会产生任何负面影响。

答案1

如果为某个字符分配了\mathcode32768(即"8000以 TeX 十六进制表示),则找到该字符时会发生以下情况:

  • 当 TeX 未排版时,什么都不显示(例如,在查找各种参数时,甚至是原语的参数);

  • 当 TeX 处于水平模式时,会打印字符;

  • 当 TeX 处于数学模式时,字符的当前定义为活动状态,并检查该字符以将其添加到正在构建的数学列表中。

在上述最后一种情况下,该字符被替换为其活动字符版本的含义。

假设你有

{\catcode`-=\active \gdef-{\minus}}
\AtBeginDocument{\mathcode`-="8000 }

所以如果你有$-a\mkern-1mu b$(只是举一个愚蠢的例子),第一个-将被转换成\minus,但第二个不会,因为当 TeX 遇到它时,它正在寻找的参数\mkern,它应该是一个数字后跟mu(或其他东西,这里不相关)。

去尝试一下!

\documentclass{article}
\usepackage[greek,english]{babel}
\usepackage{epigrafica}
\usepackage[italic]{mathastext}

\mathchardef\minus=\mathcode`-

{\catcode`-=\active \gdef-{\minus}}
\AtBeginDocument{\mathcode`-="8000 }

\begin{document}
Epigrafica

-a-b

$-a\mkern-1mu b$

$-a-b$

$\minus a\minus b$
\end{document}

(我删除了对旧版 ISO 编码的引用。)

在此处输入图片描述

当然,将nominus选项传递给mathastext更简单。

相关内容