How do you pronounce letters generated with \Bbb and \mathbb?

BBB stands for blackboard bold, but "double struck" is also used (e.g. ℝ). However how it should be pronounced is another matter -- between reading out the markup ("dollar dollar backlash B B B space R") and the meaning of the symbol ("set of real numbers" is a big gap.


When I first read your question, I wasn't quite sure which of the following applied to your tool:

  1. The tool is for visually impaired users writing LaTeX code.
  2. The tool is for visually impaired users who have been sent a LaTeX document because the PDF generated by pdflatex doesn't read correctly when used with a PDF to Speech tool.
  3. The tool is for document authors who want to create an accessible version of their document for visually impaired users in much the same way as document authors might want to create both a PDF and HTML version of their document for the convenience of their readers.

I'm guessing from your comments that it's more likely case 2 or 3.

In the first case, the user really needs to know the markup. Trying to interpret the LaTeX code in this instance is like trying to create an audio version of lyx that hides the commands. I'm not sure how well that would work for visually impaired users.

In the second case, there's no reason to suppose that the user who has been sent the LaTeX code actually knows much about LaTeX, so reading out the commands is more likely to confuse them. In this instance, I think the symbols should simply be pronounced by their name rather than what they represent. Others have already mentioned Unicode. Given its ubiquity, I think it's best to use the Unicode description. This helps with standardisation.

If the listener understands the subject matter, they'll know what the symbol represents, especially if the topic is at an advanced level.

Now suppose the document is an introductory text about set theory that has something like:

The set of real numbers (denoted ℝ) …

This won't make any sense if it's read as

The set of real numbers (denoted the set of real numbers) …

The listener needs to know what that symbol is in case they encounter it in another document with another text to speech system that doesn't try interpreting it.

It's far less confusing to hear the symbol pronounced by its Unicode description that it is to hear an incorrect phrase caused by a misinterpretation of the symbol by an automated system that can't recognise the context.

For example, suppose the tool tries to be clever and reads \$1 out as "one dollar", which is the way $1 is usually read by a sighted reader if it's in a currency context, but perhaps the document is actually an introductory guide to regular expressions and it's referring to the first matched group. The tool has now misinformed the listener.

The third case is the best use of your tool. The document author is going out of their way to provide an accessible version. If I'm writing a document that needs to be converted to multiple formats, I expect to write additional code that I wouldn't need if I was simply creating a PDF (except perhaps for trivial documents). As long as your tool recognises the accsupp package, the document author can provide the most appropriate pronunciation.

For example:

\documentclass{report}

\usepackage{amssymb}
\usepackage{accsupp}

\begin{document}

\[
\BeginAccSupp{ActualText={set of real numbers}}
\mathbb{R}
\EndAccSupp{}
\]

\end{document}

This provides the text to read out when encountering that symbol. If you want to use the symbol a lot, then you might find it easier to use glossaries-accsupp:

\documentclass{report}

\usepackage{amssymb}
\usepackage{glossaries-accsupp}

\newglossaryentry{R}{name={$\mathbb{R}$},
 text={\mathbb{R}},
 description={},
 access={set of real numbers}}

\begin{document}

\[ \gls{R} \]

\end{document}

This internally uses \BeginAccSupp but it's less cumbersome.

Alternatively:

\documentclass{report}

\usepackage{amssymb}
\usepackage{glossaries-accsupp}

\newglossaryentry{R}{name={$\mathbb{R}$},
 text={\mathbb{R}},
 description={},
 access={set of real numbers},
 firstaccess={set of real numbers (double-struck capital R)}
}


\begin{document}
$\gls{R}$

\[ \gls{R} \]

\end{document}