我需要一个黑板粗体 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}