我想用 编写的某个文件中添加几行俄语classicthesis
。我尝试使用下面描述的包添加西里尔字母,仍然没有问题:
\documentclass{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}
\begin{document}
English text and
\begin{otherlanguage*}{russian}
русский текст
\end{otherlanguage*}
\end{document}
但是,当我将允许我用西里尔字母书写的行添加到用 编写的工作示例中时classicthesis
,我在编译时得到了Option clash for package inputenc.\usepackage
以下Option clash for package babel
内容:
\documentclass[ twoside,openright,titlepage,numbers=noenddot,headinclude,%1headlines,% letterpaper a4paper
footinclude=true,cleardoublepage=empty,abstractoff, % <--- obsolete, remove (todo)
BCOR=5mm,paper=a4,fontsize=11pt,
ngerman,american,
]{scrreprt}
\usepackage{classicthesis-preamble}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}
\begin{document}
\frenchspacing
\raggedbottom
\selectlanguage{american}
English text and
\begin{otherlanguage*}{russian}
русский текст
\end{otherlanguage*}}
\end{document}
有什么提示吗?
答案1
假设classicthesis-preamble.sty
类似于文件
/usr/local/texlive/2012/texmf-dist/doc/latex/classicthesis/classicthesis-config.tex
这包含在 ClassicThesis 的最新发行版中,那么您会遇到几个问题。
文件调用
\PassOptionsToPackage{latin9}{inputenc} % latin9 (ISO-8859-9) = latin1+"Euro sign"
\usepackage{inputenc}
(这是一个非常特殊的处理方式,因为\usepackage[latin9]{inputenc}
会做同样的事情)。
所以如果你使用它(或者classicthesis-preamble.sty
应该有相同的行),你不能加载后指定另一种输入编码。
所以解决方案是:不加载classicthesis-preamble
。从 ClassicThesis 项目开始以来,拥有它就是一个错误。现在发行版提供了我指向的文件,但“按原样”包含它又是一个错误:它必须根据您的需求进行定制。
同样的问题也发生在babel
;您可以通过在全局选项中指定来解决此问题,但最安全的解决方案是从辅助包中russian,english
删除的调用。babel
classicthesis-preamble
不要使用\selectlanguage{american}
:最后加载的语言babel
是默认语言;此外您还可以english
选择(这相当于american
但您应该始终在整个文档中使用相同的名称)。