CTAN Comprehensive TeX Archive Network

Directory fonts/kpfonts-otf


The kpfonts-otf package


kpfonts-otf is meant as a replacement, for Lua 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.


  • 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, GyreTermes, Garamond and Libertinus.


This package is meant to be installed automatically by Live, Mik, 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).


  • 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 Project
Public License from CTAN archives in directory macros/latex/base/lppl.txt. Either version 1.3 or, at your option, any later version.


  • 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 .

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 HBLua 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".
    1. 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.

— Copyright 2020-2024 Daniel Flipo E-mail: daniel (dot) flipo (at) free (dot) fr

Download the contents of this package in one zip archive (4.2M).

kpfonts-otf – OTF version of the Kp-fonts

This bundle provides OpenType versions of the Type1 Kp-fonts designed by Christophe Caignaert. It is usable with Lua or engines only.

It consists of sixteen Text fonts (eight Serif, four Sans-Serif, four Monotype) and six Math fonts.

Serif and Sans-Serif families have small caps available in two sizes (SmallCaps and PetitesCaps), upper and lowercase digits, real superscripts and subscripts; ancient ligatures (ct and st), ancient long-s and a long-tailed capital Q are available via font features.

Math fonts cover all usual symbols including AMS’; a full list of available symbols is provided, see the ‘List of glyphs’.

Version0.63 2024-05-02
LicensesThe Project Public License 1.3
The SIL Open Font License
Copyright2020–2024 Daniel Flipo
MaintainerDaniel Flipo
Contained inTeX Live as kpfonts-otf
MiKTeX as kpfonts-otf
Body Font
OTF Font
Maths Font
Font support
Font serif
Proportional Font
Monospaced Font
Sans Font
See alsokpfonts
Guest Book Sitemap Contact Contact Author