字体选择问题

字体选择问题

我需要一个黑板粗体 1。我知道字体bbold与 0 一起提供它,但如果我通过以下方式声明数学字母表:

\DeclareSymbolFond{bbold}{U}{bbold}{m}{n}
\DeclareMathAlphabet{\bbold}{bbold}

或者类似情况,我收到一条too many math alphabets used无法解决的错误消息,因为我的非常复杂的包混合了许多字体并产生了错误,而我想要的组合是有效的,我不想对包进行混乱的编辑,这绝对是巨大的。我找到了一个解决方法这里这让我想到:

\documentclass[a4paper]{report}
\usepackage{amsmath,amssymb,amsfonts}

\begin{document}
\[\mathbb{Z}\quad{\fontencoding{U}\fontfamily{bbold}\fontseries{m}\fontshape{n}\selectfont 1\csname U/bbold/m/n\endcsname1}.\]
\fontencoding{U}\fontfamily{bbold}\fontseries{m}\fontshape{n}\selectfont1
\end{document}

输出:

在此处输入图片描述

我注意到字体选择命令仅在文本模式下有效。现在,我当然可以在每次需要黑板粗体 1 时切换到文本模式,这种情况并不常见,但我不太喜欢这个想法。所以我在想:为什么数学模式下的 1 保持其正常字体?为什么没有任何关于这种字体替换的警告?我如何使这些命令在数学模式下工作,或者无论如何在数学模式下选择该字体(当然没有问题顶部的命令)?

答案1

字体设置分为文本配置和数学配置。一个配置不会影响另一个配置。因此,每次切换到数学模式时,您都会激活一组不同的字体。当然,如果您使用\text{}或其他东西,您会暂时切换回文本。但是,在数学模式下,您正在使用数学字体。对于 (pdf)TeX,16 种字体的允许量是一个硬性限制。我认为您能做的不多。但是,您可以定义一个包装器,以便在数学模式下无缝切换到文本和黑板字体。

例如,您可以执行如下操作来切换到文本模式,但不需要每次都拼写出切换:

\documentclass[a4paper]{report}
\usepackage{amsmath,amssymb,amsfonts}
\DeclareRobustCommand{\mybbold}{%
        \fontencoding{U}%
        \fontseries{m}%
        \fontshape{n}%
        \fontfamily{bbold}%
        \selectfont}
\DeclareTextFontCommand{\textbb}{\mybbold}
\begin{document}
\[
\mathbb{Z}\quad{\fontencoding{U}\fontfamily{bbold}\fontseries{m}\fontshape{n}\selectfont 1\csname U/bbold/m/n\endcsname1}.
\]
\fontencoding{U}\fontfamily{bbold}\fontseries{m}\fontshape{n}\selectfont Z 1
\[
\textbb{Z 1}
\]
\end{document}

黑板

相关内容