avoiding babel shorthands

Babel allows LaTeX to speak multiple languages. It also introduces shorthands, one- or two-character sequences, which help non-English authors to type language-specific letters easily. Unfortunately, this feature leads to problems when generating LaTeX-files automatically.

A simple example:

\\documentclass{article}
\\usepackage[english,german]{babel}
\\begin{document}
Variant "111de000" System\\par
Variant "111de000"~System\\par
\\chaptername
\\end{document}

Do you see an error here? No, unless you have experience typesetting German documents. Problem is here:

" S
"~S

Quote has a special meaning when German babel is activated. In the example above, it produces "SS" and "-S". There are more such shorthands, and there is a lot of languages. I can't add all of them to my script.

For automatic generation, it's better to switch shorthands off. But there is no such option. I haven't found it in documentation and asked in comp.text.tex. It seems that there is no nice way, the only thing I can do is to hook babel internals. There is a proposal from Morten Hogholm (see the thread), but I like my solution better:

File "lessbabel.sty":

\\NeedsTeXFormat{LaTeX2e}
\\ProvidesPackage{lessbabel}[2005/10/04 Babel without shorthands]

\\DeclareOption*{\\PassOptionsToPackage{\\CurrentOption}{babel}}
\\ProcessOptions\\relax
\\RequirePackage{babel}

\\def\\bbl@activate#1{} 

My generated documents now use

\\usepackage[english,german]{lessbabel}

instead of

\\usepackage[english,german]{babel} 
Categories: TeX

Updated: