我已经在我的操作系统上安装了一种开放类型字体,并且想使用 XeLaTeX 在 LaTeX 文档中使用它。
它工作正常,但是当我像这样定义字体系列时:
\ifxetex
\newfontfamily{\neosans}{NeoSans}
\else
\fi
当我使用\selectfont\neosans
它时,只需选择该字体的常规版本。但是,我想使用浅色版本!
就算我写\newfontfamily{\neosans}{NeoSans-Light}
也\newfontfamily{\neosans}{NeoSans Light}
还是选择Regular版本。
我想要使用的字体规格如下(不过是丹麦语):
我的问题是
如何使用浅色版字体?
答案1
我没有 NeoSans,但尝试了另一种字体:
\documentclass{article}
\usepackage{fontspec}
\newfontfamily{\os}{Open Sans}
\newfontfamily{\osl}[UprightFont={* Light}]{Open Sans}
\begin{document}
{Normal: \os Open Sans\par}
{Light: \osl Open Sans Light\par}
\end{document}
你看第二行确实选择了浅色版本。
请注意,这\selectfont
不是必需的(并且不执行任何操作)。
在您的情况下,您可能还想更改斜体和粗体版本:
\newfontfamily{\neosans}
[Ligatures=TeX, % recommended
UprightFont={* Light},
ItalicFont={* Light Italic},
BoldFont={* Medium},
BoldItalicFont={* Medium Italic}]
{NeoSans}
如果您希望将 NeoSans 用作标准无衬线字体,则不要这样\newfontfamily{\neosans}
写\setsansfont
:
\setsansfont
[Ligatures=TeX, % recommended
UprightFont={* Light},
ItalicFont={* Light Italic},
BoldFont={* Medium},
BoldItalicFont={* Medium Italic}]
{NeoSans}
答案2
许多人会建议不要在同一文档中混合使用同一种字体的多种粗细,但 LaTeX 确实为 Light(){l}
以及{el}
、{ul}
、{sb}
和标准化了字体系列名称。{eb}
{ub}
因此,这个替代方案可能(我还没有测试过)让屏幕截图中的所有样式都作为同一系列的一部分。
\newfontfamily\neosans{NeoSans}[
% Ligatures = ..., etc.
UprightFont = *-Regular ,
ItalicFont = *-Italic ,
BoldFont = *-Bold ,
BoldItalicFont = *-BoldItalic ,
FontFace = {l}{n}{*-Light},
FontFace = {l}{it}{*-LightItalic},
FontFace = {sb}{n}{*-Medium},
FontFace = {sb}{it}{*-MediumItalic},
FontFace = {eb}{n}{*-Black},
FontFace = {eb}{it}{*-BlackItalic},
Extention = .otf ]
这假定您正在加载的具有 PostScript 轮廓的字体fontspec
具有*.otf
扩展名。
选择除常规或粗体之外的粗细的标准 LaTeX 命令是,例如为了方便\fontseries{eb}\selectfont
和与其他一些软件包的兼容性,您可以定义如下命令:
\DeclareRobustCommand{\sbseries}{\fontseries{sb}\selectfont}
\DeclareTextFontCommand{\textsb}{\sbseries}
\DeclareRobustCommand{\ebseries}{\fontseries{eb}\selectfont}
\DeclareTextFontCommand{\texteb}{\ebseries}
\DeclareRobustCommand{\ltseries}{\fontseries{l}\selectfont}
\DeclareTextFontCommand{\textlt}{\ltseries}
\ltseries
这使得您可以按照自己的意愿\bfseries
或\texteb{foo}
意愿进行书写\textmd{foo}
。