我可以使用拉丁现代字体在文本模式下排版希腊字母吗?

我可以使用拉丁现代字体在文本模式下排版希腊字母吗?

我使用 lualatex 和 utf8 源。我想使用拉丁现代字体(包括数学)。如果我在源文件中包括字符 ε,它不会出现在输出中。我尝试将字体更改为 TeX Gyre Pagella(使用 fontspec),ε 按照我的要求出现。我假设我使用的拉丁现代字体不支持希腊字符。

现在;显然有人为拉丁现代数学创建了希腊字形,所以我很惊讶拉丁现代数学中的文本模式希腊字母不完整。这样做有什么问题吗?

\setmainfont{latinmodern-math.otf}

或者其他一些 hack 解决方法?难道没有办法在 Latin Modern 的文本模式下排版希腊字符吗?我不想要围绕每一个带有 $$ 的希腊字母

(我理解用这种字体写希腊字母的讽刺意味,拉丁在名称中,但我很惊讶解决方案并不更明显)

梅威瑟:

\documentclass{minimal}

\usepackage{fontspec}
\setmainfont{Latin Modern Roman}
\usepackage{unicode-math}
\setmathfont{latinmodern-math.otf}

\begin{document}
This text appears fine.
The following does not, only the capital omega appears: ∆πΩε.
This math does appear as expected, however: $∆πΩε$.
\end{document}

答案1

拉丁现代字体没有完整的希腊字母,只有其中的一部分。

如果您只需要一些希腊语单词,那么您可以从该ucharclasses包中获益,如示例所示。如果您需要较长的希腊语段落,加载 Polyglossia 会很方便。

\documentclass{article}

\usepackage{fontspec}
\usepackage[Latin,Greek]{ucharclasses}
\setmainfont[Ligatures=TeX]{Latin Modern Roman}

\newfontfamily{\gfsartemisia}{GFS Artemisia}
\newfontfamily{\gfsbaskerville}{GFS Baskerville}
\newfontfamily{\gfsbodoni}{GFS Bodoni}
\newfontfamily{\gfsdidot}{GFS Didot}
\newfontfamily{\cmu}{CMU Serif}

\newcommand{\greekfont}{\gfsartemisia}


\setTransitionsForLatin{}{}
\setTransitionsForGreek{\begingroup\greekfont}{\endgroup}

\begin{document}
GFS Artemisia -- This text appears fine: ΔπΩε. And again.

\renewcommand{\greekfont}{\gfsbaskerville}
GFS Baskerville -- This text appears fine: ΔπΩε. And again.

\renewcommand{\greekfont}{\gfsbodoni}
GFS Bodoni -- This text appears fine: ΔπΩε. And again.

\renewcommand{\greekfont}{\gfsdidot}
GFS Didot -- This text appears fine: ΔπΩε. And again.

\renewcommand{\greekfont}{\cmu}
CMU Serif --This text appears fine: ΔπΩε. And again.

\end{document}

选择适合您的字体后(也许尝试其他希腊字体),直接给它命名\greekfont

在此处输入图片描述

相关内容