有人刚刚向我建议另一个问题考虑一两个\fontfamily{...}\fontseries{...}
组合;但我不太喜欢这些选项。我如何检查全部我的系统上是否已安装/提供此类组合?
笔记:我可以在 LaTeX 之外执行此操作,例如从 shell 或甚至使用某些特定于 TeX 分发的机制(我使用 TeXLive) - 如果没有更好的选择。
答案1
答案2
字体描述通常保存在.fd
文件中(但这不是强制性的,有些包可能会直接在.sty
文件中定义字体)。
shell 命令
fd '^[tT]1.*\.fd$' /usr/local/texlive/2017/texmf-dist/tex/latex | wc -l
(fd
是一个提供比 ) 返回 555 更简单的接口的脚本find
。
因此,有 555 种字体系列支持 T1 编码(有 502 种字体系列支持 OT1 编码,具有类似的命令行)。
现在,您的任务是查看.fd
您感兴趣的每个文件,并提取与字体系列中提供的形状和系列相关的信息。例如,T1Roboto-LF.fd
包含
%% Generated by autoinst on 2015/09/15
%%
\ProvidesFile{T1Roboto-LF.fd}
[2015/09/15 (autoinst) Font definitions for T1/Roboto-LF.]
\expandafter\ifx\csname Roboto@scale\endcsname\relax
\let\Roboto@@scale\@empty
\else
\edef\Roboto@@scale{s*[\csname Roboto@scale\endcsname]}%
\fi
\DeclareFontFamily{T1}{Roboto-LF}{}
\DeclareFontShape{T1}{Roboto-LF}{l}{sc}{
<-> \Roboto@@scale Roboto-Light-lf-sc-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{l}{n}{
<-> \Roboto@@scale Roboto-Light-lf-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{l}{it}{
<-> \Roboto@@scale Roboto-LightItalic-lf-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{l}{scit}{
<-> \Roboto@@scale Roboto-LightItalic-lf-sc-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{l}{scsl}{
<-> ssub * Roboto-LF/l/scit
}{}
\DeclareFontShape{T1}{Roboto-LF}{l}{sl}{
<-> ssub * Roboto-LF/l/it
}{}
\DeclareFontShape{T1}{Roboto-LF}{k}{sc}{
<-> \Roboto@@scale Roboto-Black-lf-sc-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{k}{n}{
<-> \Roboto@@scale Roboto-Black-lf-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{k}{it}{
<-> \Roboto@@scale Roboto-BlackItalic-lf-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{k}{scit}{
<-> \Roboto@@scale Roboto-BlackItalic-lf-sc-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{k}{scsl}{
<-> ssub * Roboto-LF/k/scit
}{}
\DeclareFontShape{T1}{Roboto-LF}{k}{sl}{
<-> ssub * Roboto-LF/k/it
}{}
\DeclareFontShape{T1}{Roboto-LF}{b}{sc}{
<-> \Roboto@@scale Roboto-Bold-lf-sc-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{b}{n}{
<-> \Roboto@@scale Roboto-Bold-lf-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{b}{it}{
<-> \Roboto@@scale Roboto-BoldItalic-lf-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{b}{scit}{
<-> \Roboto@@scale Roboto-BoldItalic-lf-sc-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{b}{scsl}{
<-> ssub * Roboto-LF/b/scit
}{}
\DeclareFontShape{T1}{Roboto-LF}{b}{sl}{
<-> ssub * Roboto-LF/b/it
}{}
\DeclareFontShape{T1}{Roboto-LF}{mb}{sc}{
<-> \Roboto@@scale Roboto-Medium-lf-sc-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{mb}{n}{
<-> \Roboto@@scale Roboto-Medium-lf-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{mb}{it}{
<-> \Roboto@@scale Roboto-MediumItalic-lf-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{mb}{scit}{
<-> \Roboto@@scale Roboto-MediumItalic-lf-sc-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{mb}{scsl}{
<-> ssub * Roboto-LF/mb/scit
}{}
\DeclareFontShape{T1}{Roboto-LF}{mb}{sl}{
<-> ssub * Roboto-LF/mb/it
}{}
\DeclareFontShape{T1}{Roboto-LF}{m}{sc}{
<-> \Roboto@@scale Roboto-Regular-lf-sc-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{m}{n}{
<-> \Roboto@@scale Roboto-Regular-lf-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{m}{it}{
<-> \Roboto@@scale Roboto-Italic-lf-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{m}{scit}{
<-> \Roboto@@scale Roboto-Italic-lf-sc-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{m}{scsl}{
<-> ssub * Roboto-LF/m/scit
}{}
\DeclareFontShape{T1}{Roboto-LF}{m}{sl}{
<-> ssub * Roboto-LF/m/it
}{}
\DeclareFontShape{T1}{Roboto-LF}{t}{sc}{
<-> \Roboto@@scale Roboto-Thin-lf-sc-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{t}{n}{
<-> \Roboto@@scale Roboto-Thin-lf-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{t}{it}{
<-> \Roboto@@scale Roboto-ThinItalic-lf-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{t}{scit}{
<-> \Roboto@@scale Roboto-ThinItalic-lf-sc-t1
}{}
\DeclareFontShape{T1}{Roboto-LF}{t}{scsl}{
<-> ssub * Roboto-LF/t/scit
}{}
\DeclareFontShape{T1}{Roboto-LF}{t}{sl}{
<-> ssub * Roboto-LF/t/it
}{}
\DeclareFontShape{T1}{Roboto-LF}{bx}{sl}{
<-> ssub * Roboto-LF/b/sl
}{}
\DeclareFontShape{T1}{Roboto-LF}{bx}{scsl}{
<-> ssub * Roboto-LF/b/scsl
}{}
\DeclareFontShape{T1}{Roboto-LF}{bx}{sc}{
<-> ssub * Roboto-LF/b/sc
}{}
\DeclareFontShape{T1}{Roboto-LF}{bx}{n}{
<-> ssub * Roboto-LF/b/n
}{}
\DeclareFontShape{T1}{Roboto-LF}{bx}{it}{
<-> ssub * Roboto-LF/b/it
}{}
\DeclareFontShape{T1}{Roboto-LF}{bx}{scit}{
<-> ssub * Roboto-LF/b/scit
}{}
\endinput
字体提供了该系列
l
(光)k
(黑色的)b
(大胆的)mb
(中等粗体)m
(中号或普通号)t
(薄的)
并定义bx
为 的别名b
。
m
除了和之外,描述符b
本质上是任意字符串。LaTeX 字体指南 ( texdoc fntguide
) 仅列出了一些“常见”值。字体包调用的内容k
可能与另一个字体包调用的内容非常不同。
答案3
这个网站可能会有帮助。有助于检查可用的字体。
答案4
这个列表比这个还要长。它是开放式的。答案是 x。
现在 xelatex 和 lualatex 可以访问系统字体,而不仅仅是 tex/latex 字体,列表已经大大增加了。
更远,
假设我使用该fontspec
包并定义一个字体系列\setromanfont{Noto Serif}[
,然后命名其中一个系列仢ul
并为该系列分配一个不相关的字体,FontFace={仢ul}{n}{Font=SimSun},
并且我多次执行此操作,
并且有
\DeclareRobustCommand{\仢ulseries}{\fontseries{仢ul}\selectfont}
和
\DeclareTextFontCommand{\仢textul}{\仢ulseries}
然后调用该系列
\仢textul{\sampletext} {\仢ulseries \sampletext}
其中\sampletext
定义为
\newcommand\sampletext{了亶他件}
我可以根据需要对任意数量的系列(和形状)进行此操作,
然后我得到
但该列表会受到系统约束的限制。