I recently realized that when called with the option [french], the babel package adds a number of useful commands such as ier{} for "1er" read "premier", \no or \degres.

Yet it seems to get similar features for english (say \st{} or \degree) one either needs to load specialized packages such as nth or define new commands such as setting \degree to \textsuperscript{\circle}.

Why the inconsistency? Am I missing something?

-

frenchb.ldf (obtained by \usepackage[francais]{babel} is in a large part an effort to replace the french.ldf file (formerly obtained by \usepackage[french]{babel}) that was (at some point in time) not under a free license and not really integrated in the babel framework. french.ldf had a lot of features, and thus, to be some kind of replacement, frenchb.ldf is quite featureful. english.ldf never had this kind of "competition".

-
Absolutely! And several features of the former non-free french.ldf depended on macros defined by the (standard) classes and did not work with some other classes, AFAIR some even break multi-language setting. So a lot of work has been done, to write a smarter frenchb.ldf. Such kind of problems should be avoided at packages like babel. –  Schweinebacke Dec 2 '11 at 7:13

Many language definitions files define their own specific shorthands and their own set of extra commands which are not available in standard LaTeX; these sets of shorthands and special commands are designed to supply specific needs for the corresponding language, so they vary from one language to another.

The current version of the file english.ldf is v3.3o from 2005/03/30. The file is minimalistic: it only defines some "dialects" (UKenglish, american, USenglish, canadian, australian, and newzealand) with indication of their corresponding hyphenation patterns; it defines the predefined names, and it gives the necessary definitions for \today.

So english.ldf doesn't define any special shorthands or commands. Why did the package maintainer took that decision? I wouldn't really know, and I don't like to speculate. You could however, ask him directly.

-
But surely if \ier{} is a need of the French language then \st{} is a need of the English language. Is there any reason apart from the fact that nobody has added those commands to the English file (which would strike me as extremely strange)? –  iKs Dec 2 '11 at 2:24
@iKs: I don't know why this happened. The file english.ldf is really very basic: it only defines some "dialects" (with indication of their corresponding hyphenation patterns), gives the predefined names, and the necessary definitions for \today. –  Gonzalo Medina Dec 2 '11 at 2:39
Modern English typography does not use superscripts for ordinals. Thus the provision of such a macro would be down-right mislead. –  Joseph Wright Dec 2 '11 at 6:44
@Joseph Wright. Except if we want a logical markup, so that the final format could be changed. Whether the way to go is with \th (or \st) is doubtful, however. A more general \ordinalnumber (or so) is better. –  Javier Bezos Dec 2 '11 at 8:50
beware of statements that claim that braams wrote some part of babel. files for new languages still occasionally appear, and they almost all claim to be written by braams, in their source -- long after braams seems to have ceased development of babel. i would be surprised if braams did write much of english.ldf, apart from the central boiler-plate stuff. –  wasteofspace Dec 2 '11 at 15:31

The Imprimerie Nationale has, in France, a status much like that of an "official ruler" about typography. Some of its recommendation, based on centuries of French typography, are then almost mandatory (or are perceived as such).

This is the main reason why those recommendations are implemented in the French module for babel. Other modules don't provide this type of enhancements because there's no "necessity" for them. For example, the German module provides shortcuts for typing umlauts, German quotes and break points in words, but no "typographic" command.

The Spanish module has many features similar to the French one, just because Spain has a "language ruler", the Real Académia Española. (There are proposals of a Mexican module just because they don't like the way the Spanish module does, for instance.)

Why isn't there a \th command in the English module? Because good typography doesn't use an upraised "th", which is a relic of the Victorian era which came again into light because of word processors (see this TUGboat article by Peter Flynn). What about \degree for the temperature? Because such a command can't exist, as English speaking countries use different units of measure (metric or imperial; in some countries it's metric and imperial).

-
Degrees are used in units of temperature (both Celsius and Fahrenheit) though. Either way those differences could be changed depending on the English passed (british vs. american for example). I will read up on the ordinal though. Thanks. –  iKs Dec 2 '11 at 13:50
@iKs Of course not. One can't have a \temperature macro that changes meaning depending on the language. A space probe crashed during landing on Mars because somebody interpreted a length in feet rather than in meters. :) –  egreg Dec 2 '11 at 15:18
@iKs -- temperature measured in kelvin does not have a degree sign; see the wikipedia article for corroboration. this is probably irrelevant to the discussion, though, since it's unlikely that tex of any flavor would be used to convert between temperature systems. –  barbara beeton Dec 2 '11 at 18:10