Skip to content

Commit

Permalink
Merge branch 'master' into fontproof
Browse files Browse the repository at this point in the history
  • Loading branch information
alerque committed Sep 24, 2024
2 parents bccc21c + 012ad0d commit 4589b4e
Show file tree
Hide file tree
Showing 35 changed files with 17,946 additions and 9,114 deletions.
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*.sfd linguist-detectable=true
*.fea linguist-detectable=true linguist-language=fontforge
12 changes: 7 additions & 5 deletions .github/workflows/fontship.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,23 @@ jobs:

fontship:
name: Fontship
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04

steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Fetch tags
run: |
git fetch --prune --tags ||:
- name: Fontship make
id: fontship
uses: docker://theleagueof/fontship:latest
uses: theleagueof/fontship@v0
with:
args: make dist
- name: Upload artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: ${{ steps.fontship.outputs.DISTDIR }}
path: ${{ steps.fontship.outputs.DISTDIR }}.zip
Expand All @@ -40,6 +42,6 @@ jobs:
with:
files: |
${{ steps.fontship.outputs.DISTDIR }}.zip
${{ steps.fontship.outputs.DISTDIR }}.tar.xz
${{ steps.fontship.outputs.DISTDIR }}.tar.zst
env:
GITHUB_TOKEN: ${{ github.token }}
3 changes: 3 additions & 0 deletions AUTHORS.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,16 @@
# Name or Organization <email address>

Caleb Maclennan <[email protected]>
Christoph Päper <[email protected]>
Dario Gjorgjevski <[email protected]>
Felix Kopecky <[email protected]>
Gyuris Gellért <[email protected]>
Héctor M. Monacci <[email protected]>
Ivo Straka <[email protected]>
jco <[email protected]>
Jonathan Washington <[email protected]>
Khaled Hosny <[email protected]>
Mark E. Shoulson <[email protected]>
Maurizio M. Gavioli <[email protected]>
Nicolas Semrau <[email protected]>
Philipp H. Poll <[email protected]>
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ A remote CI runner will also automatically run `fontship` for all PRs on this re
You can even download and review the fonts it builds after each push.
Hovever this is cumbersome for actual font development and we recomend checking your work with local feedback.

Note that FontForge adds unnessesary clutter to its source files on each save that **must** be removed before committing.
Note that FontForge adds unnecessary clutter to its source files on each save that **must** be removed before committing.
After modifying the `.sfd` files, and before committing the changes, you can automatically clean them up with:

fontship make normalize
Expand Down
3 changes: 3 additions & 0 deletions CONTRIBUTORS.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,15 @@
# Name <email address>

Caleb Maclennan <[email protected]>
Christoph Päper <[email protected]>
Dario Gjorgjevski <[email protected]>
Felix Kopecky <[email protected]>
Gyuris Gellért <[email protected]>
Ivo Straka <[email protected]>
jco <[email protected]>
Jonathan Washington <[email protected]>
Khaled Hosny <[email protected]>
Mark E. Shoulson <[email protected]>
Maurizio M. Gavioli <[email protected]>
Nicolas Semrau <[email protected]>
Philipp H. Poll <[email protected]>
Expand Down
42 changes: 42 additions & 0 deletions FONTLOG.txt
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,55 @@ ChangeLog
---------

unreleased (GIT) <Libertinus> Version HEAD
- Correct some errors in composite glyphs in Hebrew Italic

21 September 2024 (Caleb Maclennan) <Libertinus> Version 7.050
- Redo Hebrew vowel marks
- Add (for Hebrew) uniE801-3, uniFB29, shin variants, letters with dagesh,
letters with rafe, patah, ganuv, hireqmem and holamalef
- Add circledotted with anchors for Hebrew vowels
- Correct spacing for uni01DD
- Add missing above marks to lowercase L in Serif family
- Add above marks and aboveMark base marks to Serif Semibold
- Add lowercase e and r with stroke to Serif family
- Overhaul math font glyphs for style consistency
- Add U+FB29 (Hebrew alternative plus sign) to all families
- Add U+29B9 and U+29BA glyphs to Libertinus Math
- Add U+2B33, long leftwards squiggle arrow to Math family
- Add Dutch-specific i_j and I_J digraphs

