克尔基斯font 是一种 OpenType 字体,其中有希腊字形 Small Caps,既有常规形状也有粗体形状。OTF 文件的名称为KerkisSmallCaps.otf
和KerkisSmallCaps-Bold.otf
。
当我编译以下示例时,将textbf
被忽略。这并不奇怪,因为只声明了常规字体。
如果我替换KerkisSmallCaps
为KerkisSmallCaps-Bold
,那么(显然)两条线都会使用粗体形状。
\documentclass{article}
\usepackage{fontspec}
\setmainfont[
UprightFont = Kerkis,
ItalicFont = KerkisItalics,
SlantedFont = KerkisItalics,
BoldFont = Kerkisb,
BoldItalicFont = Kerkisbi,
BoldSlantedFont = Kerkisbi,
SmallCapsFont = KerkisSmallCaps]
{Kerkis}
\begin{document}
\textsc{κείμενο στα ελληνικά}
\textbf{\textsc{κείμενο στα ελληνικά}}
\end{document}
问题是,我怎样才能让 xelatex 将第一句排版为常规形状,将第二句排版为粗体?在 fontspec 中应该传递哪些选项?
答案1
我猜想粗体小写字母非常不常见,所以字体规范的作者没有考虑到这一点。作为一种解决方法,您可以单独为粗体小写字母定义一个新的字体命令。
\documentclass{article}
\usepackage{fontspec}
\setmainfont[
UprightFont = Kerkis,
ItalicFont = KerkisItalics,
SlantedFont = KerkisItalics,
BoldFont = Kerkisb,
BoldItalicFont = Kerkisbi,
BoldSlantedFont = Kerkisbi,
SmallCapsFont = KerkisSmallCaps]
{Kerkis}
\newfontface\bfsc{KerkisSmallCaps-Bold}
\begin{document}
\textsc{κείμενο στα ελληνικά}
{\bfsc κείμενο στα ελληνικά}
\end{document}