无法使用 LinuxLibertine 字体同时以斜体和粗体形式排版西里尔文文本

无法使用 LinuxLibertine 字体同时以斜体和粗体形式排版西里尔文文本

我无法判断以下内容是 LinuxLibertine OTF 文件中的错误还是 XeLaTeX 中的错误(或两者兼而有之?)。问题是:当我尝试以斜体和粗体排版西里尔文文本时,LinuxLibertine 中似乎找不到字形。

我曾尝试使用 * 我最新的 Arch Linux 运行 TeXLive 2013,使用我的发行版中的 libertine 包, * 相同的 TeXLive,带有从 LinuxLibertine 项目新下载的 OTF 文件, * 从 tug.org 安装的 vanilla TeXLive 2014,以及原始的 Libertine OTF 文件。

这是一个最小的工作示例(预期当前工作目录中的 OTF 文件;它们可以从https://sourceforge.net/projects/linuxlibertine/files/linuxlibertine/5.3.0/):

\documentclass{article}
\usepackage{fontspec}
\begin{document}
\setmainfont[Path              = /path/to/linuxlibertine/,
             Extension         = .otf,
             BoldFont          = LinLibertine_RB,
             ItalicFont        = LinLibertine_RI,
             BoldItalicFont    = LinLibertine_RBI
            ]{LinLibertine_R}
\raggedright
Regular: положим\\
Bold: \textbf{положим}\\
Italic: \textit{положим}\\
Bold+Italic: \textit{\textbf{положим}}
\end{document}

OTF 文件直接来自 LinLibertineOTF_5.3.0_2012_07_02.tgz。这是 XeTeX 3.1415926-2.5-0.9999.3-2014042815(TeX Live 2013/Arch Linux)。在最后一行(粗体+斜体)中,对于每个西里尔字母字形,我在生成的 PDF 文件中看到类似划掉的矩形的东西。(当我使用 LuaLatex 时,在应该出现粗体+斜体字形的地方什么也没看到。)

正如我所说,我无法判断这是 LinuxLibertine 还是 XeTeX 中的错误。我很高兴收到任何指示/解决方法,因为我希望尽快修复此问题。

答案1

显然,Linux Libertine 的粗斜体字体中没有西里尔字母,但半粗斜体字体中有。因此,一种解决方法是使用半粗体代替粗体:

\documentclass{article}
\usepackage{fontspec}
\begin{document}
\setmainfont[
  Path              = /usr/local/texlive/2014/texmf-dist/fonts/opentype/public/libertine/,
  Extension         = .otf,
  BoldFont          = LinLibertine_RZ,
  ItalicFont        = LinLibertine_RI,
  BoldItalicFont    = LinLibertine_RZI,
]{LinLibertine_R}
\raggedright
Regular: положим\\
Bold: \textbf{положим}\\
Italic: \textit{положим}\\
Bold+Italic: \textit{\textbf{положим}}
\end{document}

在此处输入图片描述

更新

情况已经发生了变化;使用 TeX Live 2017,以下文档无需特殊设置即可显示粗体斜体西里尔文。我还添加了 Libertinus Serif 的相同功能(当然,声明\setmainfont应该只给出一次,并使用首选字体)。

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}

\begin{document}

\raggedright

Regular: положим\\
Bold: \textbf{положим}\\
Italic: \textit{положим}\\
Bold+Italic: \textit{\textbf{положим}}

\setmainfont{Libertinus Serif}

Regular: положим\\
Bold: \textbf{положим}\\
Italic: \textit{положим}\\
Bold+Italic: \textit{\textbf{положим}}

\end{document}

在此处输入图片描述

答案2

Stefan Peev 为 Libertinus Serif 添加了真正的粗斜体西里尔字母。所以最新版本有它们。但请注意,半粗斜体仍然是有缺陷的占位符(如这个答案

因此,你要么确保不使用半粗体,要么使用莱纳斯·利伯蒂尼专为此目的而制作(即只是一个重命名的 Libertinus Serif,没有半粗体)。

相关内容