我有一个 .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'.