我的代码如下:
\documentclass[12pt]{book}
\usepackage[english,greek]{babel}
\usepackage{xunicode}
\usepackage{xltxtra}
\usepackage{unicode-math}
\newfontfamily\greekfont[Mapping=tex-text]{GFSArtemisia.otf}
\newfontfamily\grkfont[Script=Greek]{GFSArtemisia.otf}%GFSArtemisia
\newfontfamily\greekfontsf[Script=Greek]{GFSArtemisia.otf}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setmainlanguage{english}
\setotherlanguage{greek}
\newcommand{\grk}[1]{{\setdefaultlanguage[variant=modern]{greek}{#1}}}% GREEK TEXT
\begin{document}
\begin{greek}
\grk{τῶν ϙ ι ϡ ρ
}
\end{greek}
\end{document}
输出
字符ϙ
和ϡ
显示不正确,显示为矩形框,请指出其中出了什么问题。请提出建议。
我正在XeLaTeX
使用Win10
答案1
babel
同时加载polyglossia
是错误的,因为他们在试图做同样的事情时会互相争斗。xunicode
几年前曾被xltxtra
推荐过,当时 LaTeX 内核还没有更新来处理 Unicode 引擎的新功能。我不会在文档中间更改默认语言。
\setdefaultlanguage
和\setmainlanguage
完全相同(应该使用后者)。为什么
\grk
在里面做greek
?中没有
modern
希腊语变体polyglossia
。
这是您的文档的完善版本:
\documentclass[12pt]{book}
\usepackage{unicode-math}
\usepackage{polyglossia}
\newfontfamily\greekfont{GFSArtemisia.otf}[Ligatures=TeX,Script=Greek]
\newfontfamily\greekfontsf{GFSArtemisia.otf}[Ligatures=TeX,Script=Greek]
\setmainlanguage{english}
\setotherlanguage[variant=monotonic]{greek}
\newcommand{\grk}[1]{\foreignlanguage{greek}{#1}}% GREEK TEXT
\begin{document}
\grk{τῶν ϙ ι ϡ ρ}
\end{document}
但我们仍然得到
Missing character: There is no ϙ (U+03D9) in font [GFSArtemisia.otf]/OT:script=grek;language=dflt;mapping=tex-text;!
Missing character: There is no ϡ (U+03E1) in font [GFSArtemisia.otf]/OT:script=grek;language=dflt;mapping=tex-text;!
这意味着 GFS Artemisia 不包含 koppa 和 sampi 字符的字形。
您可以从其他字体导入它们,而且 DejaVu Serif 似乎融合得很好。
\documentclass[12pt]{book}
\usepackage{unicode-math}
\usepackage{polyglossia}
\usepackage{newunicodechar}
\newfontfamily\greekfont{GFSArtemisia.otf}[
Ligatures=TeX,
Script=Greek,
Scale=MatchLowercase,
]
\newfontfamily\greekfontsf{GFSArtemisia.otf}[
Ligatures=TeX,
Script=Greek,
Scale=MatchLowercase,
]
\newfontfamily{\supplementalfont}{DejaVu Serif}[
Scale=MatchLowercase]
\setmainlanguage{english}
\setotherlanguage[variant=monotonic]{greek}
\newcommand{\grk}[1]{\foreignlanguage{greek}{#1}}% GREEK TEXT
%%% supplement for koppa and sampi
\newunicodechar{ϙ}{{\supplementalfont ϙ}}
\newunicodechar{ϡ}{{\supplementalfont ϡ}}
\begin{document}
\grk{τῶν ϙ ι ϡ ρ}
\end{document}