在下面的代码中,当我使用时\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 声明为无衬线字体也是值得怀疑的。