以下是 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}