使用字体 GFSArtemisia.otf 时某些字符无法正确显示

使用字体 GFSArtemisia.otf 时某些字符无法正确显示

我的代码如下:

\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

  1. babel同时加载polyglossia是错误的,因为他们在试图做同样的事情时会互相争斗。

  2. xunicode几年前曾被xltxtra推荐过,当时 LaTeX 内核还没有更新来处理 Unicode 引擎的新功能。

  3. 我不会在文档中间更改默认语言。

  4. \setdefaultlanguage\setmainlanguage完全相同(应该使用后者)。

  5. 为什么\grk在里面做greek

  6. 中没有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}

在此处输入图片描述

相关内容