Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Does it make any difference (and if so, which) whether I use english, american, or USenglish as the option for the babel package?

I've already looked into the package description, and it seems to be the same to me, but since I consider myself a LaTeX novice, I'm highly interested in an expert opinion.

share|improve this question

4 Answers 4

up vote 22 down vote accepted

No, all three are synonyms for each other as far as Babel is concerned.

From the babel documentation p. 78:

‘American’ is a version of ‘English’ which can have its own hyphenation patterns. The default english patterns are in fact for american english. We allow for the patterns to be loaded as ‘english’ ‘american’ or ‘USenglish’.

There are no differences between these three language names; there are, however, differences in both hyphenation and date formats between these and UKenglish,british (which themselves are synonyms.)

The following document (must be compiled with lualatex) shows both example hypehnation point differences and date format differences for 5 types of specifications: (Australian is excluded here only because there is no lualatex language definition file for it defined.)

% !TEX TS-program = LuaLaTeX
% show hyphenation points code by Patrick Gundlach
% from http://wiki.luatex.org/index.php/Show_the_hyphenation_points
\documentclass[10pt]{article}
\usepackage[margin=.75in]{geometry}
\usepackage[british,UKenglish,USenglish,english,american]{babel}

\usepackage{fontspec}
\usepackage{array}
\newcolumntype{S}{p{.3\textwidth}}
\directlua{
show_hyph = function(head)
  while head do
    if head.id == 0 or head.id == 1 then % hlist, vlist
      show_hyph(head.list) % should be head.head in a newer luatex than 0.64
    elseif head.id == 7 then             % disc
      local n = node.new("whatsit","pdf_literal")
      n.mode = 0
      n.data = "q 0.3 w 0 2 m 0 7 l S Q"
      n.next = head.next
      n.prev = head
      head.next = n
      head = n
    end
  head = head.next
  end
  return true
end
luatexbase.add_to_callback("post_linebreak_filter",show_hyph,"show_hyph")

}
\newcommand{\displayinfo}{\languagename\par\today\par Hyphenation of analysis}
\begin{document}
\begin{tabular}{SSS}
\selectlanguage{american}
\displayinfo 
&
\selectlanguage{USenglish}
\displayinfo
&
\selectlanguage{english}
\displayinfo
\end{tabular}

\begin{tabular}{SS}
\selectlanguage{british}
\displayinfo
&
\selectlanguage{UKenglish}
\displayinfo
\end{tabular}
\end{document}

result of code sample

share|improve this answer
    
I have a suspicion that LuaTeX picks up the locale for english, as on my comp english and USenglish displays the date differently (see image in my post). –  Yiannis Lazarides Mar 6 '11 at 18:55
    
@Yiannis, no I think Caramdir has hit the nail on the head. The order of language loading matters for defining \dateenglish so the second last language defined, seems to make the difference. This isn't an engine difference. (Same behaviour with pdflatex, xelatex and lualatex) –  Alan Munn Mar 6 '11 at 19:10
2  
@Yianni,Alan Munn: It seems to be that english is influenced by the more specific language settings, i.e. it is identical to the last one used in the package option. If english is the last option the second last indeed influences the defined style because of this. Without english the last option defines the style as normal. –  Martin Scharrer Mar 6 '11 at 21:28
2  
It's a bug in the english option. Perhaps too late to be fixed, but a warning would be useful (eg, "don't use english and more specific options together"). –  Javier Bezos Aug 5 '12 at 8:10
    
'... all three are synonyms for each other as far as Babel is concerned.' Not necessarily. It depends how old the installation of TeX (and the version of babel) is. If your code might be compiled elsewhere and you do not know the details, the hyphenation patterns loaded by english are not predictable. Admittedly, as time goes on, fewer and fewer people will be using older versions. But plenty of institutions/organisations use somewhat ancient installations if they work for them so I would not count on current software myself ;). –  cfr Apr 10 at 2:16

Differences in the different versions of english are normally minor and involve hyphenation patterns. There are a number of words that US dictionaries hyphenate differently than those found in english dictionaries.

There are also differences in displaying dates. Here is a minimal to indicate the differences in the way dates are displayed with the various options.

