无法使用 xelatex 生成英语-希腊语文档

无法使用 xelatex 生成英语-希腊语文档

以下是 WME:

\documentclass{article}

\usepackage{fontspec,xltxtra,xunicode,xgreek,textcomp}
\defaultfontfeatures{Mapping=tex-text}
\setromanfont[Mapping=tex-text]{Hoefler Text} % Main document font
\setsansfont[Scale=MatchLowercase,Mapping=tex-text]{GillSans} % Font for your name at the top
\usepackage[english,greek]{babel}
\usepackage[utf8]{inputenc}


\begin{document}
καλημερα
\end{document}

输出是方框而不是希腊字符。哪里出了问题?

PS:我可以用拉丁字符编写文档,也可以使用\selectlanguage{}命令生成希腊字符,但我想避免这样做

答案1

您可以使用该包polyglossia来定义主要语言和其他语言以及每种语言的特殊字体(您必须确保所需的字体在您输入的代码点处包含所需的字符!)。它还负责为所选语言选择正确的连字算法:

\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage[variant=modern]{greek}
\newfontfamily\greekfont{FreeSerif}

然后使用 显示希腊语文本\textgreek{καλημερα},或者对于较长的文本,使用相应的环境:\begin{greek}...\end{greek}

答案2

同样的问题。我发现:osx 提供的 Hoefler Text 确实会产生方框而不是希腊文。但 osx 提供的 Lucida Grande(和 Times New Roman)会产生希腊文:

%!TEX encoding = UTF-8 Unicode
%!TEX TS-program = xelatex
\documentclass[11pt]{article}   
\usepackage{geometry}                       
\geometry{letterpaper}                          
\usepackage{fontspec}
\defaultfontfeatures{Scale=MatchLowercase}
\setromanfont[Mapping=tex-text]{Times New Roman}
\setsansfont[Mapping=tex-text]{Helvetica}
\setmonofont{Monaco}

\begin{document}
ποικιλόθρον' ἀθανάτ Ἀφρόδιτα,\\
παῖ Δίος δολόπλοκε, λίσσομαί σε
\end{document}  

相关内容