26 February 2021 (Caleb Maclennan) <Libertinus> Version 7.040
- Add 29 more specialty arrow glyphs to Math family
- Rebuild with new sfdLib release to fix Spiro curve issues in uni2639
- Correct Q.u side bearings to match Q in Sans & Serif families
- Add missing U+029C to Serif Bold Italic
- Add missing ‘below’ mark to h/H/h.sc across Serif family
- Consistently align ‘below’ mark on h/H/h.sc across Serif family
- Re-align mark positioning on U+032E breve below across Serif family
- Add smallcaps and caps-2-smallcaps feature for h/H + breve below
- Re-align ‘below’ mark on U+029C to match smallcaps across all families
- Apply proper features (smallcaps i, f_i ligatures) in Kazakh and Tartar
- Configure aboveMark as mark-to-mark lookup in Italics and add marks for:
gracecomb, acutecomb, uni0302, tildecomb, uni030c, uni0304
- Add above marks for otilde, open o and open e in Italics
- Add above marks for otilde, vtilde and Vtilde in Regular
- Correct placement of aboveMarks in Regular for:
uni0300, uni0301, uni0302, uni0303, uni0304, uni0306, uni0308, uni030c
- Add documentation of available OpenType features and sample CSS rules

9 January 2021 (Caleb Maclennan) <Libertinus> Version 7.031
- Correct distribution release filenames

9 January 2021 (Caleb Maclennan) <Libertinus> Version 7.030
- Overhaul dot placement on all Latin capitals with dot-above
- Align dot-below on ṃ U+1E43 below middle stroke of m
- Remove bogus glyphs encoded as subscripts from Display and Serif Semibold
- Drop inappropriate kerning classes from ₘ U+2098 and ₙ U+2099
- Zero out kerns between super/subscript glyphs
- Add glyph for U+0453 to Cyrillic Italic styles
- Enable support for Macedonian localized Italics
- Expand range of available angle bracket sizes in Math family
- Add alternative slanted integrals to Math family (as feature +ss08)

14 October 2020 (Caleb Maclennan) <Libertinus> Version 7.020
- Fix name tables broken in 7.010 that associate styles in the Serif family
Expand Down
2 changes: 1 addition & 1 deletion OFL.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright © 2012-2020 The Libertinus Project Authors,
Copyright © 2012-2021 The Libertinus Project Authors,
with Reserved Font Name "Linux Libertine", "Biolinum", "STIX Fonts".

