如何使用 XeTeX 为特定语言使用不同的字体?

如何使用 XeTeX 为特定语言使用不同的字体?

我正在尝试为 polutonikogreek 设置特定字体。为了轻松切换到该语言,我定义了以下命令:

\newfontfamily{\Vusillus}[]{Vusillus Old Face}
\newcommand{\greek}[1]{{%
\Vusillus\selectlanguage{polutonikogreek}#1%
}}  

但是当我尝试这样的事情时:

\greek{>erot'aw}

没有使用 Vusillus Old Face 字体,而这个:

\Vusillus Something without a meaning

效果很好。我遗漏了什么吗?

这是一个有效的例子:

\documentclass[10pt,twoside]{memoir}
\usepackage[english,greek,polutonikogreek,ngerman,german]{babel}
\usepackage{blindtext}
\usepackage[utf8]{inputenc} 
\usepackage{scrpage2}

% rubber: set program xelatex

\usepackage{fontspec}
\usepackage{xltxtra}
\setmainfont[Numbers={OldStyle},Ligatures={Common, Historic}]{Adobe Garamond Pro}

\newfontfamily{\Vusillus}[]{Vusillus Old Face}
\newcommand{\greek}[1]{{%
\Vusillus\selectlanguage{polutonikogreek}#1%
}}

\begin{document}
Das ist nur ein Flie{\ss}text, sonst nichts: {\greek{>erot'aw}} und {\greek{>'erowc}}.
As you may have noticed the greek words are not in Vusillus, but \Vusillus this text actually is.
\end{document}

答案1

您不能那样做。使用babel\greek命令将切换到 OpenType 字体无法理解的内部字体编码(有关详细信息,请参阅下文)。

使用 Polyglossia,您可以定义一个\greekfont可以根据需要执行的操作,只要您使用实际字符输入希腊文即可。

\documentclass[10pt,twoside]{memoir}
\usepackage{polyglossia}
\setmainlanguage[spelling=new]{german}
\setotherlanguage[variant=polytonic]{greek}
\setotherlanguage{english}

\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Hoefler Text}

\newfontfamily{\greekfont}[Ligatures=TeX]{Old Standard}

\begin{document}

Das ist nur ein Flie{\ss}text, sonst nichts: 
\textgreek{ἐροτάω} und \textgreek{ἔροως}.

\begin{otherlanguage*}{english}
As you may have noticed the greek words \emph{are} in Old Standard,
like \greekfont this text actually is.
\end{otherlanguage*}

\end{document}

请注意,inputenc不能与 XeLaTeX 一起使用。我简化了语言调用并使用了我系统上的字体。

在此处输入图片描述

那么使用旧的音译方案输入希腊语文本怎么样?请参阅如何使用“ascii 键盘”和 XeTeX、Polyglossia 插入希腊语

asciitogreek.tec按照说明构建文件后,输入可以变为

\documentclass[10pt,twoside]{memoir}
\usepackage{polyglossia}
\setmainlanguage[spelling=new]{german}
\setotherlanguage[variant=polytonic]{greek}
\setotherlanguage{english}

\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Hoefler Text}

\newfontfamily{\greekfont}[Mapping=asciitogreek]{Old Standard}

\begin{document}

Das ist nur ein Flie{\ss}text, sonst nichts: 
\textgreek{>erot'aw} und \textgreek{>'erowc}.

\begin{otherlanguage*}{english}
As you may have noticed the greek words \emph{are} in Old Standard,
like \greekfont this text actually is.
\end{otherlanguage*}

\end{document}

当然后面的文字\greekfont也会被音译(我留下它只是为了举例)。您也可以直接输入希腊字母。

在此处输入图片描述

实际上存在问题~,请参阅链接的答案以寻求解决方法。

相关内容