\documentclass{article}
\usepackage[USenglish,british,american,australian,english]{babel}
\begin{document}

\dateenglish
\today

\dateUSenglish
\today

\dateamerican
\today

\dateaustralian
\today

\selectlanguage{english}
\parbox{0.1cm}{
test, however}

\selectlanguage{USenglish}
\parbox{0.1cm}{
test, however}

\selectlanguage{british}

\parbox{0.1cm}{
 test, however}
\end{document}

On hyphenation, english,american and USenglish produce the same result (watch out for "however"). On the dates english will be as in english style dates, so to answer the OP's question the only difference will be in the display of the date.

enter image description here

share|improve this answer
2  
@Yiannis This is the difference between the [british]/[UKenglish] (and also [australian]) options compared to [american]/[english]/[USenglish] (and also [canadian]). –  Alan Munn Mar 6 '11 at 15:59
    
@Yiannis: I'm not a babel-expert, but if Alan is right, then you should either modify or delete your answer. Thanks! –  Hendrik Vogt Mar 6 '11 at 17:35
    
@Hendrik Just posted a minimal for clarity. On the hyphenation I need to read the docs, but I think Alan is right that english by default is equivalent to american. –  Yiannis Lazarides Mar 6 '11 at 18:17
1  
@Alan @Yannis: the output of \today seems to depend on the order the languages are loaded. On my system, \usepackage[USenglish,UKenglish,english]{babel}...\dateenglish\today gives “6th March 2011”, while \usepackage[UKenglish,USenglish,english]{babel}...\dateenglish\today gives “March 6, 2011”. –  Caramdir Mar 6 '11 at 19:00
    
@Yiannis, I've posted an example that shows explicit hyphenation points. However, there's a weird inconsistency between the date format in my example vs. yours which doesn't make sense to me. Your \dateenglish\today shows D M Y; mine shows M D, Y. –  Alan Munn Mar 6 '11 at 19:01

Some words are spelled differently in US and UK, e.g., color | colour, center | centre, etc. Therefore, WinEdt comes with 2 sets of spell dictionaries.

The only place where the difference between US and UK can be built into LaTeX is the hyphenation tables as it has been already said in other answers. However, any user can rebuild the LaTeX format with any set of hyphenations tables and, moreover, can take any hyphenation table for any language, for example, Russian for English and vice versa. At least, MiKTeX provides interface for choosing the hyphenation table for any language.

share|improve this answer

If code which uses \usepackage[english]{babel} is run on an older installation, you may get UK or you may get US hyphenation patterns depending on the local settings. This is because older versions of babel encouraged you to customise language.dat according to local need.

Here's an excerpt from an older version of language.dat I found online:

% The hyphenation pattern files are in the dirctory:
%   texmf/tex/generic/hyphen


% The US-english patterns should be loaded *always* and as *first* ones.
% Define USenglish as an alias for american.
american ushyph1.tex
=USenglish

% UK english, TWO LINES!
%british  ukhyphen.tex
%=UKenglish

% english should always be defined. Either an alias for american or british.
=english

So I, for example, would use a local copy which uncommented the lines for British English to make english an alias for UKenglish. So a file sent to me using \usepackage[english]{babel} would use not US hyphenation patterns, but UK ones.

Recent versions of babel do not work like this. Indeed, the same file now says:

% We must keep english as the default (first) here, and let it refer to
% hyphen.tex (not anything else), and do not change the hyphen.tex file,
% or name some other file hyphen.tex.  In other words, hyphen.tex must
% remain the original file from Knuth, and it must be \language0.  This
% is one important aspect of ensuring that the original, frozen TeX
% always produces the same line and page breaks.
% 

...

english         hyphen.tex  % do not change!
=usenglish
=USenglish
=american

And experience shows that babel ignores a local, customised copy. However, part of the point of TeX is to produce the same output everywhere (at least in theory etc.). Since many people are still using rather old versions of TeX and since this likely includes any number of publishers, you cannot predict the outcome if you use english rather than specifying the appropriate variant.

So while the three options might be equivalent on your machine, they may not be equivalent elsewhere. In particular, english may not be equivalent to american/USenglish.

While either american or USenglish is fine, it is therefore recommended to avoid english regardless of the particular variant you would like.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.