LaTeX2e package for typesetting Braille
William Park
April 1999
This package allows user to produce Braille documents on paper for the blind without knowing Braille which can take years to learn. Essentially, Python scripts grade1.py and grade2.py convert ordinary text to grade 1 and 2 braille tags; then, LaTeX2e package braille.sty takes the tags and prints out corresponding braille symbols.
For example, if you want to insult someone,
\usepackage{braille} \braille{May you live in an interesting time.}will print grade 1 braille,
and
\braille{May {you} live {in} an {in}t{er}e{st}{ing} {time}.}will print grade 2 braille,
Now, if you can read and write Braille, then you can type the braille tags manually. But, since my knowledge of Braille is limited and recent, I wrote Python scripts to generate the braille tags automatically.
Grade 1 Braille is simple character-by-character translation of text. Most braille tags are the same as text characters. However, some puctuation markups, such as double and single quotations, are made up of multi-character string which must be enclosed in {} in order to be understood by LaTeX.
Grade 2 Braille defines translation of 189 common strings and where they can be used. Since braille tags here are the same multi-character string as the text, they must be enclosed in {}. The complexity of grade 2 is not so much in the replacement of strings, words, or part of words, but it is in figuring out whether the replacement can take place. The rules for applying grade 2 contractions are complicated with many exceptions; sometimes you can replace it, sometimes you can't.
The Python scripts grade1.py and grade2.py take ordinary text and generate grade 1 and 2 braille tags as defined by braille.sty. Since the output is returned all in one line, the scripts are originally designed to be used from text editor which can format a long line into multi-line paragraph. The command line usages are