我正在使用期刊提供的类文件 (mais.cls) 创建一篇论文。该期刊是俄语的,因此它有俄语标题、俄语页面标题等。
我有一个仅包含拉丁字符的 .tex 文件,编译时没有错误。当我在文本末尾添加一个(英文)单词(增加行数,但不增加页数)时,我在编译过程中突然收到许多类似的错误。
! LaTeX Error: Command \CYRE unavailable in encoding OT1.
问题似乎与偶数页(不包括标题页)上的页眉有关。页眉是俄文,在类样式文件中定义。不知何故,LaTeX 不再喜欢它,这取决于页面上的行数。
我使用的是最新版本的 MikTeX 2.9(这个问题在旧版本中也出现了)。编码设置如下:
\usepackage[cp1251]{inputenc}
\usepackage[english,russian]{babel}
\usepackage[T2A]{fontenc}
为什么会出现这种情况?是不是 latex 的样式出了问题?如何避免这种错误?
我已将 MWE(工作/不工作示例和类样式)以及所有日志和生成的 .pdf 文件上传到https://skydrive.live.com/redir?resid=E4ECA4072D08CEE5!2645(档案:https://skydrive.live.com/redir?resid=E4ECA4072D08CEE5!2646)
答案1
最终通过改变
\usepackage[english,russian]{babel}
来
\usepackage[english,main=russian]{babel}
解决问题。
我找到了另一个解决方案,但由于我无法发布新答案,我决定在这里提出建议。替换
\usepackage[T1]{fontenc}
为
\usepackage[T2A]{fontenc}
答案2
最简单的解决方法是确保类文件中的西里尔字符串使用 T2A 编码,而不是 OT1
\def\mybibname{\fontencoding{T2A}\selectfont
\CYRL\cyri\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyra}
\def\myshortname{%%%
\fontencoding{T2A}\selectfont
\CYRM\cyro\cyrd\cyre\cyrl.
\cyri{}
\cyra\cyrn\cyra\cyrl\cyri\cyrz{}
\cyri\cyrn\cyrf\cyro\cyrr\cyrm.
\cyrs\cyri\cyrs\cyrt\cyre\cyrm.{}
}
\def\mylongname{%%%
\fontencoding{T2A}\selectfont
\CYRM\cyro\cyrd\cyre\cyrl\cyri\cyrr\cyro\cyrv\cyra\cyrn\cyri\cyre{}
\cyri{}
\cyra\cyrn\cyra\cyrl\cyri\cyrz{}
\cyri\cyrn\cyrf\cyro\cyrr\cyrm\cyra\cyrc\cyri\cyro\cyrn\cyrn\cyrery\cyrh{}
\cyrs\cyri\cyrs\cyrt\cyre\cyrm{}
}
\def\myrecname{\fontencoding{T2A}\selectfont
\cyrp\cyro\cyrl\cyru\cyrch\cyre\cyrn\cyra}
\def\myvolname{\fontencoding{T2A}\selectfont
\CYRT.}
\def\myUDCname{\fontencoding{T2A}\selectfont
\CYRU\CYRD\CYRK}