Iosevka

代码的细长字体。(Slender typeface for code, from code.)

Github stars Tracking Chart

Iosevka

编码的字体,由代码构建。

中国和日本用户→ Inziu Iosevka中文和日文(A hinted 与M+和Source Han Sans合成。)

安装

退出你的编辑器/程序。解压并打开文件夹。

  • Windows说明
  • macOS说明
    • Homebrew中的标准分发: brew tap caskroom/fonts&& brew木桶安装font-iosevka (可能已过时)。
    • 使用Homebrew自定义安装:请参阅 robertgzr/homebrew-tap
  • Linux:将TTF文件复制到您的字体目录→运行 sudo fc-cache 。
    • Arch Linux用户可以使用AUR包装器或通过手动方式从AUR 此处安装字体。 全部变体
    • Void Linux用户可以使用 xbps-install font-iosevka 安装字体。
  • FreeBSD:可以使用pkg install iosevka安装该字体。

权重、变体和OpenType功能

字体包含七个权重(薄的,超轻的,轻的,常规的,中等的,粗体的和重磅的),以及斜体和斜体版本,与常规版本相同。

所有版本都包含相同的字符范围:拉丁字母,希腊字母(包括 Polytonic),一些西里尔字母,IPA符号和常见标点以及一些符号。您可以在此处查看完整列表。

Iosevka 支持使用 OpenType 功能访问所有字母变体。

连字(Ligations)

Iosevka 的默认连接集已分配给 calt 功能,但并非所有功能都默认启用。

Iosevka 支持特定于语言的连接,这是仅在特定语言下启用的连接集。这些连接集被分配到自定义功能标签,如 XHS0 。

从源代码构建

构建 Iosevka 你应该:

  1. 确保 nodejs (≥8.4), ttfautohint otfcc (≥0.9.3)和GNU make (≥4.1; BSD make 可能不起作用)可在终端中运行。
  2. Windows 用户可能需要安装 MinGW 并使 POSIX 实用程序可访问( mkdir.exe , cp.exe , cat.exe 和 rm.exe ,特别是)来自命令提示符。由 Git for Windows 或 MSYS2 提供的实用程序正常工作。
  3. 通过 npm install 安装必要的库。如果您安装了它们,请升级到最新版本。
  4. make (或 gmake )。

您会在 dist/ 目录中找到TTF。

构建 Web 字体

webfonts/目录用于为 Web 字体使用构建 Iosevka。要构建 Web 字体,您应该:

  1. 构建 Iosevka。
  2. 确保 sfnt2woff 和 woff2_compress 已安装且可运行。
  3. 运行 make web 。

Web字体将生成到 dist/iosevka/web 和 dist/iosevka-slab/web 。

构建你自己的风格

从版本2.0开始,Iosevka将不再支持通过makefile构建。 要初始化自定义构建,您需要:

  1. 创建 private-build-plans.toml 文件。
  2. 按照以下格式将构建计划添加到 private-build-plans.toml 中:
    [buildPlans.iosevka-custom]            #  is your plan name
    family = "Iosevka Custom"              # Font menu family name
    design = ["common styles"]             # Common styles
    upright = ["upright-only", "styles"]   # Upright-only styles
    italic = ["italic-only", "styles"]     # Italic-only styles
    oblique = ["oblique-only", "styles"]   # Oblique-only styles
    # Override default building weights
    # When buildPlans.<plan name>.weights is absent
    # All weights would built and mapped to default shape/CSS
    [buildPlans.iosevka-custom.weights.regular]
    shape = <span class="pl-c1">400                            # Weight for glyph shapes
    menu  = <span class="pl-c1">400                            # Weight for menu name
    css   = <span class="pl-c1">400                            # Weight for WebFont CSS
    [buildPlans.iosevka-custom.weights.bold]
    shape = <span class="pl-c1">700
    menu  = <span class="pl-c1">700
    css   = <span class="pl-c1">700
    # Override default building slant sets
    # Format: <upright|italic|oblique> = <"normal"|"italic"|"oblique">
    # When this section is absent, all slants would be built.
    [buildPlans.iosevka-custom.slants]
    upright = "normal"
    italic = "italic"
    oblique = "oblique"        
  3. 运行 npm run build -- contents::<your plan name> 构建的字体将在 dist/ 目录中。除了 contents::<plan> 之外, 其它选项是:
    1. contents::<plan> : TTF (Hinted and Unhinted), WOFF(2) and Webfont CSS;
    2. ttf::<plan> : TTF;
    3. ttf-unhinted::<plan> : Unhinted TTF only;
    4. woff::<plan> : TTF and WOFF only;
    5. woff2::<plan> : TTF and WOFF2 only;
      • 注: 从 2.2.0 版本之后,我们在构建目标名称中使用2个冒号 (::)。