This Font Software is licensed under the SIL Open Font License, Version 1.1.
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[![Latest Release](https://img.shields.io/github/v/release/alerque/libertinus?label=Download%20Release&logo=Github)](https://github.com/alerque/libertinus/releases/latest)
[![All Releases](https://img.shields.io/github/downloads/alerque/libertinus/total?label=Downloads)](https://github.com/alerque/libertinus/releases)
[![Fontship Build Status](https://img.shields.io/github/workflow/status/alerque/libertinus/Fontship?label=Fontship&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQyLjgiIGhlaWdodD0iMTA2LjgiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwLjEzIDBhMy4wOTQgMy4wOTQgMCAwMC0zLjA4MyAyLjgyNEwuMDE0IDgzLjIzNGEzLjA5MyAzLjA5MyAwIDAwMy4wODIgMy4zNjNoOS43MjZjLS4xMzYuNjc1LS4yNSAxLjM1Ni0uMzEgMi4wNTMtLjg2NCA5Ljg3MyA2LjcxMyAxOC4xOCAxNi42IDE4LjE4IDkuODg4IDAgMTguNDQtNy44NzUgMTkuMzEtMTcuNzUuMDc0LS44NDIuMDcxLTEuNjcuMDMtMi40ODhoNDUuNDNhMTguMDM5IDE4LjAzOSAwIDAwLS4zMTUgMi4wNTNjLS44NjUgOS44OCA2LjcxMyAxOC4xOSAxNi42MSAxOC4xOSA5Ljg5NSAwIDE4LjQ1LTcuODczIDE5LjMxLTE3Ljc1YTE3LjI4IDE3LjI4IDAgMDAtLjAyNC0zLjA3OGg2Ljk1N3YuMDAyYy41NTQuMDEyLjc5NC4wMSAxLjQ4NC4wMjcgMi4wMjcuMTA3IDMuMzMzLjE2IDMuOTIuMTYuMzIgMCAuNTM0LS4wNTMuNjQxLS4xNi4xNi0uMTA2LjI0LS4yNC4yNC0uNC4wNTMtLjIxMy4wOC0uNTU5LjA4LTEuMDM5IDAtLjUzMy0uMDUzLS44ODEtLjE2LTEuMDQxLS4xMDctLjE2LS4zNzQtLjI0LS44LS4yNGgtLjExbC44Ni05LjgxNGMxLjIxNy0xMy45Mi0zLjE1NS0yNy4zNS0xMi4xOS0zNy4yNmwtMy41NzUtMy45MTZhMi41MDYgMi41MDYgMCAwMC0xLjg1LS44MTdoLTIxLjQybDIuNDYzLTI4LjE1YTMuMDkzIDMuMDkzIDAgMDAtMy4wOC0zLjM2M3oiIGNsaXAtcnVsZT0ibm9uemVybyIgY29sb3I9IiMwMDAiIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSIjRkZGIiBzdHlsZT0iZm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDtmb250LXZhcmlhbnQtYWx0ZXJuYXRlczpub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOm5vcm1hbDtmb250LXZhcmlhbnQtbGlnYXR1cmVzOm5vcm1hbDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC12YXJpYW50LXBvc2l0aW9uOm5vcm1hbDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczpub3JtYWw7aW5saW5lLXNpemU6MDtpc29sYXRpb246YXV0bzttaXgtYmxlbmQtbW9kZTpub3JtYWw7c2hhcGUtbWFyZ2luOjA7c2hhcGUtcGFkZGluZzowO3RleHQtZGVjb3JhdGlvbi1jb2xvcjojMDAwO3RleHQtZGVjb3JhdGlvbi1saW5lOm5vbmU7dGV4dC1kZWNvcmF0aW9uLXN0eWxlOnNvbGlkO3RleHQtaW5kZW50OjA7dGV4dC1vcmllbnRhdGlvbjptaXhlZDt0ZXh0LXRyYW5zZm9ybTpub25lO3doaXRlLXNwYWNlOm5vcm1hbCIvPjxwYXRoIGQ9Ik0xMi45NiA2LjE4NmwtNi40OTQgNzQuMjNoODYuNThsNi40OTQtNzQuMjN6IiBmaWxsPSIjRkZGIiBzdHJva2U9IiNGRkYiLz48L3N2Zz4=)](https://github.com/alerque/libertinus/actions?workflow=Fontship)
[![Fontship Build Status](https://img.shields.io/github/actions/workflow/status/alerque/libertinus/fontship.yml?branch=master&label=Fontship&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQyLjgiIGhlaWdodD0iMTA2LjgiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwLjEzIDBhMy4wOTQgMy4wOTQgMCAwMC0zLjA4MyAyLjgyNEwuMDE0IDgzLjIzNGEzLjA5MyAzLjA5MyAwIDAwMy4wODIgMy4zNjNoOS43MjZjLS4xMzYuNjc1LS4yNSAxLjM1Ni0uMzEgMi4wNTMtLjg2NCA5Ljg3MyA2LjcxMyAxOC4xOCAxNi42IDE4LjE4IDkuODg4IDAgMTguNDQtNy44NzUgMTkuMzEtMTcuNzUuMDc0LS44NDIuMDcxLTEuNjcuMDMtMi40ODhoNDUuNDNhMTguMDM5IDE4LjAzOSAwIDAwLS4zMTUgMi4wNTNjLS44NjUgOS44OCA2LjcxMyAxOC4xOSAxNi42MSAxOC4xOSA5Ljg5NSAwIDE4LjQ1LTcuODczIDE5LjMxLTE3Ljc1YTE3LjI4IDE3LjI4IDAgMDAtLjAyNC0zLjA3OGg2Ljk1N3YuMDAyYy41NTQuMDEyLjc5NC4wMSAxLjQ4NC4wMjcgMi4wMjcuMTA3IDMuMzMzLjE2IDMuOTIuMTYuMzIgMCAuNTM0LS4wNTMuNjQxLS4xNi4xNi0uMTA2LjI0LS4yNC4yNC0uNC4wNTMtLjIxMy4wOC0uNTU5LjA4LTEuMDM5IDAtLjUzMy0uMDUzLS44ODEtLjE2LTEuMDQxLS4xMDctLjE2LS4zNzQtLjI0LS44LS4yNGgtLjExbC44Ni05LjgxNGMxLjIxNy0xMy45Mi0zLjE1NS0yNy4zNS0xMi4xOS0zNy4yNmwtMy41NzUtMy45MTZhMi41MDYgMi41MDYgMCAwMC0xLjg1LS44MTdoLTIxLjQybDIuNDYzLTI4LjE1YTMuMDkzIDMuMDkzIDAgMDAtMy4wOC0zLjM2M3oiIGNsaXAtcnVsZT0ibm9uemVybyIgY29sb3I9IiMwMDAiIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSIjRkZGIiBzdHlsZT0iZm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDtmb250LXZhcmlhbnQtYWx0ZXJuYXRlczpub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOm5vcm1hbDtmb250LXZhcmlhbnQtbGlnYXR1cmVzOm5vcm1hbDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC12YXJpYW50LXBvc2l0aW9uOm5vcm1hbDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczpub3JtYWw7aW5saW5lLXNpemU6MDtpc29sYXRpb246YXV0bzttaXgtYmxlbmQtbW9kZTpub3JtYWw7c2hhcGUtbWFyZ2luOjA7c2hhcGUtcGFkZGluZzowO3RleHQtZGVjb3JhdGlvbi1jb2xvcjojMDAwO3RleHQtZGVjb3JhdGlvbi1saW5lOm5vbmU7dGV4dC1kZWNvcmF0aW9uLXN0eWxlOnNvbGlkO3RleHQtaW5kZW50OjA7dGV4dC1vcmllbnRhdGlvbjptaXhlZDt0ZXh0LXRyYW5zZm9ybTpub25lO3doaXRlLXNwYWNlOm5vcm1hbCIvPjxwYXRoIGQ9Ik0xMi45NiA2LjE4NmwtNi40OTQgNzQuMjNoODYuNThsNi40OTQtNzQuMjN6IiBmaWxsPSIjRkZGIiBzdHJva2U9IiNGRkYiLz48L3N2Zz4=)](https://github.com/alerque/libertinus/actions?workflow=Fontship)

![Sample of Libertinus Font Faces](preview.svg)

Expand Down
146 changes: 146 additions & 0 deletions documentation/Features.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
# Standard OpenType Font Features

Libertinus supports several OpenType features.
Some are enabled by default (`-`) others have to be opted in (`+`).

- Small Caps: `+smcp` and `+c2sc`
- Ligatures and Contextual Alternates: `-liga`, `+hlig`, `+dlig`; `-calt`
- Kerning: `-kern`
- Capital Spacing: `+cpsp`, `case`
- Slashed zero: `+zero`
- Numerals: `-tnum`, `+pnum`, `-lnum`, `+onum`, `+pnum+onum`
- Vulgar fractions: `+frac`
- Subscripts and Superscripts: `+sinf`, `+sups`
- Diacritic marks: `-mark`, `-mkmk`
- Stylistic alternates: `+salt`

Most of these can be accessed by high-level CSS properties or values
and by GUI controls in DTP software.

## Cased forms: `+case`

All digits and some punctuation characters (i.e. parentheses, guillemets and hyphen)
use shapes that better fit with all-uppercase text (`.cap` or `.sc`).

## Standard ligatures: `-liga`

In serif faces,
the Latin lowercase letter sequences *ſſ*, *ſſi*, *ſſj*, *ſſk*, *ſſl*, *ſh*, *ſi*, *ſj*, *ſl*, *ſs*, *ſt*, *ff*, *ffh*, *ffi*, *ffj*, *ffk*, *ffl*, *fh*, *fi*, *fj*, *fk*, *fl*, *ft*
form default ligatures.

In sans-serif faces,
only the Latin lowercase letter sequences *ff* (also if the second one has a shortened head) and *ft*
form default ligatures.

The related feature `clig` is not used.

The respective CSS property is `font-variant-ligatures` with the value `common-ligatures` (or `no-common-ligatures`).

## Discretionary and Historical Ligatures: `+dlig`, `+hlig`

The only historical ligatures supported are Latin lowercase *st* and *ct* in all faces.

In all faces,
Latin lowercase letter sequences *tt* and *tz*
form discretionary ligatures.
Only in serif faces (i.e. non-sans-serif),
Latin letter sequences *Th*, *ck* and *ch*
also form discretionary ligatures.
These can all be manually forced by using ZWJ (U+200D) between letters when just the default feature `liga` is active.

The respective CSS property is `font-variant-ligatures` with the values `discretionary-ligatures` and `historical-ligatures`.

## Contextual alternates: `-calt`

In all faces,
the Latin capital and small-capital letter *Q* gains a long tail if followed by either lowercase or small-capital letter *u* or *v*.

The Latin lowercase letter *f*, even when part of the ligature *ff*, has a shortened head
if followed by closing parentheses, top quotation mark, lowercase letter with ascending left leg, lowercase letter with diacritic mark above or uppercase letter not starting with a leg or stem on the left.

The related feature `clig` is not used.

The respective CSS property is `font-variant-ligatures` with the value `contextual` (or `no-contextual`).

## Localized alternates: `locl`

For Serbian and Macedonian,
in all faces,
the Cyrillic lowercase letter be *б*
and in italic faces,
the Cyrillic lowercase letters ghe *г*, gje *ѓ*, de *д*, pe *п* and te *т*
are replaced by alternate glyphs.

For Scandinavian languages, because of preferences in Sami typography,
the Latin uppercase letter Eng *Ŋ* uses a alternative glyph, cf. `ss07`.

For Turkic languages,
ligatures where the Latin lowercase letter *i* is the second part are deactivated,
i.e. *fi*, *ffi*, *ſi* and *ſſi*.
The small-capitals handling of *i* / *ı* does not depend on `locl`, but is part of `smcp` (and `c2sc`).

## Numerals: `-tnum`, `+pnum`, `-lnum`, `+onum`, `+pnum+onum`

Except for Libertinus Math,
the standard digits can be forced to *old-style* forms (with ascenders and descenders) with `onum` (`.taboldstyle`),
to default *lining* forms with `lnum`,
to *proportional* forms with `pnum` (`.fitted`),
to *tabular* (fixed-width) forms with `tnum`.
The latter two also apply to Euro ** and Yen *¥* currency symbols and trump the other features.

The respective CSS property is `font-variant-numeric` with the values `oldstyle-nums`, `lining-nums`, `proportional-nums` and `tabular-nums`, respectively.

## Vulgar fractions: `+frac`; `subs`, `sups`; `sinf`

The same sets of inferior/subscript and superior/superscript glyphs are used for various features.

The respective CSS property for `frac` is `font-variant-numeric` with the value `diagonal-fractions`. The value `stacked-fraction` is not supported.

# Custom OpenType Font Features: Stylistic Sets

## Stylistic alternates: `+salt`

For non-sans-serif faces,
Latin uppercase letters *J*, *K*, *R* and *W* use alternate glyphs (`.alt`).

For small-caps faces,
Latin lowercase letters *a*, *q*, *ŋ* and *ß* use alternate glyphs (`.scalt` etc.).

In all faces,
Latin uppercase letters *Q*, eng *Ŋ* and eszet **, Latin lowercase letters *h*, *y* and Eszet *ß*,
Greek lowercase letters Beta *β*, Theta *θ*, Kappa *κ* and Phi *φ*,
Cyrillic lowercase letter Be *б*
and the ampersand *&* use alternate glyphs, cf. `calt`, `ss03`, `ss04`, `ss06`, `ss07`, `locl`.

The respective CSS property is `font-variant-alternates` with the value `stylistic(<feature-value-name>)`.

## Stylistic Set 1 `ss01` *Low diaeresis on ‘A’, ‘E’, ‘O’*

Intended for German, the umlaut dots above the Latin capital letters *A* and *O* (*Ä*, *Ö*) are moved further apart while the ones above *U* (*Ü*) are put closer together.

## Stylistic Set 2 `ss02` *Swashy ‘J’ ‘K’ ‘R’*

A bit more swashy, cursive look with elongated tails for Latin uppercase letter *K* and *R* and a left-hand horizontal top for *J*.
This does not apply to sans-serif faces.

## Stylistic Set 3 `ss03` *‘double s’ to two ‘s’*

All variants of German eszett (lowercase *ß*, uppercase ** and small-capital) are rendered as round-s digraphs *SS/ss* instead, very applicable to Swiss German texts.

## Stylistic Set 4 `ss04` *Upper case ‘double s’ to two ‘S’*

Only the uppercase German eszett ** is rendered as a round-s digraph *SS*; subset of `ss03`.

## Stylistic Set 5 `ss05` *Crossed ‘W’*

Latin uppercase letter *W* is rendered as a ligature of two *V*, i.e. the middle verticals are longer, as used in the Wikipedia logo.
This does not apply to sans-serif faces.

## Stylistic Set 6 `ss06` *Swash ‘&’*

The ampersand *&* is rendered as an *et* ligature.

## Stylistic Set 7 `ss07` *Swap ‘Eng’ forms*

The uppercase letter Eng *Ŋ*, i.e. an *N* with a descending tail on the right leg, uses the capital *N* glyph as its base instead of the default enlarged lowercase *n* glyph.
The localized `locl` UC Style for Sami is changed the other way around.
Loading

0 comments on commit 4589b4e

Please sign in to comment.