Iosevka
   HOME

TheInfoList



OR:

Iosevka () is a
monospace A monospaced font, also called a fixed-pitch, fixed-width, or non-proportional font, is a font whose letters and characters each occupy the same amount of horizontal space. This contrasts with Typeface#Proportion, variable-width fonts, where t ...
programming typeface, built declaratively using custom typeface generation software, and with an emphasis on compatibility with
CJK characters In internationalization, CJK characters is a collective term for the Chinese, Japanese, and Korean languages, all of which include Chinese characters and derivatives in their writing systems, sometimes paired with other scripts. Collectively, the ...
. It is available under a
FOSS Fos or FOSS may refer to: Companies *Foss A/S, a Danish analytical instrument company * Foss Brewery, a former brewery in Oslo, Norway *Foss Maritime, a tugboat and shipping company Historic houses * Foss House (New Brighton, Minnesota), United ...
license. The default builds are available in two styles of nine weights each, and come with italic and oblique versions. The typeface was designed, however, to be easily configurable by editing textual
TOML TOML is a file format for configuration files. It is intended to be easy to read and write due to obvious semantics which aim to be "minimal", and is designed to map unambiguously to a dictionary. Its specification is open-source, and receives co ...
configuration files in the custom generation software. The character repertoire covers a significant portion of the
Basic Multilingual Plane In the Unicode standard, a plane is a continuous group of 65,536 (216) code points. There are 17 planes, identified by the numbers 0 to 16, which corresponds with the possible values 00–1016 of the first two positions in six position hexadecimal ...
of
Unicode Unicode, formally The Unicode Standard,The formal version reference is is an information technology Technical standard, standard for the consistent character encoding, encoding, representation, and handling of Character (computing), text expre ...
, and a few characters from the Enclosed Alphanumeric Supplement block.


History

The first version of Iosevka, then named ''codexHW'', was created on 19 July 2015, and renamed to Iosevka three days later. It is the product of Chinese typographer Renzhi Li, using the Romanised pseudonym Belleve Invis.


Features

Iosevka once was a
condensed font In metal typesetting, a font is a particular size, weight and style of a typeface. Each font is a matched set of type, with a piece (a " sort") for each glyph. A typeface consists of a range of such fonts that shared an overall design. In mod ...
only, suitable to use with double width CJK characters, using a
slashed zero The slashed zero is a representation of the Arabic digit " 0" (zero) with a slash through it. The slashed zero glyph is often used to distinguish the digit "zero" ("0") from the Latin script letter " O" anywhere that the distinction needs emphas ...
by default. It contains many ligatures, especially suited towards functional programming languages such as
Coq Coq is an interactive theorem prover first released in 1989. It allows for expressing mathematical assertions, mechanically checks proofs of these assertions, helps find formal proofs, and extracts a certified program from the constructive proof ...
,
Idris Idris may refer to: People * Idris (name), a list of people and fictional characters with the given name or surname * Idris (prophet), Islamic prophet in the Qur'an, traditionally identified with Enoch, an ancestor of Noah in the Bible * Idris G ...
, and
Haskell Haskell () is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research and industrial applications, Haskell has pioneered a number of programming lang ...
. The variant ''Iosevka Term'' is designed to better support terminals and the variant ''Iosevka Fixed'' omits the ligatures. It also comes with
OpenType OpenType is a format for scalable computer fonts. It was built on its predecessor TrueType, retaining TrueType's basic structure and adding many intricate data structures for prescribing typographic behavior. OpenType is a registered trademark o ...
features including stylistic sets and character variants. A second width variant (oddly named ''Extended'') expands all glyphs to easier readable proportions (7 by 10), and also proportionally spaced font variants are included now. Notably, all variants of the Iosevka font family cover the same set of 5013 unicode character points, plus 4 long arrows which do not belong to all variants.


Build process

One major characteristic of Iosevka is that it is generated from declarative data files using a multi-phase build process. It was originally created as a typeface that could be used with a package called ''node-sfnt'':
As I maintaining node-sfnt , a low-level library used to parse and generate TTFs in
Node.JS Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript code ou ...
, I decided to make a programming font using it. Iosevka is generated from a program written by me, as well as a set of parameters, pretty like
Computer Modern Computer Modern is the original family of typefaces used by the typesetting program TeX. It was created by Donald Knuth with his Metafont program, and was most recently updated in 1992. Computer Modern, or variants of it, remains very widely us ...
, but in a more modern way. .. eating a font actually needs a
domain-specific language A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging f ...
, like Knuth's METAFONT language. With PatEL's macro system I can easily turn PatEL into a DSL while remaining its full ability of programming. The PatEL is in another repository I created, though not documented yet. It's syntax is basically a
Lisp A lisp is a speech impairment in which a person misarticulates sibilants (, , , , , , , ). These misarticulations often result in unclear speech. Types * A frontal lisp occurs when the tongue is placed anterior to the target. Interdental lisping ...
with improvements reducing brackets (by using colons and indents), and supporting infix operators.
As of 2018, the data files are still written in the ''Patrisika Example Language'', also known as PatEL. PatEL is an alternative
s-expression In computer programming, an S-expression (or symbolic expression, abbreviated as sexpr or sexp) is an expression in a like-named notation for nested list (tree-structured) data. S-expressions were invented for and popularized by the programming la ...
format somewhat akin to the wisp of SRFI 119. The PatEL data is then converted into
SpiderMonkey SpiderMonkey is the first JavaScript engine, written by Brendan Eich at Netscape Communications, later released as open source and currently maintained by the Mozilla Foundation. It is used in the Firefox web browser. History Eich "wrote Jav ...
abstract syntax tree In computer science, an abstract syntax tree (AST), or just syntax tree, is a tree representation of the abstract syntactic structure of text (often source code) written in a formal language. Each node of the tree denotes a construct occurring ...
using another library called Patrisika. The abstract syntax tree is then converted into JavaScript using Escodegen.Escodegen
/ref>


See also

* PragmataPro, a Monospaced font with a design similar to Iosevka


References


External links


Iosevka official releases
github.com
Discussion on Hacker News (2017)
news.ycombinator.com
Discussion on Reddit (2017)
reddit.com
Iosevka Term package for Arch Linux
aur.archlinux.org

luc.devroye.org {{Free and open-source typography Free software Unicode typefaces Monospaced typefaces Unicode typefaces Typefaces and fonts introduced in 2015