尝试使用俄语作为 \foreignlanguage 时出现“软件包 isodate 错误:未找到 Isodate 定义文件 russian.idf。”

尝试使用俄语作为 \foreignlanguage 时出现“软件包 isodate 错误:未找到 Isodate 定义文件 russian.idf。”

我尝试在\foreignlanguage条目中使用俄语。因此,我例如这样写:

\foreignlanguage{russian}{Федеральная служба по надзору в сфере связи, информационных технологий и массовых коммуникаций}

现在,由于我的主文档包含几种其他语言(主要语言是德语),我将把它添加到babelisodate

\usepackage[norsk, english, german, russian, ngerman]{babel}
\usepackage[norsk, english, german, russian, ngerman]{isodate}
\usepackage{lmodern} % font

我需要安装texlive-babel-russian(或类似安装,具体取决于您的 Tex 发行版)

当然,我的文档总是使用 UTF-8:

% !TeX program = lualatex
% !TeX encoding = UTF-8
% !TeX spellcheck = de_DE
\documentclass[12pt,a4paper,titlepage,numbers=noenddot,oneside]{scrbook}
\KOMAoption{listof}{totocnumbered, leveldown}
% unicode
%\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[utf8]{luainputenc}

但是,我收到了这个错误(并且对于其他任何语言我都没有收到这个错误):

!包 isodate 错误:未找到 Isodate 定义文件 russian.idf。

请参阅 isodate 包文档以了解解释。输入 H 可立即获得帮助。...

l.79 \进程选项*

也许您拼错了语言选项?

编辑: 如果我看一下,/usr/share/texlive/texmf-dist/tex/latex/isodate那里确实没有俄语的定义。

所以我至少已经russian从其中删除了编译。isodate

但是它仍然不能显示任何俄语字符?

答案1

好的,@moewe我注意到,删除russian可以避免isodate这个错误。

为了真正看到字符,你仍然需要选择合适的字体尽管。

幸运的是,在 LuaLaTex 和新版 Babel 中,你似乎可以让 babel 选择它取决于语言。

因此,您只需在序言中添加以下内容:

\babelfont[russian]{rm}{CMU Serif} % DejaVu Serif, FreeSerif, Linux Libertine

它会自动选择给定语言的字体。

CMU 是“计算机现代 Unicode”,您可能需要单独安装它,例如作为 Fedora 中的包texlive-cm-unicode

相关内容