穷人的黑板模拟

穷人的黑板模拟

我偶然注意到了这一点(我其实是想渲染\mathbb{N}_0)。请看以下示例

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}
$$\mathbb{N_0}$$
\end{document}

计算结果如下

\mathbb{N_0}

我本来期望有一块N带有下标黑板的黑板0

根据解纤,有问题的符号也是来自 amssymb,是\nvdash。为什么会这样?这是 amssymb 中的错误吗?我的 TeX 安装中的字体是否已损坏?

值得一提的是,我还注意到 MathJax 按照您的预期执行,以黑板字体呈现下标 0。

答案1

黑板符号仅支持部分可用字体插槽。运行 MWE

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\pagestyle{empty}
\begin{document}
\[\mathbb{N_0}\]
\end{document}

通过 pdfLaTeX 显示使用的字体:

<.../texmf-dist/fonts/type1/public/amsfonts/symbols/msbm10.pfb>
<.../texmf-dist/fonts/type1/public/amsfonts/symbols/msbm7.pfb>

字体字形表可通过以下方式获取testfont.tex

$ pdftex testfont
This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) (preloaded format=pdftex)
 restricted \write18 enabled.
entering extended mode

(/cygdrive/c/Users/one/tl/tldevsrc/Master/texmf-dist/tex/plain/knuth-lib/testfo
nt.tex
Name of the font to test = msbm10
Now type a test command (\help for help):)
*\table\bye
[1{.../texmf-dist/fonts/map/pdftex/updmap/pdftex.map}]
<.../texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb>
<.../texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pfb>
<.../texmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb>
<.../texmf-dist/fonts/type1/public/amsfonts/cm/cmtt10.pfb>
<.../texmf-dist/fonts/type1/public/amsfonts/symbols/msbm10.pfb>
Output written on testfont.pdf (1 page, 74724 bytes).
Transcript written on testfont.log.

msbm10 的结果字体表

穷人的黑板模拟

PDF 模式下的 pdfTeX 或 LuaTeX 引擎允许矢量字体描边轮廓。软件包pdfrender提供了一个接口:

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}

\usepackage{pdfrender}
\DeclareRobustCommand*{\pmbb}[1]{%
  \textpdfrender{
    TextRenderingMode=Stroke,
    LineWidth=.1pt,
  }{#1}%
}

\pagestyle{empty}
\begin{document}
\[\mathbb{N}_{\pmbb{0}}\]
\end{document}

结果是穷人的解决办法

自然数

如果下标 0 有在自然数列表中添加零的含义,那么这就是不是用黑板字体排版,因为零是元素,而不是集合。下标设置为正常 0:

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}
\[\mathbb{N}_0\]
\end{document}

结果:包括零的自然数集

答案2

 $\mathbb{0}$

意思是从 AMS 符号字体中选择 ascii 编号为 0(即 48)的插槽中的字符,但该字体没有任何数字,它有各种 AMS 字符,所以您得到的恰好位于通常用于 0 的插槽中的字符。

TeX 的设计并不遵循一致编码的 Unicode 思维,每种字体都有自定义编码。

所有原始 TeX 和 AMS 字体每个字体只有 128 个字符,您无法将所需的所有符号放入合理数量的字体中,并保持数字和大小写字母出现在所有字体中。

相关内容