是否(不常见)来自箭头类型的新字体的更新?
?注册箭头类型新闻通讯! ?
在Instagram上关注@arrowtype!
在递归网络标本上了解更多信息→

递归SANS&MONO是一个用于更好的代码和UI的可变类型系列。它的灵感来自休闲脚本签名,但主要旨在满足编程环境和应用程序接口的需求。
在编程中,“递归”是一个函数自我调用的时候,将其自己的输出作为输入来产生强大的结果。递归单声道被用作帮助构建自身的工具:它用于编写Python脚本以自动化类型生产工作并生成样品图像,并且在HTML,CSS和JS中使用了它来创建基于Web的证明和原型。通过这种活跃的用法,递归单声道被制成是有趣的,而且对全天工作非常有用。
递归不从其父单单声道借用字形,但调整了许多关键字形的宽度,以使其具有舒适的可读性。它的指标非常复杂- 每种样式都占据了所有样式的水平空间。在此3轴变量字体中,这允许体重,倾斜和“表达”(随意到严格的字母形式)之间的流体过渡,所有这些都没有文本移动或布局回流。这不仅允许UI中的新互动可能性,而且还带来了独特的发行版本体验。
递归设计的使用修改后的Google字体拉丁专家角色集,其中包括货币和数学的许多有用符号(有关更多详细信息,请参见字符集注释),以及对以下语言的支持:
Abenaki, Afaan Oromo, Afar, Afrikaans, Albanian, Alsatian, Amis, Anuta, Aragonese, Aranese, Aromanian, Arrernte, Arvanitic (Latin), Asturian, Atayal, Aymara, Azerbaijani, Bashkir (Latin), Basque, Belarusian (Latin), Bemba, Bikol, Bislama, Bosnian, Breton, Cape Verdean Creole, Catalan, Cebuano, Chamorro, Chavacano, Chichewa, Chickasaw, Cimbrian, Cofán, Cornish, Corsican, Creek, Crimean Tatar (Latin), Croatian, Czech, Danish, Dawan, Delaware, Dholuo, Drehu, Dutch, English, Esperanto, Estonian, Faroese, Fijian, Filipino, Finnish, Folkspraak, French, Frisian, Friulian, Gagauz (Latin), Galician, Ganda, Genoese, German, Gikuyu, Gooniyandi, Greenlandic (Kalaallisut), Guadeloupean Creole, Gwich’in, Haitian Creole, Hän, Hawaiian, Hiligaynon, Hopi, Hotcąk (Latin), Hungarian, Icelandic, Ido, Igbo, Ilocano, Indonesian, Interglossa, Interlingua, Irish, Istro-Romanian, Italian, Jamaican, Javanese (Latin), Jèrriais, Kaingang, Kala Lagaw Ya, Kapampangan (Latin), Kaqchikel, Karakalpak (Latin), Karelian (Latin), Kashubian, Kikongo, Kinyarwanda, Kiribati, Kirundi, Klingon, Kurdish (Latin), Ladin, Latin, Latino sine Flexione, Latvian, Lithuanian, Lojban, Lombard, Low Saxon, Luxembourgish, Maasai, Makhuwa, Malay, Maltese, Manx, Māori, Marquesan, Megleno-Romanian, Meriam Mir, Mirandese, Mohawk, Moldovan, Montagnais, Montenegrin, Murrinh-Patha, Nagamese Creole, Nahuatl, Ndebele, Neapolitan, Ngiyambaa, Niuean, Noongar, Norwegian, Novial, Occidental, Occitan, Old Icelandic, Old Norse, Onĕipŏt, Oshiwambo, Ossetian (Latin), Palauan, Papiamento, Piedmontese, Polish, Portuguese, Potawatomi, Q’eqchi’, Quechua, Rarotongan, Romanian, Romansh, Rotokas, Sami (Inari Sami), Sami (Lule Sami), Sami (Northern Sami), Sami (Southern Sami), Samoan, Sango, Saramaccan, Sardinian, Scottish Gaelic, Serbian (Latin), Seri, Seychellois Creole, Shawnee, Shona, Sicilian, Silesian, Slovak, Slovenian, Slovio (Latin), Somali, Sorbian (Lower Sorbian), Sorbian (Upper Sorbian), Sotho (Northern), Sotho (Southern), Spanish, Sranan, Sundanese (Latin), Swahili, Swazi, Swedish, Tagalog, Tahitian, Tetum, Tok Pisin, Tokelauan, Tongan, Tshiluba, Tsonga, Tswana, Tumbuka, Turkish, Turkmen (Latin), Tuvaluan, Tzotzil, Uzbek (Latin), Venetian, Vepsian, Vietnamese, Volapük, Võro, Wallisian, Walloon, Waray-Waray, Warlpiri, Wayuu, Welsh, Wik-Mungkan, Wiradjuri, Wolof, Xavante, Xhosa, Yapese, Yindjibarndi, Zapotec, Zarma, Zazaki, Zulu, Zuni
当您考虑使用字体时,字体许可证是您应该寻找和阅读的第一件事。它概述了您如何同意使用字体,并且字体许可在不同类型的项目和类型铸造厂之间有所不同。
递归项目由SIL Open Font许可证v1.1获得许可。这是一个免费的软件许可证,可让您在一组条件下使用字体软件。有关权限,条件和免责声明的详细信息,请参考许可证的全文。
简单的方法:在字体书中打开字体文件,然后单击“安装字体”。
好方法:
<yourusername>/Library/Fonts双击TTF文件,然后选择“安装”。
要安装许多静态字体文件(这些可能在Microsoft Word和PowerPoint等应用中更好地工作):
static_fonts文件夹,然后进入单声道或sans static_otf文件夹。这是一个很大的话题,但是有几个好指南来自MDN和CSS-Trooks。
通常,您应该使用@font-face链接在字体中,请确保使用font-weight: 300 1000;指定字体的重量范围:
@font-face {
font-family: 'Recursive';
src: url('path/to/font/<UPDATE_SPECIFIC_FONT_PATH>.woff2') format('woff2-variations');
font-weight: 300 1000;
}
然后,您可以将字体与font-weight和font-variation-settings一起使用!
笔记:
MONO和CASL是“未注册”的轴(当前不在微软的官方变化轴和规格中),因此这些标签必须在全盘中使用,并通过font-variation-settings控制。font-style来控制slnt和CRSV轴,但是这些浏览器支持问题(截至2019年10月,但工具正在迅速发展以更好地支持变量字体,因此随着时间的推移会改善!),这些功能在font-variation-settings中都可以改善。font-variation-settings - 在Pixel Ambacht的《奇妙教程》中阅读有关此技术的更多信息。 在代码编辑器中使用递归的主要方法有两种:
安装Rec Mono字体(在发行下载的“ recursive_code”文件夹中找到)。这些具有预先应用的代码连接和几个样式集,因此默认情况下它们在大多数代码环境和应用程序中都可以使用。这些也被命名和配置的方式可以使它们在使用斜体和粗体样式的代码主题中使用。如果您希望在Rec Mono字体中配置特定功能(例如虚线0或单层g ),请参见递归代码配置。
这些字体比上面的“代码”字体更传统的方式构建,因此它们在某些情况下可能会稍微更好。不过,有利弊:代码连接在许多仅单拼音应用程序中的“代码”字体中效果更好。在MACOS 11之前的Mac上,这些在具有斜体样式的主题中不起作用 - 请参见上文的“代码”字体。而且,如果需要的话,“代码”字体可允许您进行更多的自定义!
要使用标准的DeckTop字体,请安装桌面Recursive Mono字体(在发行下载的“ Recursive_desktop”文件夹中找到)。然后,如果您的代码编辑器允许使用此功能,请激活它们并设置Opentype功能。有关三个编辑的说明。
总而言之,打开编辑器设置并设置字体家庭。这些家族名称缩短了,因为长字体名称可能会在某些环境中导致错误。主要缩写如下:
Mn表示单声道(单层/固定宽度)Sn表示sans (比例/自然宽度)Csl意味着休闲Lnr表示线性St表示静态(与变量相反,例如完整的递归变量字体)因此,您将几乎将编辑器设置为使用Recursive Mn Csl St或Recursive Mn Lnr St 。
在设置中,搜索Font Family ,然后指定要使用的家庭。
用于递归单休式常规:
"Recursive Mn Csl St", Menlo, "Apple Color Emoji", monospace
用于递归单线性常规:
"Recursive Mn Lnr St", Menlo, "Apple Color Emoji", monospace
然后,如果需要,您可以通过在设置中搜索fontLigatures来激活OpenType功能,然后在设置中进行编辑。
"editor.fontLigatures" : " 'ss01','ss05','dlig' " (以上将为您提供简化的6和9 ,一个单层a ,并激活代码连接。)
在菜单栏中,转到Atom > Stylesheet并添加以下内容:
atom-text-editor {
font-family : 'Recursive Mn Csl St' ; /* This sets the font family*/
font-feature-settings : "ss01" , "ss05" , "dlig" ; /* This sets OpenType features, if you want to set them. */
}使用font-family: 'Recursive Mn Lnr St';获得线性家庭。
转到Sublime Text > Preferences - > Settings ,然后将font_face设置为您希望使用的样式的特定Postscript名称。
用于递归单休式常规:
"font_face" : " Recursive Mn Csl St " ,用于递归单线性常规:
"font_face" : " Recursive Mn Lnr St " ,要控制代码连接或其他Opentype功能,请将font_options设置为“这样:
"font_options" : [ " ss01 " , " ss05 " , " dlig " ],因此,完整的设置可能看起来像这样:
{
"font_face" : " Recursive Mn Lnr St " ,
"font_size" : 24 ,
"theme" : " Adaptive.sublime-theme "
}递归具有以下轴:
| 轴 | 标签 | 范围 | 默认 | 描述 |
|---|---|---|---|---|
| 单层 | MONO | 0到1 | 0 | sans(自然宽度)到单声道(固定宽度) |
| 随意的 | CASL | 0到1 | 0 | 线性到休闲 |
| 重量 | wght | 300至1000 | 300 | 光到露天。可以使用通常的字体重量属性来定义。 |
| 倾斜 | slnt | 0至-15 | 0 | 直立(0°)倾斜(约15°) |
| 草书 | CRSV | 0、0.5或1 | 0.5 | 始终罗马(0),自动(0.5)或始终草书(1) |
轴定义,递归
单拼音单MONO -0至1。将字形宽度从比例或“ sans”(0)(0)或固定宽度或“单声道”(1)调节。
建议用途:通常,比例设计在文本和UI中更可读,而单拼设计更适合代码和文本,在该代码和文本中,在该代码和文本中尤其重要(例如密码,ID号,表格数据等)。
休闲CASL -0至1。调整字形的表达方式或“流派”。在递归中,从线性(0)到休闲(1)。
推荐用途:线性样式具有与被归类为线性的字体相似的结构,将人道主义者的方面与合理的,紧凑的平面字母形式合并。这种常规的,熟悉的结构使其适用于需要重点的长形式文本(例如段落,完整的代码文档和有力的头条新闻)。休闲风格的灵感来自单冲程休闲招牌,但尺寸为小。它在需要温暖而诱人的音调的较短形式文本中最有用(例如,博客文章标题,商店标牌和计算机终端)。
重量wght -300至1000。字母的整体厚度和与之构成的文本的黑暗。值得注意的是,在递归中,重量轴不影响字形宽度。大胆的重量也具有与轻重量相同的空间,即使是MONO的比例样式。
推荐使用:重量的差异可以在文本中重点,显示用户互动或调整通信语调。对于黑暗背景上的浅文本,400(“常规”)往往适用于文本和代码。对于在光背景上的深色文本,将重量调整到500(“媒介”)可能是有益的。
为什么不是等级轴?请参阅第365期
Slant slnt - 0至-15。字母的“前进”。注意: -15 (负15)对应于15°顺时针倾斜,这是由于设计的根源在几何形状中。如果斜体轴默认值为默认值,则经过-13.99的倾斜度将激活“草书”字母,将它们转换为简化的形式,例如简化的“单个故事” a和g
推荐用途:使用Slant作为强调文本或不同印刷音调的次要方法。在文本中,使用大约-9的部分倾斜可能很有用,而在显示尺寸时,您可以期望在0或-15处最精确的轮廓。您还可以在没有字母形式或更改字形宽度的情况下从0到-13动画,这非常适合诸如悬停链接或按钮之类的东西。
草书CRSV - 0、0.5或1。控制沿倾斜轴的草书形式的取代。 “ OFF”(0)维护罗马字母形式,例如“双层” a和g ,“自动”(0.5)允许草书替代,并且“ ON”(1)即使在倾斜为0的直立文本中也声明了草书。
推荐使用:使用草书作为第三级方式来强调文本,或者作为对动画文本进行更多控制的一种方式(例如,用用户互动时倾斜的超链接可以通过草书0或1进行样式来防止Glyph替代的突然变化)。
通常,递归用于小型到中等大小的用法,尤其是在屏幕上。但是,了解哪些风格范围在什么情况下效果最好。一些值得了解的准则:
| 样式范围 | 建议的尺寸 | 推荐用例 |
|---|---|---|
| 休闲0 (线性) ,重量300–800 (光线 - 脱落) | 8px至72px | 一般用途(特别是对于更长的文本) |
| 休闲1 (休闲) ,体重300-800 (光线 - 脱落) | 14px至72px | 一般用途(更多个性) |
| 权重801–900 (黑色– trablack) | 32px至144px | 头条新闻,显示版式 |
| 休闲和倾斜的中间值 | 10px至40px | 文字良好,但在显示尺寸上看起来不太好 |
要注意的事情:
CASL和slnt值。如果您坚持设计应用程序中的命名实例(例如Mono Casual Bold Italic等),则可以自动为您处理。递归具有许多Opentype功能,使其易于控制一些方便的印刷功能。

