我使用 Lyx 编辑文档,其类\usepackage[latin2]{inputenc}
在其 .cls 文件中声明。虽然我只使用 Lyx 使用相同编码的语言,但它只将相同的命令 ( \usepackage[latin2]{inputenc}
) 添加到文档的序言中。然而,当我开始使用更多语言时,Lyx 添加到序言中的命令会更改为类似 的内容\usepackage[latin9, latin2]{inputenc}
。然后我收到以下错误:
LaTeX Error: Option clash for package inputenc.
\setcounter
{secnumdepth}{3}
The package inputenc has already been loaded with options:
[latin2]
There has now been an attempt to load it with options
[latin9,latin2]
Lyx 似乎并不期望类可以使用inputenc
它们自己。这个问题的正确解决方案是什么?我应该阻止 Lyx 将任何内容添加inputenc
到序言中吗?是否有一些可以覆盖的 LaTeX 命令\usepackage
?或者这是我正在使用的类的问题,所以我应该修改它?也许我应该\usepackage[latin2]{inputenc}
从该类中删除它或用其他东西替换它...
编辑
重要的提示:我并不是真的想要一些快速的肮脏修复(我可以自己想出一些)。我试图让该类也适用于 Lyx,供其他用户使用(为其编写 Lyx 布局文件等)。所以我想以正确的方式做到这一点。如果问题是 LaTeX 类的设计不佳,我应该修复它。如果是 Lyx 设计不佳,我应该尝试提交错误报告或自己修复它。
答案1
在 LyX 中,你必须转到“文档”->“语言”,然后将“编码”从“所选语言的默认设置”更改为“其他:”,并使用参数“默认语言设置(不带inputenc
)”
很抱歉,由于我使用的是德语用户界面,所以选项名称并不 100% 与您在那里看到的一致,但我想您会找到正确的选项。
答案2
这本质上是所讨论课程的一个缺陷:课程实际上不应该加载,inputenc
因为这取决于用户及其文件的设置方式。我强烈建议不要使用以这种方式设置的课程,无论是使用 Lyx 还是直接使用 LaTeX。