我正在尝试使用印刷惯例来区分几种不同类型的数学实体。默认数学字体中的 C 看起来非常接近 中的 C \mathcal
。我的第一个想法是使用无衬线字体,但结果看起来很丑陋。我尝试使用\mathscr
mathrsfs,但$\mathscr C$
和$\bm{\mathscr{C}}$
看起来几乎相同。要求 xelatex 不是一个选项,但如果有帮助,我可以使用 euler 而不是 mathrsfs,只要 E 和 C 与默认数学字体中的呈现很容易区分,并且只要正常粗细脚本与粗体脚本很容易区分。
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{bm}
\usepackage{mathrsfs}
\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{\mathsfbdit}{T1}{\sfdefault}{\bfdefault}{\itdefault}
\SetMathAlphabet{\mathsfbdit}{bold}{T1}{\sfdefault}{\bfdefault}{\itdefault}
\DeclareMathAlphabet{\mathsfit}{T1}{\sfdefault}{}{\itdefault}
\SetMathAlphabet{\mathsfit}{normal}{T1}{\sfdefault}{}{\itdefault}
\DeclareMathAlphabet{\mathsfsl}{T1}{\sfdefault}{}{\sldefault}
\SetMathAlphabet{\mathsfsl}{normal}{T1}{\sfdefault}{}{\sldefault}
\begin{document}
$C$ default
$\mathit C$ mathit
$\mathcal C$ mathcal
$\mathscr C$ mathscr
$\mathsf{C}$ mathsf
$\mathsfbd{C}$ mathsfbd
$\mathsfbdit{C}$ mathsfbdit
$\mathsfit{C}$ mathsfit
$\mathsfsl{C}$ mathsfsl
$\bm C$ bm default
$\bm{\mathcal{C}}$ bm mathcal
$\bm{\mathscr{C}}$ bm mathscr
$\bm{\mathit{\mathsf{C}}}$ bm mathit mathsf
$\bm{\mathsf{C}}$ bm mathsf
$\bm{\mathsfbdit{C}}$ bm mathsfbdit
$\bm{\mathsfbd{C}}$ bm mathsfbd
$\bm{\mathsfit{C}}$ bm mathsfit
\end{document}
答案1
答案2
无需定义您已有的多种字体。对于脚本字体,您可以使用 STIX。
顺便说一句,\DeclareMathAlphabet
或的任何论点都不\SetMathAlphabet
应为空。
\documentclass{article}
\usepackage{amsmath}
\usepackage{bm}
\DeclareMathAlphabet{\mathsfit}{T1}{\sfdefault}{m}{sl}
\SetMathAlphabet{\mathsfit}{bold}{T1}{\sfdefault}{bx}{sl}
\DeclareFontEncoding{LS1}{}{}
\DeclareFontSubstitution{LS1}{stix}{m}{n}
\DeclareMathAlphabet{\mathscr}{LS1}{stixscr}{m}{n}
\SetMathAlphabet{\mathscr}{bold}{LS1}{stixscr}{b}{n}
\begin{document}
$CE$ default
$\bm{C}\bm{E}$ default bold
$\mathit{C}\mathit{E}$ mathit
$\bm{\mathit{C}}\bm{\mathit{E}}$ mathit bold
$\mathcal{C}\mathcal{E}$ mathcal
$\bm{\mathcal{C}}\bm{\mathcal{E}}$ mathcal bold
$\mathscr{C}\mathscr{E}$ mathscr
$\bm{\mathscr{C}}\bm{\mathscr{E}}$ mathscr bold
$\mathsf{C}\mathsf{C}$ mathsf
$\bm{\mathsf{C}}\bm{\mathsf{E}}$ mathsf bold
$\mathsfit{C}\mathsfit{E}$ mathsfit
$\bm{\mathsfit{C}}\bm{\mathsfit{E}}$ mathsfit bold
\end{document}
如果你不想\bm
每次都输入,只需定义
\newcommand{\mathsfbdit}[1]{\bm{\mathsfit{#1}}}
答案3
事实证明,虽然 stix 不起作用,但 stix2 可以:
\documentclass{article}
\usepackage{stix2}[notext,not1]
\usepackage{amsmath}
%\usepackage{amssymb}
\usepackage{bm}
%\usepackage{mathrsfs}
\usepackage[colorlinks,hidelinks]{hyperref}
\usepackage{cleveref}
\usepackage{showlabels}
\showlabels{cite}
\showlabels{cref}
\showlabels{crefrange}
\begin{document}
$E C$ default
$\mathbb{E C}$ mathbb
$\mathbf{E C}$ mathbf
$\mathcal{E C}$ mathcal
$\mathfrak{E C}$ mathfrak
$\mathit{E C}$ mathit
$\mathrm{E C}$ mathrm
$\mathscr{E C}$ mathscr
$\bm{E C}$ bm default
$\bm{\mathbb{E C}}$ bm mathbb
$\bm{\mathbf{E C}}$ bm mathbf
$\bm{\mathfrak{E C}}$ bm mathfrak
$\bm{\mathit{E C}}$ bm mathit
$\bm{\mathrm{E C}}$ bm mathrm
$\bm{\mathscr{E C}}$ bm mathscr
$\bm{\mathsf{E C}}$ bm mathsf
$\pmb{E C}$ pmb default
$\pmb{\mathbb{E C}}$ pmb mathbb
$\pmb{\mathbf{E C}}$ pmb mathbf
$\pmb{\mathcal{E C}}$ pmb mathcal
$\pmb{\mathfrak{E C}}$ pmb mathfrak
$\pmb{\mathscr{E C}}$ pmb mathscr
$\cdot$ cdot
$\circ$ circ
$\odot$ odot
$\mathbin{\cdot}$ mathbin cdot
$\mathbin{\circ}$ mathbin circ
$\mathbin{\odot}$ mathbin odot
\end{document}
顺便说一句,虽然 stix 文档说将 stix 放在 amsmath 之前,但这会生成错误消息;使用 stix2,记录的放置工作正常。