由页面行数引发的奇怪 latex 编译错误

由页面行数引发的奇怪 latex 编译错误

我正在使用期刊提供的类文件 (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}

相关内容