Overview

Name With Ownerbe5invis/Iosevka
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 3)
PlatformWindows, Mac, Linux, BSD
License:SIL Open Font License 1.1
Release Count376
Last Release Namev30.0.1 (Posted on )
First Release Namev0.0.2 (Posted on )
Created At2015-07-18 23:10:59
Pushed At2024-05-11 13:50:42
Last Commit At
Stargazers Count18.4k
Watchers Count192
Fork Count553
Commits Count4.7k
Has Issues Enabled
Issues Count1864
Issue Open Count95
Pull Requests Count398
Pull Requests Open Count0
Pull Requests Close Count50
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

Iosevka Version

Coders’ typeface, built from code.

Installation

Quit your editor/program. Unzip and open the folder.

  • Instructions for Windows: Download the fonts from the Releases, select the font files and right click, then hit "Install".
    • On Windows 10 1809 or newer the default font installation is per-user, and it may cause compatibility issues for some applications, mostly written in Java. To cope with this, right click and select "Install for all users" instead. Ref.
  • Instructions for macOS
    • Standard distribution in Homebrew: brew tap homebrew/cask-fonts && brew cask install font-iosevka && brew cask install font-iosevka-slab
    • Customizable install using Homebrew: see robertgzr/homebrew-tap.
  • Linux : Copy the TTF files to your fonts directory → Run sudo fc-cache.
    • Arch Linux users can install the font from the AUR here using an AUR wrapper or by doing it manually. All variants.
    • Void Linux users can install the font with xbps-install font-iosevka.
  • FreeBSD: The font can be installed with pkg install iosevka.

Weights, Variants and OpenType features

The typeface contains 9 weights (Thin to Heavy) alongside with both italic and oblique versions, with the same metrics as the regular one.

Weights sample

All versions include the same ranges of characters: Latin letters, Greek letters (including Polytonic), some Cyrillic letters, IPA symbols and common punctuations and some symbols. You can check out the full list here.

Languages Sample

Iosevka supports accessing all letter variants using OpenType features.

Style Sets

Character Variants

Ligations

Ligations Sample

Iosevka’s default ligation set is assigned to calt feature, though not all of them are enabled by default.

Iosevka supports Language-Specific Ligations, which is the ligation set enabled only under certain languages. These ligation sets are assigned to custom feature tags, like XHS0.

Building from Source

To build Iosevka you should:

  1. Ensure that nodejs (≥ 8.4), ttfautohint, otfcc (≥ 0.9.3) and otf2otc are present.
  2. Install necessary libs by npm install. If you’ve installed them, upgrade to the latest.
  3. npm run build -- contents::iosevka.

You will find TTFs, as well as WOFF(2) web fonts and one Webfont CSS in the dist/ directory.

Build Your Own Style

