LuaLaTex 中 TeX Gyre 字体集的西里尔字母出现异常

LuaLaTex 中 TeX Gyre 字体集的西里尔字母出现异常

我注意到在使用 LuaLaTeX 加载 TeX Gyre 字体时存在问题,因为如果通过字体名称调用该字体,则会错过西里尔字母的加载:

\setmainfont{TeX Gyre Adventor}

如果通过文件名调用,则可以正确加载

\setmainfont{texgyreadventor-regular.otf}

显然,最后一种方法不能加载整个字体系列,而且我会错过斜体和粗体字体。

这就是我通过字体名称调用的

这就是我所呼唤的名字

这就是我通过文件名调用的

在此处输入图片描述

这是前面示例使用的代码

\documentclass{article}
\usepackage{fontspec}

\newif\ifTeXGyre

\TeXGyretrue

\ifTeXGyre
\setmainfont{TeX Gyre Adventor}
\else
\setmainfont{texgyreadventor-regular.otf}
\fi

\setlength{\parindent}{0pt}

\begin{document}

Hello, world\par
Здравствуй, Мир\par

{\itshape
Hello, world\par
Здравствуй, Мир\par
}

{\bfseries
Hello, world\par
Здравствуй, Мир\par
}

{\itshape\bfseries
Hello, world\par
Здравствуй, Мир\par
}

\end{document}

答案1

实际上,对我来说,两者都不起作用。其他 tex gyre 字体 (tex gyre pagella) 也是如此。查看 texlive 2015 提供的字体本身,它不包含任何西里尔字母字形。

查看网站上的更新日志(http://www.gust.org.pl/projects/e-foundry/tex-gyre/adventor/qag-hist.txt/view) 是由于许可分歧造成的。

不幸的是,我们无法从 Valek Filippov 那里获得类似的西里尔字母字形许可,因此任何 TeX Gyre 字体中都没有西里尔字母字形。

您的文档路径中必须有一个旧版本的字体,当直接调用文件名时,您的代码会获取该版本的字体。

答案2

看来,GUST.org 2.004 版上最后一个可供下载的版本中确实删除了西里尔字母。旧版本可在字体松鼠

原始答案不正确

我最近也遇到了类似的问题。我很惊讶地从 ArTourter 的回答中得知,西里尔字母字形因许可证问题而被删除,因为我刚刚从提供的链接下载了字体字体作者,并且我能够在其他应用程序(例如 Word 或 Adob​​e Illustrator)中使用其西里尔字母。您的问题让我在 fontspec 手册的第 4.2 节中查找并找到答案;它还包含如何不丢失粗体和斜体变体的秘诀。以下示例适用于我的 MikTeX 系统(我可能需要添加我使用最新的 luaotfload,2.7-fix2,并将 luatex(并且只有它)更新为 MikTeX Next 的版本,但我认为这没什么区别):

\documentclass[11pt,a4paper]{scrartcl}
%\title{TeX Gyre Heros test}
\usepackage{fontspec}
%\setmainfont[Ligatures=TeX]{Tex Gyre Heros}
\setmainfont{texgyreheros}[
            Ligatures=TeX, 
            Extension = .otf ,
            Path = /Windows/Fonts/,
            UprightFont = *-regular ,
            BoldFont = *-bold ,]
\begin{document}
    \textbf{A test line} in Latin. Below is the test line in Cyrillic.

    \textbf{Пробная строка} кириллицей. Сверху --- латиницей.
\end{document}

结果

实际上,这并没有回答您的问题,但却使它重新活跃起来。

更新

似乎唯一的原因是字体所在的位置;如果 Lualatex 从Windows\Fonts目录中获取字体,它对许可证限制一无所知。如果您将字体从复制TDS\fonts\opentype\public\tex-gyreWindows\Fonts,下面的代码会根据路径规范给出不同的结果。所以也许答案是只有来自 *.fd 文件的信息被删除了。

\documentclass[11pt,a4paper]{scrartcl}
%\title{TeX Gyre Heros test}
\usepackage{fontspec}
\setmainfont{Tex Gyre Heros}[
            Ligatures=TeX, 
            Path = /Windows/Fonts/, % try to comment this line
            UprightFont = *-regular ,
            BoldFont = *-bold ,
            ItalicFont = *-italic ,
            BoldItalicFont = *-bolditalic ,
            ]
\begin{document}
    \textbf{A test line} in Latin. \emph{Below} is the test line in Cyrillic.

    \textbf{Пробная строка} кириллицей. \emph{Сверху} --- латиницей.
\end{document} 

现在的问题是:在 TeX Gyre 字体仍保留西里尔字母符号的情况下,下载并保存所有 TeX Gyre 字体到安全的地方是否明智?

相关内容