在里面allrunes.sty
文档(使用 Metafont),我最近\textlf
第一次看到这个宏。它选择了一种浅色字体,因此与常用命令\textbf
及其同级命令一起\textmd
作为默认的“中等”字体。
在 SX 上搜索“textlf”显示,此字符串也是Minion 专业版,但它在那里打开了衬线数字并且似乎其他一些软件包也具有\textlf
执行相同操作的命令。
- 所以我想知道,支持程度有多普遍
\textlf
,是否存在没有冲突的既定替代方案? - 更一般地说,如果我使用的字体具有多种可用粗细(例如细、浅、半粗、粗、重、黑色……),如何在 Xe-/LuaTeX 中最好地访问它们?
第二个问题是相关的,例如,如果我要为一种 Open Type 字体编写一个支持包,该支持包提供了预定义的\text…
宏,这些宏包装fontspec
了或更确切地说是包装了 中\newfontfamily
不太为人所知的部分。\newfontface
\DeclareTextFontCommand
答案1
在今天早上更新的 texlive 2014 中,我从 grep 获得以下内容(每行末尾的注释中有我的注释):
$ grep "[^a-z]textlf[^a-z]" */*
allrunes/allrunes.sty:\DeclareTextFontCommand{\textlf}{\lfseries}
baskervaldx/Baskervaldx.sty:\DeclareRobustCommand{\textlf}[1]{% lining figures
fbb/fbb.sty:\DeclareRobustCommand{\textlf}[1]{% lining figures
heuristica/heuristica.sty:\DeclareRobustCommand{\textlf}[1]{% lining figures
typeface/typeface.sty: \PassOptionsToPackage{textlf}{MinionPro}% lining figures
xcharter/XCharter.sty:\def\textlf#1{{\lfstyle #1}}% lining figures
$ pwd
/usr/local/texlive/2014/texmf-dist/tex/latex
因此,似乎惯例是\textlf
在所有其他包中使用的地方都表示衬里数字。
答案2
举个例子HelveticaNeue-Light
\documentclass{article}
\usepackage{fontspec}
\setmainfont[
ItalicFont = HelveticaNeue-Italic,
BoldFont = HelveticaNeue-Bold,
BoldItalicFont = HelveticaNeue-BoldItalic]{HelveticaNeue}
\newfontfamily\NHLight[
ItalicFont = HelveticaNeue-LightItalic,
BoldFont = HelveticaNeue-UltraLight,
BoldItalicFont = HelveticaNeue-UltraLightItalic]{HelveticaNeue-Light}
\newcommand\textrmlf[1]{{\NHLight#1}}
\newcommand\textitlf[1]{{\NHLight\itshape#1}}
\let\textbflf\textrm
\newcommand\textulf[1]{{\NHLight\bfseries#1}}
\newcommand\textuitlf[1]{{\NHLight\bfseries\itshape#1}}
\begin{document}
\textrm{foo} \textbf{bar} \textit{baz} \textbf{\textit{foobar}} \par
\textrmlf{foo} \textbflf{bar} \textulf{bar} \textitlf{baz} \textuitlf{foobar}
\end{document}
答案3
标准的 LaTeX 命令是\fontseries{l}\selectfont
,假设您的旧字体是使用官方架构安装的(或者您已经使用 以这种方式设置了您的 OpenType 字体系列fontspec
)。
至少有一个其他包使用不同的命令来选择 Light 粗细:当提供 light 字体作为粗细时,将其声明为 Light。请注意,这有不同的行为,因为它允许分别选择粗细和宽度。因此,例如,如果您当前选择了 Regular Condensed,则会nfssext-cfr
选择Light Condensed,但会选择 Light,因为 LaTeX 将 Light 和 Condensed 合并到系列中。\lgweight
\textlg{}
\lgweight
\fontseries{l}
{lc}