The kpfonts-otf package
========================

## Description

`kpfonts-otf` is meant as a replacement, for LuaLaTeX and XeLaTeX users,
of Christophe Caignaert’s `kpfonts` package. Christophe’s Type1 fonts have
been converted to OpenType using fontforge and Adobe's AFDKO bundle.
The package is still experimental, bug reports and suggestions are welcome.

## Contents

* the `font/` directory holds 21 OpenType fonts (16 for text and 5 for maths);
* the `tex/`  directory holds the style file kpfonts-otf.sty and
  fontspec configuration files;
* the `doc/`  directory holds documentation in English and French and
  a table of available maths symbols comparing kpfonts-otf to LatinModern,
  STIXTwo, Erewhon, TeXGyreTermes, Garamond and Libertinus.

## Installation

This package is meant to be installed automatically by TeXLive, MikTeX, etc.
Otherwise, `kpfonts-otf` can be installed under TEXMFHOME or TEXMFLOCAL, f.i.

+ alls fonts (`fonts/*.otf` files) in directory
  `texmf-local/fonts/opentype/public/kpfonts-otf/`
+ style and fontspec files (`tex/kpfonts-otf.sty` and `tex/*.fontspec`) in
  directory `texmf-local/tex/latex/kpfonts-otf/`
+ documentation (from doc/ directory) in
  `texmf-local/doc/fonts/public/kpfonts-otf/`

Don't forget to rebuild the file database (mktexlsr or so) if you install
under TEXMFLOCAL.

Finally, you may want to make the system font database aware of the
`kpfonts-otf` fonts (fontconfig under Linux).

## License

* The fonts included in `kpfonts-otf` are licensed under the
SIL Open Font License, Version 1.1.
This license is available with a FAQ at: http://scripts.sil.org/OFL
* The other files are distributed under the terms of the LaTeX Project
Public License from CTAN archives in directory macros/latex/base/lppl.txt.
Either version 1.3 or, at your option, any later version.

## Changes
* First release version: 0.30 (experimental, expect changes!).

* v. 0.31:
  Fixed inconsistent widths/sidebearings for six glyphs:
  =  ≠  <  ≤  >  ≥ (all five maths fonts affected, original Type1 too).

* v. 0.32:
  1. Text fonts:
     - `kpfonts-otf.sty` corrected: the "light" option didn't work properly.
     - kpfonts-otf should now cover all glyphs in TS1 encoding (`textcomp.sty`).
     - The height of all diacritics has been reviewed and corrected.
     - New combining diacritics added : U+0310, U+0323, U+0325, U+0327, U+0328.
     - New glyphs added: U+0110 (Dcroat), U+0111 (dcroat), U+0123 (gcircumflex),
       U+0126 (Hbar),  U+0127 (hbar), U+0129 (itilde), U+012B (imacron),
       U+012D (ibreve), U+0135 (jcircumflex), U+0166 (Tbar),  U+0167 (tbar)
       and their counterparts in Petite Caps and Small Caps.
     - Corrected Petite Caps and Small Caps variant for U+00F0 (eth),
       U+00FE (thorn), U+0111 (dcroat)  and U+014B (eng).
     - Optional ft and tt ligatures added, see feature "Ligatures=Required".
     - Variants for ligatures fi ffi fl ffl added, see "Alternate=1".
     - (faked) slanted fonts added to match kpfonts T1 version.
  2. Maths fonts:
     - Corrected mismatch between mitl (U+1d459) and ell (U+2113).
     - Slanted versions for \shortparallel and \nshortparallel
       and for \gtreqless, \lesseqgtr, \gtreqqless, \lesseqqgtr added.
     - Stretchy accents \wideoverbar, \widebreve, \widecheck added.
     - Reduced boldness for superscripts and supersuperscripts.
     - New option "tight" to reduce horizontal spaces in maths mode
       (same settings as \pkg{fourier} and \pkg{fourier-otf}).

* v. 0.33:
    - Roman Text fonts:
      Added 54 glyphs in Latin-ExtendedA range (mostly complete now).
    - Maths fonts:
      Fixed inconsistencies in superscripts and supersuperscripts metrics.

* v. 0.34:
  Massive glyph cleaning: many spurious control points deleted in glyphs
  for both Maths and Text fonts.

  1. Text fonts:
     - kernings before and after quoteright improved.
     - German capital Eszet (U+1E9E) added, in Petite and Small caps too,
       feature "StylisticSet=2" added to get SS instead of capital Eszet.
     - diacritics corrected in `KpRoman-LightItalic` (some were upright).
     - breaking change: feature "Alternate=1" changed to "StylisticSet=1"
       as it didn't work with XeTeX.
  2. Maths fonts:
     -  metrics (width, italic correction) reviewed.
     -  accents ovhook (U+0309), candra (U+0310), vertoverlay (U+202D) added.

