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}