Since version 2.0, Iosevka would no longer support building via makefile. To initialize a custom build, you need:

  1. Create private-build-plans.toml file.

  2. Add a build plan into private-build-plans.toml, following this format:

    [buildPlans.iosevka-custom]            # <iosevka-custom> is your plan name
    family = "Iosevka Custom"              # Font menu family name
    design = ["common styles"]             # Common styles
    upright = ["upright-only", "styles"]   # Upright-only styles
    italic = ["italic-only", "styles"]     # Italic-only styles
    oblique = ["oblique-only", "styles"]   # Oblique-only styles
    hintParams = ["-a", "sss"]             # Optional custom parameters for ttfautohint
    
    # Override default building weights
    # When buildPlans.<plan name>.weights is absent
    # All weights would built and mapped to default shape/CSS
    # IMPORTANT : Currently "menu" property only support 100, 200, 300, 400, 500, 600, 700, 800, 900.
    #              and "shape" properly only supports number between 100 and 900 (inclusive).
    shape = 400                            # Weight for glyph shapes
    menu  = 400                            # Weight for menu name
    css   = 400                            # Weight for WebFont CSS
    
    [buildPlans.iosevka-custom.weights.bold]
    shape = 700
    menu  = 700
    css   = 700
    
    # Override default building slant sets
    # Format: <upright, italic, oblique> = <"normal", "italic", "oblique">
    # When this section is absent, all slants would be built.
    [buildPlans.iosevka-custom.slants]
    upright = "normal"
    italic = "italic"
    oblique = "oblique"
    
  3. Run npm run build -- contents::<your plan name> and the built fonts would be avaliable in dist/. Aside from contents::<plan>, other options are:

    1. contents::<plan> : TTF (Hinted and Unhinted), WOFF(2) and Webfont CSS;
    2. ttf::<plan> : TTF;
    3. ttf-unhinted::<plan> : Unhinted TTF only;
    4. woff::<plan> : TTF and WOFF only;
    5. woff2::<plan> : TTF and WOFF2 only;
      • Note: Since version 2.2.0, we are using two colons (::) in the build target names.

