summaryrefslogtreecommitdiff
path: root/fonts/kpfonts-otf
diff options
context:
space:
mode:
Diffstat (limited to 'fonts/kpfonts-otf')
-rw-r--r--fonts/kpfonts-otf/README.md52
-rw-r--r--fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.ltx666
-rw-r--r--fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.pdfbin0 -> 185303 bytes
-rw-r--r--fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.ltx687
-rw-r--r--fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.pdfbin0 -> 186790 bytes
-rw-r--r--fonts/kpfonts-otf/doc/unimath-kpfonts.ltx515
-rw-r--r--fonts/kpfonts-otf/doc/unimath-kpfonts.pdfbin0 -> 1808511 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpMath-Bold.otfbin0 -> 203372 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpMath-Light.otfbin0 -> 467220 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpMath-Regular.otfbin0 -> 392940 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpMath-Sans.otfbin0 -> 271876 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpMath-Semibold.otfbin0 -> 202128 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpMono-Bold.otfbin0 -> 55492 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpMono-BoldItalic.otfbin0 -> 62800 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpMono-Italic.otfbin0 -> 64116 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpMono-Regular.otfbin0 -> 56660 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpRoman-Bold.otfbin0 -> 118272 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpRoman-BoldItalic.otfbin0 -> 132500 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpRoman-Italic.otfbin0 -> 123516 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpRoman-Light.otfbin0 -> 117224 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpRoman-LightItalic.otfbin0 -> 120568 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpRoman-Regular.otfbin0 -> 118496 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpRoman-Semibold.otfbin0 -> 116236 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpRoman-SemiboldItalic.otfbin0 -> 127884 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpSans-Bold.otfbin0 -> 90004 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpSans-BoldItalic.otfbin0 -> 101396 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpSans-Italic.otfbin0 -> 102032 bytes
-rw-r--r--fonts/kpfonts-otf/fonts/KpSans-Regular.otfbin0 -> 89544 bytes
-rw-r--r--fonts/kpfonts-otf/tex/KpLight.fontspec7
-rw-r--r--fonts/kpfonts-otf/tex/KpMono.fontspec7
-rw-r--r--fonts/kpfonts-otf/tex/KpRoman.fontspec7
-rw-r--r--fonts/kpfonts-otf/tex/KpSans.fontspec7
-rw-r--r--fonts/kpfonts-otf/tex/kpfonts-otf.sty423
33 files changed, 2371 insertions, 0 deletions
diff --git a/fonts/kpfonts-otf/README.md b/fonts/kpfonts-otf/README.md
new file mode 100644
index 0000000000..6d246677d1
--- /dev/null
+++ b/fonts/kpfonts-otf/README.md
@@ -0,0 +1,52 @@
+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 23 OpenType fonts (16 for text and 5 for math);
+* 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 Math symbols comparing kpfonts-otf to LatinModern,
+ STIXTwo, Erewhon, TeXGyrePagella and DejaVu.
+
+## 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!).
+
+
+---
+Copyright 2020- Daniel Flipo
+E-mail: daniel (dot) flipo (at) free (dot) fr
diff --git a/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.ltx b/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.ltx
new file mode 100644
index 0000000000..0500ccd8de
--- /dev/null
+++ b/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.ltx
@@ -0,0 +1,666 @@
+\documentclass[paper=a4,british]{scrartcl}
+% Packages
+\usepackage{graphics, array, varioref}
+\usepackage[svgnames]{xcolor}
+\usepackage{shortvrb}
+\usepackage{kpfonts-otf}
+\setmonofont{KpMono}[Color=DarkBlue]
+%Math demos
+\setmathfont{KpMath-Regular.otf}[version=full, CharacterVariant=3,
+ StylisticSet={1,2,3,4,5,6,7}]
+\setmathfont{KpMath-Regular.otf}[version=base, CharacterVariant=3]
+\setmathfont{KpMath-Light.otf}[version=light, CharacterVariant=3]
+\setmathfont{KpMath-Bold.otf}[version=bold, Style=leqslant, CharacterVariant=3]
+\setmathfont{KpMath-Sans.otf}[version=sans, Style=leqslant, CharacterVariant=3]
+
+\usepackage{babel}
+\usepackage{realscripts}
+\usepackage{microtype}
+\usepackage{hyperref}
+\hypersetup{pdfcreator={LuaTeX},
+ pdfauthor={Daniel FLIPO},
+ unicode,
+ colorlinks,
+ urlcolor=DarkBlue,
+ linkcolor=Blue,
+ }
+%
+\MakeShortVerb{\|}
+
+\newcommand*{\textsb}[1]{{\Semibold #1}}
+\newcommand*{\pkg}[1]{\texttt{#1}}
+\newcommand*{\opt}[1]{\texttt{#1}}
+\newcommand*{\optit}[1]{\textit{\color{DarkBlue}#1}}
+\newcommand*{\file}[1]{\texttt{#1}}
+\newcommand*{\style}[1]{\textsf{\textbf{#1}}}
+\newcommand*{\cmd}[1]{\texttt{\textbackslash #1}}
+\newcommand*{\family}[1]{\textsb{#1}}
+\newcommand*{\famvar}[1]{\textit{#1}}
+
+\title{Kp-fonts: OpenType version}
+\author{\href{mailto:daniel.flipo@free.fr}{Daniel \textsc{Flipo}}}
+\newcommand*{\version}{0.30}
+
+\begin{document}
+\maketitle
+\thispagestyle{empty}
+
+\begin{abstract}
+ This bundle provides OpenType versions of Type1 Kp-fonts designed by
+ Christophe Caignaert. See \file{Kpfonts-Doc-English.pdf} for the full
+ documentation of the original Type1 fonts.
+
+ It is usable only with LuaTeX or XeTeX engines; it consists of sixteen Text
+ OpenType fonts, a Roman family \family{KpRoman} in eight shapes and weights
+ ---\famvar{Regular}, \famvar{Italic}, \famvar{Bold},
+ \famvar{Bold\-Italic}, \famvar{Light}, \famvar{Light\-Italic},
+ \famvar{Semi\-bold}, \famvar{Semibold\-Italic}---, a Sans-Serif family
+ \family{KpSans} and a TypeWriter family \family{KpMono}, each of them
+ in four shapes and weights---\famvar{Regular}, \famvar{Italic},
+ \famvar{Bold} and \famvar{Bold\-Italic}--- and five Math OpenType fonts
+ \family{KpMath-Regular}, \family{KpMath-Bold}, \family{KpMath-Light},
+ \family{KpMath-Semibold} and \family{KpMath-Sans}.
+
+ \family{KpRoman} and \family{KpSans} families have small caps available in
+ two sizes (SmallCaps and PetitesCaps), upper and lowercase digits
+ ({\addfontfeatures{Numbers=Lowercase} 0123456789}), ancient ligatures
+ {\addfontfeatures{Ligatures=Rare} ct, st} and
+ {\addfontfeatures{Style=Swash}Q} a long-tailed capital Q.
+ Superior and inferior digits and letters have been added to the OpenType
+ \family{KpRoman} and \family{KpSans} fonts for footnotes’ calls and
+ abbreviations 1\textsuperscript{st}, 2\textsuperscript{nd}…
+
+ Latin and Greek letters are available in Upright and Italic shapes, in Bold
+ and Regular weights, for all Math fonts:
+ $\symup{a}$ $\symup{\beta}$ $\symup{C}$ $\symup{\Delta}$,
+ $\symit{a}$ $\symit{\beta}$ $\symit{C}$ $\symit{\Delta}$,
+ $\symbfup{a}$ $\symbfup{\beta}$ $\symbfup{C}$ $\symbfup{\Delta}$,
+ $\symbfit{a}$ $\symbfit{\beta}$ $\symbfit{C}$ $\symbfit{\Delta}$.
+
+ Blackboard Bold capitals are available in two shapes, Serif and Sans:
+ |\mathbb{ABC}| prints either
+ \mathversion{full}$\mathbb{ABC}$ (option |[Style=bbsans]|) or
+ \mathversion{base} $\mathbb{ABC}$ (default).
+ %%% \mathcal = \mathscr (pas de diff. même pour STIX2Math)
+ Commands |\mathcal{ABC}| and |\mathscr{ABC}| print either
+ $\mathscr{ABC}$ (default) or
+ \mathversion{full}$\mathscr{ABC}$ with option |[Style=mathcal]|,
+ \mathversion{base}.
+
+ File \file{unimath-kpfonts.pdf} shows the full list of Unicode Math symbols
+ provided by Kp-fonts, compared with other common Math fonts.
+ More symbols, specific to Kp-fonts, are listed in
+ section~\ref{ssec:symb-spec-kp}.
+
+ A style file \file{kpfont-otf.sty} is provided to load Kp-fonts easily.
+ It is derived from \file{kpfont.sty} but options differ.
+
+ Please beware that the current version (\version) is \emph{experimental}.
+
+ All fonts are covered by OFL licence, style file and documentation
+ are under LPPL-1.3 licence.
+\end{abstract}
+
+\newpage
+\section{Loading \pkg{kpfonts-otf.sty}}
+
+For users of the original \pkg{kpfonts.sty} package, the easiest way to
+try the OpenType version is to load \pkg{kpfonts-otf.sty}:\\[.5\baselineskip]
+|\usepackage[ |\optit{options}| ]{kpfonts-otf}|\\[.5\baselineskip]
+this loads \pkg{unicode-math} (and \pkg{fontspec}) and defines
+\family{KpRoman} (\family{Regular} or \family{Light} depending on options),
+\family{KpSans} and \family{KpMono} as Text fonts, \family{KpMath}
+(\family{Regular} or \family{Light} depending on options) as Math fonts.
+
+\pkg{kpfonts-otf.sty} also defines all symbols available in \pkg{latexsym} and
+\pkg{amssymb} under the same names%
+\footnote{Unicode names often differ from AMS names.}
+and a bunch of Kp-fonts specifics symbols.
+
+\subsection{Global options for both Text and Maths}
+
+\begin{description}
+\item[light:] switches to \famvar{light} fonts, metrics are unchanged;
+ \famvar{light} fonts might not look perfect on screen but they print fine.
+
+ Please compare \famvar{regular} (left) and \famvar{light} fonts (right):
+
+\newcommand*{\test}{Normal or light? Just a matter of taste}
+\medskip
+
+\begin{minipage}{.45\textwidth}\test. $E=mc^2$\end{minipage}\hfill
+\begin{minipage}{.45\textwidth}\Light \test. \mathversion{light}$E=mc^2$
+\end{minipage}
+
+\medskip\mathversion{base}
+\begin{minipage}{.45\textwidth}\itshape \test\end{minipage}\hfill
+\begin{minipage}{.45\textwidth}\LightItalic \test\end{minipage}
+
+\medskip
+\begin{minipage}{.45\textwidth}\bfseries \test\end{minipage}\hfill
+\begin{minipage}{.45\textwidth}\Semibold \test\end{minipage}
+
+\medskip
+\begin{minipage}{.45\textwidth}\bfseries\itshape \test\end{minipage}\hfill
+\begin{minipage}{.45\textwidth}\SemiboldItalic \test\end{minipage}
+
+\medskip
+
+\item[nomath:] load neither \pkg{unicode-math} nor \family{KpMath} fonts;
+ useful for documents without Maths, or to choose other Math fonts.
+\item[notext:] do not change any Text font, use the defaults.
+\item[nosf:] do not change Sans-Serif Text fonts, use the defaults.
+\item[nott:] do not change Typewriter Text fonts, use the defaults.
+\item[onlyrm:] equivalent to the last two combined.
+\end{description}
+
+\subsection{Options for Text fonts \emph{only}}
+
+\begin{description}
+\item[lighttext:] switches to \famvar{light} Text fonts.
+
+\item[oldstylenums:] provides lowercase digits as a default.
+
+ To get uppercase digits locally: |{\addfontfeature{Numbers=Lining} 123}|.
+
+ Examples, upright, italic, bold and bolditalic:
+ \begin{itemize}\addfontfeatures{Numbers=Lowercase}
+ \item 0123456789 !
+ \item \textit{0123456789 !}
+ \item \textbf{0123456789 !}
+ \item \textbf{\textit{0123456789 !}}
+ \end{itemize}
+
+\item[oldstyle:] provides lowercase digits as a default, long-tailed Q
+ ({\addfontfeatures{Style=Swash}Quebec}) and (for Roman and Sans-Serif
+ fonts only) old style ligatures
+ {\addfontfeatures{Ligatures=Rare}« ct » et « st »}.
+
+ Examples:
+ \begin{itemize}\addfontfeatures{Style=Swash,Ligatures=Rare}
+ \newcommand*{\test}{Quest for an attractive font!}
+ \item \test
+ \item \textit{\test}
+ \item \textbf{\test}
+ \item \textsc{\test}
+ \item \textbf{\textit{\test}}
+ \item \textsc{\textbf{\test}}
+ \end{itemize}
+
+\item[veryoldstyle:] same as option \opt{oldstyle} but the round `s’
+ is replaced by the long one {\addfontfeatures{RawFeature=+hist;+hlig}`s’},
+ unless it ends a word (then it remains `s’).
+ Just code \texttt{s=} to force a round `s’ if needed.
+ {\addfontfeatures{RawFeature=+hist;+hlig;+fina;+calt}%
+ \textit{Highlands’ mysterious castles}} can be coded as\\
+ |\textit{{Highlands’ mysterious castles}|
+
+\item[largesmallcaps:] prints larger \textlsc{Small Caps} than the default
+ ones (\textsc{Petites Caps}).
+
+\end{description}
+
+\subsection{Options for Math fonts \emph{only}}
+
+\begin{description}
+
+\item[lightmath:] uses \famvar{light} Math fonts.
+
+\item[bbsans:] command |\mathbb| prints Sans-Serif Blackboard Bold capitals
+ with Serif fonts too: compare
+ \mathversion{full}
+ $\mathbb{C}$, $\mathbb{K}$, $\mathbb{N}$, $\mathbb{Q}$, $\mathbb{R}$,
+ $\mathbb{Z}$, with
+ \mathversion{base}
+ $\mathbb{C}$, $\mathbb{K}$, $\mathbb{N}$, $\mathbb{Q}$, $\mathbb{R}$,
+ $\mathbb{Z}$ (default).
+
+\item[mathcal:] forces commands |\mathcal| and |\mathscr| to print
+ %%% Even with STIX2Math \mathcal and \mathscr print the same!!! BUG?
+ \mathversion{full}$\mathcal{ABCD}$ % $\mathscr{ABCD}$
+ instead of \mathversion{base} $\mathcal{ABCD}$ (default).
+
+\item[frenchstyle:] Latin uppercase letters and all Greek letters are
+ printed upright, only lowercase latin letters are printed in italics;
+ this follows the French typographic usage.
+
+\item[oldstylenumsmath:] prints lowercase digits in Maths (default is
+ uppercase).
+
+\item[narrowiints:] prints condensed repeated integrals :
+
+ \mathversion{full}$\iiint$ et $\displaystyle\iiint$
+ \quad instead of \quad
+ \mathversion{base}$\iiint$ et $\displaystyle\iiint$ (default).
+
+\enlargethispage*{\baselineskip}
+\item[partialup:] the |\partial| symbol is printed upright $\symup{\partial}$
+ instead of $\partial$.
+
+\item[fancyReIm:] commands |\Re| et |\Im| print $\RE$ and $\IM$ respectively
+ instead of $\Re$ et $\Im$.
+
+\item[noDcommand:] do not define |\D| to avoid incompatibilities with other
+ packages.
+
+\end{description}
+
+\section{Another way to load Kp-fonts}
+\label{sec:options-standard}
+
+Loading Kp-fonts through \file{kpfonts-otf.sty} offers only a limited choice
+of options; using the standard commands \cmd{setmainfont}, \cmd{setsansfont},
+\cmd{setmonofont}, \cmd{setmathfont} offers much more flexibility.
+
+On the other hand, \file{kpfonts-otf.sty} defines a lot of useful commands
+to access AMS and specific Kp-fonts symbols. Loading \pkg{kpfonts-otf} with
+the \opt{symbols} option enables to get all these commands defined without
+loading any font:
+\begin{verbatim}
+\usepackage[symbols]{kpfonts-otf}
+\end{verbatim}
+Please note that \pkg{unicode-math}%
+\footnote{A carefull reading of both manuals \file{unicode-math.pdf} and
+ \file{fonspec.pdf} (available in all TeX distributions) is required in
+ order to take full advantage of these packages.}
+(and \pkg{fontspec}) \emph{are loaded} by this procedure, no need to do it
+again, unless specific options are required, then \pkg{unicode-math} has to be
+loaded \emph{before} \pkg{kpfonts-otf}, f.i.:
+\begin{verbatim}
+\usepackage[math-style=ISO,bold-style=upright]{unicode-math}
+\usepackage[symbols]{kpfonts-otf}
+\end{verbatim}
+Then, it is up to the user to load Kp-fonts with whatever option he/she likes
+using commands\\[.5\baselineskip]
+|\set...font{|\optit{font}|}[|\optit{options}|]|.
+
+For documents requiring no Math fonts, loading \pkg{fontspec} and using
+the |\set...font| commands is enough.
+
+\subsection{Options for Text fonts}
+
+Here are the options available for Text Kp-fonts:
+\begin{description}
+\item[Numbers=Lowercase] to get lowercase digits
+ {\addfontfeature{Numbers=Lowercase} 1,2,3} instead of 1,2,3;
+ the defaut is\\ \style{Numbers=Lining}.
+
+\item[SmallCapsFeatures = \{Letters=SmallCaps\}] the |\textsc{}| command
+ will print larger \textlsc{Small Caps} than the default
+ \textpsc{Petites Caps}.\\
+ The default setting is \style{SmallCapsFeatures = \{Letters=PetiteCaps\}}.
+
+\item[Ligatures=TeX] (default) |'|\quad|!`|\quad|?`|\quad|--|\quad |---|\quad
+ print respectively\quad ’ \quad !` \quad ?`\quad -- \quad ---.
+
+\item[Ligatures=Common] (default) automatic ligatures ff ffi ffl fi fl.
+
+\item[Ligatures=Rare] {\addfontfeature{Ligatures=Rare} ct et st} ligatures.
+
+\item[Style=Swash] to get the long-tailed capital
+ Q: {\addfontfeature{Style=Swash}Queen, also in small caps (both sizes):
+ \textpsc{Queen} and \textlsc{Queen}} ;
+
+\item[Style=Historic] prints a long-s ({\addfontfeature{Style=Historic}s})
+ instead of `s’ except as last letter of a word:
+ {\addfontfeature{Style=Historic}`mysterious’}; getting a normal `s’ is
+ possible anytime coding `|s=|’.
+
+\item[Ligatures=Historic] switches specific ligatures for the long
+ {\addfontfeature{Style=Historic}s}:
+ {\addfontfeature{Style=Historic,Ligatures=Historic} si, sl, st}.
+\end{description}
+
+Options may be are chosen for each font, say:
+\begin{verbatim}
+\setmonofont{KpMono}[Numbers=Lowercase,Style=Historic]
+\end{verbatim}
+but can also be shared by different typefaces:
+\begin{verbatim}
+\defaultfontfeatures+[KpRoman,KpSans,KpMono]{Numbers=Lowercase}
+\defaultfontfeatures+[KpRoman,KpSans]{%
+ Ligatures = Rare,
+ Style = Swash,
+ SmallCapsFeatures = {Letters=SmallCaps},
+ }
+\setmainfont{KpRoman}
+\setsansfont{KpSans}
+\setmonofont{KpMono}
+\end{verbatim}
+Notes : 1. |\setmonofont{KpMono}|, |\setsansfont{KpSans}|,
+|\setmainfont{KpRoman}| rely on files \file{KpMono.fontspec},
+\file{KpSans.fontspec} and \file{KpRoman.fontspec} installed by Kpfonts.
+
+2. Note the |+| ending |\defaultfontfeatures+| : options are \emph{added},
+not overwriting any other (including those of \file{fontspec.cfg}).
+
+3. Options can be gathered: |Ligatures={Rare,Historic}| (with braces)
+is equivalent to |Ligatures=Rare| and |Ligatures=Historic|.
+
+4. These options can also be switched on and off \emph{locally}
+using |\addfontfeatures| inside a group, f.i.\ to print lowercase digits
+{\addfontfeatures{Numbers=Lowercase}1234576890} with a font loaded with option
+|Numbers=Lining|:
+\begin{verbatim}
+{\addfontfeatures{Numbers=Lowercase}1234576890}
+\end{verbatim}
+Actually, a shortcup is available in this case: |\oldstylenums{1234576890}|.
+
+\subsection{Options for Math fonts}
+
+The following options can be passed either to \pkg{unicode-math}%
+\footnote{See the manual \file{unicode-math.pdf}.}
+or to |\setmathfont{}|:
+\begin{description}
+\item[math-style =] \opt{ISO}, \opt{TeX} (défaut), \opt{french}, \opt{upright};
+\item[bold-style =] \opt{ISO}, \opt{TeX} (défaut), \opt{upright};
+\item[partial =] \opt{upright} (default italic);
+\item[nabla =] \opt{italic} (default upright);
+\end{description}
+
+Seven `Style Variants’ are available with Kp-fonts, here are the first thee:
+\begin{description}
+\item[Style=mathcal] (\texttt{+ss01}) commands |\mathcal{}| and |\mathscr{}|
+ print \mathversion{full}$\mathcal{ABC}$ instead of
+ \mathversion{base}$\mathcal{ABC}$ (default);
+
+\item[Style=bbsans] (\texttt{+ss02}) |\mathbb{}| prints Sans-Serif
+ Blackboard bold capitals \mathversion{full}$\mathbb{ABC}$ for Serif Math fonts
+ \file{KpMath-Regular} and \file{KpMath-light} instead of
+ \mathversion{base}$\mathbb{ABC}$ ;
+
+\item[Style=narrowiints] (\texttt{+ss03}) provides condensed repeated integrals:
+ \mathversion{full}$\iiint$ instead of
+ \mathversion{base}$\iiint$ (default).
+\end{description}
+
+\begin{table}[ht]
+The next four tables present the other Style Variants available.
+
+ {\centering
+ \caption{Style=leqslant (\texttt{+ss04})}
+ \label{ss04}
+ \begin{tabular}{@{}lcc@{}}
+ \hline
+ Command & Default & Variant \\
+ \hline
+ \cmd{leq} & $\leq$ & $\leqslant$ \\
+ \cmd{geq} & $\geq$ & $\geqslant$ \\
+ \cmd{nleq} & $\nleq$ & $\nleqslant$ \\
+ \cmd{ngeq} & $\ngeq$ & $\ngeqslant$ \\
+ \cmd{leqq} & $\leqq$ & $\leqqslant$ \\
+ \cmd{geqq} & $\geqq$ & $\geqqslant$ \\
+ \cmd{eqless} & $\eqless$ & $\eqslantless$ \\
+ \cmd{eqgtr} & $\eqgtr$ & $\eqslantgtr$ \\
+ \hline
+ \end{tabular}\par}
+\end{table}
+
+\begin{table}[ht]
+ \centering
+ \caption{Style=smaller (\texttt{+ss05})}
+ \label{ss05}
+ \begin{tabular}{@{}lcc@{}}
+ \hline
+ Command & Default & Variant \\
+ \hline
+ \cmd{mid} & $\mid$ & $\shortmid$ \\
+ \cmd{nmid} & $\nmid$ & $\nshortmid$ \\
+ \cmd{parallel} & $\parallel$ & $\shortparallel$ \\
+ \cmd{nparallel} & $\nparallel$ & $\nshortparallel$ \\
+ \hline
+ \end{tabular}
+\end{table}
+
+\begin{table}[ht]
+ \centering
+ \caption{Style=subsetneq (\texttt{+ss06})}
+ \label{ss06}
+ \begin{tabular}{@{}lcc@{}}
+ \hline
+ Command & Default & Variant \\
+ \hline
+ \cmd{subsetneq} & $\subsetneq$ & $\varsubsetneq$ \\
+ \cmd{supsetneq} & $\supsetneq$ & $\varsupsetneq$ \\
+ \cmd{subsetneqq} & $\subsetneqq$ & $\varsubsetneqq$ \\
+ \cmd{supsetneqq} & $\supsetneqq$ & $\varsupsetneqq$ \\
+ \hline
+ \end{tabular}
+\end{table}
+
+ \begin{table}[ht]
+ {\centering
+ \caption{Style=parallelslant (\texttt{+ss07})}
+ \label{ss07}
+ \begin{tabular}{@{}lcc@{}}
+ \hline
+ Command & Default & Variant \\
+ \hline
+ \cmd{parallel} & $\parallel$ & $\parallelslant$ \\
+ \cmd{nparallel} & $\nparallel$ & $\nparallelslant$ \\
+ \hline
+ \end{tabular}\par}
+
+\vspace{\baselineskip}
+Example: switching styles 4 (leqslant) and 6 (subsetneq) can be achieved
+coding either\\
+|\setmathfont{KpMath-Regular.otf}[StylisticSet={4,6}]|\quad or\\
+|\setmathfont{KpMath-Regular.otf}[Style={leqslant,subsetneq}]|
+\end{table}
+
+\vspace{\baselineskip}
+Table~\vref{cv} shows the available `Glyph Variants’:
+
+\begin{table}[ht]
+ \centering
+ \caption{Variantes de glyphe}
+ \label{cv}
+ \begin{tabular}{@{}>{\ttfamily}lccl@{}}
+ \hline
+ & Default & Variant & Command\\
+ \hline
+ cv00 & $\Re\quad\Im$ & $\RE\quad\IM$ & \cmd{Re}\quad\cmd{Im}\\
+ cv01 & $\hslash$ & $\mithbar$ & \cmd{hslash} or \cmd{hbar} \\
+ cv02 & $\emptyset$ & $\varemptyset$ & \cmd{emptyset} \\
+ cv03 & $\mitepsilon$ & $\mitvarepsilon$ & \cmd{epsilon} \\
+ cv04 & $\mitkappa$ & $\mitvarkappa$ & \cmd{kappa} \\
+ cv05 & $\mitpi$ & $\mitvarpi$ & \cmd{pi} \\
+ cv06 & $\mitphi$ & $\mitvarphi$ & \cmd{phi} \\
+ cv07 & $\mitrho$ & $\mitvarrho$ & \cmd{rho} \\
+ cv08 & $\mitsigma$ & $\mitvarsigma$ & \cmd{sigma} \\
+ cv09 & $\mittheta$ & $\mitvartheta$ & \cmd{theta} \\
+ cv10 & $\mitTheta$ & $\mitvarTheta$ & \cmd{Theta}\\
+ \hline
+ \end{tabular}
+\end{table}
+
+\vspace{\baselineskip}
+Example: with |\setmathfont{KpMath-Regular.otf}[CharacterVariant={3,6}]|\\
+commands |\epsilon| and |\phi| print $\mitvarepsilon$
+and $\mitvarphi$ instead of $\mitepsilon$ et $\mitphi$.
+The same is true of course for all shapes and and weights (upright, bold,
+bolditalic, sans-derif, etc.): f.i.\ with \opt{math-syle=french}, |\epsilon|
+and |\phi| print $\mupvarepsilon$ and $\mupvarphi$.
+
+Note about \cmd{hbar}: \pkg{unicode-math} defines \cmd{hbar} as
+\cmd{hslash} (U+210F) while \pkg{amsmath} provides two different glyphs
+(italic h with horizontal or diagonal stroke).\\
+\pkg{kpfonts-otf} now follows \pkg{unicode-math}; the italic h with horizontal
+stroke can be printed using \cmd{hslash} or \cmd{hbar} together with character
+variant \texttt{cv01} or with \cmd{mithbar} (replacement for AMS’ command
+\cmd{hbar}).
+
+\section{Kp-fonts specific commands}
+
+\subsection{Integrals}
+
+Kp-fonts offers variants for integral symbols suitable for indefinite
+integrals, they are coded as |\varint|, |\variint|, |\variiint|, |\variiiint|
+and |\varidotsint|. Compare $\int f(t)\,dt$ and $\varint f(t)\,dt$ and also
+
+\[\int f(t)\,dt \qquad\text{and}\qquad\varint f(t)\,dt\]
+
+|\D{...}| prints an upright `d’ and improves kernings around the differential
+element:
+|\displaystyle\varint f(t)\D{t}| donne $\displaystyle\varint f(t)\D{t}$.
+
+
+\subsection{Specific Math symbols}
+\label{ssec:symb-spec-kp}
+
+The next tables present symbols unvailable as Unicode characters, they
+are coded in Kp-fonts’ private zone.
+
+\begin{center}\begin{tabular}{r>{$}c<{$}|r>{$}c<{$}}
+\verb=\mmapsto=&\mmapsto&\verb=\longmmapsto=&\longmmapsto\\
+\verb=\mmapsfrom=&\mmapsfrom&\verb=\longmmapsfrom=&\longmmapsfrom\\
+\verb=\Mmapsto=&\Mmapsto&\verb=\Longmmapsto=&\Longmmapsto\\
+\verb=\Mmapsfrom=&\Mmapsfrom&\verb=\Longmmapsfrom=&\Longmmapsfrom\\
+\verb=\leftrightdasharrow=&\leftrightdasharrow&\verb=\leadsto=&\leadsto
+\end{tabular}\end{center}
+
+\begin{center}\begin{tabular}{r>{$}c<{$}|r>{$}c<{$}}
+\verb=\boxright=&\boxright&\verb=\boxleft=&\boxleft\\
+\verb=\circleright=&\circleright&\verb=\circleleft=&\circleleft\\
+\verb=\Diamondright=&\Diamondright&\verb=\Diamondleft=&\Diamondleft\\
+\verb=\boxdotright=&\boxdotright&\verb=\boxdotleft=&\boxdotleft\\
+\verb=\circledotright=&\circledotright&\verb=\circledotleft=&\circledotleft\\
+\verb=\Diamonddotright=&\Diamonddotright&\verb=\Diamonddotleft=&\Diamonddotleft
+\end{tabular}\end{center}
+
+\begin{center}\begin{tabular}{r>{$}c<{$}|r>{$}c<{$}}
+\verb=\boxRight=&\boxRight&\verb=\boxLeft=&\boxLeft\\
+\verb=\boxdotRight=&\boxdotRight&\verb=\boxdotLeft=&\boxdotLeft\\
+\verb=\DiamondRight=&\DiamondRight&\verb=\DiamondLeft=&\DiamondLeft\\
+\verb=\DiamonddotRight=&\DiamonddotRight&\verb=\DiamonddotLeft=&\DiamonddotLeft
+\end{tabular}\end{center}
+
+\begin{center}\begin{tabular}{r>{$}c<{$}|r>{$}c<{$}}
+\verb=\multimapdot=&\multimapdot&\verb=\multimapdotinv=&\multimapdotinv\\
+\verb=\multimapdotboth=&\multimapdotboth\\
+\verb=\multimapbothvert=&\multimapbothvert&\verb=\multimapdotbothvert=&\multimapdotbothvert\\
+\verb=\multimapdotbothAvert=&\multimapdotbothAvert&\verb=\multimapdotbothBvert=&\multimapdotbothBvert
+\end{tabular}\end{center}
+
+\begin{center}\begin{tabular}{r>{$}c<{$}|r>{$}c<{$}|r>{$}c<{$}}
+\verb=\capplus=&\capplus&\verb=\sqcupplus=&\sqcupplus&\verb=\sqcapplus=&\sqcapplus\\
+\verb=\parallelslant=&\parallelslant&\verb=\colonsim=&\colonsim&\verb=\colonapprox=&\colonapprox\\
+\verb=\parallelbackslant=&\parallelbackslant&\verb=\Colonsim=&\Colonsim&\verb=\Colonapprox=&\Colonapprox\\
+\verb=\eqqColon=&\eqqColon&\verb=\Colondash=&\Colondash&\verb=\dashColon=&\dashColon\\
+\end{tabular}\end{center}
+
+\begin{center}\begin{tabular}{r>{$}c<{$}|r>{$}c<{$}|r>{$}c<{$}}
+\verb=\strictif=&\strictif&\verb=\strictfi=&\strictfi&\verb=\strictiff=&\strictiff\\
+\verb=\circledvee=&\circledvee&\verb=\circledwedge=&\circledwedge&\verb=\circledbar=&\circledbar\\
+\verb=\openJoin=&\openJoin&\verb=\opentimes=&\opentimes&\verb=\VvDash=&\VvDash\\
+\verb=\lambdaslash=&\lambdaslash&\verb=\lambdabar=&\lambdabar&\verb=\Wr=&\Wr
+\end{tabular}\end{center}
+
+\renewcommand{\arraystretch}{2}
+
+\begin{center}
+\begin{tabular}{r>{$}c<{$}c|r>{$}c<{$}c}
+
+\verb+\idotsint+ &\idotsint& $\displaystyle\idotsint$\\
+\verb+\ointclockwise+ &\ointclockwise&$\displaystyle\ointclockwise$
+&\verb+\varointctrclockwise+&\varointctrclockwise& $\displaystyle\varointctrclockwise$\\
+\verb+\oiintclockwise+ &\oiintclockwise&$\displaystyle\oiintclockwise$&\verb+\oiintctrclockwise+&\oiintctrclockwise&$\displaystyle\oiintctrclockwise$\\
+\verb+\varoiintclockwise+&\varoiintclockwise& $\displaystyle\varoiintclockwise$&\verb+\varoiintctrclockwise+&\varoiintctrclockwise&$\displaystyle\varoiintctrclockwise$\\
+\verb+\oiiintclockwise+ &\oiiintclockwise&$\displaystyle\oiiintclockwise$&\verb+\oiiintctrclockwise+ &\oiiintctrclockwise&$\displaystyle\oiiintctrclockwise$\\
+\verb+\varoiiintclockwise+ &\varoiiintclockwise& $\displaystyle\varoiiintclockwise$&\verb+\varoiiintctrclockwise+&\varoiiintctrclockwise&$\displaystyle\varoiiintctrclockwise$\\
+\verb+\sqiint+&\mbox{$\sqiint$}&$\displaystyle\sqiint$&\verb+\sqiiint+&\mbox{$\sqiiint$}&$\displaystyle\sqiiint$
+\end{tabular}
+\end{center}
+
+The full list of Unicode symbols available with Kp-fonts is shown in file
+\file{unimath-kpfonts.pdf}.
+
+\subsection{Wide accents}
+
+\begin{itemize}
+\item \cmd{widehat} and \cmd{widetilde}
+\[\widehat{x}\; \widehat{xx} \;\widehat{xxx} \;\widehat{xxxx}\;
+ \widehat{xxxxx} \;\widehat{xxxxxx} \;\widetilde{x}\; \widetilde{xx}\;
+ \widetilde{xxx} \;\widetilde{xxxx} \;\widetilde{xxxxx}\;
+ \widetilde{xxxxxx}\]
+
+\item \cmd{overline} and \cmd{underline}
+ \[\overline{x}\quad \overline{xy}\quad \overline{xyz}\quad
+ \overline{A\cup B}\quad \overline{A\cup (B\cap C)\cup D}\quad
+ \underline{m+n+p}\]
+
+\item \cmd{overparen} and \cmd{underparen}
+ \[\overparen{x}\quad \overparen{xy}\quad \overparen{xyz}\quad
+ \mathring{\overparen{A\cup B}}\quad
+ \overparen{A\cup (B\cap C)\cup D}^{\smwhtcircle}\quad
+ \overparen{x+y}^{2}\quad \overparen{a+b+...+z}^{26}\]
+
+\[\underparen{x}\quad \underparen{xz} \quad \underparen{xyz}
+ \quad \underparen{x+z}_{2}\quad \underparen{a+b+...+z}_{26}\]
+
+\item \cmd{overbrace} and \cmd{underbrace}
+ \[\overbrace{a}\quad \overbrace{ab}\quad \overbrace{abc}\quad
+ \overbrace{abcd}\quad \overbrace{abcde}\quad
+ \overbrace{a+b+c}^{3}\quad \overbrace{ a+b+. . . +z }^{26}\]
+
+\[\underbrace{a}\quad\underbrace{ab}\quad\underbrace{abc}\quad
+ \underbrace{abcd}\quad \underbrace{abcde}\quad
+ \underbrace{a+b+c}_{3} \quad \underbrace{ a+b+...+z }_{26}\]
+
+\item \cmd{overrightarrow} and \cmd{overleftarrow}
+ \[\overrightarrow{v}\quad \overrightarrow{M}\quad \overrightarrow{vv}
+ \quad \overrightarrow{AB}\quad \overrightarrow{ABC}
+ \quad \overrightarrow{ABCD} \quad \overrightarrow{ABCDEFGH}.
+\]
+
+\[\overleftarrow{v}\quad \overleftarrow{M}\quad \overleftarrow{vv}
+ \quad \overleftarrow{AB}\quad \overleftarrow{ABC}
+ \quad \overleftarrow{ABCD} \quad \overleftarrow{ABCDEFGH}\]
+
+\item Enfin \cmd{widearc} and \cmd{widearcarrow} (ou \cmd{overrightarc})
+\[\widearc{AMB}\quad \widearcarrow{AMB}\]
+\end{itemize}
+
+\subsection{Math Versions}
+
+Different versions of the \family{KpMath} fonts may be definde in the
+document’s preamble:\\
+|\setmathfont{KpMath-Bold.otf}[version=bold|, \optit{options} |]|\\
+|\setmathfont{KpMath-Semibold.otf}[version=semibold|, \optit{options} |]|\\
+|\setmathfont{KpMath-Sans.otf}[version=sans|, \optit{options} |]|\\
+|\setmathfont{KpMath-Light.otf}[version=light|, \optit{options} |]|\\
+then, it is easy to switch from one version to another one with
+|\mathversion{|\optit{name}|}|.
+
+\vspace{\baselineskip}
+Example\footnote{Option \opt{CharacterVariant=3} changes
+$\epsilon$ into $\varepsilon$.} :
+\begin{verbatim}
+\setmathfont{KpMath-Regular.otf}[Style=leqslant, CharacterVariant=3]
+\setmathfont{KpMath-Bold.otf}[version=bold,
+ Style=leqslant, CharacterVariant=3]
+\setmathfont{KpMath-Sans.otf}[version=sans,
+ Style=leqslant, CharacterVariant=3]
+\end{verbatim}
+
+Here is the same equation in three versions, normal, bold and Sans-Serif:
+\mathversion{base}
+
+\[ \mathbb{E}_i(N_i) = \sum_{n\ge1} P_i(N_i\ge n)
+ = \frac{\epsilon_i}{1-\epsilon_i}<+\infty \]
+
+|\mathversion{bold}| \mathversion{bold}
+\[ \mathbb{E}_i(N_i) = \sum_{n\ge1} P_i(N_i\ge n)
+ = \frac{\epsilon_i}{1-\epsilon_i}<+\infty \]
+
+|\mathversion{sans}| \mathversion{sans}
+\[ \mathbb{E}_i(N_i) = \sum_{n\ge1} P_i(N_i\ge n)
+ = \frac{\epsilon_i}{1-\epsilon_i}<+\infty \]
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-engine: luatex
+%%% TeX-master: t
+%%% coding: utf-8
+%%% End:
diff --git a/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.pdf b/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.pdf
new file mode 100644
index 0000000000..ca22d85b18
--- /dev/null
+++ b/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.pdf
Binary files differ
diff --git a/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.ltx b/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.ltx
new file mode 100644
index 0000000000..0c2c0e912b
--- /dev/null
+++ b/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.ltx
@@ -0,0 +1,687 @@
+\documentclass[paper=a4,french]{scrartcl}
+% Packages
+\usepackage{graphics, array, varioref}
+\usepackage[svgnames]{xcolor}
+\usepackage{shortvrb}
+\usepackage{kpfonts-otf}
+\setmonofont{KpMono}[Color=DarkBlue]
+% Pour les démos :
+\setmathfont{KpMath-Regular.otf}[version=full,
+ CharacterVariant=3,
+ StylisticSet={1,2,3,4,5,6,7}]
+\setmathfont{KpMath-Regular.otf}[version=base, CharacterVariant=3]
+\setmathfont{KpMath-Light.otf}[version=light, CharacterVariant=3]
+\setmathfont{KpMath-Bold.otf}[version=bold, Style=leqslant, CharacterVariant=3]
+\setmathfont{KpMath-Sans.otf}[version=sans, Style=leqslant, CharacterVariant=3]
+
+\usepackage{babel}
+\frenchsetup{og=«, fg=»,%ListItemsAsPar
+ }
+\usepackage{realscripts}
+\usepackage{microtype}
+\usepackage{hyperref}
+\hypersetup{pdfcreator={LuaTeX},
+ pdfauthor={Daniel FLIPO},
+ unicode,
+ colorlinks,
+ urlcolor=DarkBlue,
+ linkcolor=Blue,
+ }
+% Mise en page
+%\setlength{\parindent}{0pt}
+%\renewcommand{\arraystretch}{1.3}
+
+\MakeShortVerb{\|}
+
+\newcommand*{\textsb}[1]{{\Semibold #1}}
+\newcommand*{\pkg}[1]{\texttt{#1}}
+\newcommand*{\opt}[1]{\texttt{#1}}
+\newcommand*{\optit}[1]{\textit{\color{DarkBlue}#1}}
+\newcommand*{\file}[1]{\texttt{#1}}
+\newcommand*{\style}[1]{\textsf{\textbf{#1}}}
+\newcommand*{\cmd}[1]{\texttt{\textbackslash #1}}
+\newcommand*{\family}[1]{\textsb{#1}}
+\newcommand*{\famvar}[1]{\textit{#1}}
+
+\title{Kp-fonts version OpenType}
+\author{\href{mailto:daniel.flipo@free.fr}{Daniel \textsc{Flipo}}}
+\newcommand*{\version}{0.30}
+
+\begin{document}
+\maketitle
+\thispagestyle{empty}
+
+\begin{abstract}
+ Le but de ce travail est de proposer une version OpenType des polices
+ Kp-fonts dessinées par Christophe Caignaert au format type1. Pour une
+ présentation complète de celles-ci, on pourra consulter la documentation
+ originale \file{Kpfonts-Doc-French.pdf}.
+
+ La présente distribution, utilisable uniquement avec LuaTeX ou XeTeX,
+ contient seize polices OpenType de texte, une famille romaine \family{KpRoman}
+ en huit déclinaisons ---~\famvar{Regular}, \famvar{Italic}, \famvar{Bold},
+ \famvar{Bold\-Italic}, \famvar{Light}, \famvar{Light\-Italic},
+ \famvar{Semi\-bold}, \famvar{Semibold\-Italic}~---, une famille sans-serif
+ \family{KpSans} et une à espacement fixe \family{KpMono} chacune en quatre
+ déclinaisons ---~\famvar{Regular}, \famvar{Italic}, \famvar{Bold} et
+ \famvar{Bold\-Italic}~--- et cinq polices mathématiques
+ \family{KpMath-Regular}, \family{KpMath-Bold}, \family{KpMath-Light},
+ \family{KpMath-Semibold} et \family{KpMath-Sans}.
+
+ Les familles \family{KpRoman} et \family{KpSans} ont de vraies petites
+ capitales en deux tailles (\textpsc{normale} et \textlsc{grande}),
+ des chiffres elzéviriens ({\addfontfeatures{Numbers=Lowercase} 0123456789})
+ et offrent des ligatures anciennes comme
+ {\addfontfeatures{Ligatures=Rare} ct, st} et
+ le {\addfontfeatures{Style=Swash}Q} long.
+ Les chiffres et lettres supérieures et inférieures ont été ajoutées aux
+ polices OpenType pour les appels de notes et les abréviations M\up{me}
+ 1\ier, etc.
+
+ Les cinq polices mathématiques disposent les lettres latines et grecques
+ droites, italiques, grasses droites et grasses italiques :
+ $\symup{a}$ $\symup{\beta}$ $\symup{C}$ $\symup{\Delta}$,
+ $\symit{a}$ $\symit{\beta}$ $\symit{C}$ $\symit{\Delta}$,
+ $\symbfup{a}$ $\symbfup{\beta}$ $\symbfup{C}$ $\symbfup{\Delta}$,
+ $\symbfit{a}$ $\symbfit{\beta}$ $\symbfit{C}$ $\symbfit{\Delta}$.
+
+ la commande |\mathbb{ABC}| affiche au choix
+ \mathversion{full}$\mathbb{ABC}$ (option |Style=bbsans|) ou
+ \mathversion{base} $\mathbb{ABC}$ par défaut,
+ %%% \mathcal = \mathscr (pas de diff. même pour STIX2Math)
+ les commandes |\mathcal{ABC}| et |\mathscr{ABC}| affichent
+ $\mathscr{ABC}$ par défaut ou
+ \mathversion{full}$\mathscr{ABC}$ avec l’option |Style=mathcal|,
+ \mathversion{base}
+ tandis que la commande |\mathfrak{ABCabc}| affiche $\mathfrak{ABCabc}$.
+
+ La liste complète des symboles mathématiques présents dans Unicode et
+ disponibles dans les polices \family{KpMath} est présentée dans
+ le fichier \file{unimath-kpfonts.pdf}. Des symboles supplémentaires sont
+ également disponibles, ils sont présentés à la
+ section~\ref{ssec:symb-spec-kp}.
+
+ La distribution est accompagnée d’un fichier \file{kpfont-otf.sty} destiné
+ à faciliter la transition, certaines options de la version originale ont été
+ reprises, d’autres ont été abandonnées…
+
+ Veuillez noter que la présente version (\version) est \emph{expérimentale}.
+
+ \enlargethispage*{2\baselineskip}
+ La distribution est proposée sous license OFL pour les polices et LPPL-1.3
+ pour les fichiers LaTeX.
+\end{abstract}
+
+\newpage
+\section{Chargement par \pkg{kpfonts-otf.sty}}
+
+Les utilisateurs de la version originale des Kp-fonts préfèreront probablement
+charger \pkg{kpfonts-otf.sty} comme ceci :\\[.5\baselineskip]
+|\usepackage[ |\optit{options}| ]{kpfonts-otf}|\\[.5\baselineskip]
+ceci charge \pkg{unicode-math} et donc \pkg{fontspec} et définit
+\family{KpRoman} (\family{Regular} ou \family{Light} selon les options),
+\family{KpSans} et \family{KpMono} comme polices de texte et \family{KpMath}
+(\family{Regular} ou \family{Light} selon les options) comme police
+mathématique.
+
+En plus, tous les symboles disponibles dans \pkg{latexsym} et \pkg{amssymb}
+sont définis sous les mêmes noms dans \pkg{kpfonts-otf.sty}%
+\footnote{Les noms Unicode officiels diffèrent souvent.}
+ainsi qu’un certain nombre de symboles et de commandes spécifiques à Kp-fonts.
+
+\subsection{Options globales affectant texte et maths}
+
+\begin{description}
+\item[light :] pour utiliser la version \famvar{light} des polices. Les
+ métriques sont inchangées. L'affichage n'est pas très bon, au contraire de
+ l'impression si vous aimez les polices fines.
+
+ Ce texte est composé avec les polices par défaut, vous pourrez comparer
+ ci-dessous les versions \famvar{regular} (à gauche) et \famvar{light} (à
+ droite) :
+
+\newcommand{\test}{Normal ou léger ? tous les goûts sont dans la nature…}
+\medskip
+
+\begin{minipage}{.45\textwidth}\test{} $E=mc^2$\end{minipage}\hfill
+\begin{minipage}{.45\textwidth}\Light \test{} \mathversion{light}$E=mc^2$
+\end{minipage}
+
+\medskip\mathversion{base}
+\begin{minipage}{.45\textwidth}\itshape \test\end{minipage}\hfill
+\begin{minipage}{.45\textwidth}\LightItalic \test\end{minipage}
+
+\medskip
+\begin{minipage}{.45\textwidth}\bfseries \test\end{minipage}\hfill
+\begin{minipage}{.45\textwidth}\Semibold \test\end{minipage}
+
+\medskip
+\begin{minipage}{.45\textwidth}\bfseries\itshape \test\end{minipage}\hfill
+\begin{minipage}{.45\textwidth}\SemiboldItalic \test\end{minipage}
+
+\medskip
+
+\item[nomath :] ne charge ni \pkg{unicode-math} ni les fontes \family{KpMath} ;
+ utile pour les documents sans maths ou pour faire appel à d’autres fontes
+ pour les maths.
+\item[notext :] Kp-fonts ne modifie aucune des polices de texte par défaut.
+\item[nosf :] Kp-fonts ne modifie pas les polices sans-serif de texte.
+\item[nott :] Kp-fonts ne modifie pas les polices de texte à chasse fixe.
+\item[onlyrm :] équivalente aux deux précédentes options.
+\end{description}
+
+\subsection{Options des polices de texte}
+
+Notez que ces options n'affectent que les polices de texte.
+
+\begin{description}
+\item[lighttext :] le texte est composé en utilisant les polices « light ».
+
+\item[oldstylenums :] Les polices fournissent ici les nombres elzéviriens par
+ défaut.
+
+ Pour accéder aux nombres usuels : |{\addfontfeature{Numbers=Lining} 123}|
+ (à faire dans un groupe).
+
+ Quelques exemples en droit et italique, medium et gras :
+ \begin{itemize}\addfontfeatures{Numbers=Lowercase}
+ \item 0123456789 !
+ \item \textit{0123456789 !}
+ \item \textbf{0123456789 !}
+ \item \textbf{\textit{0123456789 !}}
+ \end{itemize}
+
+\item[oldstyle :] Les polices fournissent ici les nombres elzéviriens par
+ défaut, le Q-long ({\addfontfeatures{Style=Swash}Qui ?}), les ligatures
+ anciennes {\addfontfeatures{Ligatures=Rare}« ct » et « st »}
+ (en romain et sans-serif uniquement).
+
+ Quelques exemples:
+ \begin{itemize}\addfontfeatures{Style=Swash,Ligatures=Rare}
+ \newcommand*{\test}{Quelle police, quelle esthétique actuelle !}
+ \item \test
+ \item \textit{\test}
+ \item \textbf{\test}
+ \item \textsc{\test}
+ \item \textbf{\textit{\test}}
+ \item \textsc{\textbf{\test}}
+ \end{itemize}
+
+\item[veryoldstyle :] identique à l'option \opt{oldstyle} sauf que le « s »
+ rond est remplacé par le « {\addfontfeatures{RawFeature=+hist;+hlig}s} » long.
+ sauf en fin de mot, où le « s » reste rond.
+ On peut toujours forcer le « s» rond par la ligature « \texttt{s=} ».
+ Le codage |\textit{« Des espoirs si funestes. »}| donne ceci :
+ {\addfontfeatures{RawFeature=+hist;+hlig;+fina;+calt}%
+ \textit{«Des espoirs si funestes.»}}.
+
+\item[largesmallcaps :] produit des petites capitales plus \textlsc{Grandes}
+ que par les \textsc{Petites} obtenues par défaut.
+
+\end{description}
+
+\subsection{Options des polices mathématiques}
+
+\begin{description}
+
+\item[lightmath :] les mathématiques sont composées avec les polices
+ « light » ;
+
+\item[bbsans :] dans tous les cas, la commande |\mathbb| produit du
+ sans-serif :
+ \mathversion{full}
+ $\mathbb{C}$, $\mathbb{K}$, $\mathbb{N}$, $\mathbb{Q}$, $\mathbb{R}$,
+ $\mathbb{Z}$, à comparer à
+ \mathversion{base}
+ $\mathbb{C}$, $\mathbb{K}$, $\mathbb{N}$, $\mathbb{Q}$, $\mathbb{R}$,
+ $\mathbb{Z}$ ;
+
+\item[mathcal :] cette option modifie l’effet des commandes
+ |\mathcal| et |\mathscr|, elles produisent toutes les deux
+ %%% Même avec STIX2Math, je ne peux pas avoir les deux !!! BUG ?
+ \mathversion{full}$\mathcal{ABCD}$ % $\mathscr{ABCD}$
+ alors que par défaut \mathversion{base} on a $\mathcal{ABCD}$ ;
+
+\item[frenchstyle :] les majuscules romaines et toutes les lettres grecques
+ (majuscules ou minuscules) sont droites, selon la tradition typographique
+ française, seules les minuscules romaines restent obliques ;
+
+\item[oldstylenumsmath :] fournit les nombres elzéviriens en mode
+ mathématique ;
+
+\item[narrowiints :] fournit des intégrales multiples plus étroites, plus
+ « françaises » :
+
+ \mathversion{full}$\iiint$ et $\displaystyle\iiint$
+ \quad au lieu de\quad
+ \mathversion{base}$\iiint$ et $\displaystyle\iiint$
+
+\item[partialup :] le symbole |\partial| affiche $\symup{\partial}$
+ (droit) au lieu de $\partial$ ;
+
+\enlargethispage*{\baselineskip}
+\item[fancyReIm :] les commandes |\Re| et |\Im| donnent normalement
+ $\Re$ et $\Im$, avec cette option elles produisent respectivement $\RE$ et
+ $\IM$ ;
+
+\item[noDcommand :] pour éviter tout risque d’incompatibilité, la commande
+ |\D| n'est pas définie.
+
+\end{description}
+
+\section{Autre façon de charger les Kp-fonts}
+\label{sec:options-standard}
+
+Lorsqu’on charge les Kp-fonts comme indiqué à la section précédente en
+utilisant \file{kpfonts-otf.sty}, le choix des options reste assez limité.
+Certains préféreront probablement utiliser directement les commandes
+\cmd{setmainfont}, \cmd{setsansfont}, \cmd{setmonofont}, \cmd{setmathfont}
+pour avoir accès à toutes leurs options. Parmi eux, ceux qui voudraient
+bénéficier des définitions de symboles mathématiques faites dans
+\pkg{kpfonts-otf}, peuvent charger celui-ci avec l’option \opt{symbols} qui
+permet d’accéder à toutes ces définitions \emph{sans charger aucune fonte} :
+\begin{verbatim}
+\usepackage[symbols]{kpfonts-otf}
+\end{verbatim}
+Noter que dans ce cas, \pkg{unicode-math}%
+\footnote{Une lecture attentive des manuels \file{unicode-math.pdf} et
+ \file{fonspec.pdf} (disponibles dans toutes les distributions TeX) est
+ indispensable pour bien maîtriser leur utilisation.}
+(et \pkg{fontspec}) \emph{sont chargés} par \pkg{kpfonts-otf}, inutile donc de
+les (re)charger, sauf à le faire \emph{avant} l’appel à \pkg{kpfonts-otf} pour
+leur passer des options, par exemple :
+\begin{verbatim}
+\usepackage[math-style=ISO,bold-style=upright]{unicode-math}
+\usepackage[symbols]{kpfonts-otf}
+\end{verbatim}
+
+L’utilisateur choisit ensuite librement ses polices de texte romaine,
+sans-serif et à chasse fixe ainsi que la police mathématique en utilisant
+la syntaxe classique\\[.5\baselineskip]
+|\set...font{|\optit{nom-fonte}|}[|\optit{options}|]|.
+
+Ceux qui veulent utiliser les KP-fonts pour des documents sans maths, peuvent
+évidemment charger uniquement \pkg{fontspec} et faire appel aux commandes
+ci-dessus.
+
+\subsection{Options des polices de texte}
+
+Pour les polices de texte de Kp-fonts les options suivantes sont proposées :
+\begin{description}
+\item[Numbers=Lowercase :] pour avoir les chiffres minuscules ou elzéviriens
+ {\addfontfeature{Numbers=Lowercase} 1,2,3} ou
+ \style{Numbers=Lining} (par défaut 1,2,3) ;
+\item[SmallCapsFeatures = \{Letters=SmallCaps\} :] pour que la commande
+ |\textsc{}| affiche les \textlsc{Grandes} petites capitales à la place des
+ \textpsc{Petites} obtenues par défaut
+ (option \style{SmallCapsFeatures = \{Letters=PetiteCaps\}}%
+ \footnote{Accolades indispensables à cause du signe \texttt{=} !}) ;
+\item[Ligatures=TeX :] (par défaut) |!`|\quad|?`|\quad|--|\quad |---|
+ affichent respectivement\quad !` \quad ?` -- et --- ;
+\item[Ligatures=Common :] (par défaut) ligatures automatiques ff ffi ffl fi fl ;
+\item[Ligatures=Rare :] ligatures {\addfontfeature{Ligatures=Rare} ct et st} ;
+\item[Style=Swash :] pour le {\addfontfeature{Style=Swash}Q long également en
+ petites et grandes capitales \textpsc{Que} et \textlsc{Que}} ;
+\item[Style=Historic :] pour remplacer systématiquement le « s » rond par un
+ {\addfontfeature{Style=Historic}« s »} long, sauf en fin de mot comme le veut
+ l’usage ; il est toujours possible de forcer un « s » rond en codant |s=| ;
+\item[Ligatures=Historic :] active les ligatures spécifiques au
+ {\addfontfeature{Style=Historic,Ligatures=Historic}« s » long si, sl, st}.
+\end{description}
+
+Le choix parmi ces options se fait normalement globalement pour tout le
+document, police par police éventuellement, exemple :
+\begin{verbatim}
+\setmonofont{KpMono}[Numbers=Lowercase,Style=Historic]
+\end{verbatim}
+mais si les options sont communes à plusieurs polices on peut ne les énoncer
+qu’une fois en procédant de la façon suivante :
+\begin{verbatim}
+\defaultfontfeatures+[KpRoman,KpSans,KpMono]{Numbers=Lowercase}
+\defaultfontfeatures+[KpRoman,KpSans]{%
+ Ligatures = Rare,
+ Style = Swash,
+ SmallCapsFeatures = {Letters=SmallCaps},
+ }
+\setmainfont{KpRoman}
+\setsansfont{KpSans}
+\setmonofont{KpMono}
+\end{verbatim}
+Remarques : 1. Les commandes |\setmonofont{KpMono}|, |\setsansfont{KpSans}| et
+|\setmainfont{KpRoman}| fonctionnent parce que la distribution Kp-fonts est
+fournie avec des fichiers \file{KpMono.fontspec}, \file{KpSans.fontspec} et
+\file{KpRoman.fontspec}.
+
+2. Noter le |+| après |\defaultfontfeatures| : les options sont
+\emph{ajoutées} au options par défaut.
+
+3. On peut regrouper des options : |Ligatures={Rare,Historic}| (avec accolades)
+équivaut aux deux options |Ligatures=Rare| et |Ligatures=Historic|.
+
+4. Il est possible de modifier une option \emph{localement}, ainsi pour
+afficher les chiffres elzéviriens {\addfontfeatures{Numbers=Lowercase}
+ 1234576890} alors que l’option globale est |Numbers=Lining|, on utilise la
+commande |\addfontfeatures| dans un groupe :
+\begin{verbatim}
+{\addfontfeatures{Numbers=Lowercase}1234576890}
+\end{verbatim}
+
+\subsection{Options des polices mathématiques}
+
+Les options suivantes peuvent être passées à \pkg{unicode-math}%
+\footnote{Voir la documentation \file{unicode-math.pdf}.}
+ou à la commande |\setmathfont{}| :
+\begin{description}
+\item[math-style =] \opt{ISO}, \opt{TeX} (défaut), \opt{french}, \opt{upright} ;
+\item[bold-style =] \opt{ISO}, \opt{TeX} (défaut), \opt{upright} ;
+\item[partial =] \opt{upright} (italique par défaut) ;
+\item[nabla =] \opt{italic} (droit par défaut) ;
+\end{description}
+
+Les variantes de style affectent chacune une famille de glyphes, voici les
+trois premières :
+\begin{description}
+\item[Style=mathcal] (\texttt{+ss01}) les commandes |\mathcal{}| et
+ |\mathscr{}| produisent \mathversion{full}$\mathcal{ABC}$
+ au lieu de \mathversion{base}$\mathcal{ABC}$ ;
+
+\item[Style=bbsans] (\texttt{+ss02}) les glyphes produits par la commande
+ |\mathbb{}| sont en sans-serif \mathversion{full}$\mathbb{ABC}$ au lieu de
+ \mathversion{base}$\mathbb{ABC}$ ;
+
+\item[Style=narrowiints] (\texttt{+ss03}) les intégrales multiples sont plus
+ compactes : \mathversion{full}$\iiint$ au lieu de
+ \mathversion{base}$\iiint$.
+\end{description}
+
+Les quatre tables suivantes recensent les autres variantes de style proposées.
+
+\begin{table}[ht]
+ {\centering
+ \caption{Style=leqslant (\texttt{+ss04})}
+ \label{ss04}
+ \begin{tabular}{@{}lcc@{}}
+ \hline
+ Commande & Base & Variante \\
+ \hline
+ \cmd{leq} & $\leq$ & $\leqslant$ \\
+ \cmd{geq} & $\geq$ & $\geqslant$ \\
+ \cmd{nleq} & $\nleq$ & $\nleqslant$ \\
+ \cmd{ngeq} & $\ngeq$ & $\ngeqslant$ \\
+ \cmd{leqq} & $\leqq$ & $\leqqslant$ \\
+ \cmd{geqq} & $\geqq$ & $\geqqslant$ \\
+ \cmd{eqless} & $\eqless$ & $\eqslantless$ \\
+ \cmd{eqgtr} & $\eqgtr$ & $\eqslantgtr$ \\
+ \hline
+ \end{tabular}\par}
+\end{table}
+
+\begin{table}[ht]
+ \centering
+ \caption{Style=smaller (\texttt{+ss05})}
+ \label{ss05}
+ \begin{tabular}{@{}lcc@{}}
+ \hline
+ Commande & Base & Variante \\
+ \hline
+ \cmd{mid} & $\mid$ & $\shortmid$ \\
+ \cmd{nmid} & $\nmid$ & $\nshortmid$ \\
+ \cmd{parallel} & $\parallel$ & $\shortparallel$ \\
+ \cmd{nparallel} & $\nparallel$ & $\nshortparallel$ \\
+ \hline
+ \end{tabular}
+\end{table}
+
+\begin{table}[ht]
+ \centering
+ \caption{Style=subsetneq (\texttt{+ss06})}
+ \label{ss06}
+ \begin{tabular}{@{}lcc@{}}
+ \hline
+ Commande & Base & Variante \\
+ \hline
+ \cmd{subsetneq} & $\subsetneq$ & $\varsubsetneq$ \\
+ \cmd{supsetneq} & $\supsetneq$ & $\varsupsetneq$ \\
+ \cmd{subsetneqq} & $\subsetneqq$ & $\varsubsetneqq$ \\
+ \cmd{supsetneqq} & $\supsetneqq$ & $\varsupsetneqq$ \\
+ \hline
+ \end{tabular}
+\end{table}
+
+ \begin{table}[ht]
+ {\centering
+ \caption{Style=parallelslant (\texttt{+ss07})}
+ \label{ss07}
+ \begin{tabular}{@{}lcc@{}}
+ \hline
+ Commande & Base & Variante \\
+ \hline
+ \cmd{parallel} & $\parallel$ & $\parallelslant$ \\
+ \cmd{nparallel} & $\nparallel$ & $\nparallelslant$ \\
+ \hline
+ \end{tabular}\par}
+
+\vspace{\baselineskip}
+Exemple : pour activer les styles 4 (leqslant) et 6 (subsetneq) on code\\
+|\setmathfont{KpMath-Regular.otf}[StylisticSet={4,6}]|\quad ou bien\\
+|\setmathfont{KpMath-Regular.otf}[Style={leqslant,subsetneq}]|
+\end{table}
+
+\vspace{\baselineskip}
+La table~\vref{cv} recense les variantes de glyphes proposées :
+
+\begin{table}[ht]
+ \centering
+ \caption{Variantes de glyphe}
+ \label{cv}
+ \begin{tabular}{@{}>{\ttfamily}lccl@{}}
+ \hline
+ & Base & Variante & Commande\\
+ \hline
+ cv00 & $\Re\quad\Im$ & $\RE\quad\IM$ & \cmd{Re}\quad\cmd{Im}\\
+ cv01 & $\hslash$ & $\mithbar$ & \cmd{hslash} ou \cmd{hbar} \\
+ cv02 & $\emptyset$ & $\varemptyset$ & \cmd{emptyset} \\
+ cv03 & $\mitepsilon$ & $\mitvarepsilon$ & \cmd{epsilon} \\
+ cv04 & $\mitkappa$ & $\mitvarkappa$ & \cmd{kappa} \\
+ cv05 & $\mitpi$ & $\mitvarpi$ & \cmd{pi} \\
+ cv06 & $\mitphi$ & $\mitvarphi$ & \cmd{phi} \\
+ cv07 & $\mitrho$ & $\mitvarrho$ & \cmd{rho} \\
+ cv08 & $\mitsigma$ & $\mitvarsigma$ & \cmd{sigma} \\
+ cv09 & $\mittheta$ & $\mitvartheta$ & \cmd{theta} \\
+ cv10 & $\mitTheta$ & $\mitvarTheta$ & \cmd{Theta}\\
+ \hline
+ \end{tabular}
+\end{table}
+
+\vspace{\baselineskip}
+Exemple : |\setmathfont{KpMath-Regular.otf}[CharacterVariant={3,6}]|\\
+fera en sorte que les commandes |\epsilon| et |\phi| produisent $\mitvarepsilon$
+et $\mitvarphi$ plutôt que $\mitepsilon$ et $\mitphi$.
+Ceci vaut pour toutes les formes et graisses (droit, italique, gras, gras
+italique, sans-serif, etc.), ainsi avec l’option \opt{math-syle=french},
+|\epsilon| et |\phi| produisent $\mupvarepsilon$ and $\mupvarphi$.
+
+Note sur \cmd{hbar} : pour \pkg{unicode-math} les commandes \cmd{hbar} et
+\cmd{hslash} affichent le même caractère Unicode U+210F
+tandis que \pkg{amsmath} choisit deux définitions différentes pour ces
+commandes (un h italique avec une barre horizontale ou oblique).\\
+\pkg{kpfonts-otf} suit \pkg{unicode-math}, le h italique avec barre
+horizontale peut être obtenu grâce à la variante \texttt{cv01}
+(code \cmd{hslash} ou \cmd{hbar}) ou directement en codant \cmd{mithbar}.
+
+\section{Commandes spécifiques à Kp-fonts}
+
+\subsection{Variantes des symboles d'intégration}
+
+Kp-fonts propose des variantes des signes intégrales spécialement adaptées
+à la présentation des primitives, elles se codent |\varint|,
+|\variint|, |\variiint|, |\variiiint| et |\varidotsint|.
+Comparer $\int f(t)\,dt$ et $\varint f(t)\,dt$ et aussi
+
+\[\int f(t)\,dt \qquad\text{et}\qquad\varint f(t)\,dt\]
+
+On peut les coupler à la commande |\D{...}|, qui affiche un « d » droit
+et optimise les espacements :
+|\displaystyle\varint f(t)\D{t}| donne $\displaystyle\varint f(t)\D{t}$.
+
+
+\subsection{Symboles spécifiques}
+\label{ssec:symb-spec-kp}
+
+Rappelons que la liste des symboles Unicode présents dans Kp-fonts est
+disponible dans le fichier \file{unimath-kpfonts.pdf}.
+
+Sauf erreur de ma part les symboles présentés dans les tableaux suivants,
+n’ont pas de code Unicode, ils sont codés en zone privée pour Kp-fonts.
+
+\begin{center}\begin{tabular}{r>{$}c<{$}|r>{$}c<{$}}
+\verb=\mmapsto=&\mmapsto&\verb=\longmmapsto=&\longmmapsto\\
+\verb=\mmapsfrom=&\mmapsfrom&\verb=\longmmapsfrom=&\longmmapsfrom\\
+\verb=\Mmapsto=&\Mmapsto&\verb=\Longmmapsto=&\Longmmapsto\\
+\verb=\Mmapsfrom=&\Mmapsfrom&\verb=\Longmmapsfrom=&\Longmmapsfrom\\
+\verb=\leftrightdasharrow=&\leftrightdasharrow&\verb=\leadsto=&\leadsto
+\end{tabular}\end{center}
+
+\begin{center}\begin{tabular}{r>{$}c<{$}|r>{$}c<{$}}
+\verb=\boxright=&\boxright&\verb=\boxleft=&\boxleft\\
+\verb=\circleright=&\circleright&\verb=\circleleft=&\circleleft\\
+\verb=\Diamondright=&\Diamondright&\verb=\Diamondleft=&\Diamondleft\\
+\verb=\boxdotright=&\boxdotright&\verb=\boxdotleft=&\boxdotleft\\
+\verb=\circledotright=&\circledotright&\verb=\circledotleft=&\circledotleft\\
+\verb=\Diamonddotright=&\Diamonddotright&\verb=\Diamonddotleft=&\Diamonddotleft
+\end{tabular}\end{center}
+
+\begin{center}\begin{tabular}{r>{$}c<{$}|r>{$}c<{$}}
+\verb=\boxRight=&\boxRight&\verb=\boxLeft=&\boxLeft\\
+\verb=\boxdotRight=&\boxdotRight&\verb=\boxdotLeft=&\boxdotLeft\\
+\verb=\DiamondRight=&\DiamondRight&\verb=\DiamondLeft=&\DiamondLeft\\
+\verb=\DiamonddotRight=&\DiamonddotRight&\verb=\DiamonddotLeft=&\DiamonddotLeft
+\end{tabular}\end{center}
+
+\begin{center}\begin{tabular}{r>{$}c<{$}|r>{$}c<{$}}
+\verb=\multimapdot=&\multimapdot&\verb=\multimapdotinv=&\multimapdotinv\\
+\verb=\multimapdotboth=&\multimapdotboth\\
+\verb=\multimapbothvert=&\multimapbothvert&\verb=\multimapdotbothvert=&\multimapdotbothvert\\
+\verb=\multimapdotbothAvert=&\multimapdotbothAvert&\verb=\multimapdotbothBvert=&\multimapdotbothBvert
+\end{tabular}\end{center}
+
+\begin{center}\begin{tabular}{r>{$}c<{$}|r>{$}c<{$}|r>{$}c<{$}}
+\verb=\capplus=&\capplus&\verb=\sqcupplus=&\sqcupplus&\verb=\sqcapplus=&\sqcapplus\\
+\verb=\parallelslant=&\parallelslant&\verb=\colonsim=&\colonsim&\verb=\colonapprox=&\colonapprox\\
+\verb=\parallelbackslant=&\parallelbackslant&\verb=\Colonsim=&\Colonsim&\verb=\Colonapprox=&\Colonapprox\\
+\verb=\eqqColon=&\eqqColon&\verb=\Colondash=&\Colondash&\verb=\dashColon=&\dashColon\\
+\end{tabular}\end{center}
+
+\begin{center}\begin{tabular}{r>{$}c<{$}|r>{$}c<{$}|r>{$}c<{$}}
+\verb=\strictif=&\strictif&\verb=\strictfi=&\strictfi&\verb=\strictiff=&\strictiff\\
+\verb=\circledvee=&\circledvee&\verb=\circledwedge=&\circledwedge&\verb=\circledbar=&\circledbar\\
+\verb=\openJoin=&\openJoin&\verb=\opentimes=&\opentimes&\verb=\VvDash=&\VvDash\\
+\verb=\lambdaslash=&\lambdaslash&\verb=\lambdabar=&\lambdabar&\verb=\Wr=&\Wr
+\end{tabular}\end{center}
+
+\renewcommand{\arraystretch}{2}
+
+\begin{center}
+\begin{tabular}{r>{$}c<{$}c|r>{$}c<{$}c}
+
+\verb+\idotsint+ &\idotsint& $\displaystyle\idotsint$\\
+\verb+\ointclockwise+ &\ointclockwise&$\displaystyle\ointclockwise$
+&\verb+\varointctrclockwise+&\varointctrclockwise& $\displaystyle\varointctrclockwise$\\
+\verb+\oiintclockwise+ &\oiintclockwise&$\displaystyle\oiintclockwise$&\verb+\oiintctrclockwise+&\oiintctrclockwise&$\displaystyle\oiintctrclockwise$\\
+\verb+\varoiintclockwise+&\varoiintclockwise& $\displaystyle\varoiintclockwise$&\verb+\varoiintctrclockwise+&\varoiintctrclockwise&$\displaystyle\varoiintctrclockwise$\\
+\verb+\oiiintclockwise+ &\oiiintclockwise&$\displaystyle\oiiintclockwise$&\verb+\oiiintctrclockwise+ &\oiiintctrclockwise&$\displaystyle\oiiintctrclockwise$\\
+\verb+\varoiiintclockwise+ &\varoiiintclockwise& $\displaystyle\varoiiintclockwise$&\verb+\varoiiintctrclockwise+&\varoiiintctrclockwise&$\displaystyle\varoiiintctrclockwise$\\
+\verb+\sqiint+&\mbox{$\sqiint$}&$\displaystyle\sqiint$&\verb+\sqiiint+&\mbox{$\sqiiint$}&$\displaystyle\sqiiint$
+\end{tabular}
+\end{center}
+
+\subsection{Accents extensibles}
+
+\begin{itemize}
+\item \cmd{widehat} et \cmd{widetilde}
+\[\widehat{x}\; \widehat{xx} \;\widehat{xxx} \;\widehat{xxxx}\;
+ \widehat{xxxxx} \;\widehat{xxxxxx} \;\widetilde{x}\; \widetilde{xx}\;
+ \widetilde{xxx} \;\widetilde{xxxx} \;\widetilde{xxxxx}\;
+ \widetilde{xxxxxx}\]
+
+\item \cmd{overline} et \cmd{underline}
+ \[\overline{x}\quad \overline{xy}\quad \overline{xyz}\quad
+ \overline{A\cup B}\quad \overline{A\cup (B\cap C)\cup D}\quad
+ \underline{m+n+p}\]
+
+\item \cmd{overparen} et \cmd{underparen}
+ \[\overparen{x}\quad \overparen{xy}\quad \overparen{xyz}\quad
+ \mathring{\overparen{A\cup B}}\quad
+ \overparen{A\cup (B\cap C)\cup D}^{\smwhtcircle}\quad
+ \overparen{x+y}^{2}\quad \overparen{a+b+...+z}^{26}\]
+
+\[\underparen{x}\quad \underparen{xz} \quad \underparen{xyz}
+ \quad \underparen{x+z}_{2}\quad \underparen{a+b+...+z}_{26}\]
+
+\item \cmd{overbrace} et \cmd{underbrace}
+ \[\overbrace{a}\quad \overbrace{ab}\quad \overbrace{abc}\quad
+ \overbrace{abcd}\quad \overbrace{abcde}\quad
+ \overbrace{a+b+c}^{3}\quad \overbrace{ a+b+. . . +z }^{26}\]
+
+\[\underbrace{a}\quad\underbrace{ab}\quad\underbrace{abc}\quad
+ \underbrace{abcd}\quad \underbrace{abcde}\quad
+ \underbrace{a+b+c}_{3} \quad \underbrace{ a+b+...+z }_{26}\]
+
+\item \cmd{overrightarrow} et \cmd{overleftarrow}
+ \[\overrightarrow{v}\quad \overrightarrow{M}\quad \overrightarrow{vv}
+ \quad \overrightarrow{AB}\quad \overrightarrow{ABC}
+ \quad \overrightarrow{ABCD} \quad \overrightarrow{ABCDEFGH}.
+\]
+
+\[\overleftarrow{v}\quad \overleftarrow{M}\quad \overleftarrow{vv}
+ \quad \overleftarrow{AB}\quad \overleftarrow{ABC}
+ \quad \overleftarrow{ABCD} \quad \overleftarrow{ABCDEFGH}\]
+
+\item Enfin \cmd{widearc} et \cmd{widearcarrow} (ou \cmd{overrightarc})
+\[\widearc{AMB}\quad \widearcarrow{AMB}\]
+\end{itemize}
+
+\subsection{« Versions » math}
+
+Il est possible de définir plusieurs versions de la police mathématique
+\family{KpMath}, les plus courantes étant une version grasse (\textit{bold})
+et une version sans empattements (\textit{sans}).
+
+On définit dans le préambule les versions désirées, par exemple :\\
+|\setmathfont{KpMath-Bold.otf}[version=bold|, \optit{options} |]|\\
+|\setmathfont{KpMath-Semibold.otf}[version=semibold|, \optit{options} |]|\\
+|\setmathfont{KpMath-Sans.otf}[version=sans|, \optit{options} |]|\\
+|\setmathfont{KpMath-Light.otf}[version=light|, \optit{options} |]|\\
+et ensuite on passe d’une version à l’autre grâce à la commande
+|\mathversion{|\optit{nom}|}|.
+
+Exemple\footnote{L’option \opt{CharacterVariant=3} remplace le
+$\epsilon$ par $\varepsilon$.} :
+\begin{verbatim}
+\setmathfont{KpMath-Bold.otf}[version=bold,
+ Style=leqslant, CharacterVariant=3]
+\setmathfont{KpMath-Sans.otf}[version=sans,
+ Style=leqslant, CharacterVariant=3]
+\end{verbatim}
+
+Voici la même équation en trois versions, normale, grasse et sans empattement :
+\mathversion{base}
+
+\[ \mathbb{E}_i(N_i) = \sum_{n\ge1} P_i(N_i\ge n)
+ = \frac{\epsilon_i}{1-\epsilon_i}<+\infty \]
+
+|\mathversion{bold}|\mathversion{bold}
+\[ \mathbb{E}_i(N_i) = \sum_{n\ge1} P_i(N_i\ge n)
+ = \frac{\epsilon_i}{1-\epsilon_i}<+\infty \]
+
+|\mathversion{sans}|\mathversion{sans}
+\[ \mathbb{E}_i(N_i) = \sum_{n\ge1} P_i(N_i\ge n)
+ = \frac{\epsilon_i}{1-\epsilon_i}<+\infty \]
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-engine: luatex
+%%% TeX-master: t
+%%% coding: utf-8
+%%% End:
diff --git a/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.pdf b/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.pdf
new file mode 100644
index 0000000000..784d3228e9
--- /dev/null
+++ b/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.pdf
Binary files differ
diff --git a/fonts/kpfonts-otf/doc/unimath-kpfonts.ltx b/fonts/kpfonts-otf/doc/unimath-kpfonts.ltx
new file mode 100644
index 0000000000..bf82a60153
--- /dev/null
+++ b/fonts/kpfonts-otf/doc/unimath-kpfonts.ltx
@@ -0,0 +1,515 @@
+%%^^A%% unimath-symbols.ltx -- part of UNICODE-MATH <wspr.io/unicode-math>
+%%^^A%% Listing of Unicode mathematics symbols using a variety of fonts.
+
+%% Changes (df): XITS replaced by Erewhon.
+
+%!TEX TS-program = LuaLaTeX
+
+%%%%%%%%%%%%%%%%%%%%%%%
+% SYMBOLS DEFINED BY UNICODE-MATH
+%%%%%%%%%%%%%%%%%%%%%%%
+
+\documentclass[final]{article}
+\makeatletter
+
+\usepackage{ragged2e,setspace,booktabs,catchfile,shortvrb,geometry,metalogo,textcomp,longtable,tabu,hyperref}
+
+\geometry{margin=3cm}
+\hypersetup{colorlinks,linkcolor=black}
+
+\def\cmd#1{\texttt{\textbackslash\expandafter\@gobble\string#1}}
+
+\usepackage{fontspec}
+\setmainfont{texgyrepagella}%
+ [
+ Extension = .otf,
+ UprightFont = *-regular,
+ ItalicFont = *-italic,
+ BoldFont = *-bold,
+ BoldItalicFont = *-bolditalic,
+ Ligatures=TeX,
+ Numbers={Lowercase,Monospaced},
+ ]
+\usepackage[math-style=literal,bold-style=literal]{unicode-math}
+
+\ExplSyntaxOn
+\cs_generate_variant:Nn \fontspec_set_fontface:NNnn {c}
+
+\def\FINISH{}
+\newcount\Nfonts
+\def\defmathfont#1#2#3#4{
+ \Nfonts=\numexpr\Nfonts+1\relax
+ \tl_set:cn {L#1} {#4}
+ \newcounter{#1}
+ \setcounter{#1}{-1}
+ \setmathfont[version=#1,SizeFeatures={
+ {Size=-10, Colour=999999},
+ {Size=10-, Colour=#3}}]{#2}
+ \fontspec_set_fontface:cNnn {#1} \x {ItalicFont={},BoldFont={}} {#2}
+ \tl_gput_right:Nn \FINISH {
+ \refstepcounter{#1}\label{count:#1}
+ }
+}
+\ExplSyntaxOff
+
+\defmathfont{lm}{latinmodern-math.otf}{CC6666}{LM}
+%\defmathfont{xits}{XITSMath-Regular.otf}{6666CC}{X}
+\defmathfont{stix}{STIX2Math.otf}{66CC66}{S}
+\defmathfont{erewhon}{Erewhon-Math.otf}{AA6666}{E}
+\defmathfont{kpfonts}{KpMath-Regular.otf}{AA66CC}{K}
+%\defmathfont{kpfonts}{KpMath-Light.otf}{AA66CC}{K}
+\defmathfont{termes}{texgyretermes-math.otf}{66CCCC}{T}
+%\defmathfont{dejavu}{texgyredejavu-math.otf}{AACC66}{D}
+\defmathfont{garamond}{Garamond-Math.otf}{AACC66}{G}
+%\defmathfont{fira}{FiraMath-Regular.otf}{AA66CC}{F}
+\defmathfont{libertinus}{LibertinusMath-Regular.otf}{AA66CC}{Li}
+
+\def\INPUT{\input{unicode-math-table.tex}}
+\def\TABLE{%
+\par\noindent
+\begin{longtabu}[l]{@{}l *{\Nfonts}{c} lX[l]@{}}
+ \toprule
+ \textsc{usv} & \Llm & \Lstix & \Lerewhon & \Lkpfonts & \Ltermes & \Lgaramond & \Llibertinus
+ & Macro & Description \\
+ \midrule \endhead
+ \INPUT\\
+ \bottomrule
+\end{longtabu}
+}
+\makeatletter
+\def\USV#1{\footnotesize\scshape\MakeLowercase{u+\@gobble#1}}
+\makeatother
+\def\CMD#1{\footnotesize\cmd#1}
+\def\DESC#1{%
+ \begin{spacing}{0.5}
+ \RaggedRight\scriptsize #1%
+ \end{spacing}
+}
+
+\newcommand\SHOW[1]{%
+ \def\UnicodeMathSymbol##1##2##3##4{%
+ \def\1{#1}\def\2{##3}%
+ \ifx\1\2\PRINTLINE{##1}{##2}{##4}\fi
+ }%
+ \TABLE
+}
+\ExplSyntaxOn
+\def\PRINTLINE#1#2#3{
+ \def\tempa{
+ \USV{#1} &
+ \SYMB{#2}{lm}{#1} &
+% \SYMB{#2}{xits}{#1} &
+ \SYMB{#2}{stix}{#1} &
+ \SYMB{#2}{erewhon}{#1} &
+ \SYMB{#2}{kpfonts}{#1} &
+ \SYMB{#2}{termes}{#1} &
+ \SYMB{#2}{garamond}{#1} &
+ \SYMB{#2}{libertinus}{#1} &
+ \CMD{#2}
+ \tl_if_in:NnT \PLAIN {#2}
+ {
+ \makebox[0pt][l]
+ { \color[gray]{0.7} \textsuperscript{\sffamily (p)} }
+ }
+ \tl_if_in:NnT \LTXSYM {#2}
+ {
+ \makebox[0pt][l]
+ { \color[gray]{0.7} \textsuperscript{\sffamily (l)} }
+ }
+ \tl_if_in:NnT \AMSSYMB {#2}
+ {
+ \makebox[0pt][l]
+ { \color[gray]{0.7} \textsuperscript{\sffamily (a)} }
+ }
+ &
+ \DESC{#3} \\
+ }%
+ \expandafter\tempa
+}
+\ExplSyntaxOff
+\def\SYMB#1#2#3{%
+ \expandafter\iffontchar\csname#2\endcsname #3\relax
+ \refstepcounter{#2}%
+ \mathversion{#2}%
+ $\displaystyle#1$%
+ \fi
+}
+
+\def\PLAIN{\alpha\beta\gamma\delta\epsilon\zeta\eta\theta\iota\kappa\lambda\mu\nu\xi\pi\rho\sigma\tau\upsilon\phi\chi\psi\omega\varepsilon\vartheta\varpi\varrho\varsigma\varphi\Gamma\Delta\Theta\Lambda\Xi\Pi\Sigma\Upsilon\Phi\Psi\Omega
+%
+\aleph\hbar\imath\jmath\ell\wp\Re\Im\partial\infty\prime\emptyset\nabla\surd\top\bot\angle\triangle\forall\exists\neg\flat\natural\sharp\clubsuit\diamondsuit\heartsuit\spadesuit
+%
+\coprod\bigvee\bigwedge\biguplus\bigcap\bigcup\int\prod\sum\bigotimes\bigoplus\bigodot\oint\bigsqcup\smallint
+%
+\triangleleft\triangleright\bigtriangleup\bigtriangledown\wedge\land\vee\lor\cap\cup\ddagger\dagger\sqcap\sqcup\uplus\amalg\diamond\bullet\wr\div\odot\oslash\otimes\ominus\oplus\mp\pm\circ\bigcirc\setminus\cdot\ast\times\star\propto\sqsubseteq\sqsupseteq\parallel\mid\dashv\vdash\nearrow\searrow\nwarrow\swarrow\Leftrightarrow\Leftarrow\Rightarrow\neq\ne\lnot\leq\le\geq\ge\succ\prec\approx\succeq\preceq\supset\subset\supseteq\subseteq\in\ni\owns\gg\ll\not\leftrightarrow\leftarrow\gets\rightarrow\to\mapstochar\mapsto\sim\simeq\perp\equiv\asymp\smile\frown\leftharpoonup\leftharpoondown\rightharpoonup\rightharpoondown
+%
+\joinrel\relbar\Relbar\lhook\hookrightarrow\rhook\hookleftarrow\bowtie\models\Longrightarrow\longrightarrow\longleftarrow\Longleftarrow\longmapsto\longleftrightarrow\Longleftrightarrow\iff
+%
+\ldotp\cdotp\colon\ldots\cdots\vdots\ddots
+%
+\acute\grave\ddot\tilde\bar\breve\check\hat\vec\dot\widetilde\widehat
+%
+\overrightarrow\overleftarrow\overbrace\underbrace\lmoustache\rmoustache\lgroup\rgroup\arrowvert\Arrowvert\bracevert\Vert\vert\uparrow\downarrow\updownarrow\Uparrow\Downarrow\Updownarrow\backslash\rangle\langle\rbrace\lbrace\rceil\lceil\rfloor\lfloor\sqrt}
+
+
+\def\LTXSYM{
+\cong
+\notin
+\rightleftharpoons
+\doteq
+\mathring
+}
+
+\def\AMSSYMB{\boxdot\boxplus\boxtimes\square\blacksquare\centerdot\lozenge\blacklozenge\circlearrowright\circlearrowleft\leftrightharpoons\boxminus\Vdash\Vvdash\vDash\twoheadrightarrow\twoheadleftarrow\leftleftarrows\rightrightarrows\upuparrows\downdownarrows\upharpoonright\restriction\downharpoonright\upharpoonleft\downharpoonleft\rightarrowtail\leftarrowtail\leftrightarrows\rightleftarrows\Lsh\Rsh\rightsquigarrow\leftrightsquigarrow\looparrowleft\looparrowright\circeq\succsim\gtrsim\gtrapprox\multimap\therefore\because\doteqdot\Doteq\triangleq\precsim\lesssim\lessapprox\eqslantless\eqslantgtr\curlyeqprec\curlyeqsucc\preccurlyeq\leqq\leqslant\lessgtr\backprime\risingdotseq\fallingdotseq\succcurlyeq\geqq\geqslant\gtrless\vartriangleright\vartriangleleft\trianglerighteq\trianglelefteq\bigstar\between\blacktriangledown\blacktriangleright\blacktriangleleft\vartriangle\blacktriangle\triangledown\eqcirc\lesseqgtr\gtreqless\lesseqqgtr\gtreqqless\Rrightarrow\Lleftarrow\veebar\barwedge\doublebarwedge\measuredangle\sphericalangle\varpropto\smallsmile\smallfrown\Subset\Supset\Cup\doublecup\Cap\doublecap\curlywedge\curlyvee\leftthreetimes\rightthreetimes\subseteqq\supseteqq\bumpeq\Bumpeq\lll\llless\ggg\gggtr\circledS\pitchfork\dotplus\backsim\backsimeq\complement\intercal\circledcirc\circledast\circleddash\lvertneqq\gvertneqq\nleq\ngeq\nless\ngtr\nprec\nsucc\lneqq\gneqq\nleqslant\ngeqslant\lneq\gneq\npreceq\nsucceq\precnsim\succnsim\lnsim\gnsim\nleqq\ngeqq\precneqq\succneqq\precnapprox\succnapprox\lnapprox\gnapprox\nsim\ncong\diagup\diagdown\varsubsetneq\varsupsetneq\nsubseteqq\nsupseteqq\subsetneqq\supsetneqq\varsubsetneqq\varsupsetneqq\subsetneq\supsetneq\nsubseteq\nsupseteq\nparallel\nmid\nshortmid\nshortparallel\nvdash\nVdash\nvDash\nVDash\ntrianglerighteq\ntrianglelefteq\ntriangleleft\ntriangleright\nleftarrow\nrightarrow\nLeftarrow\nRightarrow\nLeftrightarrow\nleftrightarrow\divideontimes\varnothing\nexists\Finv\Game\eth\eqsim\beth\gimel\daleth\lessdot\gtrdot\ltimes\rtimes\shortmid\shortparallel\smallsetminus\thicksim\thickapprox\approxeq\succapprox\precapprox\curvearrowleft\curvearrowright\digamma\varkappa\Bbbk\hslash\backepsilon}
+
+\input{unicode-math.dtx}
+
+\begin{document}
+\MakeShortVerb\|
+\title{Symbols defined by \textsf{unicode-math}}
+\author{Will Robertson}
+\date{Modified (df) to show Kpfonts Math symbols}
+\maketitle
+
+This document uses the file \texttt{unicode-math-table.tex}
+to print every symbol defined by the \textsf{unicode-math}
+package.
+Use this document to find the command name or the Unicode glyph slot for a symbol that you wish to use.
+The following fonts are shown: (with approximate symbol counts)
+\begin{itemize}
+\item[\Llm] \mathversion{lm} $\mathup{Latin\ Modern\ Math}$ (\ref{count:lm})
+%\item[\Lxits] \mathversion{xits} $\mathup{XITS\ Math}$ (\ref{count:xits})
+\item[\Lstix] \mathversion{stix} $\mathup{STIX\ Two\ Math}$ (\ref{count:stix})
+\item[\Lerewhon] \mathversion{erewhon} $\mathup{Erewhon\ Math}$ (\ref{count:erewhon})
+\item[\Lkpfonts] \mathversion{kpfonts} $\mathup{KpMath\ Regular}$ (\ref{count:kpfonts})
+\item[\Ltermes] \mathversion{termes} $\mathup{TeX\ Gyre\ Termes\ Math}$ (\ref{count:termes})
+\item[\Lgaramond] \mathversion{garamond} $\mathup{Garamond\ Math}$ (\ref{count:garamond})
+\item[\Llibertinus] \mathversion{libertinus} $\mathup{Libertinus\ Math}$ (\ref{count:libertinus})
+\end{itemize}
+Symbols defined in Plain \TeX\ are indicated with {\color[gray]{0.6} \textsuperscript{\sffamily (p)}} after their macro name.
+\LaTeX\ follows Plain \TeX, but defines a handful more, indicated with {\color[gray]{0.6} \textsuperscript{\sffamily (l)}}.
+Symbols defined in \textsf{amssymb} are indicated with {\color[gray]{0.6} \textsuperscript{\sffamily (a)}}.
+
+Note that this list of fonts is not intended to be exhaustive but I am happy to add new fonts by request if they are distributed in \TeX\ Live.\footnote{Only a single \TeX\ Gyre Math font is shown here by design as they all largely have the same symbol coverage.}
+
+\tableofcontents
+
+\clearpage
+\section{Opening symbols, \cmd\mathopen}
+\begingroup
+\def\sqrt{\sqrtsign{}}
+\def\cuberoot{\cuberootsign{}}
+\def\fourthroot{\fourthrootsign{}}
+\def\longdivision{\longdivisionsign{}}
+\SHOW\mathopen
+\endgroup
+
+\clearpage
+\section{Closing symbols, \cmd\mathclose}
+\SHOW\mathclose
+
+\section{Fence symbols, \cmd\mathfence}
+\SHOW\mathfence
+
+\clearpage
+\section{Punctuation symbols, \cmd\mathpunct}
+\SHOW\mathpunct
+
+\section{`Over' symbols, \cmd\mathover}
+\begingroup
+\def\SYMB#1#2#3{%
+ \expandafter\iffontchar\csname#2\endcsname #3\relax
+ \refstepcounter{#2}%
+ \mathversion{#2}%
+ $\displaystyle #1{\mitx+\mity}$%
+ \fi
+}
+\SHOW\mathover
+\endgroup
+
+\section{`Under' symbols, \cmd\mathunder}
+\begingroup
+\def\SYMB#1#2#3{%
+ \expandafter\iffontchar\csname#2\endcsname #3\relax
+ \refstepcounter{#2}%
+ \mathversion{#2}%
+ $\displaystyle #1{\mitx+\mity}$%
+ \fi
+}
+\SHOW\mathunder
+\endgroup
+
+\clearpage
+\section{Accents, \cmd\mathaccent}
+
+Note that accents will only be properly placed if used with an OpenType font with the necessary information.
+
+\begingroup
+\def\SYMB#1#2#3{%
+ \expandafter\iffontchar\csname#2\endcsname #3\relax
+ \refstepcounter{#2}%
+ \mathversion{#2}%
+ $\displaystyle#1 \mitx$%
+ \fi
+}
+\SHOW\mathaccent
+\endgroup
+
+\section{Accents, \cmd\mathaccent}
+
+Note that accents will only be properly placed if used with an OpenType font with the necessary information.
+
+\begingroup
+\def\SYMB#1#2#3{%
+ \expandafter\iffontchar\csname#2\endcsname #3\relax
+ \refstepcounter{#2}%
+ \mathversion{#2}%
+ $\displaystyle#1 \mitx$%
+ \fi
+}
+\SHOW\mathaccent
+\endgroup
+
+\section{Bottom accents, \cmd\mathbotaccent}
+\begingroup
+\def\SYMB#1#2#3{%
+ \expandafter\iffontchar\csname#2\endcsname #3\relax
+ \refstepcounter{#2}%
+ \mathversion{#2}%
+ $\displaystyle#1 \mitx$%
+ \fi
+}
+\SHOW\mathbotaccent
+\endgroup
+
+% Added (df)
+\section{Bottom accents wide, \cmd\mathbotaccentwide}
+\begingroup
+\def\SYMB#1#2#3{%
+ \expandafter\iffontchar\csname#2\endcsname #3\relax
+ \refstepcounter{#2}%
+ \mathversion{#2}%
+ $\displaystyle#1 {\mitx+\mity}$%
+ \fi
+}
+\SHOW\mathbotaccentwide
+\endgroup
+
+\section{Big operators, \cmd\mathop}
+
+Of the operators shown below, a subset need to be flagged by \textsf{unicode-math} for \cmd\nolimits\ adjustments.
+The limits behaviour as specified by \textsf{unicode-math} are shown with grey subscripts and superscripts.
+\begingroup
+\def\SYMB#1#2#3{%
+ \expandafter\iffontchar\csname#2\endcsname #3\relax
+ \stepcounter{#2}%
+ \mathversion{#2}%
+ $\displaystyle#1_0^1$%
+ \fi
+}
+\SHOW\mathop
+\endgroup
+
+\clearpage
+\section{Binary relations, \cmd\mathbin}
+\SHOW\mathbin
+
+\clearpage
+\section{Ordinary symbols, \cmd\mathord}
+\SHOW\mathord
+
+\clearpage
+\section{Relation symbols, \cmd\mathrel}
+\SHOW\mathrel
+
+\clearpage
+\section{Alphabetical symbols, \cmd\mathalpha}
+
+% first read in all \mathalpha symbols into a variable:
+\ExplSyntaxOn
+\cs_set:Npn \UnicodeMathSymbol #1#2#3#4 {
+ \str_if_eq:nnT {\mathalpha} {#3} {
+ \exp_not:n { \UnicodeMathSymbol {#1}{#2}{#3}{#4} }
+ }
+}
+\CatchFileEdef
+ \ALPHA{unicode-math-table.tex}
+ {\char_set_catcode_space:N \ }
+
+% now each time we print an alphabet we remove the slot;
+% this ensures we won't miss anything
+
+\def\INPUT{\ALPHA}
+\cs_new:Npn \SLOTS #1#2 {
+ \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 {
+ \bool_lazy_and:nnT
+ { \int_compare_p:n {##1 >= #1} }
+ { \int_compare_p:n {##1 <= #2} }
+ {
+ \PRINTLINE{##1}{##2}{##4}
+ }
+ }
+ \TABLE
+ \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 {
+ \bool_lazy_or:nnT
+ { \int_compare_p:n {##1 > #2} }
+ { \int_compare_p:n {##1 < #1} }
+ {
+ \exp_not:n { \UnicodeMathSymbol {##1}{##2}{##3}{##4} }
+ }
+ }
+ \edef\ALPHA{\ALPHA}
+}
+
+\ExplSyntaxOff
+
+\subsection{Normal weight}
+
+\subsubsection{Upright Greek, uppercase}
+\SLOTS{"00391}{"003A9}
+
+\subsubsection{Upright Greek, lowercase}
+\SLOTS{"003B1}{"003F5}
+
+\subsubsection{Italic, Latin, uppercase}
+\SLOTS{"1D434}{"1D44D}
+
+\subsubsection{Italic, Latin, lowercase}
+\SLOTS{"1D44E}{"1D467}
+
+\subsubsection{Italic Greek, uppercase}
+\SLOTS{"1D6E2}{"1D6FA}
+
+\subsubsection{Italic Greek, lowercase}
+\SLOTS{"1D6FC}{"1D71B}
+
+\subsubsection{Script, Latin, uppercase}
+\SLOTS{"1D49C}{"1D4B5}
+
+\subsubsection{Script, Latin, lowercase}
+\SLOTS{"1D4B6}{"1D4CF}
+
+\subsubsection{Fraktur, Latin, uppercase}
+\SLOTS{"1D504}{"1D51C}
+
+\subsubsection{Fraktur, Latin, lowercase}
+\SLOTS{"1D51E}{"1D537}
+
+\subsubsection{Blackboard, Latin, uppercase}
+\SLOTS{"1D538}{"1D550}
+
+\subsubsection{Blackboard, Latin, lowercase}
+\SLOTS{"1D552}{"1D56B}
+
+\subsubsection{Sans serif, Latin, uppercase}
+\SLOTS{"1D5A0}{"1D5B9}
+
+\subsubsection{Sans serif, Latin, lowercase}
+\SLOTS{"1D5BA}{"1D5D3}
+
+\subsubsection{Italic sans serif, Latin, uppercase}
+\SLOTS{"1D608}{"1D621}
+
+\subsubsection{Italic sans serif, Latin, lowercase}
+\SLOTS{"1D622}{"1D63B}
+
+\subsubsection{Typewriter, Latin, uppercase}
+\SLOTS{"1D670}{"1D689}
+
+\subsubsection{Typewriter, Latin, lowercase}
+\SLOTS{"1D68A}{"1D6A3}
+
+\subsection{Bold}
+
+\subsubsection{Bold, Latin, uppercase}
+\SLOTS{"1D400}{"1D419}
+
+\subsubsection{Bold, Latin, lowercase}
+\SLOTS{"1D41A}{"1D433}
+
+\subsubsection{Bold Greek, uppercase}
+\SLOTS{"1D6A8}{"1D6C0}
+
+\subsubsection{Bold Greek, lowercase}
+\SLOTS{"1D6C2}{"1D6E1}
+
+\subsubsection{Bold italic, Latin, uppercase}
+\SLOTS{"1D468}{"1D481}
+
+\subsubsection{Bold italic, Latin, lowercase}
+\SLOTS{"1D482}{"1D49B}
+
+\subsubsection{Bold italic Greek, uppercase}
+\SLOTS{"1D71C}{"1D734}
+
+\subsubsection{Bold italic Greek, lowercase}
+\SLOTS{"1D736}{"1D755}
+
+\subsubsection{Bold script, Latin, uppercase}
+\SLOTS{"1D4D0}{"1D4E9}
+
+\subsubsection{Bold script, Latin, lowercase}
+\SLOTS{"1D4EA}{"1D503}
+
+\subsubsection{Bold fraktur, Latin, uppercase}
+\SLOTS{"1D56C}{"1D585}
+
+\subsubsection{Bold fraktur, Latin, lowercase}
+\SLOTS{"1D586}{"1D59F}
+
+\subsubsection{Bold sans serif, Latin, uppercase}
+\SLOTS{"1D5D4}{"1D5ED}
+
+\subsubsection{Bold sans serif, Latin, lowercase}
+\SLOTS{"1D5EE}{"1D607}
+
+\subsubsection{Bold italic sans serif, Latin, uppercase}
+\SLOTS{"1D63C}{"1D655}
+
+\subsubsection{Bold italic sans serif, Latin, lowercase}
+\SLOTS{"1D656}{"1D66F}
+
+\subsubsection{Bold sans serif Greek, uppercase}
+\SLOTS{"1D756}{"1D76E}
+
+\subsubsection{Bold sans serif Greek, lowercase}
+\SLOTS{"1D770}{"1D78F}
+
+\subsubsection{Bold italic sans serif Greek, uppercase}
+\SLOTS{"1D790}{"1D7A8}
+
+\subsubsection{Bold italic sans serif Greek, lowercase}
+\SLOTS{"1D7AA}{"1D7C9}
+
+\subsection{Miscellaneous}
+\def\UnicodeMathSymbol#1#2#3#4{\PRINTLINE{#1}{#2}{#4}}
+\TABLE
+
+\FINISH
+
+\end{document}
+
+\endinput
+
+% /©
+%
+% ------------------------------------------------
+% The UNICODE-MATH package <wspr.io/unicode-math>
+% ------------------------------------------------
+% This package is free software and may be redistributed and/or modified under
+% the conditions of the LaTeX Project Public License, version 1.3c or higher
+% (your choice): <http://www.latex-project.org/lppl/>.
+% ------------------------------------------------
+% Copyright 2006-2019 Will Robertson, LPPL "maintainer"
+% Copyright 2010-2017 Philipp Stephani
+% Copyright 2011-2017 Joseph Wright
+% Copyright 2012-2015 Khaled Hosny
+% ------------------------------------------------
+%
+% ©/
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% TeX-engine: luatex
+%%% End:
diff --git a/fonts/kpfonts-otf/doc/unimath-kpfonts.pdf b/fonts/kpfonts-otf/doc/unimath-kpfonts.pdf
new file mode 100644
index 0000000000..238bf93f43
--- /dev/null
+++ b/fonts/kpfonts-otf/doc/unimath-kpfonts.pdf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpMath-Bold.otf b/fonts/kpfonts-otf/fonts/KpMath-Bold.otf
new file mode 100644
index 0000000000..45f101bd9f
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpMath-Bold.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpMath-Light.otf b/fonts/kpfonts-otf/fonts/KpMath-Light.otf
new file mode 100644
index 0000000000..56abd8acc0
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpMath-Light.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpMath-Regular.otf b/fonts/kpfonts-otf/fonts/KpMath-Regular.otf
new file mode 100644
index 0000000000..92cfa4e0e4
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpMath-Regular.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpMath-Sans.otf b/fonts/kpfonts-otf/fonts/KpMath-Sans.otf
new file mode 100644
index 0000000000..2e072d145d
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpMath-Sans.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpMath-Semibold.otf b/fonts/kpfonts-otf/fonts/KpMath-Semibold.otf
new file mode 100644
index 0000000000..3ab3ef7a97
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpMath-Semibold.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpMono-Bold.otf b/fonts/kpfonts-otf/fonts/KpMono-Bold.otf
new file mode 100644
index 0000000000..165aa4a268
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpMono-Bold.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpMono-BoldItalic.otf b/fonts/kpfonts-otf/fonts/KpMono-BoldItalic.otf
new file mode 100644
index 0000000000..ac196e11c6
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpMono-BoldItalic.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpMono-Italic.otf b/fonts/kpfonts-otf/fonts/KpMono-Italic.otf
new file mode 100644
index 0000000000..edb98e852d
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpMono-Italic.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpMono-Regular.otf b/fonts/kpfonts-otf/fonts/KpMono-Regular.otf
new file mode 100644
index 0000000000..3302fa064d
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpMono-Regular.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpRoman-Bold.otf b/fonts/kpfonts-otf/fonts/KpRoman-Bold.otf
new file mode 100644
index 0000000000..a6a2cbe904
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpRoman-Bold.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpRoman-BoldItalic.otf b/fonts/kpfonts-otf/fonts/KpRoman-BoldItalic.otf
new file mode 100644
index 0000000000..cda2905d70
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpRoman-BoldItalic.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpRoman-Italic.otf b/fonts/kpfonts-otf/fonts/KpRoman-Italic.otf
new file mode 100644
index 0000000000..3d2fcd2b62
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpRoman-Italic.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpRoman-Light.otf b/fonts/kpfonts-otf/fonts/KpRoman-Light.otf
new file mode 100644
index 0000000000..6501008d9e
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpRoman-Light.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpRoman-LightItalic.otf b/fonts/kpfonts-otf/fonts/KpRoman-LightItalic.otf
new file mode 100644
index 0000000000..9acf44991e
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpRoman-LightItalic.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpRoman-Regular.otf b/fonts/kpfonts-otf/fonts/KpRoman-Regular.otf
new file mode 100644
index 0000000000..fe3f2a7fe0
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpRoman-Regular.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpRoman-Semibold.otf b/fonts/kpfonts-otf/fonts/KpRoman-Semibold.otf
new file mode 100644
index 0000000000..30377b06b3
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpRoman-Semibold.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpRoman-SemiboldItalic.otf b/fonts/kpfonts-otf/fonts/KpRoman-SemiboldItalic.otf
new file mode 100644
index 0000000000..9ccb0fa382
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpRoman-SemiboldItalic.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpSans-Bold.otf b/fonts/kpfonts-otf/fonts/KpSans-Bold.otf
new file mode 100644
index 0000000000..e8d61e6bba
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpSans-Bold.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpSans-BoldItalic.otf b/fonts/kpfonts-otf/fonts/KpSans-BoldItalic.otf
new file mode 100644
index 0000000000..b3ffb36ef2
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpSans-BoldItalic.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpSans-Italic.otf b/fonts/kpfonts-otf/fonts/KpSans-Italic.otf
new file mode 100644
index 0000000000..b3597205e0
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpSans-Italic.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/fonts/KpSans-Regular.otf b/fonts/kpfonts-otf/fonts/KpSans-Regular.otf
new file mode 100644
index 0000000000..6d6f419736
--- /dev/null
+++ b/fonts/kpfonts-otf/fonts/KpSans-Regular.otf
Binary files differ
diff --git a/fonts/kpfonts-otf/tex/KpLight.fontspec b/fonts/kpfonts-otf/tex/KpLight.fontspec
new file mode 100644
index 0000000000..861054f1f2
--- /dev/null
+++ b/fonts/kpfonts-otf/tex/KpLight.fontspec
@@ -0,0 +1,7 @@
+\defaultfontfeatures[KpLight]
+ { Extension = .otf,
+ UprightFont = *-Light,
+ BoldFont = *-Semibold,
+ ItalicFont = *-LightItalic,
+ BoldItalicFont = *-SemiboldItalic
+ }
diff --git a/fonts/kpfonts-otf/tex/KpMono.fontspec b/fonts/kpfonts-otf/tex/KpMono.fontspec
new file mode 100644
index 0000000000..c15afe0bcf
--- /dev/null
+++ b/fonts/kpfonts-otf/tex/KpMono.fontspec
@@ -0,0 +1,7 @@
+\defaultfontfeatures[KpMono]
+ { Extension = .otf,
+ UprightFont = *-Regular,
+ BoldFont = *-Bold,
+ ItalicFont = *-Italic,
+ BoldItalicFont = *-BoldItalic
+ }
diff --git a/fonts/kpfonts-otf/tex/KpRoman.fontspec b/fonts/kpfonts-otf/tex/KpRoman.fontspec
new file mode 100644
index 0000000000..00ed521b7a
--- /dev/null
+++ b/fonts/kpfonts-otf/tex/KpRoman.fontspec
@@ -0,0 +1,7 @@
+\defaultfontfeatures[KpRoman]
+ { Extension = .otf,
+ UprightFont = *-Regular,
+ BoldFont = *-Bold,
+ ItalicFont = *-Italic,
+ BoldItalicFont = *-BoldItalic
+ }
diff --git a/fonts/kpfonts-otf/tex/KpSans.fontspec b/fonts/kpfonts-otf/tex/KpSans.fontspec
new file mode 100644
index 0000000000..eae6a60770
--- /dev/null
+++ b/fonts/kpfonts-otf/tex/KpSans.fontspec
@@ -0,0 +1,7 @@
+\defaultfontfeatures[KpSans]
+ { Extension = .otf,
+ UprightFont = *-Regular,
+ BoldFont = *-Bold,
+ ItalicFont = *-Italic,
+ BoldItalicFont = *-BoldItalic
+ }
diff --git a/fonts/kpfonts-otf/tex/kpfonts-otf.sty b/fonts/kpfonts-otf/tex/kpfonts-otf.sty
new file mode 100644
index 0000000000..89d644af84
--- /dev/null
+++ b/fonts/kpfonts-otf/tex/kpfonts-otf.sty
@@ -0,0 +1,423 @@
+\NeedsTeXFormat{LaTeX2e}[2019/01/01]
+\def\fileversion{0.20}
+\def\filedate{2020/04/18}
+\ProvidesPackage{kpfonts-otf}[\filedate\space\fileversion]
+
+% Ensure luatex or xetex engine
+\RequirePackage{iftex}[2019/10/24]
+\RequireTUTeX
+%
+\newif\ifkp@math \kp@mathtrue
+\newif\ifkp@text \kp@texttrue
+\newif\ifkp@sf \kp@sftrue
+\newif\ifkp@tt \kp@tttrue
+%
+\newif\ifkp@lighttext
+\newif\ifkp@largesmallcaps
+\newif\ifkp@osn
+\newif\ifkp@os
+\newif\ifkp@vos
+\newif\ifkp@Qtail
+%
+\newif\ifkp@lightmath
+\newif\ifkp@osnm
+\newif\ifkp@narrowiints
+\newif\ifkp@partialup
+\newif\ifkp@Dcommand \kp@Dcommandtrue
+\newif\ifkp@sfmathbb
+\newif\ifkp@frenchstyle
+\newif\ifkp@calasscr
+\newif\ifkp@oldReIm
+\newif\ifkp@symbols \kp@symbolstrue
+%
+% Global options
+\DeclareOption{light} {\kp@lighttexttrue\kp@lightmathtrue}
+\DeclareOption{nomath} {\kp@mathfalse\kp@symbolsfalse}
+\DeclareOption{notext} {\kp@textfalse}
+\DeclareOption{nosf} {\kp@sffalse}
+\DeclareOption{nott} {\kp@ttfalse}
+\DeclareOption{onlyrm} {\kp@ttfalse\kp@sffalse}
+% Text options
+\DeclareOption{lighttext} {\kp@lighttexttrue}
+\DeclareOption{oldstylenums} {\kp@osntrue}
+\DeclareOption{oldstyle} {\kp@ostrue\kp@Qtailtrue}
+\DeclareOption{veryoldstyle} {\kp@vostrue\kp@Qtailtrue}
+\DeclareOption{largesmallcaps} {\kp@largesmallcapstrue}
+% Math options
+\DeclareOption{lightmath} {\kp@lightmathtrue}
+\DeclareOption{bbsans} {\kp@sfmathbbtrue}
+\DeclareOption{mathcal} {\kp@calasscrtrue}
+\DeclareOption{narrowiints} {\kp@narrowiintstrue}
+\DeclareOption{frenchstyle} {\kp@frenchstyletrue}
+\DeclareOption{partialup} {\kp@partialuptrue}
+\DeclareOption{oldstylenumsmath} {\kp@osnmtrue}
+\DeclareOption{fancyReIm} {\kp@oldReImtrue}
+\DeclareOption{noDcommand} {\kp@Dcommandfalse}
+\DeclareOption{symbols} {\kp@textfalse\kp@sffalse\kp@ttfalse
+ \kp@mathfalse}
+\ProcessOptions
+
+\ifkp@symbols % true unless "nomath"
+ \RequirePackage{unicode-math}[2019/01/01]
+ % \D close integral
+ \ifkp@Dcommand
+ \newcommand*{\D}[1]{\mathclose{\,\symup{d}}#1}%
+ \fi
+\fi
+% Loading Math fonts...
+\ifkp@math
+ \ifkp@lightmath
+ \ifkp@calasscr
+ \defaultfontfeatures+[KpMath-Light.otf]{RawFeature=+ss01}
+ \fi
+ \ifkp@sfmathbb
+ \defaultfontfeatures+[KpMath-Light.otf]{RawFeature=+ss02}
+ \fi
+ \ifkp@narrowiints
+ \defaultfontfeatures+[KpMath-Light.otf]{RawFeature=+ss03}
+ \fi
+ \ifkp@frenchstyle
+ \defaultfontfeatures+[KpMath-Light.otf]{math-style=french}
+ \fi
+ \ifkp@osnm
+ \defaultfontfeatures+[KpMath-Light.otf]{Numbers=Lowercase}
+ \fi
+ \ifkp@oldReIm
+ \defaultfontfeatures+[KpMath-Light.otf]{RawFeature=+cv03}
+ \fi
+ \ifkp@partialup
+ \defaultfontfeatures+[KpMath-Light.otf]{partial=upright}
+ \fi
+ \setmathfont{KpMath-Light.otf}
+ \else
+ \ifkp@calasscr
+ \defaultfontfeatures+[KpMath-Regular.otf]{RawFeature=+ss01}
+ \fi
+ \ifkp@sfmathbb
+ \defaultfontfeatures+[KpMath-Regular.otf]{RawFeature=+ss02}
+ \fi
+ \ifkp@narrowiints
+ \defaultfontfeatures+[KpMath-Regular.otf]{RawFeature=+ss03}
+ \fi
+ \ifkp@frenchstyle
+ \defaultfontfeatures+[KpMath-Regular.otf]{math-style=french}
+ \fi
+ \ifkp@osnm
+ \defaultfontfeatures+[KpMath-Regular.otf]{Numbers=Lowercase}
+ \fi
+ \ifkp@oldReIm
+ \defaultfontfeatures+[KpMath-Regular.otf]{RawFeature=+cv03}
+ \fi
+ \ifkp@partialup
+ \defaultfontfeatures+[KpMath-Regular.otf]{partial=upright}
+ \fi
+ \setmathfont{KpMath-Regular.otf}
+ \fi
+\fi
+
+% Loading Text fonts...
+\ifkp@text
+ \RequirePackage{fontspec}[2019/01/01]
+ \defaultfontfeatures+[\rmfamily,\KpLight]{Contextuals={WordFinal,Alternate}}
+ %Oldstylenums
+ \ifkp@osn
+ \ifkp@sf
+ \ifkp@tt
+ \defaultfontfeatures+[\rmfamily,\KpLight,\sffamily,\ttfamily]%
+ {Numbers=Lowercase}
+ \else
+ \defaultfontfeatures+[\rmfamily,\KpLight,\sffamily]{Numbers=Lowercase}
+ \fi
+ \else
+ \defaultfontfeatures+[\rmfamily,\KpLight]{Numbers=Lowercase}
+ \fi
+ \fi
+ % Oldstyle
+ \ifkp@os
+ \ifkp@sf
+ \defaultfontfeatures+[\rmfamily,\KpLight,\sffamily]{%
+ Style=Swash,Ligatures={TeX,Rare},Numbers=Lowercase}
+ \else
+ \defaultfontfeatures+[\rmfamily,\KpLight]{%
+ Style=Swash,Ligatures={TeX,Rare},Numbers=Lowercase}
+ \fi
+ \ifkp@tt\defaultfontfeatures+[\ttfamily]{Numbers=Lowercase}\fi
+ \fi
+ % Veryoldstyle
+ \ifkp@vos
+ \ifkp@sf
+ \defaultfontfeatures+[\rmfamily,\KpLight,\sffamily]{%
+ Style=Historic, Ligatures={TeX,Historic}}
+ \else
+ \defaultfontfeatures+[\rmfamily,\KpLight]{%
+ Style=Historic, Ligatures={TeX,Historic}}
+ \fi
+ \fi
+ \ifkp@largesmallcaps
+ \defaultfontfeatures+{SmallCapsFeatures = {Letters=SmallCaps}}
+ \else
+ \defaultfontfeatures+{SmallCapsFeatures = {Letters=PetiteCaps}}
+ \fi
+ % Text Serif fonts:
+ \setmainfont{KpRoman}[
+ Extension = .otf,
+ UprightFont = *-Regular,
+ BoldFont = *-Bold,
+ ItalicFont = *-Italic,
+ BoldItalicFont = *-BoldItalic
+ ]
+ \newfontfamily\KpLight{KpRoman-Light}[
+ Extension = .otf,
+ BoldFont = KpRoman-Semibold,
+ ItalicFont = KpRoman-LightItalic,
+ BoldItalicFont = KpRoman-SemiboldItalic,
+ Ligatures=TeX
+ ]
+ \newfontface\Light{KpRoman-Light.otf}[Ligatures=TeX]
+ \newfontface\LightItalic {KpRoman-LightItalic.otf}[Ligatures=TeX]
+ \newfontface\Semibold{KpRoman-Semibold.otf}[Ligatures=TeX]
+ \newfontface\SemiboldItalic{KpRoman-SemiboldItalic.otf}[Ligatures=TeX]
+\fi
+% Text Sans Serif fonts:
+\ifkp@sf
+ \defaultfontfeatures+[\sffamily]{Contextuals={WordFinal,Alternate}}
+ \setsansfont{KpSans}[
+ Extension = .otf,
+ UprightFont = *-Regular,
+ BoldFont = *-Bold,
+ ItalicFont = *-Italic,
+ BoldItalicFont = *-BoldItalic
+ ]
+\fi
+% Text Typewriter fonts:
+\ifkp@tt
+ \defaultfontfeatures+[\ttfamily]{Contextuals={WordFinal,Alternate}}
+ \setmonofont{KpMono}[
+ Extension = .otf,
+ UprightFont = *-Regular,
+ BoldFont = *-Bold,
+ ItalicFont = *-Italic,
+ BoldItalicFont = *-BoldItalic
+ ]
+\fi
+% Light option
+\ifkp@lighttext
+ \renewcommand{\rmfamily}{\KpLight}
+\fi
+
+% Large/Petites smallcaps
+\DeclareRobustCommand\lscshape{\addfontfeatures{RawFeature=+smcp}}
+\DeclareRobustCommand\pscshape{\addfontfeatures{RawFeature=+pcap}}
+\DeclareRobustCommand\textlsc[1]{{\lscshape #1}}
+\DeclareRobustCommand\textpsc[1]{{\pscshape #1}}
+
+\ifkp@symbols
+ % Style aliases
+ \newopentypefeature{Style}{mathcal}{ss01}
+ \newopentypefeature{Style}{bbsans}{ss02}
+ \newopentypefeature{Style}{narrowiints}{ss03}
+ \newopentypefeature{Style}{leqslant}{ss04}
+ \newopentypefeature{Style}{smaller}{ss05}
+ \newopentypefeature{Style}{subsetneq}{ss06}
+ \newopentypefeature{Style}{parallelslant}{ss07}
+ \AtBeginDocument{%
+ % Kpfonts specific math symbols
+ \Umathchardef\msanspartial = 0 0 "E000 \relax
+ \Umathchardef\mitsanspartial = 0 0 "E010 \relax
+ \Umathchardef\mitsanswp = 0 0 "E015 \relax
+ \Umathchardef\mitsansell = 0 0 "E019 \relax
+ \Umathchardef\varemptyset = 0 0 "E021 \relax
+ \Umathchardef\lambdaslash = 0 0 "E029 \relax
+ \Umathchardef\lambdabar = 0 0 "E02A \relax
+ \Umathchardef\mbfvec = 0 0 "E044 \relax
+ \Umathchardef\mbfwp = 0 0 "E045 \relax
+ \Umathchardef\mbfimath = 0 0 "E046 \relax
+ \Umathchardef\mbfjmath = 0 0 "E047 \relax
+ \Umathchardef\mbfell = 0 0 "E049 \relax
+ \Umathchardef\mbhbar = 0 0 "E068 \relax
+ \Umathchardef\mbhslash = 0 0 "E06F \relax
+ \Umathchardef\mithbar = 0 0 "E078 \relax
+ \Umathchardef\parallelbackslant = 3 0 "E080 \relax
+ \Umathchardef\nparallelbackslant = 3 0 "E081 \relax
+ \Umathchardef\parallelslant = 3 0 "E090 \relax
+ \Umathchardef\nparallelslant = 3 0 "E091 \relax
+ \Umathchardef\nsubseteqq = 3 0 "E0AE \relax
+ \Umathchardef\nsupseteqq = 3 0 "E0AF \relax
+ \Umathchardef\@idotsint = 1 0 "E111 \relax
+ \Umathchardef\Mmapsfrom = 0 0 "E400 \relax
+ \Umathchardef\Mmapsto = 0 0 "E401 \relax
+ \Umathchardef\mmapsfrom = 0 0 "E402 \relax
+ \Umathchardef\mmapsto = 0 0 "E403 \relax
+ \Umathchardef\Longmmapsfrom = 0 0 "E404 \relax
+ \Umathchardef\Longmmapsto = 0 0 "E405 \relax
+ \Umathchardef\longmmapsfrom = 0 0 "E406 \relax
+ \Umathchardef\longmmapsto = 0 0 "E407 \relax
+ \Umathchardef\leftrightdasharrow = 0 0 "E408 \relax
+ \Umathchardef\leadsto = 0 0 "E409 \relax
+ \Umathchardef\leadstoext = 0 0 "E40A \relax
+ \Umathchardef\longleadsto = 0 0 "E40B \relax
+ \Umathchardef\colonapprox = 0 0 "E410 \relax
+ \Umathchardef\colonsim = 0 0 "E411 \relax
+ \Umathchardef\Colonapprox = 0 0 "E412 \relax
+ \Umathchardef\Colonsim = 0 0 "E413 \relax
+ \Umathchardef\colondash = 0 0 "E414 \relax
+ \Umathchardef\eqqColon = 0 0 "E415 \relax
+ \Umathchardef\Colondash = 0 0 "E416 \relax
+ \Umathchardef\dashColon = 0 0 "E417 \relax
+ \Umathchardef\strictif = 0 0 "E418 \relax
+ \Umathchardef\strictfi = 0 0 "E419 \relax
+ \Umathchardef\strictiff = 0 0 "E41A \relax
+ \Umathchardef\circledwedge = 0 0 "E41B \relax
+ \Umathchardef\circledvee = 0 0 "E41C \relax
+ \Umathchardef\circledbar = 0 0 "E41D \relax
+ \Umathchardef\multimapdot = 0 0 "E420 \relax
+ \Umathchardef\multimapdotinv = 0 0 "E421 \relax
+ \Umathchardef\multimapdotboth = 0 0 "E422 \relax
+ \Umathchardef\multimapbothvert = 0 0 "E423 \relax
+ \Umathchardef\multimapdotbothvert = 0 0 "E424 \relax
+ \Umathchardef\multimapdotbothAvert = 0 0 "E425 \relax
+ \Umathchardef\multimapdotbothBvert = 0 0 "E426 \relax
+ \Umathchardef\Wr = 0 0 "E427 \relax
+ \Umathchardef\boxbar = 0 0 "E428 \relax
+ \Umathchardef\opentimes = 0 0 "E429 \relax
+ \Umathchardef\openJoin = 0 0 "E42A \relax
+ \Umathchardef\VvDash = 0 0 "E42B \relax
+ \Umathchardef\Diamondright = 0 0 "E430 \relax
+ \Umathchardef\Diamondleft = 0 0 "E431 \relax
+ \Umathchardef\Diamonddotright = 0 0 "E432 \relax
+ \Umathchardef\Diamonddotleft = 0 0 "E433 \relax
+ \Umathchardef\boxright = 0 0 "E434 \relax
+ \Umathchardef\boxleft = 0 0 "E435 \relax
+ \Umathchardef\boxdotright = 0 0 "E436 \relax
+ \Umathchardef\boxdotleft = 0 0 "E437 \relax
+ \Umathchardef\DiamondRight = 0 0 "E438 \relax
+ \Umathchardef\DiamondLeft = 0 0 "E439 \relax
+ \Umathchardef\DiamonddotRight = 0 0 "E43A \relax
+ \Umathchardef\DiamonddotLeft = 0 0 "E43B \relax
+ \Umathchardef\boxRight = 0 0 "E43C \relax
+ \Umathchardef\boxLeft = 0 0 "E43D \relax
+ \Umathchardef\boxdotRight = 0 0 "E43E \relax
+ \Umathchardef\boxdotLeft = 0 0 "E43F \relax
+ \Umathchardef\circleright = 0 0 "E440 \relax
+ \Umathchardef\circleleft = 0 0 "E441 \relax
+ \Umathchardef\circledotright = 0 0 "E442 \relax
+ \Umathchardef\circledotleft = 0 0 "E443 \relax
+ \Umathchardef\capplus = 0 0 "E444 \relax
+ \Umathchardef\bigcapplus = 0 0 "E445 \relax
+ \Umathchardef\sqcapplus = 0 0 "E447 \relax
+ \Umathchardef\bigsqcapplus = 0 0 "E448 \relax
+ \Umathchardef\sqcupplus = 0 0 "E44A \relax
+ \Umathchardef\bigsqcupplus = 0 0 "E44B \relax
+ \Umathchardef\oint@cw = 1 0 "E44E \relax
+ \Umathchardef\oiint@acw = 1 0 "E450 \relax
+ \Umathchardef\varoiint@cw = 1 0 "E452 \relax
+ \Umathchardef\oiiint@acw = 1 0 "E454 \relax
+ \Umathchardef\varoiiint@cw = 1 0 "E456 \relax
+ \Umathchardef\varoiint@acw = 1 0 "E458 \relax
+ \Umathchardef\oiint@cw = 1 0 "E45A \relax
+ \Umathchardef\varoiiint@acw = 1 0 "E45C \relax
+ \Umathchardef\oiiint@cw = 1 0 "E45E \relax
+ \Umathchardef\sq@iint = 1 0 "E460 \relax
+ \Umathchardef\sq@iiint = 1 0 "E462 \relax
+ \Umathchardef\var@int = 1 0 "E464 \relax
+ \Umathchardef\var@iint = 1 0 "E466 \relax
+ \Umathchardef\var@iiint = 1 0 "E468 \relax
+ \Umathchardef\var@iiiint = 1 0 "E46A \relax
+ \Umathchardef\var@idotsint = 1 0 "E46C \relax
+ \Umathchardef\varoint@acw = 1 0 "E46E \relax
+ \DeclareRobustCommand{\ointclockwise}{\oint@cw\nolimits}%
+ \DeclareRobustCommand{\varointctrclockwise}{\varoint@acw\nolimits}%
+ \DeclareRobustCommand{\oiintclockwise}{\oiint@cw\nolimits}%
+ \DeclareRobustCommand{\oiintctrclockwise}{\oiint@acw\nolimits}%
+ \DeclareRobustCommand{\varoiintclockwise}{\varoiint@cw\nolimits}%
+ \DeclareRobustCommand{\varoiintctrclockwise}{\varoiint@acw\nolimits}%
+ \DeclareRobustCommand{\oiiintclockwise}{\oiiint@cw\nolimits}%
+ \DeclareRobustCommand{\oiiintctrclockwise}{\oiiint@acw\nolimits}%
+ \DeclareRobustCommand{\varoiiintclockwise}{\varoiiint@cw\nolimits}%
+ \DeclareRobustCommand{\varoiiintctrclockwise}{\varoiiint@acw\nolimits}%
+ \DeclareRobustCommand{\idotsint}{\@idotsint\nolimits}%
+ \DeclareRobustCommand{\sqiint}{\sq@iint\nolimits}%
+ \DeclareRobustCommand{\sqiiint}{\sq@iiint\nolimits}%
+ \DeclareRobustCommand{\varint}{\var@int\nolimits}%
+ \DeclareRobustCommand{\variint}{\var@iint\nolimits}%
+ \DeclareRobustCommand{\variiint}{\var@iiint\nolimits}%
+ \DeclareRobustCommand{\variiiint}{\var@iiiint\nolimits}%
+ \DeclareRobustCommand{\varidotsint}{\var@idotsint\nolimits}%
+ \Umathchardef\IM = 0 0 "E7FE \relax
+ \Umathchardef\RE = 0 0 "E7FF \relax
+ %\widearc and\overrightarc
+ \newcommand*{\widearc}{\Umathaccent 0 0 "E540 }%
+ \newcommand*{\widearcarrow}{\Umathaccent 0 0 "20D5 }%
+ \let\overrightarc\widearcarrow
+ % amssymb
+ \@ifpackageloaded{amssymb}%
+ {\PackageWarning{kpfonts-otf}{%
+ kpfonts-otf provides all AMS symbols.\MessageBreak
+ Loading amssymb.sty is not advisable.\MessageBreak
+ Reported}%
+ }%
+ {% AMS Symbols not referenced in unicode-math-table.tex
+ % \Umathchardef\sum = <math type> <family> <slot>
+ % <math type> : \mathord=0 \mathrel=3 ; <family>=0
+ \Umathchardef\circledR = 0 0 "24C7 \relax
+ \Umathchardef\circledS = 0 0 "24C8 \relax
+ \Umathchardef\npreceq = 3 0 "E096 \relax
+ \Umathchardef\nsucceq = 3 0 "E097 \relax
+ \Umathchardef\diagup = 0 0 "E0A0 \relax
+ \Umathchardef\diagdown = 0 0 "E0A1 \relax
+ \Umathchardef\shortmid = 3 0 "E0A2 \relax
+ \Umathchardef\shortparallel = 3 0 "E0A3 \relax
+ \Umathchardef\nshortmid = 3 0 "E0A4 \relax
+ \Umathchardef\nshortparallel = 3 0 "E0A5 \relax
+ \Umathchardef\lvertneqq = 3 0 "E0A6 \relax
+ \Umathchardef\gvertneqq = 3 0 "E0A7 \relax
+ \Umathchardef\varsubsetneq = 3 0 "E0AC \relax
+ \Umathchardef\varsupsetneq = 3 0 "E0AD \relax
+ \Umathchardef\varsubsetneqq = 3 0 "E09C \relax
+ \Umathchardef\varsupsetneqq = 3 0 "E09D \relax
+ \Umathchardef\nleqslant = 3 0 "E0A8 \relax
+ \Umathchardef\ngeqslant = 3 0 "E0A9 \relax
+ \Umathchardef\nleqq = 3 0 "E0AA \relax
+ \Umathchardef\ngeqq = 3 0 "E0AB \relax
+ \Umathchardef\leadsto = 3 0 "E409 \relax
+ \let\centerdot\cdotp % vysmblksquare ?
+ \let\restriction\upharpoonright
+ \let\doteqdot\Doteq
+ \let\doublecup\Cup
+ \let\doublecap\Cap
+ \let\llless\lll
+ \let\gggtr\ggg
+ \let\circlearrowleft\acwopencirclearrow
+ \let\circlearrowright\cwopencirclearrow
+ \let\lozenge\diamondsuit
+ \let\blacklozenge\vardiamondsuit
+ \let\square\mdlgwhtsquare
+ \let\blacksquare\mdlgblksquare
+ \let\dashleftarrow\leftdasharrow
+ \let\dashrightarrow\rightdasharrow
+ \let\ntriangleleft\nvartriangleleft
+ \let\ntriangleright\nvartriangleright
+ \let\varpropto\propto
+ \let\thicksim\sim
+ \let\thickapprox\approx
+ \let\smallsmile\smile
+ \let\smallfrown\frown
+ }%
+ % latexsym
+ \@ifpackageloaded{latexsym}%
+ {\PackageWarning{kpfonts-otf}{%
+ kpfonts-otf provides all LaTeX symbols.\MessageBreak
+ Loading latexsym.sty is not advisable.\MessageBreak
+ Reported}%
+ }%
+ {\let\lhd\triangleleft
+ \let\rhd\triangleright
+ \let\unlhd\trianglelefteq
+ \let\unrhd\trianglerighteq
+ \let\Box\mdlgwhtsquare
+ \let\Diamond\mdwhtdiamond
+ }%
+ }
+\fi
+
+\endinput