多语和逐字问题

多语和逐字问题

在我的文本(希腊语和英语)出现连字符问题后,我更改了一些软件包。一开始我使用的是:

  \usepackage{mathspec} 
  \usepackage{xgreek}
  \usepackage{xunicode}
  \usepackage{fontspec}
  \setallmainfonts[Mapping=tex-text]{Arial}
  \setallsansfonts[Mapping=tex-text]{Arial}
  \setallmonofonts[Mapping=tex-text]{Arial}

经过一番搜索后,我修改了这些以获得正确的连字符。在一个小的样本文本中这样做之后,我试图将原始文本的包更改为样本中使用的包,以便最终获得正确的连字符。然而在某个时候我得到了:

包 polyglossia 错误:当前罗马字体不包含希腊文字。

第 242 行:\begin{verbatim}

我使用的软件包如下:

\usepackage{fontspec}
\newfontfamily\greekfont[Script=Greek]{Linux Libertine O}
\newfontfamily\greekfontsf[Script=Greek]{Linux Libertine O}
\usepackage[Greek,Latin]{ucharclasses}
\usepackage{polyglossia}
\usepackage{xltxtra}
\setmainlanguage{greek}
\setotherlanguages{english}
\setTransitionsForGreek{\selectlanguage{greek}}{\selectlanguage{english}}
\setmainfont{Linux Libertine O}

如何修复此问题?

答案1

逐字文本使用定义的字体\setmonofont(或默认的拉丁现代打字机字体)。

但是,当希腊语处于活动状态时,Polyglossia 会让 XeLaTeX 查找字体是否具有 GRK 功能,如果该功能不可用,它会查找名称下的字体系列是否\greekfonttt已定义。因此

\newfontfamily{\greekfonttt}{FreeMono}

(使用您喜欢的等宽字体)就可以了。

我不会使用ucharclasses自动从英语切换到希腊语,反之亦然:这将填充你的辅助文件\select@language声明填充你的辅助文件无法确保在 中使用等宽字体。而是更喜欢使用显式命令(不推荐)verbatim限制语言切换的标准方法、或。\selectlanguageotherlanguageotherlanguage*\foreignlanguage

相关内容