babel 包的问题

babel 包的问题

在下面的代码中,当我使用时\usepackage[greek,english]{babel}一切正常,直到我尝试使用\selectlanguage{greek}时出现错误和那些警告:

! 损坏的 NFSS 表。错误@fontshape ...消息{损坏的 NFSS 表}错误@fontshape 否则让 f... \selectlanguage{greek}

字体形状LGR/GFSArtemisia(0)/m/n' undefined(Font) using改为 LGR/cmr/m/n'

字体形状LGR/GFSArtemisia(0)/m/n' undefined(Font) using改为 EU1/lmr/m/n'

某些字体形状不可用,因此用默认字体形状代替。

另一方面,当我尝试使用时,\usepackage[engish,greek]{babel}我甚至懒得提及我遇到了多少问题!

我使用 XeLaTeX 和 Texmaker。

发生了什么事?我该如何解决?

这是使用的最坏情况\usepackage[engish,greek]{babel}

\documentclass[12pt]{article}

\usepackage[top=0.7in, bottom=1.2in, left=0.8in, right=0.8in]{geometry}

\setlength{\parindent}{0cm}

\usepackage[english,greek]{babel}

\usepackage{fontspec}

\setmainfont[
  Ligatures=TeX,
  Extension=.otf,
  UprightFont=*,
  BoldFont=*Bold,
  ItalicFont=*It,
  BoldItalicFont=*BoldIt,
  Mapping=tex-text,
]{GFSArtemisia}

\setsansfont[Mapping=tex-text]{GFSArtemisia.otf}

\usepackage[fleqn]{amsmath}

\usepackage{unicode-math}

\newcommand{\en}[1]{\foreignlanguage{english}{#1}}

\begin{document}

Ένα πρότυπο (ή αντικείμενο) καθορίζεται από ένα διάνυσμα μετρήσεων που ονομάζονται
χαρακτηριστικά. Το διάνυσμα ονομάζεται διάνυσμα χαρακτηριστικών.

$\overline{x}=\left[
\begin{array}{c}
\text{Feature1}\\
\text{Feature2}\\
\text{Feature2}\\
\end{array}
\right]$

\end{document}

答案1

错误发生babel在 之前加载fontspec,它将文档编码设置为EU1(使用 XeLaTeX)或EU2(使用 LuaLaTeX)。当知道这个事实时,babel能够加载希腊语并使其适应这些引擎,而无需对 的编码进行任何LGR技巧pdflatex

这也许会在 中得到改进babel,但补救措施非常简单:

加载fontspec时间babel

以下是完善后的版本:

\documentclass[12pt]{article}

\usepackage[fleqn]{amsmath}
\usepackage{unicode-math}
\usepackage[english,greek]{babel}

\setmainfont[
  Ligatures=TeX,
  Extension=.otf,
  UprightFont=*,
  BoldFont=*Bold,
  ItalicFont=*It,
  BoldItalicFont=*BoldIt,
  Mapping=tex-text,
]{GFSArtemisia}

\begin{document}

Ένα πρότυπο (ή αντικείμενο) καθορίζεται από ένα διάνυσμα μετρήσεων που ονομάζονται
χαρακτηριστικά. Το διάνυσμα ονομάζεται διάνυσμα χαρακτηριστικών.

$\overline{x}=\left[
\begin{array}{c}
\text{Feature1}\\
\text{Feature2}\\
\text{Feature2}\\
\end{array}
\right]$

\end{document}

请注意,unicode-math也会加载fontspec;但是,在我看来,将拉丁现代数学与 Artemisia 一起使用并不是最好的。

将 Artemisia 声明为无衬线字体也是值得怀疑的。

在此处输入图片描述

相关内容