# Why does \mathbb{N_0} render the 0 as \nvdash?

I noticed this on accident (I actually meant to render \mathbb{N}_0). Take the following example

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

The resulting math renders as

I would have expected a blackboard N with a subscript blackboard 0.

According to detexify, the symbol in question, also from amssymb, is \nvdash. Why does it do this? Is this a bug in amssymb? Are the fonts in my TeX installation corrupted?

FWIW, I also noticed that MathJax does what you'd expect, rendering the subscript 0 in blackboard font.

• Avoid $$<mathcontent>$$. Instead typset $\mathbb{N}_{0}$. – azetina May 25 '16 at 16:23
• @azetina I'd be interested if you could point me to a reference for why that matters. Anyway, for this case, it doesn't seem to make a difference (and it also renders this way in inline mode as well). – asmeurer May 25 '16 at 16:25
• the usual reference here on  seems to be tex.stackexchange.com/questions/503/why-is-preferable-to/… – David Carlisle May 25 '16 at 16:28
• Don't write \mathbb{N_0}; instead, write \mathbb{N}_0. – Mico May 25 '16 at 16:30
• @DavidCarlisle thanks for the link that the OP was asking for. Wonder who wrote that awesome post? :) – azetina May 25 '16 at 16:32

The blackboard symbols are only supported for a subset of the available font slots. Running the MWE

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

through pdfLaTeX reveals the used fonts:

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

The font glyph table is available by 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. # A poor man's blackboard simulation The engines pdfTeX or LuaTeX in PDF mode allow stroked outlines of vector fonts. Package pdfrender provides an interface: \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} # Natural numbers If the subscript 0 has the meaning to add zero to the list of natural numbers, then this is not typeset with a blackboard font, because zero is an element, not a set. The subscript is set as normal 0: \documentclass{article} \usepackage{amsmath} \usepackage{amssymb} \begin{document} $\mathbb{N}_0$ \end{document}$\mathbb{0}\$

means select the character from the slot with the ascii number of 0 (which is 48) from the AMS symbol font, but that font doesn't have any digits it has assorted AMS characters and so you get the one that happens to be in the slot normally used for 0.

TeX isn't designed with a unicode mentality of consistent encodings, each font has a custom encoding.

All the original TeX and AMS fonts only have 128 characters per font, you can not get all the symbols required into a reasonable number of fonts and keep the digits and upper and lower case letters appearing in all the fonts.