* v. 0.35:
  1. Text fonts:
     - Added 54 glyphs in Latin-ExtendedA range for `KpSans` fonts.
     - Euro symbol added in Roman, Sans and Mono, option StyleSet=3 to
	   trigger it.
     - Added missing anchors for "dot below" on P, p, p.pc, p.sc, a.sc.
     - HarfBuzz renderer no longer loaded for HBLuaTeX engine, new option
       "harfbuzz" to force loading it (`kpfonts-otf.sty`).
  2. Maths fonts:
     - Stretchable delimiters corrected in KpMath-Sans.
     - Options `frenchstyle`, `partialup` and `fancyReIm` now work as intended.

* v. 0.36:
    Maths fonts:
    - `kpfonts-otf.sty`: Option mathcal deleted, \mathcal{} and \mathscr{}
      now print different glyphs.
    - mathcal substitutions corrected for `KpMath-Regular` and `KpMath-Sans`.
    - Stretchable \langle, \rangle, \lAngle and \rangle delimiters are now
      available in eight sizes (three bigger sizes added).
    - All vertical arrows are now stretchable.
    - Bug fix: stretchable right paren was broken in `KpMath-Sans`, thanks
      to Tom Stotko for pointed it out!

* v. 0.37:
  1. Text fonts:
     - Added glyphs U+2010 and U+2011 (hyphens).
     - Corrected `kpfonts-otf.sty`: option "largesmallcaps" fixed, new weights
       added (\sbseries, \ltseries, \ebseries), see documentation.
     - Breaking change: files `*.fontspec` changed so that the default smallcaps
       are now "Petite" instead of "Small" to match the orignal kpfonts default.
  2. Maths fonts:
     - Completed the collection of "squares", "triangles", "diamonds" and
       "lozenges".
     - Tuned all "squares", "circles" and "triangles": the smaller ones are
       centered on the math-axis, larger ones rest on the baseline.
     - \perp, \bot, \rightangle, \angle, \measuredangle, \sphericalangle
       shifted up, their bottom rests on the baseline now.

* v. 0.38:
  1. Text fonts:
     - Glyphs U+200B (zero width space) and U+2060 (word joiner) added.
     - Improved option "veryoldstyle" (luatex only): a final "s" is
       	 no longer turned into the long variant.
     - Fixed kerning after "f" in KpSans-BoldItalic.
  2. Maths fonts:
     - Added bold versions to \dotlessi, \dotlessj, named \mbfdotlessi,
       \mbfdotlessj (\mbfimath and \mbfjmath were already available).

* v. 0.39:
  New option "longs". Documentation corrected, thanks to Frank Mittelbach for
  pointing out the glitch in v0.38.

* v. 0.40:
  - OS2 FSType corrected (0 now): the fonts are now declared "installable".
  - kpfonts-otf.sty corrected (missing \fi), thanks to Denis Bitouzé
    for pointing it out.

* v. 0.41:
  1. Text fonts:
     - eurosym reshaped, width slightly reduced.
  2. Math fonts:
     - \vert and \Vert corrected: left and right bearings enlarged.
     - \Vvert (U+2980) added.
     - \coloneqq, \Coloneqq, \colonsim etc. corrected to be compatible
       with mathtools’ definitions.

* v. 0.42:
     Maths fonts:
     - Added missing U+0338 for negation of \mathrel chars.
     - Added \smallin (U+220A), \smallni (U+220D).
     - Added \awint (U+2A11).

* v. 0.43:
     Text fonts: kpfonts-otf.sty now loads realscripts for better superscripts.
     Maths fonts: Vertical variants of slash and backslash are now accessible.

* v. 0.44:
     Maths fonts: fixed bug for \vert variants in script and scriptscriptstyle.

* v. 0.45:
     Maths fonts: delimiters, integrals, sum, prod etc. are now vertically
     centred by design on the maths axis (required by luametatex).
     Fixed inconsistencies about bold and semibold integrals.

* v. 0.46:
  1. Text fonts: option longs deleted, option veryoldstyle improved, the
	 substitution from `s' to `ſ' is now handled by "StylisticSet=12".
  2. Maths fonts:
     - Added a smaller variant for \widehat, \widetilde, \widecheck.
     - Vertical variants added for \vert, \Vert, \Vvert.
     - Added stretchable integral for U+222B (usable with luametatex).

* v. 0.47:
     Text fonts: moved the s= ligature from liga to hlig as it only makes
     sense with the "veryoldstyle" option.

* v. 0.48:
  1. Text fonts: oldstyle digits added to lookups "sups" and "subs" for
     \textsuperscript{} and \textsubscript{} (`realscripts` package).
  2. Maths fonts: package now compatible with mathtools’ stretchable arrows.
     New Bold Sans variant: KpMath-SansBold.otf.
     \diagup and \diagdown moved from private area to U+27CB, U+27CD.

* v. 0.51:
   - Math fonts: \overleftrightarrow is now stretchable.
     Metrics of all "over" arrows and harpoons corrected.
     Metrics of all "under" arrows and harpoons corrected.
     Most horizontal arrows and harpoons are now stretchable.

