![如何在数学模式下获得斜体无衬线?](https://linux22.com/image/377100/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%95%B0%E5%AD%A6%E6%A8%A1%E5%BC%8F%E4%B8%8B%E8%8E%B7%E5%BE%97%E6%96%9C%E4%BD%93%E6%97%A0%E8%A1%AC%E7%BA%BF%EF%BC%9F.png)
我有一篇论文,其中我最初使用了 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
答案3
在unicode-math
等中\symsfit
。(您可能还可以使用\mathsfit
,但这会默认为您提供文本字体。)这需要 LuaLaTeX 或 XeLaTeX。
在 PDFTeX 中,传递选项 OMLmathsfit 时isomath
会给你一个字母表,即。\mathsfit
\usepackage[OMLmathsfit]{isomath}