![在 LaTeX 中编写希腊语文本](https://linux22.com/image/291328/%E5%9C%A8%20LaTeX%20%E4%B8%AD%E7%BC%96%E5%86%99%E5%B8%8C%E8%85%8A%E8%AF%AD%E6%96%87%E6%9C%AC.png)
是否可以使用 pdfLaTeX 编译以下示例,显示希腊文本的正确字体,而不是默认的 CMR?
\documentclass[a4paper]{article}
\usepackage[english,greek]{babel}
\usepackage[iso-8859-7]{inputenc}
\usepackage{tgheros}
\usepackage[T1]{fontenc}
\begin{document}
\section{Εισαγωγή}
Αυτό είναι ελληνικό κείμενο.
\selectlanguage{english} this is latin text.
\selectlanguage{greek} και αυτό είναι ελληνικό κείμενο.
\[
a = b + \gamma
\]
\end{document}
答案1
TeX Gyre Heros 不支持希腊语。您可以在字体的 opentype 版本中看到这一点:
otfinfo -s fonts/opentype/public/tex-gyre/texgyreheros-regular.otf
DFLT Default
cyrl Cyrillic
latn Latin
latn.AZE Latin/Azeri
latn.CRT Latin/Crimean Tatar
latn.MOL Latin/Moldavian
latn.NLD Latin/Dutch
latn.PLK Latin/Polish
latn.ROM Latin/Romanian
latn.TRK Latin/Turkish
同样,LaTeX 字体也不支持合适的编码。
字体确实包含希腊字符,可用于排版数学等。但不支持排版希腊文本。
答案2
首先,没有理由使用\usepackage[iso-8859-7]{inputenc}
。使用\usepackage[utf8]{inputenc}
。该字体TeX-Gyre-Heros
是无衬线字体,因此仅当文本设置为无衬线时才会使用它。
\documentclass{article}
\usepackage[english, greek]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\renewcommand*{\familydefault}{\sfdefault}
\usepackage{tgheros}
\begin{document}
\section{Εισαγωγή}
Αυτό είναι ελληνικό κείμενο.
\selectlanguage{english}this is latin text.
\selectlanguage{greek}και αυτό είναι ελληνικό κείμενο.
\[a = b + \gamma\]
\end{document}
答案3
tex-gyre-heros 不支持 pdfLaTeX 下的希腊语。在 Xe/LuaTeX 下,只有基本字母存在,重音字母和其他符号缺失。
最简单的解决方案是切换到支持希腊语“LGR”字体编码的无衬线字体,例如https://www.ctan.org/pkg/gfsneohellenic或者https://www.ctan.org/pkg/gofonts。
\DeclareFontfamilySubstitution
另一种选择是使用 2020 年版本中添加到 LaTeX 内核的命令来设置仅针对希腊语的替代,请参阅ltnews31。
第三种选择是将 LuaTeX 与支持希腊语的 Helvetica 变体一起使用,或者与通过 Babel 或 Polyglossia 设置的特定语言字体一起使用。