我想写一篇希腊语-英语文本。我使用的是 babel+XeLaTex。我在目录方面遇到了问题:当我的代码中包含这些行时
\setDefaultTransitions{\selectlanguage{english}}{\selectlanguage{english}}
\setTransitionTo{GreekAndCoptic}{\selectlanguage{greek}}
它会产生以下错误:
“LaTeX 错误:命令 \rmfamily 在数学模式下无效。output.toc,第 67 行”
并发出警告' \目录 '命令,提及:
软件包 babel 警告:\englishcontentsname 未设置。请在语言加载后(通常在前言中)使用类似:\renewcommand\englishcontentsname{..} 的方式定义它,报告于输入行 23。
在 pdf 中,而不是' 内容 '在目录的开头,它有' ?内容名称? '
以下是 MWE:
\documentclass[12pt]{extarticle}
\usepackage{babel}
\usepackage{ucharclasses}
\babelprovide{greek,english}
\babelfont{rm}[Ligatures={Common,Rare}, Scale=1.0]{Libertinus Serif}
\babelfont{sf}[Ligatures={Common,Rare}]{Libertinus Sans}
\babelfont{tt}{Libertinus Mono}
\babelfont[Language=greek]{rm}{Kerkis}
\babelfont[Language=greek]{sf}{Kerkis}
\babelfont[Language=greek]{tt}{kerkis}
\setDefaultTransitions{\selectlanguage{english}}{\selectlanguage{english}}
\setTransitionTo{GreekAndCoptic}{\selectlanguage{greek}}
\begin{document}
some text
blabla μπλαμπλα
\newpage
\tableofcontents
\newpage
\section{Introduction-Εισαγωγή}
\subsection{test}
\end{document}
答案1
需要进一步明确您想要实现的目标。
当我将希腊语设为 babel 中的主要语言,并设置过渡字体(将希腊语设为蓝色,以显示哪种字体进入了目录)时,目录就正常了。
平均能量损失
\documentclass[12pt]{extarticle}
\usepackage{xcolor}
\usepackage{fontspec}
\newfontfamily{\defaultfont}{Noto Serif}
\newfontfamily{\greekfont}{Kerkis}[Colour=blue]
\usepackage[english,greek]{babel}
\usepackage{ucharclasses}
\setDefaultTransitions{\defaultfont}{}
\setTransitionsForGreek{\greekfont}{}
%\babelprovide{greek,english}
%\babelfont{rm}[Ligatures={Common,Rare}, Scale=1.0]{Libertinus Serif}
%\babelfont{sf}[Ligatures={Common,Rare}]{Libertinus Sans}
%\babelfont{tt}{Libertinus Mono}
%
%\babelfont[Language=greek]{rm}{Kerkis}
%\babelfont[Language=greek]{sf}{Kerkis}
%\babelfont[Language=greek]{tt}{kerkis}
%\setDefaultTransitions{\selectlanguage{english}}{\selectlanguage{english}}
%\setTransitionTo{GreekAndCoptic}{\selectlanguage{greek}}
\begin{document}
some text
blabla μπλαμπλα
\newpage
\tableofcontents
\newpage
\section{Introduction-Εισαγωγή}
\subsection{test}
\end{document}