Wunsch (seltene) Updates zu neuen Schriftarten vom Pfeiltyp?
? Melden Sie sich für den Arrow -Newsletter an! ?
Folgen Sie @ArrowType auf Instagram!
Erfahren Sie mehr über das rekursive Webproben →

Rekursiv sans & mono ist eine variable Familie, die für bessere Code und Benutzeroberfläche erstellt wurde. Es ist inspiriert von Casual Skript -Zeichen, aber in erster Linie konzipiert, um den Anforderungen von Programmierumgebungen und Anwendungsschnittstellen gerecht zu werden.
In der Programmierung ist „Rekursion“, wenn sich eine Funktion aufruft und eine eigene Ausgabe als Eingabe verwendet, um leistungsstarke Ergebnisse zu erzielen. Rekursives Mono wurde als Werkzeug verwendet, um sich selbst zu erstellen: Es wurde verwendet, um Python-Skripte zu schreiben, um die Typenproduktion zu automatisieren und Probenbilder zu generieren, und es wurde in HTML, CSS und JS verwendet, um webbasierte Proofs und Prototypen zu erstellen. Durch diese aktive Verwendung wurde rekursive Mono so hergestellt, dass es sowohl Spaß macht als auch zutiefst nützlich für die gesamte Arbeit.
Rekursive Sans leihen Glyphen aus seinem übergeordneten Mono, passen jedoch die Breite vieler wichtiger Glyphen für eine komfortable Lesbarkeit an. Seine Metriken sind überlastet - jeder Stil nimmt den gleichen horizontalen Raum über alle Stile hinweg ein. In dieser variablen 3-Achsen-Schriftart ermöglicht dies Flüssigkeitsübergänge zwischen Gewicht, Neigung und „Ausdruck“ (lässig bis strenge Buchstaben), die ohne Textverschiebungen oder Layout-Reflow. Dies ermöglicht dies nicht nur neue interaktive Möglichkeiten in der Benutzeroberfläche, sondern sorgt auch für ein einzigartiges Erlebnis für die Art und Weise.
Recursive ist mit einem modifizierten Google -Schriftarten lateinischen Expertencharakter -Set ausgestattet, einschließlich zahlreicher nützlicher Symbole für Währungen und Mathematik (weitere Details finden Sie in den Zeichensnotizen) sowie Unterstützung für die folgenden Sprachen:
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
Wenn Sie überlegen, eine Schriftart zu verwenden, ist die Schriftlizenz eines der ersten Dinge, nach denen Sie suchen und lesen sollten. Es wird beschrieben, wie Sie sich der Verwendung der Schriftarten einverstanden erklären, und die Schriftlizenzierung unterscheidet sich zwischen verschiedenen Typen und Typen und Typ -Gießereien.
Das rekursive Projekt ist unter der SIL Open -Schriftart V1.1 lizenziert. Dies ist eine kostenlose Softwarelizenz, mit der Sie die Schriftsoftware unter einer Reihe von Bedingungen verwenden können. Weitere Informationen zu den Berechtigungen, Bedingungen und Haftungsausschlüssen finden Sie im vollständigen Text der Lizenz.
Der einfache Weg: Öffnen Sie Schriftdateien im Schriftbuch und klicken Sie auf "Schriftstelle installieren".
Der schöne Weg:
<yourusername>/Library/FontsDoppelklicken Sie auf die TTF-Datei und wählen Sie "Installieren".
So installieren Sie viele statische Schriftdateien (diese können in Apps wie Microsoft Word und PowerPoint besser funktionieren):
static_fonts und dann in den Ordner mono oder sans static_otf .Dies ist ein großes Thema, aber ein paar gute Führer stammen aus MDN und von CSS-Tricks.
Im Allgemeinen sollten Sie in der Schriftart mit @font-face verlinken, um font-weight: 300 1000; Um den Gewichtsbereich der Schriftart anzugeben:
@font-face {
font-family: 'Recursive';
src: url('path/to/font/<UPDATE_SPECIFIC_FONT_PATH>.woff2') format('woff2-variations');
font-weight: 300 1000;
}
Dann können Sie die Schriftart sowohl mit font-weight als auch font-variation-settings verwenden!
Anmerkungen:
MONO und CASL sind "nicht registrierte" Achsen (derzeit nicht in Microsofts offizieller Auflistung von Variationsachsen und Spezifikationen), sodass diese Tags in All-Caps verwendet und über font-variation-settings gesteuert werden müssen.font-style verwenden können, um slnt und CRSV Achsen zu kontrollieren, aber diese haben einige Browser-Unterstützungsprobleme (ab Okt 2019, aber die Tools entwickeln sich schnell, um variable font-variation-settings besser zu unterstützen.font-variation-settings zu steuern. Lesen Sie mehr über diese Technik in Pixel Ambachts fantastisches Tutorial. Es gibt zwei primäre Möglichkeiten, in Code -Editoren rekursiv zu verwenden:
Installieren Sie die Rec Mono -Schriftarten (gefunden im Ordner "recursive_code" von Release -Downloads). Diese haben Codeligaturen und mehrere stilistische Sets, sodass sie standardmäßig in den meisten Code-Umgebungen und Apps funktionieren. Diese werden auch so genannt und konfiguriert, dass sie ihre Verwendung in Code -Themen ermöglicht, die kursive und fetthaltige Stile verwenden. Wenn Sie bestimmte Funktionen in Rec Mono -Schriftarten konfigurieren möchten g wie 0 .
Diese Schriftarten sind auf traditionellere Weise als die oben genannten "Code" -Schriftarten gebaut, sodass sie in einigen Kontexten etwas besser machen können. Es gibt jedoch Vor- und Nachteile: Code-Ligaturen funktionieren in den Schriften "Code" in vielen Apps nur in Monospace. Auf MAC vor MacOS 11 funktionieren diese nicht in Themen mit kursiven Stilen - siehe oben für „Code“, die dies tun. Und mit den "Code" -Be -Schriftarten können Sie etwas mehr Anpassung anpassen, wenn Sie es möchten!
Um die Standard -Deck -Schriftarten zu verwenden, installieren Sie die Recursive Mono -Schriftarten des Desktops (gefunden im Ordner "recursive_desktop" der Release -Downloads). Aktivieren Sie sie dann und setzen Sie OpenType -Funktionen, wenn Ihr Code -Editor dies zulässt. Anweisungen für drei Redakteure folgen.
Öffnen Sie zusammenfassend die Editoreinstellungen und setzen Sie die Schriftfamilie. Diese Familiennamen werden verkürzt, da lange Schriftnamen in einigen Umgebungen Fehler verursachen können. Die Hauptabkürzungen sind wie folgt:
Mn bedeutet Mono (Monospace/Festbreite)Sn bedeutet SANS (proportional/natürliche Breite)Csl bedeutet lässigLnr bedeutet linearSt bedeutet statisch (im Gegensatz zur Variablen, wie die vollständige rekursive variable Schriftart) Sie werden Ihren Editor so ziemlich feststellen, dass Sie entweder Recursive Mn Csl St oder Recursive Mn Lnr St verwenden.
Suchen Sie in den Einstellungen Font Family durch, geben Sie dann die Familie an, die Sie verwenden möchten.
Für rekursive Mono Casual Regular:
"Recursive Mn Csl St", Menlo, "Apple Color Emoji", monospace
Für rekursive Mono -lineare reguläre:
"Recursive Mn Lnr St", Menlo, "Apple Color Emoji", monospace
Wenn Sie möchten, können Sie OpenType -Funktionen aktivieren, indem Sie in den Einstellungen nach fontLigatures suchen und dies in solchen Einstellungen bearbeiten.
"editor.fontLigatures" : " 'ss01','ss05','dlig' " (Das obige würde Ihnen eine Einfachheit 6 und 9 geben, ein einstöckiges a , und die Codeligaturen aktivieren.)
Gehen Sie in der Menüleiste zu Atom -> Stylesheet und fügen Sie Folgendes hinzu:
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. */
} Verwenden Sie font-family: 'Recursive Mn Lnr St'; um die lineare Familie zu bekommen.
Gehen Sie zu Sublime Text -> Preferences -> Settings und setzen Sie font_face auf den spezifischen PostScript -Namen des Stils, den Sie verwenden möchten.
Für rekursive Mono Casual Regular:
"font_face" : " Recursive Mn Csl St " ,Für rekursive Mono -lineare reguläre:
"font_face" : " Recursive Mn Lnr St " , Um Codeligaturen oder andere Openentypenfunktionen zu kontrollieren, setzen Sie die font_options wie SO offen:
"font_options" : [ " ss01 " , " ss05 " , " dlig " ],Die vollständigen Einstellungen könnten also ungefähr so aussehen:
{
"font_face" : " Recursive Mn Lnr St " ,
"font_size" : 24 ,
"theme" : " Adaptive.sublime-theme "
}Rekursiv hat die folgenden Achsen:
| Achse | Etikett | Reichweite | Standard | Beschreibung |
|---|---|---|---|---|
| Monospace | MONO | 0 bis 1 | 0 | SANS (natürliche Breite) bis Mono (feste Breite) |
| Lässig | CASL | 0 bis 1 | 0 | Linear bis lässig |
| Gewicht | wght | 300 bis 1000 | 300 | Licht zu extrablack. Kann mit üblicher Schrift im Schriftgewichts-Gewicht definiert werden. |
| Neigung | slnt | 0 bis -15 | 0 | Aufrecht (0 °) bis schräg (ca. 15 °) |
| Kursiv | CRSV | 0, 0,5 oder 1 | 0,5 | Immer römisch (0), Auto (0,5) oder immer kursiv (1) |
Achsendefinitionen, rekursiv
Monospace MONO - 0 bis 1. Passt die Glyphenbreiten von proportional oder „sans“ (0) an feste Breite oder „Mono“ (1) an.
Empfohlene Verwendung: Im Allgemeinen ist das proportionale Design in Text und Benutzeroberfläche mehr lesbar, während das Monospace -Design für Code und Text besser geeignet ist, in denen die Buchstabenverdünnung besonders kritisch ist (z. B. Passwörter, ID -Nummern, tabellarische Daten usw.).
Casual CASL - 0 bis 1. passt den ausdrucksstarken Stil oder das „Genre“ der Glyphen an. In rekursiver Weise geht dies von linear (0) bis lässig (1).
Empfohlene Verwendung: Der lineare Stil hat eine ähnliche Struktur wie bei Schriftarten, die als direkt eingestuft wurden und Aspekte humanistischer Sans mit rationalisierten, kompakten, flachen Buchstabenformen verschmelzen. Diese regelmäßige, vertraute Struktur ist es für Langformtext angemessen, die Fokus erfordert (z. B. Absätze, vollständige Codedokumente und druckvolle Überschriften). Der lässige Stil ist von einem Eintakt-Casual-Schild-Schild inspiriert, aber für kleine Größen gezogen. Es ist am nützlichsten in einem kürzeren Text, bei dem ein warmer und einladender Ton erwünscht wird (z. B. Schlagzeilen, Speicher von Beschilderungen und Computerterminals).
Gewicht wght - 300 bis 1000. Die Gesamtdicke der Buchstaben und die mit ihnen zusammengestellte Textdunkelheit. Bemerkenswerterweise wirkt sich die Gewichtsachse in rekursiver Glyphenbreite nicht aus. Ein fettes Gewicht nimmt den gleichen Platz wie ein leichtes Gewicht, selbst bei proportionalen Stilen der MONO .
Empfohlene Verwendung: Die Gewichtsunterschiede können den Schwerpunkt im Text liefern, die Benutzerinteraktion anzeigen oder den Kommunikations Ton anpassen. Für hellen Text auf dunklen Hintergründen ist 400 („normal“) für Text und Code angemessen. Bei dunklem Text auf leichtem Hintergrund kann es vorteilhaft sein, das Gewicht auf 500 („Medium“) anzupassen.
Warum ist es keine Notenachse? Siehe Ausgabe Nr. 365
Slant slnt -0 bis -15. Der "Vorwärtsmager" von Briefen. HINWEIS: -15 (negativ 15) entspricht einer 15 ° -Schneigung aufgrund der Wurzeln des Typs Design in der Geometrie. Wenn die kursive Achse im Standardwert liegt, aktiviert es "Kursive" -Riefe über eine Neigung von -13.99 , die sie in mehr Handgeschriebene Formen wie die vereinfachte "Einstöckige" a und g konvertieren.
Empfohlene Verwendung: Verwenden Sie Slant als sekundärer Weg, um den Text zu betonen oder den typografischen Ton zu variieren. In Text kann es nützlich sein, eine teilweise Neigung von rund -9 zu verwenden, während Sie bei Anzeigegrößen die genauesten Umrisse bei 0 oder -15 erwarten können. Sie können auch von 0 bis -13 ohne Buchstaben oder Glyphenbreiten animieren, was für z.
Kursives CRSV - 0, 0,5 oder 1. Steuert die Substitution von Kursivformen entlang der schrägen Achse. "Off" (0) unterhält römische Buchstabenformen wie eine "Doppelgeschichte" a und g , "Auto" (0,5) eine kursive Substitution, und "On" (1) behauptet, auch in aufrechter Text mit einer Neigung von 0 kursive Formen zu vermitteln.
Empfohlene Verwendung: Verwenden Sie Cursive als tertiärische Methode, um Text hervorzuheben, oder um mehr Kontrolle über animierten Text zu haben (z. B. ein Hyperlink, der nach der Benutzerinteraktion durch die Verschmelzung von 0 oder 1 ist, um die abrupten Änderungen der Glyph -Substitution zu verhindern).
Im Allgemeinen ist rekursiv für die Verwendung von kleiner bis mittlerer Größe, insbesondere auf dem Bildschirm. Es ist jedoch nützlich zu verstehen, welche stilistischen Bereiche in welchen Kontexten am besten funktionieren. Ein paar Richtlinien, die es wert sind, zu wissen:
| Stilbereich | Empfohlene Größe | Empfohlener Anwendungsfall |
|---|---|---|
| Casual 0 (linear) , Gewicht 300–800 (Licht -Extrabold) | 8px bis 72px | Allgemeiner Gebrauch (insbesondere für längere Text) |
| Casual 1 (lässig) , Gewicht 300–800 (Licht -Extrabold) | 14px bis 72px | Allgemeine Verwendung (mehr Persönlichkeit) |
| Gewichte 801–900 (Schwarz -Extrablack) | 32px bis 144px | Schlagzeilen, Display Typografie |
| Zwischenwerte von Freizeit und Neigung | 10px bis 40px | Gut im Text, sieht aber in Anzeigegrößen nicht so gut aus |
Dinge, die man bewusst sein sollte:
CASL und slnt -Werte mit Zwischen- und SLNT -Werten. Wenn Sie sich an benannte Instanzen in Design -Apps (z. B. Mono Casual Bold Italic usw.) halten, wird dies für Sie automatisch behandelt.Rekursiv ist mit einer Reihe von Openentyp -Funktionen erstellt, die es einfach machen, einige praktische typografische Funktionen zu steuern.

