Sile的字体设计测试类。
FONTPROFFRAVER使您能够生产PDF字体测试文档,而无需摆弄Indesign或其他手动页面布局或文字处理程序。您可以应用预定的测试文档之一(稍后添加),也可以使用Fontproof来构建自己的自定义字体测试文档。
请注意,Fontproof是一个正在进行的工作,因此有很多尚不正常的工作,或者效果不佳。出于您自己的风险使用,并帮助我们使其变得更好。
FONTPROOX需要Sile排水器。您需要根据该软件包的说明安装Sile。
请注意,Sile正在迅速变化。当前类是为版本的0.14.0或更新的版本开发和测试的。为了支持较旧版本的Sile,请参阅Fontproff的较旧版本。
Fontproof的安装主要是通过Lua Rocks完成的:
$ luarocks install fontproof假定Sile V0.14.0或更新的工作安装,但在安装时间未检查。
您也可以从源目录手动安装:
$ luarocks make 通过自己的CLI完成运行Fontproof:
$ fontproof --help
Usage: fontproof [OPTIONS] [--] [SILEARGS-1 [SILEARGS-2 [...]]]
ARGUMENTS:
SILEARGS All remaining args are passed directly to SILE
(optional)
OPTIONS:
-F, --family=VALUE Specify the font to be tested as a family name
(ignored if --filename used)
-f, --filename=VALUE Specify the font to be tested as a path to a
font file
-o, --output=FILE output file name
-p, --features=VALUE Specify the test font features
-s, --size=VALUE Specify the test font size
-S, --style=VALUE Specify the test font style (ignored if
--filename used)
-t, --template=VALUE Use the bundled template by name (full,
gutenberg, test, unichar);
-w, --weight=VALUE Specify the test font weight (ignored if
--filename used)
-h, --help display this help, then exit
-v, --version display version information, then exit 开箱即用的四个起动器模板。为了适应它们,最好的办法可能是复制与您打算亲自进行修改的最相似的方法。模板的主要功能是它使用Fontproof类。它定义的专业命令的使用是基于需求的。
例如:
$ cp /usr/local/share/lua/ < version > /fontproof/templates/full.sil mytemplate.sil
$ fontproof -- mytemplate.sil在这一点上,有一个主要模板-fpfull.sil-但会有更多模板。该模板几乎可以向您显示Fontprove的所有功能。 Sile本身具有远,更遥远的能力,非常欢迎您与之相处。
作为使用Fontproof的替代方法,可以从Docker Hub或带有Sile的Github容器注册表和Fontproof Class插入并准备使用的Github容器注册表中获得。发布的版本被标记为匹配(例如v2.0.5 ),最新版本将标记为latest ,并且最新鲜的开发版本也可以使用master标签。为了有用,您需要告诉Docker Run命令一种到达源文档的方法(因此,还可以给它一个写入输出的地方),并告诉您您在主机上是谁,以便可以使用预期的所有权属性来创建容器内部生成的输出。您可能会发现最容易与这样的别名运行:
$ alias fontproof= ' docker run -it --volume "$(pwd):/data" --user "$(id -u):$(id -g)" siletypesetter/fontproof:latest '
$ fontproof proofs.sil 任何可以使用Docker Images作为工作跑步者的远程CI系统都可以配置为运行Fontproof Wosp。此外,在市场上还提供现成的GitHub动作:
name : FontProof
on : [push, pull_request]
jobs :
fontproof :
runs-on : ubuntu-latest
name : FontProof
steps :
- name : Checkout
uses : actions/checkout@v4
- name : FontProof
uses : sile-typesetter/fontproof@latest
with :
args : proofs.sil将您的存储库添加到.github/workflows/fontproof.yml中。该工作流程假设您的项目具有源文件proofs.sil ,将留下fontproof.pdf 。请注意,除latest版本外,关于Docker的部分中有关Docker的评论在此处同样适用,但是GitHub Actions使用@ Separator而不是Docker's :
每个模板都可以包含完整的测试选择。使用此通用格式的命令指定每个测试:
commandname[set of parameters]{text to be typeset}
某些测试可能只有参数,或者仅具有文本,或者既不具有文本,否则在本身内部本身支持的示例中:
pangrams
有关Sile运行命令的更多详细信息,请参见Sile手册。
默认情况下,运行的头列出了文件名,字体(家庭或文件名),日期和时间。内容无法(当前)可配置,但是您可以使用setRunHeadStyle命令设置字体和大小。请注意,这与测试字体无关。
%setRunHeadStyle[filename="Example-Bold.ttf", size="12pt"]
添加一个部分和小节标题:
section{Heading text}
subsection{Heading text}
这些样式目前不可配置,但是您可以通过更改类/fontproof.lua的设置来手动调整所有fotproffood文档。
支持以下类型的测试,并在fpfull.sil中进行了说明:
有关指定这些指定命令的详细信息如下。
Fontproof IS版权所有©2016 SIL International,并获得了MIT许可证的许可。顺便说一句 - 尽管名称相似,但Sile本身并未由SIL International开发,尽管我们非常喜欢该项目。非常欢迎您为Fontprove和Sile做出贡献。
这些命令当前得到支持。
这是主要的Fontproof命令,可用于设置简单的测试文本和瀑布。可选参数包括字体(由家族或文件名)和尺寸。您还可以在此处设置测试标题,而不是使用单独的section命令。
proof{This is basic proof text using the test font}
proof[family="Gentium Plus",heading=A basic family test]{This is basic text with a font defined by family}
proof[size="10pt",filename="Example-Light.ttf",heading=A basic filename test]{This is another basic text with common parameters}
proof[size="10pt,11pt,12pt,16pt"]{This is basic proof text in a range of sizes}
proof[size="10,11,12,13,20"]{This is basic proof text in a range of sizes with numbers only}
proof[features="Ligatures=Rare, Ligatures=Discretionary"]{This is a proof with rare ligatures turned on}
proof[features="+dlig,+hlig"]{This is a proof with features manipulated manually}
proof[language="grk",direction = "rtl"]{Here are some options which are passed on to the font command}
proof[color="green"]{Here are some options which are passed on to the color command}
proof[shapers="ot,fallback"]{Here we pass a list of subshapers to Harfbuzz}
这会产生多个文本的副本,其中包含一系列字符在关键位置替换。这些有时称为“帧测试”。传统上,这种类型的常见测试是“ Hobonop”测试。 ABCD的字母的“霍霍普”看起来像:
haoabaoAnaoap hbobbbobnbobp hcocbcocncocp hdodbdodndodp
生产此产品的命令是:
pattern[chars="@",reps="abcd"]{h@o@b@o@n@o@p}
这定义了一个占位符角色,然后定义了用于替换其的字母集,然后是包含占位符的文本模式。
您也可以使用多个占位持有人来创建所有组合,如:
OOAXOO OOBXOO OOCXOO
Ooayoo oobyoo oocyoo
这样做的命令是:(请确保准确地遵循该语法,否则您可能会遇到非常令人困惑的错误!)
pattern[chars="@,#",reps="abc,xy"]{oo@#oo}
Sile和Lua有些特殊的角色,不应用作字符。 (在这里,建议安全的列表将是一个很好的补充!)使用代表中的角色也是一个坏主意。
pattern命令还有另一个可选参数:
证明这一点比解释要容易。首先是格式化的示例,然后是生成它的命令:
OOAXOO OOBXOO OOCXOO
Ooayoo oobyoo oocyoo
pattern[chars="@,#",reps="abc,xy",format="table"]{oo@#oo}
Ooaxoo
OOBXOO
oocxoo
哦
Oobyoo
oocyoo
pattern[chars="@,#",reps="abc,xy",format="list"]{oo@#oo}
Ooaxoo Oobxoo Oocxoo Ooayoo Oobyoo Oocyoo
pattern[chars="@,#",reps="abc,xy",format="para"]{oo@#oo}
这很酷!假设您有一组字母,您想在多个模式测试中使用,但不想一遍又一遍地定义它们。您可以将这些定义为具有特定名称的模式组。请注意,您必须在文档中定义这些组,然后再参考它们。另请注意,此命令本身并未在页面上真正产生任何内容。它仅对以后的pattern命令有用。
patterngroup[name="vowels"]{aeiou}
在pattern命令前缀“ group_”的组名称中引用此内容,然后在reps参数中使用。例如:
pattern[chars="@,#",reps="group_vowels,xy",format="table"]{oo@#oo}
如下所示,还有一些预定义的组。您还可以在包装/fontproofgroups.lua中定义自己的永久组。
| 组名 | 描述 |
|---|---|
| group_az | 基本小写字母 |
| group_az | 基本大写字母 |
| group_combdiacs | 基本结合变量 |
| group_09 | 基本数字 |
| group_punct | 基本标点符号 |
Fontproof包括一系列内置测试文本。将proof或pattern命令的内容设置为以下任何预设text_xxxx名称。您也可以在包装/fontprooftrooftexts.lua中添加自己的文本。
| 内容 | 描述 |
|---|---|
| text_az | 基本小写字母 |
| text_az | 基本大写字母 |
| text_combdiacs | 基本结合变量 |
| text_spacingdiacs | 基本的间距变音符 |
| text_09 | 基本数字 |
| text_numsym | 数字和相关符号 |
| text_nummath | 数学符号 |
| text_symbols | 常见符号 |
| text_punct | 基本标点符号 |
| text_pangram | 简单的pangram |
| text_verne | 摘自海底20,000个联赛 |
| text_vernecaps | 大写版本 |
| text_reveng | 启示录7(英语)摘录 |
| text_revfin | 启示录7(芬兰)的摘录 |
| text_revger | 启示录7(德语)摘录 |
| text_revdut | 启示录7(荷兰)摘录 |
| text_revind | 启示录7(印度尼西亚)摘录 |
| text_revswa | 启示录7(斯瓦希里语)的摘录 |
| text_arrowroot | 传统字体测试文本 |
| text_capslower | 拉丁首都针对小写的键字母 /o和 /n |
| text_bringhurst | 来自Bringhurst的“印刷风格元素”的Kerning测试 |
| text_allkernpairs | 包含拉丁上下案例字母的所有组合的文本 |
| text_jafkerns | 来自另一个铸造厂的文本生成器的Kerning测试 |
这使用字典来产生由真实单词组成的垃圾文本,类似于lorem 。但是,这些单词只会包含您提供的集合的字母:
adhesion[characters=hamburgefonsiv]
可选的参数是words ,单词数( dict为120),以及字典文件的路径。如果未提供dict选项,则该类外观/usr/share/dict/words和/usr/dict/words 。如果单词文件仅包含指定的字符,则从字典文件中选择单词。
这是从项目Gutenberg Project下载的文本。
gutenberg[id=100] % The complete works of Shakespeare
排版Pi的一些数字:
pi[digits=500]
这会产生一个简单的未排序表,该表将显示一系列Unicode和代表该范围内USV的任何字形。
一些例子:
unicharchart[type="all",columns="12",rows="16"]
这会产生一个表,该表显示了字体中的每个编码字符,格式为表格,增加了USV下降的列,每列16个字符,最多12列,然后分解为新表格。这与Unicode标准代码图中的表非常相似,并且可能是简单unicharchart的默认设置。
unicharchart[type="range",start="AA80",end="AADF"]
除了显示给定的USV范围外,这会产生相同的情况。
这些在Sile中的工作即使没有Fontprood,尽管您需要加载它们script[src=packages/specimen] 。
这会产生一组预定义的pangrams。
这会产生垃圾lorem ipsum文本,并指示单词数。
这会产生一个很好的布置表中字体上所有字形的表格。
以下是一些命令,我们希望有一天能提供建议的命令格式。有些可能永远不会实施。欢迎建议!
我们希望看到更多的潜在参数proof :
proof[
size = "10, 11/13, 12/16",
columns = 3,
lines = 12
]{Text}
哦!