[Tex/LaTex] babel: english, american, USenglish

babellanguages

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.

Best Answer

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