如何在数学模式下获得斜体无衬线?

如何在数学模式下获得斜体无衬线?

我有一篇论文,其中我最初使用了 mathit、bold mathit、mathcal 和 bold mathcal 来区分不同类型的实体。在屏幕上查看论文时发现\mathit{C}\mathcal{C}在外观上非常相似。我的第一个想法是使用 sans-serif 代替默认字体,但 LaTeX 不允许你将\mathit和组合起来\mathsf

pdflatex 字体表已接近满,XeTeX由于我无法控制或其他发布者的编译过程,因此无法选择arXiv。有没有办法在不加载其他字体的情况下获得斜体无衬线字体,有没有其他方法来区分我当前使用的粗体、默认、书法和粗体书法实体。注意:我不加载粗体字体;我使用\bm

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{bm}
\usepackage[colorlinks,hidelinks]{hyperref}
\usepackage{cleveref}
\usepackage{showlabels}
\showlabels{cite}
\showlabels{cref}
\showlabels{crefrange}

\begin{document}

 $C$ default

 $\mathit C$ mathit

 $\mathcal C$ mathcal

 $\mathsf{C}$ mathsf

 $\bm C$ bm default

 $\bm{\mathcal{C}}$ bm mathcal

 $\bm{\mathit{\mathsf{C}}}$ bm mathit mathsf

\end{document}

我尝试根据 egreg 的建议解决这个问题,但斜体无衬线字体的字重于普通无衬线字体。在我修复了一个拼写错误后,它就解决了。

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{bm}
\usepackage[colorlinks,hidelinks]{hyperref}
\usepackage{cleveref}
\usepackage{showlabels}
\showlabels{cite}
\showlabels{cref}
\showlabels{crefrange}

\DeclareMathAlphabet{\mathsfbd}{T1}{\sfdefault}{\bfdefault}{\itdefault}
\SetMathAlphabet{\mathsfbd}{bold}{T1}{\sfdefault}{\bfdefault}{\itdefault}

\DeclareMathAlphabet{\mathsfit}{T1}{\sfdefault}{}{\itdefault}
\SetMathAlphabet{\mathsfit}{normal}{T1}{\sfdefault}{}{\itdefault}

\DeclareMathAlphabet{\mathsfbdit}{T1}{\sfdefault}{\bfdefault}{\itdefault}
\SetMathAlphabet{\mathsfbdit}{bold}{T1}{\sfdefault}{\bfdefault}{\itdefault}

\begin{document}

 $C$ default

 $\mathit C$ mathit

 $\mathcal C$ mathcal

 $\mathsf{C}$ mathsf

$\mathsfbd{C}$ mathsfbd

$\mathsfbdit{C}$ mathsfbdit

$\mathsfit{C}$ mathsfit

 $\bm C$ bm default

 $\bm{\mathcal{C}}$ bm mathcal

 $\bm{\mathit{\mathsf{C}}}$ bm mathit mathsf

$\bm{\mathsf{C}}$ bm mathsf

$\bm{\mathsfbd{C}}$ bm mathsfbd

$\bm{\mathsfit{C}}$ bm mathsfit

$\bm{\mathsfbdit{C}}$ bm mathsfbdit

\end{document}

答案1

数学字母命令(例如\mathit\mathsf)不是“累积的”。您必须分配特定的数学字母。

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{bm}
\usepackage{fix-cm} % not needed if not using Computer Modern

\DeclareMathAlphabet{\mathsfit}{T1}{\sfdefault}{\mddefault}{\sldefault}
\SetMathAlphabet{\mathsfit}{bold}{T1}{\sfdefault}{\bfdefault}{\sldefault}

\begin{document}

$C$ default

$\mathit{C}$ mathit

$\mathcal{C}$ mathcal

$\mathsf{C}$ mathsf

$\mathsfit{C}$ mathsfit

$\bm{C}$ bm default

$\bm{\mathcal{C}}$ bm mathcal

$\bm{\mathsf{C}}$ bm mathsf

$\bm{\mathsfit{C}}$ bm mathsfit

\end{document}

在此处输入图片描述

答案2

根据您是否仅寻找文本字符,您可以使用数学\text命令:

  \[ \text{\sffamily\itshape  ABC abc}\]

在此处输入图片描述

答案3

unicode-math等中\symsfit。(您可能还可以使用\mathsfit,但这会默认为您提供文本字体。)这需要 LuaLaTeX 或 XeLaTeX。

在 PDFTeX 中,传递选项 OMLmathsfit 时isomath会给你一个字母表,即。\mathsfit\usepackage[OMLmathsfit]{isomath}

相关内容