![我可以使用拉丁现代字体在文本模式下排版希腊字母吗?](https://linux22.com/image/264256/%E6%88%91%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E6%8B%89%E4%B8%81%E7%8E%B0%E4%BB%A3%E5%AD%97%E4%BD%93%E5%9C%A8%E6%96%87%E6%9C%AC%E6%A8%A1%E5%BC%8F%E4%B8%8B%E6%8E%92%E7%89%88%E5%B8%8C%E8%85%8A%E5%AD%97%E6%AF%8D%E5%90%97%EF%BC%9F.png)
我使用 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
。