我注意到,升级后的 Lyx 安装使用 extsizes 包向书籍类添加了以下行:
\documentclass[a4paper,oneside,american]{extbook}
我查看了软件包文档,但找不到对“american”开关的引用。它起什么作用?
其次,有没有办法编辑提供的 Lyx 模板?虽然我已将默认语言设置为“English-USA”,但编译时会抛出错误,提示 Babel 下的西班牙语选项未加载。我可以使用 tex 编辑器修复此问题,但我希望能够编辑模板。我查看了所有文档设置(包括 Latex 前言以查看是否存在)以及语言设置,但我找不到导致此错误的原因。
答案1
LyX 添加了“american”选项,以便将其传递给 babel。为了解决这个问题,我们只需要告诉 LyX“不用担心 babel,我会自己做的”。有两种方法可以做到这一点:
方法 1
转到文档 > 设置 > 语言,然后在“语言包”中选择“无”。
方法 2
转到文档 > 设置 > 本地布局并输入以下内容:
Provides babel 1
然后按“验证”,然后按“确定”。
LyX 不再加载 babel,因此不再需要通过类选项传递语言。现在您必须使用适当的选项手动加载 babel。
答案2
加载有什么用处吗
extbook
? 没有,除非是为儿童书籍或视障人士排版。为什么 LyX在被要求
american
时会添加该选项extbook
?我不知道,也看不出有什么合理的理由。是否有
american
选项extbook
?没有。但是传递给类的所有选项都会被检查;如果这些选项没有被类定义,它们什么也不做,但是它们传递给所有随后加载的包.他们被称为全局选项。如果你指定了不同的语言,你会遇到问题吗
\usepackage[ngerman]{babel}
?是的,当然,因为全局选项会被评估后本地选择恩格尔曼,因此默认语言将是american
。如果你有一个较新的 TeX 发行版,你可以通过以下方式解决问题\usepackage[main=ngerman]{babel}
您还可以传递其他语言(当然
main=
,不带)。如何在 LyX 中做到这一点?抱歉,我不知道。这是一个针对特定 LyX 论坛的问题。
答案3
它是一个所谓的“全局选项”,将传递给您使用 \usepackage 命令加载的任何包,最显著的是 babel 包。