设置更多子系列以生成独特的字体

设置更多子系列以生成独特的字体

我有一个 .otf 字体,打算与 xelatex 一起使用。由于斜体被设置为不同的系列,所以我有 2 种不同的字体:直体版和斜体版。现在,使用 Fontforge,我在“PS 名称”字段中设置了与系列相同的名称,并在“名称 TTF”系列和子系列中设置了相同的名称(在此处输入斜体和粗体斜体),我认为我已经成功地为其他几种字体完成了这些操作。然而,在编译过程中,我收到了

LaTeX Font Warning: Font shape `TU/StempelGaramondLTPro(0)/m/it' undefined
(Font) using `TU/StempelGaramondLTPro(0)/m/n' instead on input line 33.

LaTeX Font Warning: Font shape `TU/StempelGaramondLTPro(1)/m/it' undefined
(Font) using `TU/StempelGaramondLTPro(1)/m/n' instead on input line 50.

文本忽略斜体。我还需要在字体中修复什么?此外,我不知道消息中出现的 TU 指的是什么

谢谢

答案1

您不需要对字体进行任何内部操作,fontspec系统将自动找到所有字体样式:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Stempel Garamond LT Std}
\begin{document}
roman \textit{italic} \textbf{bold} \textbf{\textit{bold italic}}
\end{document}

运行xelatex会产生一个带有嵌入字体的 PDF:

------------------------------------ ----------------- ---------------- --- --- --- ---------
HJSNNY+StempelGaramondLTStd-Roman-Identity-H CID Type 0C       Identity-H       yes yes yes      5  0
ICDNFX+StempelGaramondLTStd-Italic-Identity-H CID Type 0C       Identity-H       yes yes yes      7  0
ALSBZD+StempelGaramondLTStd-Bold-Identity-H CID Type 0C       Identity-H       yes yes yes      9  0
SNVUYL+StempelGaramondLTStd-BoldIt-Identity-H CID Type 0C       Identity-H       yes yes yes     11  0

在此处输入图片描述

otfinfo应该输出类似这样的内容:

voss@shania:~/.fonts/Stempel_Garamond_LT_Std$ otfinfo -i StempelGaramondLTStd-Italic.otf 
Family:              Stempel Garamond LT Std
Subfamily:           Italic
Full name:           StempelGaramondLTStd-Italic
PostScript name:     StempelGaramondLTStd-Italic

除了符号字体名称外,还可以使用文件名,如果字体文件不在系统或 TeX 字体目录中,则必须使用文件名:

\usepackage{fontspec}
\setmainfont{StempelGaramondLTStd}[
  UprightFont=*-Roman,
  ItalicFont=*-Italic,
  BoldFont=*-Bold,
  BoldItalicFont=*-BoldIt,
  Extension=.otf,
  Path=/home/voss/.fonts/Stempel_Garamond_LT_Std/]%  CHANGE to your path

答案2

有了文件名,现在就可以工作了!谢谢!!很奇怪,因为我添加的所有文件都在 /usr/local/share/fonts/opentype/ 中,而且它们都工作正常,所以我确信它们在正确的目录中(我将其添加到 /etc/fonts/conf.d/09-texlive.conf 中)。无论如何,现在几乎所有文件似乎都可以工作了,保存行号。如果我尝试

    \documentclass[a4paper,11pt]{article}
    \usepackage{fontspec}
    \setmainfont{StempelGaramondLTPro}[
      UprightFont=*-Roman,
      ItalicFont=*-Italic,
      BoldFont=*-Bold,
      BoldItalicFont=*-BoldIt,
      Ligatures=TeX,
      Numbers=OldStyle,
      Extension=.otf,
      Path= /usr/local/share/fonts/opentype/StempelGaramondPro/]
    \usepackage{polyglossia}
    \setmainlanguage[babelshorthands=true]{italian}
    \newrobustcmd\lining[1]{{\addfontfeature{Numbers=Lining}#1}}

    \begin{document}
    \lining{1 2 3 4 5 6 7 8 9 0}
    \end{document}
I receive:
* fontspec warning: "icu-feature-not-exist-in-font"
* 
* OpenType feature 'Numbers=Uppercase' (lnum) not available for font
* 'StempelGaramondLTPro-Roman' with script 'Latin' and language 'Default'.

但字体中存在内衬数字: 在此处输入图片描述

相关内容