当使用某些语言选项调用 babel 包时,它会更改全局文档布局。例如,
\usepackage[french]{babel}
强制执行分段命令后的第一个段落,重置itemize
环境并对全局文档布局执行许多其他更改。另一方面,有一个包indentfirst
对段落标识进行了相同的更改。我猜有些包可以更定期地重置列表环境。因此我的问题是
babel 是重置文档布局的合适地方吗?
我之所以询问是因为我发现 babel 的俄语定义文件过去曾借用过法语定义文件中的类似功能,但后来被禁用了。
看过法语语言定义文件后,polyglossia
我会说它polyglossia
不关心文档布局,除了打开/关闭法语间距外,不会对文档布局进行任何更改。由于polyglossia
被推广为 babel 的未来替代品,所以我的问题具有战略价值。
答案1
我想说babel
,正如 egreg 所评论的那样,这种方法可能不是最好的。当你改变语言时,会发生不同的事情。首先,有些变化对于用该语言编写任何东西都至关重要(或至少非常有用)。然后是“固定字符串”的变化,这是translator
包(bundle 的一部分beamer
)句柄比babel
使用句柄更简洁。最后,还有布局变化。后者实际上与语言没有直接联系:它们更多地与出版商的地理位置和该地区的传统有关。这三个不同的概念确实需要不同的处理方式(尽管前两个概念至少有相当多的共同点)。
(戴上我的“LaTeX3 帽子”,我注意到我们非常热衷于将设计决策与其他代码分开。这强烈建议将设计更改排除在基于 LaTeX3 的语言模型之外。)
答案2
在理想情况下,babel
不应重置文档布局,因为不应该有任何布局需要重置。但大多数人都依赖标准类,就许多语言中使用的印刷规则而言,这绝对是错误的。因此,目前唯一真正的解决方案是提供更改布局的可能性,以便babel
我们可以在标准类中找到的英语规则被更适合所用语言的新规则所取代。因此,我的答案是:在当前的 LaTeX 中,是的,他们应该这样做(如果babel
被认为是本地化文档的方式)。当然,必须以不强加基本布局的方式完成;例如,spanish
仅当布局是主要语言(即最后命名的语言)时才更改布局,您也可以使用选项es-nolayout
(其目的从其名称中显而易见)立即取消它。将来,类似的东西\documentclass[spanish]{article}
应该加载一个类,比如说,article-es
(我使用当前界面作为示例,但这并不意味着更好的界面不应该更好)。