From 4e6fb7c03bc033485887a99d2ffeca70ef8c0644 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sat, 27 Feb 2021 03:01:43 +0000 Subject: CTAN sync 202102270301 --- .../documentation/Design-Guidelines.md | 221 +++++++++++++ fonts/libertinus-fonts/documentation/Features.md | 146 +++++++++ .../libertinus-fonts/documentation/libertinus.css | 347 +++++++++++++++++++++ fonts/libertinus-fonts/documentation/preview.pdf | Bin 72593 -> 72604 bytes 4 files changed, 714 insertions(+) create mode 100644 fonts/libertinus-fonts/documentation/Design-Guidelines.md create mode 100644 fonts/libertinus-fonts/documentation/Features.md create mode 100644 fonts/libertinus-fonts/documentation/libertinus.css (limited to 'fonts/libertinus-fonts/documentation') diff --git a/fonts/libertinus-fonts/documentation/Design-Guidelines.md b/fonts/libertinus-fonts/documentation/Design-Guidelines.md new file mode 100644 index 0000000000..086268cd7f --- /dev/null +++ b/fonts/libertinus-fonts/documentation/Design-Guidelines.md @@ -0,0 +1,221 @@ + + + + +- [Libertinus design guidelines](#libertinus-design-guidelines) + - [Design principles](#design-principles) + - [The perfection of the imperfect](#the-perfection-of-the-imperfect) + - [The styles of Libertinus](#the-styles-of-libertinus) + - [The serifs of Libertinus](#the-serifs-of-libertinus) + - [The foot serifs](#the-foot-serifs) + - [The middle head serifs (at x-height)](#the-middle-head-serifs-at-x-height) + - [The ascender serifs (at ascender height)](#the-ascender-serifs-at-ascender-height) + - [The half serifs](#the-half-serifs) + - [The drop terminals](#the-drop-terminals) + - [Two letters as primary design patterns ...](#two-letters-as-primary-design-patterns-) + - [... `n` for letters with serifs](#-n-for-letters-with-serifs) + - [... `o` for letters with round parts](#-o-for-letters-with-round-parts) + - [Secondary design patterns](#secondary-design-patterns) + - [Vertical metrics](#vertical-metrics) + - [Spacing and tracking](#spacing-and-tracking) + - [Overshoot and height metrics](#overshoot-and-height-metrics) + - [FontForge font editor](#fontforge-font-editor) + - [How the sources are organized](#how-the-sources-are-organized) + - [The layers](#the-layers) + - [Drawing splines and contours](#drawing-splines-and-contours) + - [Accented glyphs](#accented-glyphs) + - [Working with references](#working-with-references) + - [Base marks and anchors](#base-marks-and-anchors) + - [Authors](#authors) + + + +# Libertinus design guidelines + +These are short guidelines for all volunteers who love libre fonts in general, the Libertinus font family in particular, and who are considering contributing to the latter. +All fonts contain a multitude of glyphs. Libertinus for example has several thousand glyphs, and while each is unique they also all fit together. The glyphs have to fit together — in their design, their optical weight, and their spacing. Some technical issues have to be addressed to achieve that. +Sounds complicated? Don't worry, these guidelines are to help get you started! + +## Design principles + +The shape of each letter is a social convention, usually a very old one. For example, the Latin alphabet was derived from Roman letters, those were based on Greek letters, which in turn have their roots in Phoenician scripts. In 765 AD, the [Carolingian minuscule](https://en.wikipedia.org/wiki/Carolingian_minuscule) was established as a standard for writing and thus gave our lower-case letters their present shape. Today with [Unicode]( http://www.unicode.org) we have a specification (i.e. a computing industry standard) defining the name, basic form, and encoding position of nearly every known glyph in the world. + +A type designer thus works within a framework. They interpret the essence of a letter and make decisions about design characteristics such as: + +1. **Serifs**: form and length of foot serif(s), head serif and ascender serif or even completely without => sans-serif; +2. **Font-weight**: as a result of stroke weight and spacing; +3. **Spacing / tracking**: the white area between letters and within them => size of counters; +4. **Contrast** between hairline and stem; +5. **Stress** or **axis**: the calligraphic angle; +6. **Proportion**: x-height and cap-height, length of ascender and descender. + +### The perfection of the imperfect + +Mathematically ideal forms are perfect but boring. That is one side of the coin. The other side is that typography has to take optical effects and peculiarities of human vision into account. The [overshoot](https://en.wikipedia.org/wiki/Overshoot_%28typography%29) of round characters, cupped serifs, tapered stems, kerning, etc. are examples of measures improving the overall impression and the legibility of type. These measures are summarized under the term [microtypography](https://en.wikipedia.org/wiki/Microtypography). A special property has gained importance with digitization: The distinguishability of similar glyphs. +A **counter-example** in this case is the famous [Futura](https://en.wikipedia.org/wiki/Futura_%28typeface%29) Paul Renner designed in 1927. Influenced by the Bauhaus ideals he reduced type to geometric elements. In his font `d`, `p`, `b`, and `q` are circles with stems that are just flipped or rotated copies of each other. The `a` is a `d` without ascender. The impression is a very reduced but somehow elegant font you can use as a display typeface in higher grades. But it definitely causes pain to read body text in Futura. You will of course find people denying that. Well, it is the sort of people who believe that the "frilled" serif antiqua is obsolete and sans-serif is the ne plus ultra. + +### The styles of Libertinus + +![The different styles of the Libertinus font family](figures/styles.png) + +Currently, there are six different styles of Libertinus: + +**Regular** and **Italic** have standard weight, also known as "book". They are designed for 11pt. +The **Bold** and **Bold italic** are heavier forms of the above mentioned. The **Display** is a special light and elegant variant for titles and headlines. +Each style of Libertinus contains a subset of small capitals. The **Small caps** style is an extended set of the regular style. + +### The serifs of Libertinus + +![The foot serif of letters such as `n`, `m`, `r`, ...](figures/footserif.png) +#### The foot serifs + +The figure above shows a foot serif of Libertinus. Foot serifs are the most common serifs and give shape to the lower-case `f`, `h`, `i`, `k`, `l`, `m`, `n`,`r`, and many more upper-case letters. They occur in a diagonal form in the letters `k`, `v`, `w`, `x`, and `y`; not only at the baseline but also at the x-height. In `p` and `q` they form the descender. +In the figure, you can recognize that the serif's thickness in the regular style and the bold style is nearly identical, i.e. 33 EM : 34 EM (see [Vertical Metrics](#vertical-metrics)for an explanation of the unit "EM"), while the stem in the bold style is 1.6 times fatter. +**Did you notice?** The right half of the shown serif is a bit shorter than the opposite because it is the left serif of the `n`. This is an optical measure to avoid the foot serifs coming too close and narrow to the open counter. This is important for the legibility of `n`. +**Did you notice?** The outer left and right parts of the serif bow down a little, giving the whole a concave form. This measure is called "cupped serif". + +![`n` as design pattern](figures/headserif.png) + +#### The middle head serifs (at x-height) + +This figure shows the head serif of `n`, `m`, `r`, and `p`. It is a characteristic of Libertinus that this serif bows to the left and opens the angle where stem and hairline join. +Have a look at `i` and `j`. Their head serifs are upright and do not bow to the left. There are just no angles to open. +**Did you notice?** The upper spline of the head serif is a bit concave. It is as "cupped" as the foot serif. + +![The upper head serif of `l`](figures/ascenderserif.png) + +#### The ascender serifs (at ascender height) + +The **ascender** (or **upper head serifs**) occurs in the letters `b`, `d`, `h`, `k`, and `l`. They look similar to the serifs of `i` and `j`, but they are in fact not identical. + +![The half-serif of `s`](figures/halfserif.png) + +#### The half serifs + +Half-serifs occur in the lower-case letters `s` and `z`, and at capitals such as `C`, `G`, `F`, `L`, `S`, `T`, and `Z`. The half-serif of the `s` is nearly vertical while most others are diagonal. At the point where the outer contour passes over into the serif there is a right angle; a Libertinus characteristic. Compare round letters such as `C` and `G` with rectangular ones such as `F` and `T`. +In the bold style the diagonal stroke grows, but not as much as the verticals stems do. This is because the counters shrink, whereby the glyph already gains enough weight. +**Did you notice?** The half-serif's form is actually not cupped but even slightly convex. + +![The drop at the right hook terminal of `f`](figures/dropterminals.png) + +#### The drop terminals + +The drop occurs in the letters `a`, `c`, `f`, `g`, `j`, `r`, and `y`. +In the bold style, the drop terminals get much heavier while the hairline does not receive such a strong growth. In the figure you will also recognize that the x-height rises about 5 EM in the bold style. +**Did you notice?** The drops of Libertinus' letters are oblated at the end. You will also find that the `.` (period) and the bulbs of `,` and `"` are flattened. This is another characteristic of Libertinus. + +### Two letters as primary design patterns ... +When developing a font, one starts with just a few letters (or "glyphs") and defines those as as design patterns. These are `n` and `o` in Libertinus. +In reverse, modifications on them causes conflicts with all derived letters, so you better do not touch them. + +![`n` as design pattern](figures/n-Referenzglyph.png) + +#### ... `n` for letters with serifs +The lower-case letter `n` defines: + +* the **serifs**; +* the **stem width**. This is 79 EM for lower-case and, derived from that, 85 EM for upper-case; +* **Spacing**. The inner distance between the two stems. Thus, the white space of the counter affects tracking. It is regarded as default for optical spacing between letters; +* **font-weight**. An effect of stem width and tracking; +* **x-height** and **overshoot**: The body of lower-case letters is 429 EM tall. Round parts overshoot the x-height and the baseline about 10 EM. This typographic measure achieves that letters like `o`, `e`, `c`, but also `n`, `m`, `r`, etc. have the same optical height as `x`. In FontForge, the overshoot corridor is marked in rose color. + +Derived letters: `m`, `r`, `h`, `i`, `j`, `l`, `u`, ... + +![`o` as design pattern, stress angle, and optical bearings](figures/o-Referenzglyph.png) +#### ... `o` for letters with round parts +The lower-case letter `o` defines the following characteristics for all letters with round parts: + +* **stress**: the calligraphic angle; +* **min./max. width** of round strokes, i.e. 35 EM for thinnest and 86 EM for boldest part of stroke; +* **Spacing**. The white space of the counter affects tracking. This is because the white space between glyphs (the sum of the optical bearings) shall be equal to the counter. To find the correct spacing for the glyphs is a hard piece of work; +* **Bearings** as indication for spacing of round characters. + +The right part of the figure shows a bold `o` with the pointed contour of the regular `o` on top of it. You can see that the vertical strokes grow in width while the hairline nearly stays the same. The glyph emboldens especially at the outer part and becomes wider. The strokes also gain width on the inner side of the character whereby the counter shrinks. Both, the increased stroke thickness and the shrink of the counters, result in a heavier font weight. + +Derived letters: `e`, `c`, and round parts of `b`, `d`, `p`, `q`, `g`, .... **Please note:** *Derived* does not simply mean "copy and paste". When it comes to the round parts of glyphs, you will always have to modify and improve form, weight, and bearings. + +### Secondary design patterns + +Besides the letters `n` and `o`, all basic alphabetic characters form the sets of secondary design patterns. The following table lists the Unicode ranges of secondary design patterns. + +| Alphabet | Glyphs | Unicode Range | Chart | +| :------------- | :------------- | :------------- | :------------- | +| Basic Latin (ASCII) | `0--9` `A--Z` `a--z` | 0000--007F | [PDF](figures/LF-Libertinus_BasicLatin.pdf) | +| Basic Greek | `Α--Ω` `α--ω` | 0370--03FF | [PDF](figures/LF-Libertinus_BasicGreek.pdf) | +| Basic Cyrillic | `А--Я` `а--я` | 0400--04FF | *to do* | + +### Vertical metrics + +![Heights and overshoot margins](figures/heights.png) + +The figure shows the vertical metric of Libertinus Regular. The horizontal borderlines are called "heights". The **x-height** for example is the upper horizontal border of lower-case like `a`, `c`, `e`, ..., `x`. Libertinus' upper-case glyphs are a bit shorter (=> **caps-height**) than the ascenders of the lower-case glyphs (=> **ascender-height**). This is also true for numbers which have their own **numbers-height** and for small caps with their **caps-height**. +By definition, the height of the EM square is divided into 1000 units we call "EM units" or just "EM". Simply speaking, we are working in an Cartesian coordinate system. +**Have you noticed** the rose colored margins? They are the overshoot-margins. As mentioned above, round glyph-parts have to overshoot the line-height to form the optical illusion of evenness. + +### Spacing and tracking + +![Spacing of letters has to base on optical assessment and has to correspond with the counter space](figures/spacing.png) + +Well, you have drawn a wonderful glyph and now you think that the work is done? Wrong! The spacing and finding the right tracking of a glyph is one of the major tasks. You have to check dozens of constellations of glyph pairs and have to make lots of compromises. The figure shows the counter space in blue and the inter-glyph spacing in red. The counters play an important role in tracking. The spacing and counters should be equally balanced. +Remember the figure indicating the bold `o`? Thinner counters lead to thinner letter spacing, and thus to an increased density of the face and higher weight. +Libertinus' glyphs are already fairly well-spaced. If you want to set the spacing of a new glyph or improve the existing one, chose one of the reference characters that resembles yours and make a decision based on that. + +### Overshoot and height metrics + +*Please complement description.* + +## FontForge font editor + +![`o` as design pattern](figures/fontforge-fontview.png) + +Libertinus is being developed with the font editor FontForge. Binary packages are available for many Linux distributions (Ubuntu, Fedora, OpenSUSE ...), macOS, and Windows. See [FontForge's project page](http://fontforge.github.io) for more information. +There is also a fairly good manual: [Design fonts with FontForge](http://designwithfontforge.com/en-US/index.html). + +### The layers + +In the glyph view you will find a little tool-box called "layers" amongst others. The contours of Libertinus are stored in the "glyph layer". You can use the "background layer" to store contours from another glyph for comparing certain characteristics like form, height, counter width, and such. Finally, the "guide layer" contains metrical lines such as x-height, caps-height, etc. and it is actually unique for all glyphs. So, please leave that one untouched. + +### Drawing splines and contours + +![The four point types and drawing contours](figures/r-Point-types.png) + +Vector based fonts such as TTF and OTF use [Bézier curves](https://en.wikipedia.org/wiki/B%C3%A9zier_curve). You will know them from vector graphics editors such as Inkscape or Illustrator. FontForge knows four different point types: + +1. the curve point (left and right handle stick together); +2. the h/v curve point (90° horizontal or vertical handles); +3. the corner point (left and right handle are independent); +4. the tangent point (the handle follows the direction of the afferent spline). + +You can easily change the point type via the point menu. A right click on a point will open a context menu, allowing you to control the type and exact position of the point and its handle points. + +Contours always have to be closed. Only closed contours will fill. Outer contours have to be tagged clockwise. Inner contours (forming counters) need to be tagged counter-clockwise. + +### Accented glyphs + +#### Working with references + +![Working with references and use of my-metrics-option](figures/i-Referenzglyph-UseMyMetrics.png) + +The latin codepages contain a lot of accented characters. These are generally nothing else but different combination of basic glyphs and accents. For example, the `é` is combined of `e` + `´`. You do not need to work with copied contours in these cases. You can and should make use of a reference that points to the original glyph. + +**Example:** The letter `i` is in fact also an accented character made up of the glyphs `ı` (named *dottlessi*) and `˙` (named *dotaccent*). To ensure that improvements in the metrics of the referenced glyph are handed down to the derivated glyph, the checkbox "Use my metrics" has to be enabled. +Nearly all imaginable kind of accents have been encoded by now. You can find them in these two Unicode charts: +* [Unicode-Chart Combining Diacritical Marks *U+0300--U+036F*](http://unicode.org/charts/PDF/U0300.pdf) +* [Supplement *U+1DC0--U+1DFF*](http://unicode.org/charts/PDF/U1DC0.pdf) + +#### Base marks and anchors + +*Please complement description.* + +## Authors + +- Gillian Tiefenlicht [GillianTL](https://github.com/GillianTL) diff --git a/fonts/libertinus-fonts/documentation/Features.md b/fonts/libertinus-fonts/documentation/Features.md new file mode 100644 index 0000000000..faa4cbd834 --- /dev/null +++ b/fonts/libertinus-fonts/documentation/Features.md @@ -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()`. + +## 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. diff --git a/fonts/libertinus-fonts/documentation/libertinus.css b/fonts/libertinus-fonts/documentation/libertinus.css new file mode 100644 index 0000000000..2709d32fbe --- /dev/null +++ b/fonts/libertinus-fonts/documentation/libertinus.css @@ -0,0 +1,347 @@ +/** + * @version 7.031 + * @date 2021-01-17 + */ +/** + * Libertinus Font Faces + * ===================== + */ +/** + * Libertinus Serif + * ---------------- + */ +@font-face /* Libertinus Serif Regular Upright */ +{ + font-family: Libertinus Serif/*, Libertinus*/; + font-style: normal; + font-weight: 400; + src: local(Libertinus Serif), local(Libertinus Serif Regular), local(Libertinus), + /* local(Linux Libertine), */ + url("static/OTF/LibertinusSerif-Regular.otf") format("opentype"), + url("static/WOFF2/LibertinusSerif-Regular.woff2") format("woff2"); +} +@font-face /* Libertinus Serif Regular Italic */ +{ + font-family: Libertinus Serif/*, Libertinus*/; + font-style: italic; + font-weight: 400; + src: local(Libertinus Serif Italic), + url("static/OTF/LibertinusSerif-Italic.otf") format("opentype"), + url("static/WOFF2/LibertinusSerif-Italic.woff2") format("woff2"); +} +@font-face /* Libertinus Serif Semibold Upright */ +{ + font-family: Libertinus Serif/*, Libertinus*/; + font-style: normal; + font-weight: 600; + src: local(Libertinus Serif), local(Libertinus Serif Semibold), + url("static/OTF/LibertinusSerif-Semibold.otf") format("opentype"), + url("static/WOFF2/LibertinusSerif-Semibold.woff2") format("woff2"); +} +@font-face /* Libertinus Serif Semibold Italic */ +{ + font-family: Libertinus Serif/*, Libertinus*/; + font-style: italic; + font-weight: 600; + src: local(Libertinus Serif Semibold Italic), + url("static/OTF/LibertinusSerif-SemiboldItalic.otf") format("opentype"), + url("static/WOFF2/LibertinusSerif-SemiboldItalic.woff2") format("woff2"); +} +@font-face /* Libertinus Serif Bold Upright */ +{ + font-family: Libertinus Serif/*, Libertinus*/; + font-style: normal; + font-weight: 700; + src: local(Libertinus Serif Bold), + url("static/OTF/LibertinusSerif-Bold.otf") format("opentype"), + url("static/WOFF2/LibertinusSerif-Bold.woff2") format("woff2"); +} +@font-face /* Libertinus Serif Bold Italic */ +{ + font-family: Libertinus Serif/*, Libertinus*/; + font-style: italic; + font-weight: 700; + src: local(Libertinus Serif Bold Italic), + url("static/OTF/LibertinusSerif-BoldItalic.otf") format("opentype"), + url("static/WOFF2/LibertinusSerif-BoldItalic.woff2") format("woff2"); +} +/** + * ### Libertinus Serif Display ### + */ +@font-face /* Libertinus Serif Display */ +{ + font-family: Libertinus /*Serif*/ Display/*, Libertinus*/; + font-style: normal; + font-weight: 400; + src: local(Libertinus Serif Display), + url("static/OTF/LibertinusSerifDisplay-Regular.otf") format("opentype"), + url("static/WOFF2/LibertinusSerifDisplay-Regular.woff2") format("woff2"); +} +/** + * ### Libertinus Serif Initials ### + */ +@font-face /* Libertinus Serif Initials */ +{ + font-family: Libertinus /*Serif*/ Initials/*, Libertinus*/; + font-style: normal; + font-weight: 400; + src: local(Libertinus Serif Initials), + url("static/OTF/LibertinusSerifInitials-Regular.otf") format("opentype"), + url("static/WOFF2/LibertinusSerifInitials-Regular.woff2") format("woff2"); +} +/** + * Libertinus Sans + * --------------- + */ +@font-face /* Libertinus Sans Regular Upright */ +{ + font-family: Libertinus Sans/*, Biolinum*/; + font-style: normal; + font-weight: 400; + src: local(Libertinus Sans), + url("static/OTF/LibertinusSans-Regular.otf") format("opentype"), + url("static/WOFF2/LibertinusSans-Regular.woff2") format("woff2"); +} +@font-face /* Libertinus Sans Regular Italic */ +{ + font-family: Libertinus Sans/*, Biolinum*/; + font-style: italic; + font-weight: 400; + src: local(Libertinus Sans Italic), + url("static/OTF/LibertinusSans-Italic.otf") format("opentype"), + url("static/WOFF2/LibertinusSans-Italic.woff2") format("woff2"); +} +@font-face /* Libertinus Sans Bold Upright */ +{ + font-family: Libertinus Sans/*, Biolinum*/; + font-style: normal; + font-weight: 700; + src: local(Libertinus Sans Bold), + url("static/OTF/LibertinusSans-Bold.otf") format("opentype"), + url("static/WOFF2/LibertinusSans-Bold.woff2") format("woff2"); +} +/** + * Libertinus Math + */ +@font-face /* Libertinus Serif Math */ +{ + font-family: Libertinus /*Serif*/ Math; + font-style: normal; + font-weight: 400; + src: local(Libertinus Math), + url("static/OTF/LibertinusMath-Regular.otf") format("opentype"), + url("static/WOFF2/LibertinusMath-Regular.woff2") format("woff2"); +} +/** + * Libertinus Mono + */ +@font-face /* Libertinus Serif Mono */ +{ + font-family: Libertinus /*Serif*/ Mono; + font-style: normal; + font-weight: 400; + src: local(Libertinus Mono), + url("static/OTF/LibertinusMono-Regular.otf") format("opentype"), + url("static/WOFF2/LibertinusMono-Regular.woff2") format("woff2"); +} +/** + * Libertinus Keyboard + */ +@font-face /* Libertinus Serif Keyboard */ +{ + font-family: Libertinus Keyboard; + font-style: normal; + font-weight: 400; + src: local(Libertinus Keyboard), + url("static/OTF/LibertinusKeyboard-Regular.otf") format("opentype"), + url("static/WOFF2/LibertinusKeyboard-Regular.woff2") format("woff2"); +} + +/** + * Standard OpenType Features + * ========================== + * + * Libertinus supports several OpenType features, + * some are enabled by default (`-`) others have to be opted in (`+`), + * most can be accessed by high-level CSS properties and values: + * + * * Small Caps: features `font-variant` and `font-variant-caps` with values `small-caps` (`+smcp`) and `all-small-caps` (`+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` + */ +/** + * 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`). + * + * This should really be automatically activated for `text-transform: uppercase`, but is not as of Level 4 of CSS Fonts and CSS Text. + */ +/** + * 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_, + * in serif faces (i.e. non-sans-serif), also _Th_, _ck_ and _ch_, + * form discretionary ligatures. + * + * These can all be manually forced by using ZWJ (U+200D) between letters and just the default feature `liga`, too. + * + * 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*, and + * 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 them 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 llowercase 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`. + */ +/** + * 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. + */ + +/** + * Advanced OpenType Font Features: Stylistic Sets + * =============================================== + */ + +@font-feature-values + Libertinus, + Libertinus Serif, + Libertinus Sans, + Libertinus Math, + Libertinus Mono, + Libertinus Keyboard +{ + /** + * Stylistic alternates: `+salt` + * ----------------------------- + * + * For non-sans-serif faces, uppercase letters J, K, R and W use alternate glyphs (`.alt`). + * For small-caps faces, 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 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()`. + * The definition in CSS does not seem well thought out yet since it always requires a value name. + */ + @stylistic {on: 1;} + /** + * Stylistic Set 1 `ss01` _Low diaeresis on 'A', 'E', 'O'_ + * ------------------------------------------------------- + * + * In German, the umlaut dots above the Latin capital letters *A* and *O* (*Ä*, *Ö*) are sometimes moved further apart while the ones above *U* (*Ü*) are put closer together. + */ + @styleset {low-diaeresis: 1;} + /** + * 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. + */ + @styleset {swashy: 2;} + /** + * 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 instead, very applicable to Swiss German texts. + */ + @styleset {double-s: 3;} + /** + * Stylistic Set 4 `ss04` _Upper case 'double s' to two 'S'_ + * --------------------------------------------------------- + * + * Only the uppercase German eszett *ẞ* is rendered as a round-s digraph, subset of `ss03`. + */ + @styleset {uppercase-double-s: 4;} + /** + * 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. + */ + @styleset {crossed-W: 5;} + /** + * Stylistic Set 6 `ss06` _Swash '&'_ + * ---------------------------------- + * + * The ampersand *&* is rendered as an _et_ ligature. + */ + @styleset {swash-ampersand: 6;} + /** + * 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. + */ + @styleset {swap-eng: 7;} +} diff --git a/fonts/libertinus-fonts/documentation/preview.pdf b/fonts/libertinus-fonts/documentation/preview.pdf index ef2d6cdc6b..980e3cd731 100644 Binary files a/fonts/libertinus-fonts/documentation/preview.pdf and b/fonts/libertinus-fonts/documentation/preview.pdf differ -- cgit v1.2.3