* v. 0.52:
   - Math fonts: minor corrections to radicals.
     Fixed missing mcalM in KpMath-Sans.otf

* v. 0.53:
   - Text fonts: added missing substitutions 'sups' and 'sinf' for
     the minus sign.

* v. 0.54:
   - Math Sans Serif fonts: \imath and \jmath corrected.
   - Math Bold and Semibold fonts: missing glyphs added in range
     U+1D400-U+1D7F5 (SE#688363).
   - File kpfonts-otf.sty: new options 'sftext', 'sfmath', 'sans'.

* v. 0.55:
   - Math Sans Serif fonts: added missing glyphs added in range
     U+1D5A0-U+1D66F and U+1D7E2-U+1D7F5 (forgotten in v.0.54).
   - Math fonts: added tt alphabet (letters/digits) when missing.

* v. 0.56:
   - Math fonts: fixed IsExtendedShape flags.
     \mid (U+2223) and \parallel (U+2225) vertical variants changed.
   - Fixed missing \fi in kpfonts-otf.sty.

* v. 0.60:
   - Text fonts: glyphs dcaron, lcaron, tcaron, Lcaron, lcaron.sc and
     lcaron.pc corrected. Inconsistencies on Lacute glyphs fixed.
     Mono fonts: zero is slashed now (was too similar to capital O).
   - Math fonts: files KpMath-Regular.fontspec, KpMath-Light.fontspec
     and KpMath-Sans.fontspec added (they define `BoldFont=`).
     OT features cvNN are now applied before ssty (applied last).

* v. 0.61:
   - Math fonts: some inconsistencies between delimiter sizes fixed.
     Metrics of \widebreve, \widecheck, \widehat, \widetilde first
     horizontal variant (.h0) changed: f.i. $\hat{r} \ne \widehat{r}$.

* v. 0.62:
   - Math fonts: vertical delimiters redesigned (sizes and boldness).

* v. 0.63:
   Text fonts:
   - Super/Sub-scripts added: punctuation, brackets, braces, dashes, etc.
   - Option 'fakedscripts' added to kpfonts-otf.sty; it prevents loading
     of package realscripts.

* v. 0.64:
   - Math fonts: added missing hyphen (U+002D).

* v. 0.65:
   - Text fonts: improved kernings for Small and Petites Caps.

* v. 0.66:
   - Math fonts: glyphs U+2032 to U+2037 and U+2057 (prime and co.) redesigned.

* v. 0.67:
   - Math fonts: Math table fixes for glyph horizontal/vertical composition.

* v. 0.70:
   - Math fonts: compatibility with Typst v0.14: all glyphs used in
     vertical compositions now sit on the baseline.
     Invisible Math operators (U-2061 to U+2064) added.
  - Documentation fixes.

* v0.71
    Math fonts:
    Variation Selector U+FE00 added. Works currently for Typst, not (yet) for
    LuaLaTeX/unicode-math [https://github.com/latex3/unicode-math/issues/661]:
    - mcal (Chancery) variants of mscr (Round hand) capitals can be accessed
    via variation selector U+FE00.
    - U+FE00 may also be used to get variants of "zero" (U+0030), "emptyset"
    (U+2205), some large inequalities (U+2268, U+2269, U+22DA, U+22DB, U+2A8B,
    U+2A8C, U+2272 U+2273), and some subsets (U+228A, U+228B, U+2ACB, U+2ACC).

* v0.72
    Text fonts: Breton "Kbarré" (U+A743, U+A742) added:
    - uppercase, lowercase, petites and small caps for the Roman family.
    - uppercase and lowercase only for the Sans and Mono families.
    Math fonts: 
    - Inconsistencies in widehat, widetilde and other over/under accents fived.
    - over/underbrace: variant's sizes tuned for smoother variation.

* v0.73
    Text fonts: glyphs U+02BB, U+02BC and U+02BD added.
    Math fonts: 
	- Math table Sub/Superscripts parameters tuned, see
      https://tex.stackexchange.com/questions/759695/
	- Wrong glyph U+2289: long standing bug, inherited from the original
	  kpfonts, see https://tex.stackexchange.com/questions/760494/

* v0.74 
    Math fonts: 
    - \setminus (U+2216) and \smallsetminus (U+E0A0) have now different glyphs.
    - Variation Selector U-FE00 usage fixed: it works on script capitals
      (turned to Chancery style) and on all Math characters listed on
	  https://www.unicode.org/Public/UCD/latest/ucd/StandardizedVariants.txt
	  which are available in KPfonts.
    - Fixed spaces' width (U+2000 to U+200B and U+205F).
   Text Mono fonts: 
    - Spaces U+0020 and U+00A0 had a non-standard width (long standing bug
	  pointed out by Mike Allen), fixed now.
  
---
Copyright 2020-2026  Daniel Flipo 
E-mail: daniel (dot) flipo (at) free (dot) fr
