我的(刚刚更新的)MiKTeX 安装有问题:我喜欢使用软件包\mathbbold{1}
中的bbold
字体来获得黑板粗体 1。这适用于 Linux 下的 TeX Live,但对于字体大小 11,它不适用于 MiKTeX。如果我编译
\documentclass[11pt]{article}
\DeclareSymbolFont{bbold}{U}{bbold}{m}{n}
\DeclareSymbolFontAlphabet{\mathbbold}{bbold}
\newcommand{\ind}{\mathbbold{1}}
\begin{document}
$a$ \tracingall $\mathbbold{1}$
\end{document}
然后在日志文件中我得到了这一行
Missing character: There is no 1 in font bbold11!
输出中没有 blackboard bold 1。使用 TeX Live(字体大小为 10),一切都按预期运行。
问题似乎是在 TeX Live 下,bbold/Ubbold.fd
加载了 ,而在 MiKTeX 下,jknappen\ubbold.fd
加载了 。前者使用bbold10.tfm
,后者使用bbold11.tfm
。
我怎么解决这个问题?
答案1
如果两个包使用相同的文件名,我不会将其视为 miktex 错误,并且在我看来,包维护者应该解决这个问题,而不是 tex 分发。
当此类名称在 texmf 树的同一分支中发生冲突时,搜索结果是不可预测的——例如,它可能取决于安装顺序、日期或其他任何因素。
因此,我认为您有以下可能性:
- 将正确的 fd 文件移动到首先搜索的根目录中的 tex\latex(例如,本地 texmf)。
将字体定义直接复制到你的文档中。这样就不会加载任何 fd 文件:
\documentclass[11pt]{article} \DeclareFontEncoding{U}{}{} \DeclareFontFamily{U}{bbold}{} \DeclareFontShape{U}{bbold}{m}{n} { <5> <6> <7> <8> <9> gen * bbold <10> <10.95> bbold10 <12> <14.4> bbold12 <17.28> <20.74> <24.88> bbold17 }{} \DeclareSymbolFont{bbold}{U}{bbold}{m}{n} \DeclareSymbolFontAlphabet{\mathbbold}{bbold} \begin{document} $\mathbbold{1}$ \end{document}
复制正确的 fd 文件(例如 as)
Umybbold.fd
并将其存储在可以找到的地方,然后调用将字体声明为\DeclareSymbolFont{bbold}{U}{mybbold}{m}{n}
答案2
在修订 4975TeX Live(2007-09-18)我们发现注释
从 jknapltx 中省略 ubbold.fd,与 Ubbold.fd 发生冲突 + sauter bbold 功能失调?(Zdenek Wagner,2007 年 8 月 9 日 16:20:21 +0200)
因此我的建议是从ubbold.fd
您的系统中删除该文件并向 MiKTeX 的维护者提交错误报告。