The current available styles for design/upright/italic/oblique options are:

  • Styles for general shape:

    • sans : Sans serif (default).
    • slab : Slab serif.
  • Styles related to ligations and spacing:

    • term : Disable ligations and exact monospace.
      • The font built will not contain ligatures.
      • All glyphs wider than one letter would be deleted.
      • In case of your OS or editor cannot handle ligatures correctly, you can disable ligations with it.
    • termlig : Similar to term, the font is exact monospace to make fontconfig happy, while ligations are still present.
    • no-ligation : Disable ligation only.
    • no-cv-ss : Prevent generation of cv## and ss## features.
    • type : Make some symbols, like arrows () full-width.
  • All registered ss## and cv## feature tags, including:

    • ss01~ss10 : Predefined stylistic sets based on other Monospace fonts.
    • cv01~cv53 : Standalone character variants.
  • Styles for ligation sets, include:
    • ligset-javascript: Default ligation set would be assigned to JavaScript.
    • ligset-php: Default ligation set would be assigned to PHP.
    • ligset-ml: Default ligation set would be assigned to ML.
    • ligset-fsharp: Default ligation set would be assigned to F#.
    • ligset-fstar: Default ligation set would be assigned to F*.
    • ligset-haskell: Default ligation set would be assigned to Haskell.
    • ligset-idris: Default ligation set would be assigned to Idris.
    • ligset-elm: Default ligation set would be assigned to Elm.
    • ligset-purescript: Default ligation set would be assigned to PureScript.
    • ligset-patel: Default ligation set would be assigned to PatEL.
    • ligset-swift: Default ligation set would be assigned to Swift.
    • ligset-coq: Default ligation set would be assigned to Coq.
    • ligset-matlab: Default ligation set would be assigned to Matlab.
  • Styles for further customizing default (calt) ligation sets:
    • calt-center-ops: Vertically align some of the operators (like *) to the center position it is before or after a "center" operator (like +).
    • calt-arrow: Enable ligation set that forms arrows.
    • calt-arrow2: Enable ligation for more arrows, like >>=.
    • calt-trig: Enable ligation for <, , , > , <, , and other bar-and-angle-bracket symbols.
    • calt-eqeqeq: Enable special triple-line ligation for === only.
    • calt-eqeq: Enable ligation for == and ===.
    • calt-ineq: Enable ligation for <= and >=.
    • calt-exeqeq: Enable special triple-line ligation for !== only.
    • calt-eqexeq: Enable special triple-line ligation for =!= only.
    • calt-exeq: Enable ligation for != and !==.
    • calt-tildeeq: Enable ligation for ~= as inequality.
    • calt-slasheqeq: Enable special triple-line ligation for =/= as inequality.
    • calt-slasheq: Enable ligation for /= and =/= as inequality.
    • calt-ltgt: Enable ligation for <> as inequality.
    • calt-brst: Center asterisk in (* and *).
    • calt-plusplus: Enable ligation for ++ and further plus-chaining.
    • calt-colons: Enable ligation for :: and :::.
    • calt-logic: Enable ligation for /\ and \/.
    • calt-llgg: Enable ligation for <<, >> and other angle-bracket chaining.
    • calt-dotoper: Treat dot (.) as operator and perform chained centering.
    • calt-arrowZALE: Treat <= as arrow.
    • calt-arrowZAGE: Treat >= as co-arrow.
    • calt-html-comment: Enable ligation for <!-- and <!---.
  • Styles for changing the line space (leading):

    • leading-750, leading-1000, leading-1250, leading-1500, leading-1750, leading-2000: Change the line space. Default is leading-1250.
    • win-metric-pad-0, win-metric-pad-50win-metric-pad-100win-metric-pad-150, win-metric-pad-200win-metric-pad-250, win-metric-pad-300: Add extra space to OS/2 table’s Win metrics to avoid clipping in certain legacy software.
  • Styles for changing Powerline symbols' position:

    • powerline-scale-y-750, powerline-scale-y-875, powerline-scale-y-1000, powerline-scale-y-1125, powerline-scale-y-1250, powerline-scale-y-1375, powerline-scale-y-1500: Resize the Powerline symbols vertically, from 75% to 150%.
    • powerline-scale-x-750, powerline-scale-x-875, powerline-scale-x-1000, powerline-scale-x-1125, powerline-scale-x-1250, powerline-scale-x-1375, powerline-scale-x-1500: Resize the Powerline symbols horizontally, from 75% to 150%.
    • powerline-shift-y-n500, powerline-shift-y-n450, powerline-shift-y-n400, powerline-shift-y-n350, powerline-shift-y-n300, powerline-shift-y-n250, powerline-shift-y-n200, powerline-shift-y-n150, powerline-shift-y-n100, powerline-shift-y-n50, powerline-shift-y-0, powerline-shift-y-p50, powerline-shift-y-p100, powerline-shift-y-p150, powerline-shift-y-p200, powerline-shift-y-p250, powerline-shift-y-p300, powerline-shift-y-p350, powerline-shift-y-p400, powerline-shift-y-p450, powerline-shift-y-p500: Shift the Powerline symbols vertically, from -0.5em to +0.5em.
    • powerline-shift-x-n500, powerline-shift-x-n450, powerline-shift-x-n400, powerline-shift-x-n350, powerline-shift-x-n300, powerline-shift-x-n250, powerline-shift-x-n200, powerline-shift-x-n150, powerline-shift-x-n100, powerline-shift-x-n50, powerline-shift-x-0, powerline-shift-x-p50, powerline-shift-x-p100, powerline-shift-x-p150, powerline-shift-x-p200, powerline-shift-x-p250, powerline-shift-x-p300, powerline-shift-x-p350, powerline-shift-x-p400, powerline-shift-x-p450, powerline-shift-x-p500: Shift the Powerline symbols horizontally, from -0.5em to +0.5em.
  • Symbol exclusion:

    • exclude-check-and-cross-symbol: Exclude ✓✔✕✖✗✘ (U+2713 – U+2718) from the font.
  • Styles for individual characters. They are easy-to-understand names of the cv## styles, including:
    • Styles for A, Λ, Δ:
      • v-turn-v-straight (cv73): Standard, straight A, Λ, Δ (default).
      • v-turn-v-curly (cv74): Slightly curly A, Λ, Δ, like Iosevka 2.x.
    • Styles for Q:
      • v-capital-q-taily (cv42): Q with a curly tail (default).
      • v-capital-q-straight (cv43): Q with a straight tail like in the old versions.
    • Styles for Y:
      • v-capital-y-straight (cv80): Standard, straight Y (default).
      • v-capital-y-curly (cv81): Slightly curly Y, like Iosevka 2.x.
    • Styles for R:
      • v-capital-r-straight (cv82): Standard, straight-leg R (default).
      • v-capital-r-curly (cv83):  Slightly curly-legged R, like Iosevka 2.x.
    • Styles for a:
      • v-a-doublestorey (cv01): Double-storey a (default for Upright).
      • v-a-singlestorey (cv02): Single-storey a (default for Italic).
    • Styles for f:
      • v-f-straight (cv52): f without bottom hook (default for Sans Upright).
      • v-f-tailed (cv53): f with a leftward bottom hook (default for Italic).
      • v-f-serifed (cv84): f with bottom serif (default for Slab Upright).
    • Styles for g:
      • v-g-doublestorey (cv11): Double-storey g.
      • v-g-singlestorey (cv12): Single-storey g (default).
      • v-g-opendoublestorey (cv24): Open Double-storey g, like Trebuchet MS or Fira Code.
    • Styles for i:
      • v-i-serifed (cv03): Serifed i (default for Upright).
      • v-i-italic (cv04): Italic i (default for Italic).
      • v-i-hooky (cv05): Hooky i.
      • v-i-zshaped (cv06): Z-shaped i.
      • v-i-line (cv56): i like a straight line.
      • v-i-tailed (cv88): Tailed i.
    • Styles for j:
      • v-j-line (cv57): j like a straight line.
      • v-j-serifed (cv58): j with top serif (default).
    • Styles for l:
      • v-l-serifed (cv07): Serifed l (default for Upright).
      • v-l-italic (cv08): Italic, cursive l (default for Italic).
      • v-l-hooky (cv09): Hooky l.
      • v-l-zshaped (cv10): Z-shaped i.
      • v-l-tailed (cv27): l with a curved tail.
      • v-l-hookybottom (cv28): l with a straight tail.
      • v-l-line (cv59): l like a straight line.
    • Styles for k, K:
      • v-k-straight (cv68): k with standard shape (default for Upright).
      • v-k-curly (cv69): Slightly curly k, like Iosevka 2.x.
      • v-k-cursive (cv70): k with a cursive loop (default for Italic).
    • Styles for m:
      • v-m-normal (cv25): m with normal middle leg, touching the baseline (default).
      • v-m-shortleg (cv26): m with shorter middle leg, like Ubuntu Mono.
    • Styles for r:
      • v-r-straight (cv85): Straight, serif-less r (default for Sans).
      • v-r-serifed (cv86): r with serif at both top and bottom (default for Slab Upright).
      • v-r-top-serifed (cv87): r with serifs at top-left only (default for Slab Italic).
    • Styles for t:
      • v-t-standard (cv40): Standard t shape (default).
      • v-t-cross (cv41): Futura-like t shape.
    • Styles for v:
      • v-v-straight (cv71): Standard, straight V and v (default).
      • v-v-curly (cv72):  Slightly curly V and v, like Iosevka 2.x.
    • Styles for w, W:
      • v-w-straight (cv75): Standard, straight W and w (default).
      • v-w-curly (cv76): Slightly curly W and w, like Iosevka 2.x.
    • Styles for x, X:
      • v-x-straight (cv77): Standard, straight X and x (default).
      • v-x-curly (cv78): Slightly curly X and x, like Iosevka 2.x.
    • Styles for y:
      • v-y-straight (cv48): More-straight letter y (default for Upright).
      • v-y-cursive (cv49): Cursive-like y (default for Italic).
      • v-y-curly (cv79): More curly letter y, like Iosevka 2.x.
    • Styles for ß:
      • v-eszet-traditional (cv34): Traditional, Fraktur-like Eszet.
      • v-eszet-sulzbacher (cv35): A more modern, beta-like Eszet (default).
    • Styles for 0:
      • v-zero-slashed (cv13): Slashed Zero 0 (default).
      • v-zero-dotted (cv14): Dotted Zero 0.
      • v-zero-unslashed (cv15): O-like 0.
    • Styles for 1:
      • v-one-nobase (cv50): 1 with bottom serif (default for Sans).
      • v-one-base (cv51): 1 without bottom serif (default for Slab).
    • Styles for 3:
      • v-three-flattop (cv46): Flat top 3 (Like Museo Sans / Montserrat).
      • v-three-twoarcs (cv47): Arched top 3 (default).
    • Styles for 7:
      • v-seven-noserif (cv64): 7 without serif (default for Sans).
      • v-seven-serifed (cv65): 7 with initial serif (default for Slab).
    • Styles for ~:
      • v-tilde-high (cv16): Higher tilde ~.
      • v-tilde-low (cv17): Lower tilde ~ (default).
    • Styles for *:
      • v-asterisk-high (cv18): Higher five-pointed asterisk * (default).
      • v-asterisk-low (cv19): Lower five-pointed asterisk *.
      • v-asterisk-hexhigh (cv60): Higher six-pointed asterisk *.
      • v-asterisk-hexlow (cv61): Lower six-pointed asterisk *.
    • Styles for _:
      • v-underscore-high (cv20): Higher underscore _, at baseline (default).
      • v-underscore-low (cv21): Lower underscore _, below baseline.
    • Styles for :
      • v-paragraph-high (cv22): Higher paragraph symbol (default).
      • v-paragraph-low (cv23): Lower paragraph symbol .
    • Styles for ^:
      • v-caret-high (cv29): Higher circumflex ^ (default).
      • v-caret-low (cv30): Lower circumflex ^.
    • Styles for @:
      • v-at-threefold (cv31): The long, three-fold At symbol (@) (default).
      • v-at-fourfold (cv32): The traditional, four-fold At symbol (@).
      • v-at-short (cv33): The shorter, Fira-like At symbol (@).
    • Styles for {, }:
      • v-brace-straight (cv36): More straight braces.
      • v-brace-curly (cv37): More curly braces (default).
    • Styles for $:
      • v-dollar-open (cv38): Dollar symbol with open contour.
      • v-dollar-through (cv39): Dollar symbol with strike-through vertical bar (default).
      • v-dollar-opencap (cv54): Dollar symbol with open contour, not exceeding baseline and ascender.
      • v-dollar-throughcap (cv55): Dollar symbol with strike-through vertical bar, not exceeding baseline and ascender.
    • Styles for #:
      • v-numbersign-upright (cv44): Number sign with vertical bars (default).
      • v-numbersign-slanted (cv45): Number sign with slanted bars.
    • Styles for %:
      • v-percent-dots (cv62): Percent %, Per-mille and basis point using rectangular dots.
      • v-percent-rings (cv63): Percent %, Per-mille and basis point using rings (default).
    • Styles for <=, >=:
      • v-lig-ltgteq-flat (cv66): The lower bar of <= and >= ligation is flat (default).
      • v-lig-ltgteq-slanted (cv67): The lower bar of <= and >= ligation is slanted.

For Chinese and Japanese users...

Sarasa Gothic.


Family Matrix

To the top