So bauen Sie die virtuelle Umgebung auf
virtualenv -p python3 venv
Dann aktiviere es:
source venv/bin/activate
Dann Anforderungen installieren:
pip install -U -r requirements.txt
Auch:
pip install git+https://github.com/LettError/DesignspaceProblems
Die Schriftarten werden mit dem Skript mastering/build.py erstellt. Dieses Skript kann alles ( python build.py --all ) oder eine Teilmenge der Schriftarten erstellen. Um alle Optionen anzuzeigen, geben Sie python build.py -h ein, um alle Optionen anzuzeigen. Der empfohlene Build -Prozess ist unten aufgeführt.
HINWEIS: Es gibt Subskripte, um nur die Quelldateien ( mastering/prep_fonts.py ) vorzubereiten, die Quelldateien ( mastering/build_files.py ) zu erstellen, die variable Schriftart ( mastering/build_variable.py ) zu generieren und die statischen Schriftarten ( build_static.py ) zu generieren. Diese Skripte können praktisch sein, wenn Sie nur eine Sache mit den Build -Dateien tun möchten. Jeder nimmt eine Reihe von Befehlszeilenargumenten an, die alle dokumentiert sind (tippen Sie python <script_name> -h ), um die Dokumentation anzuzeigen.
Erstens vorbereiten Sie Schriftarten
Ändern Sie vor Beginn Ihr Arbeitsverzeichnis in mastering .
cd mastering
python build.py --files ist der erste Schritt. Dadurch werden alle Dateien generiert, die zum Erstellen der variablen und statischen Schriftarten benötigt werden. Mit diesem Befehl ( python build.py --version 1.085 --files ) möchten Sie wahrscheinlich eine Versionsnummer angeben. Verwenden Sie python build.py --varfiles python build.py --statfiles um nur Dateien für die variable Schriftart zu erstellen.
Nachdem die Dateien generiert wurden (beachten Sie, dass die statischen Instanzen etwas Zeit in Anspruch nehmen), sollten Sie sich die Datei mastering/build/static/CFF/checkoutlines.txt ansehen. Dies ist der Bericht (bearbeitet, um Probleme zu entfernen, die keine Aufmerksamkeit benötigen) von Checkoutlinesufo. In diesem Bericht gefundene Probleme sollten in den statischen UFOs gereinigt werden. Viele Probleme sind auf eine Überlappungsentfernung zurückzuführen. Nichts ist perfekt, überlappende Entfernungsalgorithmen enthalten.
Um die variable Schriftart zu erstellen
Um die variable Schriftart zu erstellen, rennen Sie:
# activate venv, install dependencies, cd mastering
version=1.085 # (replace version number)
python build.py --varfiles --version $version
python build.py --variable --version $versionDie statischen Schriftarten bauen
Um alle statischen Schriftarten zu bauen, rennen Sie:
# activate venv, install dependencies, cd mastering
version=1.085 # (replace version number)
python build.py --statfiles --version $version
python build.py --static --version $versionAlle Schriftarten bauen
Wenn Sie alle Quellen, Schriftarten und WOFF2 -Versionen aller Schriftarten erstellen möchten:
# activate venv, install dependencies, cd mastering
python build.py --all --version 1.085 # (replace version number)Benachrichtigungen erhalten (nur Mac)
Fügen Sie den Skriptanruf eine Option hinzu --pync ( -p . -P), um Mac -Benachrichtigungen zu erhalten. Dies kann hilfreich sein, wenn Sie an anderen Aufgaben arbeiten, während ein Build ausgeführt wird.
# activate venv, install dependencies, cd mastering
python build.py --all --pync --version 1.085 # (replace version number)Erstellen Sie zuerst Schriftarten mit dem oberhalb des Mastering -Flusses. Dann:
# 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 Kopieren Sie dann die neueste variable Schriftart in Ihr lokales rekursives Code -Konfigurations -Repo, um aktualisierte Code -Schriftarten zu erstellen. Kopieren Sie diese in die neu hergestellten fonts/ArrowType-Recursive-1.XXX/Recursive_Code .
Gehen Sie schließlich zur Seite des Repos, um eine neue zu erstellen.
Dieses Projekt enthielt eine große Menge an Forschungen (enthalten in docs/ ) und enthält viele kleine Tools (enthalten in src/00-recursive-scripts-for-robofont , die Ihnen helfen können, variable Schriftarten mit UFOs in Robofont zu entwerfen.
Navigieren Sie in einem Terminal zu Ihrem Robofont -Skriptsordner.
cd ein, kopieren Sie dann den Skriptsordner, um den vollständigen Filepath zu erhalten. Drücken Sie die Rückgabe/Eingabetaste. Machen Sie einen symbolischen Link oder "Symlink" zum rekursiven Projektskript-Ordner src/00-recursive-scripts-for-robofont
ln -ssrc/00-recursive-scripts-for-robofont vom Finder, um seinen vollständigen Pfad zu erhalten. Drücken Sie die Rückgabe/Eingabetaste.ls auflisten, um Dateien aufzulisten. Sie sollten src/00-recursive-scripts-for-robofont als eines der aufgeführten Elemente sehen.Das wird also ungefähr aussehen wie:
ln -s ~/FOLDER_PATH/robofont-scripts ~/FOLDER_PATH/recursive/src/00-recursive-scripts-for-robofont
Jetzt können Sie die rekursiven Projektskripte direkt aus dem Skriptmenü ausführen oder im Skriptfenster öffnen.
Siehe Beitrag.md für Richtlinien, die zum Projekt beitragen.