在 koma-script 变体中重命名 ToC、Lof 等

在 koma-script 变体中重命名 ToC、Lof 等

我遇到了一个相当复杂的问题。我正在使用考博- 它所基于的类koma-script book- 用于创建多语言文档(希腊语和英语)。我已经定义了以下类选项:

% Declaring language class options
\DeclareOption{greek}{%
  \newcommand{\default@lang}{greek}%
  \newcommand{\other@lang}{english}%
}%
\DeclareOption{english}{%
  \newcommand{\default@lang}{english}%
  \newcommand{\other@lang}{greek}%
}%

我对字体和编码的设置如下

\RequirePackage{unicode-math}

\setromanfont[Scale=1.04]{Libertinus Serif}
\setsansfont[Scale=1]{Libertinus Sans}
\setmonofont[Scale=.89]{Liberation Mono}
\setmathfont{Libertinus Math}

% Hack because of bug of polyglossia
\RequirePackage{ifthen}
\ifthenelse{\equal{\default@lang}{greek}}%
  {
   \RequirePackage[nonumeralsign]{xgreek}
   \newenvironment{greek}{}{}
   \newenvironment{english}{\setlanguage{english}}{\setlanguage{monogreek}}
%    \newcommand{\xpg@main@language}{monogreek}
  }%
  {
   \RequirePackage{polyglossia}
   \setdefaultlanguage{\default@lang}
   \setotherlanguage{\other@lang}
  }

问题是当我使用命令时

\renewcaptionname{greek}{\contentsname}{Περιεχόμενα} 

我收到一个错误

包 scrbase 错误:\contentsname' not defined at languagegreek'。

我尝试使用 进行加载polyglossia\setdefaultlanguage{greek}在这种情况下,我收到错误:

!LaTeX 错误:命令 \anw@print 已定义。或名称 \end... 非法,请参阅手册第 192 页。

我还尝试在文档类中加载english选项,结果它又使用 和 加载polyglossia\setdefaultlanguage{english}\setotherlanguage{greek}这种情况下,连字符会中断,我要么使用xelatexlualatex

所以,我的问题是,如何toc在不破坏希腊语连字符的情况下重命名

答案1

问题解决了!

供将来参考,该问题是由黑客攻击引起的

\RequirePackage{ifthen}
\ifthenelse{\equal{\default@lang}{greek}}%
  {
   \RequirePackage[nonumeralsign]{xgreek}
   \newenvironment{greek}{}{}
   \newenvironment{english}{\setlanguage{english}}{\setlanguage{monogreek}}
%    \newcommand{\xpg@main@language}{monogreek}
  }%
  {
   \RequirePackage{polyglossia}
   \setdefaultlanguage{\default@lang}
   \setotherlanguage{\other@lang}
  }

我用以下内容替换了此部分

\RequirePackage{unicode-math}

\RequirePackage{polyglossia}
\setdefaultlanguage{\default@lang}
\setotherlanguage{\other@lang}

\setmainfont[Scale=1.04]{Libertinus Serif}
\setsansfont[Scale=1]{Libertinus Sans}
\setmonofont[Scale=.89]{Libertinus Mono}
\setmathfont{Libertinus Math}

一切都按预期进行

相关内容