要构建,设置虚拟环境
virtualenv -p python3 venv
然后激活它:
source venv/bin/activate
然后安装要求:
pip install -U -r requirements.txt
还:
pip install git+https://github.com/LettError/DesignspaceProblems
字体是使用mastering/build.py脚本构建的。该脚本可以构建所有内容( python build.py --all )或字体的子集。要查看所有选项,请键入python build.py -h查看所有选项。建议的构建过程如下详细介绍。
注意:只需准备源文件( mastering/prep_fonts.py ),构建源文件( mastering/build_files.py ),生成变量字体( mastering/build_variable.py ),并生成静态字体( build_static.py )。如果您只想对构建文件做一件事情,这些脚本可能会很方便。每个都采用一组命令行参数,所有记录(键入python <script_name> -h )以查看文档。
首先,准备字体
在开始之前,将您的工作目录更改为mastering 。
cd mastering
python build.py --files是第一步。这将生成构建变量和静态字体所需的所有文件。您可能希望使用此命令( python build.py --version 1.085 --files )给字体编号。要仅准备可变字体的文件,请使用python build.py --varfiles或仅准备静态字体的文件,请使用python build.py --statfiles 。
生成文件后(请注意,静态实例需要一点时间才能生成),您将需要查看mastering/build/static/CFF/checkoutlines.txt文件。这是Checkoutlinesufo的报告(编辑以删除不需要注意的问题)。本报告中发现的问题应在静态不明飞行物中清理。许多问题是由于删除重叠而引起的。没有什么是完美的,重叠的删除算法。
构建变量字体
要构建可变字体,请运行:
# activate venv, install dependencies, cd mastering
version=1.085 # (replace version number)
python build.py --varfiles --version $version
python build.py --variable --version $version构建静态字体
要构建所有静态字体,请运行:
# activate venv, install dependencies, cd mastering
version=1.085 # (replace version number)
python build.py --statfiles --version $version
python build.py --static --version $version构建所有字体
如果您想构建所有字体的所有源,字体和WOFF2版本:
# activate venv, install dependencies, cd mastering
python build.py --all --version 1.085 # (replace version number)获取通知(仅MAC)
添加选项--pync (简称-p )到脚本调用以获取MAC通知,如果您在构建运行时正在从事其他任务,这可能会有所帮助。
# activate venv, install dependencies, cd mastering
python build.py --all --pync --version 1.085 # (replace version number)首先,构建字体上的主体流。然后:
# navigate to the root directory of the project, then...
# update to latest font build directory
fontDir= " fonts_1.085 "
src/build-scripts/make-release/00-prep-release.sh $fontDir然后,将最新变量字体复制到您的本地递归代码配置存储库中构建更新的代码字体。将它们复制到新制作的目录fonts/ArrowType-Recursive-1.XXX/Recursive_Code中。
最后,转到回购版本的页面以制作新页面。
该项目包括大量的研究(包含在docs/中),并包含许多小工具(包含在src/00-recursive-scripts-for-robofont中,如果您在Robofont中使用UFOS设计可变字体,可能会为您提供帮助。
导航到终端中的Robofont脚本文件夹。
cd ,然后复制Paste或Drag-n-Drop脚本文件夹以获取完整的FilePath。点击返回/输入。与递归项目脚本文件夹, src/00-recursive-scripts-for-robofont建立符号链接或“符号链接”
ln -ssrc/00-recursive-scripts-for-robofont以获取其完整路径。点击返回/输入。ls列出文件来检查它是否存在。您应该将src/00-recursive-scripts-for-robofont列出的项目之一。因此,这看起来像:
ln -s ~/FOLDER_PATH/robofont-scripts ~/FOLDER_PATH/recursive/src/00-recursive-scripts-for-robofont
现在,您可以直接从脚本菜单运行递归项目脚本,也可以通过在脚本窗口中打开它们。
有关为该项目做出贡献的政策,请参见贡献。