babel:英语、美国、美国英语

babel:英语、美国、美国英语

english我使用、 americanUSenglish作为包的选项是否有区别(如果有的话,有哪些区别)babel

我已经调查过封装描述,对我来说似乎也是一样的,但由于我认为自己是 LaTeX 新手,因此我对专家意见非常感兴趣。

答案1

不,就 Babel 而言,这三个都是同义词。

摘自babel文档第 78 页:

“American” 是 “English” 的一个版本,它可以有自己的连字符模式。默认的英语模式实际上是美式英语。我们允许将模式加载为 “english”、“american” 或 “USenglish”。

这三种语言名称之间没有区别;但是,它们和UKenglish, british(它们本身是同义词)之间的连字符和日期格式都有区别。

以下文档(必须使用 进行编译lualatex)显示了 5 种规范类型的连字符点差异和日期格式差异的示例:(这里仅排除澳大利亚,因为没有lualatex定义它的语言定义文件。)

% !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}

代码示例的结果

答案2

不同英语版本之间的差异通常很小,并且涉及连字符模式。美国词典中有许多单词的连字符与英语词典中的单词不同。

日期的显示方式也有所不同。下面是一些简单的示例,用于说明不同选项中日期显示方式的差异。

\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}

在连字符方面,英语、美式英语和美式英语产生相同的结果(注意“however”)。在日期方面,英语将与英语风格的日期相同,因此要回答 OP 的问题,唯一的区别在于日期的显示。

在此处输入图片描述

答案3

如果使用的代码\usepackage[english]{babel}在较旧的安装上运行,您可能会获得英国或美国的连字模式,具体取决于本地设置。这是因为较旧的版本鼓励您根据本地需求babel进行自定义。language.dat

以下是我在网上找到的旧版本的摘录language.dat

% 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

因此,例如,我将使用取消注释英式英语行的本地副本来english为 创建一个别名UKenglish。因此,发送给我的文件\usepackage[english]{babel}将使用不是美国连字模式,而是英国连字模式。

最新版本babel不再这样工作。事实上,同一个文件现在显示:

% 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

经验表明,这babel忽略了本地的自定义副本。但是,TeX 的部分目的是在任何地方产生相同的输出(至少在理论上如此)。由于许多人仍在使用相当老版本的 TeX,并且这可能包括许多出版商,因此如果您使用english而不是指定适当的变体,则无法预测结果。

因此,尽管这三种选择在你的机器,它们在其他地方可能不等效。特别是,english可能不等效于american/ USenglish

尽管两者都american可以,但无论您喜欢哪种特定变体,USenglish都建议避免使用。english

答案4

有些词在美国和英国的拼写不同,例如,color | colour,center | centre 等。因此,WinEdt 附带了两套拼写词典。

唯一可以在 LaTeX 中构建美国和英国之间差异的地方是连字表,正如其他答案中已经提到的那样。但是,任何用户都可以使用任何连字表集重建 LaTeX 格式,而且可以为任何语言采用任何连字表,例如,俄语对应英语,反之亦然。至少,MiKTeX 提供了用于为任何语言选择连字表的界面。

相关内容