覆盖单个角色的外观?

覆盖单个角色的外观?

我想覆盖 mathsf 字体中字母 I 的外观,因为它看起来像垂直线和字母 l。默认情况下,它看起来像以下内容:

在此处输入图片描述

我的目标是看起来像这样:

期望输出

我怎样才能仅更改 mathsf 字体中的这个单个字母?

我看过如何更改字母的字体改变一个字母会改变整篇论文的顺序但它们对我没什么帮助。我甚至用过解毒但这也无济于事。

编辑:

在...的帮助下@大卫·卡莱尔的回答,我想出了一个半解决方案,即声明一个名为的新命令\I并为其分配以下内容:

\newcommand{\I}{{\fontfamily{lcmss}\selectfont\ensuremath{\mathrm{I}}}}

因此$\I$, \I得出:

输出

答案1

LaTeX 包含一种源自 cmss 的修改后的无衬线字体lcmss,但经过调整,可以使更多字符易于区分,包括大写字母 i。

在此处输入图片描述

\documentclass{article}

\DeclareMathAlphabet\mathsf{OT1}{lcmss}{m}{n}

\begin{document}


$ 1+2 +3 + \mathsf{IJK} + \mathsf{ijk} $

\end{document}

答案2

使用该包,您可以使用选项unicode-math覆盖单个数学模式字符,在本例中,只更改数学无衬线 I。但是,将整个无衬线字母表加载为可能会获得更好的效果。[range=...]\setmathfont\setmathfont[range=\msansI]\setmathfont[range=sfup]

使用旧字体,你可以加载\mathsf字母表并[sfdefault=...]选择包裹isomath OML 编码中支持的选项有cmbrfavhvmiwonajkpfssllcmss

答案3

你需要使用一些低级 TeX 才能完成这项工作。你关心的命令是\mathcode第 17 章中描述的TeXbook。我手边没有我的副本,无法给你提供你需要做的事情的完整说明,但你可以做一些类似的事情

\mathcode`I="7A49

其中,A需要更改为与数学字体系列的数值相对应——它将是 8-F 范围内的一个值,具体取决于字母表的声明时间。

我希望这足以帮助你开始。

相关内容