6

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

\mathbb{N_0}

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
  • 5
    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
  • 3
    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
9

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.

Result font table for msbm10

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}

Result poor man's workaround

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}

Result: set of the natural numbers including zero

7
 $\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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.