\DocumentMetadata{pdfstandard=A-2b, lang=en-GB}
\documentclass[paper=a4]{scrartcl}
% Packages
\usepackage{graphics, array}
\usepackage[svgnames]{xcolor}
\usepackage[hypcap=false]{caption}
\usepackage{shortvrb}
\usepackage{kpfonts-otf}

% Math demos
\setmathfont{KpMath-Regular.otf}[version=full,
                                 StylisticSet={1,2,3,4,5,6,7}]
\setmathfont{KpMath-Light.otf}[version=light]
\setmathfont{KpMath-Regular.otf}[version=base, CharacterVariant=3]
\setmathfont{KpMath-Bold.otf}[version=bold, Style=leqslant, CharacterVariant=3]
\setmathfont{KpMath-Sans.otf}[version=sans, Style=leqslant, CharacterVariant=3]

\usepackage[british,french]{babel} % french layout (lists, …)
\usepackage[english]{varioref}

\usepackage{realscripts}
\usepackage{microtype}
\usepackage{hyperref}
\hypersetup{pdftitle={Kpfonts-otf User’s Guide},
            pdfauthor={Daniel FLIPO},
            colorlinks
            }
\newcommand*{\hlabel}[1]{\phantomsection\label{#1}}
%
\MakeShortVerb{\|}

\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.67}

\begin{document}
\selectlanguage{british}
\maketitle
\thispagestyle{empty}

\mathversion{full}

\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 six maths OpenType fonts
  \family{KpMath-Regular}, \family{KpMath-Bold}, \family{KpMath-Light},
  \family{KpMath-Semibold}, \family{KpMath-Sans} and \family{KpMath-SansBold}.

  \family{KpRoman} and \family{KpSans} families have small caps available in
  two sizes (SmallCaps and PetiteCaps), 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}…

  The support of text fonts covers Latin and Latin Extended~A (U+0020 to U+017F)
  but neither IPA nor Greek nor Cyrillic alphabets.

  For all maths fonts, Latin and Greek letters are available in Upright and
  Italic shapes, in Bold and Regular weights:
  $\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).
  Blackboard Bold capitals are available in two shapes, Serif and Sans:
  |\mathbb{ABC}| prints either
  \mathversion{base} $\mathbb{ABC}$ (default) or
  \mathversion{full}$\mathbb{ABC}$ (option |[Style=bbsans]|)
  Commands |\mathcal{ABC}| and |\mathscr{ABC}| print respectively
  \mathversion{full}$\mathcal{ABC}$ and \mathversion{base}$\mathscr{ABC}$
  while |\mathfrak{ABCabc}| prints $\mathfrak{ABCabc}$.

  File \file{unimath-kpfonts.pdf} shows the full list of Unicode maths symbols
  provided by Kp-fonts, compared with other common maths 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 of the \emph{experimental} status of the current
  version~(\version).

  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}, \pkg{fontspec} and usually \pkg{realscripts}%
\footnote{See option \opt{fakedscripts} below.}, 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 maths 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}\ltseries\test. \mathversion{light}$E=mc^2$
\end{minipage}

\medskip\mathversion{base}
\begin{minipage}{.45\textwidth}\itshape \test\end{minipage}\hfill
\begin{minipage}{.45\textwidth}\ltseries\itshape\test\end{minipage}

\medskip
\begin{minipage}{.45\textwidth}\bfseries \test\end{minipage}\hfill
\begin{minipage}{.45\textwidth}\sbseries \test\end{minipage}

\medskip
\begin{minipage}{.45\textwidth}\bfseries\itshape \test\end{minipage}\hfill
\begin{minipage}{.45\textwidth}\sbseries\itshape\test\end{minipage}

\medskip
\item[sans:] switches to \famvar{sans-serif} fonts for text and maths.

\item[nomath:] load neither \pkg{unicode-math} nor \family{KpMath} fonts;
  useful for documents without maths, or to choose other maths 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.
\item[fulloldstyle:] equivalent to options \opt{oldstyle} and
  \opt{oldstylemath}.
\item[fulloldstylenums:] equivalent to options \opt{oldstylenums} and
  \opt{oldstylenumsmath}.
\end{description}

\subsection{Options for text fonts \emph{only}}

\begin{description}
\item[lighttext:] switches to \famvar{light} Text fonts.

  Two more weights are provided by \pkg{kpfonts-otf.sty}:
  with the \famvar{lighttext} (or \famvar{light}) option, \famvar{Semibold} and
  \famvar{Extrabold} vs \famvar{Light} and \famvar{Semibold} without it.
  These weights are available through |\ltseries|, |\sbseries| and
  |\ebseries| commands to be used in a group or alternatively through one
  argument commands |\textlt{}|,   |\textsb{}| and |\texteb{}|.

  |{\sbseries\itshape Foo}| or |\textsb{\textit{Foo}}| print
  {\sbseries\itshape Foo}.

\item[sfstext:] switches to \famvar{sans-serif} text fonts.

\item[fakedscripts :] prevents \pkg{realscripts} to be loaded, super-
  and sub-scripts will be produced by scaling (this is the way pdflatex works)
  which gives access to all characters available in the font but produces too
  tall and too thin glyphs. On the other hand \pkg{realscripts} gives access
  to the super/sub-scripts available in the font (a reduced set made of
  digits, lowercase latin letters, parentheses, etc. for the Kpfonts) which are
  better looking. I would recommend to keep \pkg{realscripts} loaded and to
  use the starred variants \verb+\textsuperscript*+, \verb+\textsubscript*+,
  to produce faked super/sub-scripts when needed, coding
  \verb+H\textsuperscript*{\#}+ to get H\textsuperscript*{\#} while
  \verb+H\textsuperscript{\#}+ would output H\textsuperscript{\#} (\# missing
  as superscript).

\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’ and `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:]\hlabel{veryoldstyle} same as option \opt{oldstyle} but
  the round `s’  is replaced by the long one `ſ’
  unless it ends a word or is followed by \textit{b}, \textit{f} or \textit{h}%
  \footnote{Rules found on
    \href{https://fr.wikipedia.org/wiki/S_long}{wikipedia}.}
  and ancient ligatures {\addfontfeatures{RawFeature=+hist;+hlig} si, sl, st}
  are activated.
  Coding |\textit{some of Highlands’ mysterious castles…}| will print
  {\addfontfeatures{RawFeature=+hist;+hlig;+calt}%
    \textit{some of Highlands’ mysterious castles…}} which is correct.

  The automatic substitution relies on the OpenType feature
  \texttt{StylisticSet=12}.  A round `s’ (resp. long `ſ’) can be forced by
  coding \texttt{s\char"200B=} or |\shorts{}| (resp. \texttt{ſ}%
  \footnote{On Unix systems the \texttt{Compose} key can be used:
    \texttt{Compose f s}.}
  or |\longs{}|).

\item[largesmallcaps:] prints larger \textlsc{Small Caps} than the default
  ones (\textsc{Petite Caps}).

\item[altfligs :] prints alternative shapes for ligatures
  {\addfontfeatures{StylisticSet=1}fi, fl, ffi, ffl}
  instead of fi, fl, ffi, ffl.

\item[germandbls :] |\SS| prints {\addfontfeatures{StylisticSet=2}\SS} instead
  of {\char"1E9E} (capital \textit{Eszett}), ditto for small/petite caps.

\item[eurosym :] replaces the Euro character (€) by the official symbol
  {\addfontfeatures{StylisticSet=3}(€)} (available in regular, italic,
  bold and bolditalic).
  %; the |\KPeuro| command is also provided to print
  %the official symbol, it accepts an optionnal argument : |\kpeuro[1,50]{}|
  %prints \kpeuro[1,50] (with a nobreak space).

\item[harfbuzz :] switches |Renderer=Harfbuzz| for HBLuaTeX engine;
  up to version 0.34, this renderer was silently activated but seldom useful.

\end{description}

\subsection{Options for maths fonts \emph{only}}

\begin{description}

\item[lightmath:] uses \famvar{light} maths fonts.

\item[sfmath:] uses \famvar{sans-serif} maths 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
%  \mathversion{full}$\mathcal{A,B,C,D}$  % $\mathscr{ABCD}$
%  instead of \mathversion{base} $\mathcal{A,B,C,D}$ (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$ and $\displaystyle\iiint$
  \quad instead of \quad
  \mathversion{base}$\iiint$ and $\displaystyle\iiint$ (default).

\item[partialup:] the |\partial| symbol is printed upright $\symup{\partial}$
  instead of $\partial$.

\item[fancyReIm:] commands |\Re| and |\Im| print $\RE$ and $\IM$ respectively
  instead of $\Re$ and $\Im$.

\item[tight :] horizontal spaces tightened in maths mode (same settings as
  \pkg{fourier-otf}).

\item[noDcommand:] do not define |\D| to avoid incompatibilities with other
  packages.

\end{description}

Please note that the \textsf{\textbf{mathcal}} option has been
deleted: commands |$\mathcal{ABC}$| and |$\mathscr{ABC}$| now print
\mathversion{full}$\mathcal{ABC}$ and \mathversion{base}$\mathcal{ABC}$
respectively when \pkg{kpfonts-otf.sty} is loaded.

\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; the standard commands \cmd{setmainfont}, \cmd{setsansfont},
\cmd{setmonofont}, \cmd{setmathfont} offer 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 careful 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 maths fonts, loading \pkg{fontspec} and using
the |\set...font| commands is enough, no need to load \pkg{kpfonts-otf} at all.

\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 default is\\   \style{Numbers=Lining}.

\item[SmallCapsFeatures = \{Letters=SmallCaps\}] the |\textsc{}| command
  will print larger \textlsc{Small Caps} than the default
  \textpsc{Petite Caps}.\\
  The default setting%
  \footnote{Changed in v0.37 to match the original \pkg{kpfonts} package.},
  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
  (plus s\char"200B=).

\item[StylisticSet=1] provides an alternative for glyphs
  {\addfontfeature{StylisticSet=1} ffi ffl fi fl} (ff is unchanged).

\item[Ligatures=Required :] adds {\addfontfeature{Ligatures=Required} ft and tt}
  ligatures.

\item[Ligatures=Rare] adds {\addfontfeature{Ligatures=Rare} ct and 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] replaces any instance of `s’ by the long variant~`ſ’.
  It is still possible to get a round `s’ coding it as
  `\texttt{s\char"200B=}’; this option should no longer be used, it is
  superseded by \opt{StylisticSet=12} below.

\item[StylisticSet=12] has been described in option \opt{veryoldstyle}
  p.~\pageref{veryoldstyle}: it operates a contextual substitution of
  round~`s’ by long~`ſ’. An alias \opt{Style=autolongs} is available if
  \pkg{kpfonts-otf.sty} has been loaded.

\item[Ligatures=Historic] switches specific ligatures for the long~ſ:
   {\addfontfeature{Style=Historic,Ligatures=Historic} si, sl, st}.

\item[StylisticSet=2 :] |\SS| prints {\addfontfeatures{StylisticSet=2}\SS}
  instead of {\char"1E9E} (capital \textit{Eszett}), ditto for small/petite caps.

\item[StylisticSet=3] replaces the Euro character (€) by the official symbol
  {\addfontfeatures{StylisticSet=3}(€)} (available in regular, italics,
  bold and bolditalic).

\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=PetiteCaps},
  }
\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, to
define Italic, Bold, BoldItalic faces,
there is no need for options |ItalicFont = |,  |BoldFont = |.

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 shortcut is available in this case: |\oldstylenums{1234576890}|.

5. With the \family{KpRoman}, it is possible to define two more weights
\famvar{Light} and \famvar{Semibold} borrowed from \family{KpLight}:
\begin{verbatim}
\newfontfamily\KpLight{KpLight}[<same options as KpRoman>]
\newcommand*{\ltseries}{\KpLight}
\newcommand*{\sbseries}{\KpLight\bfseries}
\DeclareTextFontCommand{\textlt}{\ltseries}
\DeclareTextFontCommand{\textsb}{\sbseries}
\end{verbatim}
  These weights are then available through |\ltseries|, |\sbseries| commands
  to be used in a group or alternatively through one argument commands
  |\textlt{}| and  |\textsb{}|.

  With the \family{KpLight}, weights \famvar{Semibold} and \famvar{Extrabold}
  can be defined similarly.

\subsection{Options for maths 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} (default), \opt{french}, \opt{upright};
\item[bold-style =] \opt{ISO}, \opt{TeX} (default), \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 three:
\begin{description}
\item[Style=mathcal] (\texttt{+ss01}) commands |\mathcal{}| and |\mathscr{}|
  print \mathversion{full}$\mathcal{ABC}$ instead of
  \mathversion{base}$\mathcal{ABC}$ (default), see note below;

\item[Style=bbsans] (\texttt{+ss02}) |\mathbb{}| prints Sans-Serif
  Blackboard bold capitals \mathversion{full}$\mathbb{ABC}$ for Serif maths 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}

\textbf{Note:} if you want commands |$\mathcal{ABC}$| and |$\mathscr{ABC}$| to
print \mathversion{full}$\mathcal{ABC}$ and \mathversion{base}$\mathcal{ABC}$
respectively, you can use \pkg{unicode-math}’s option |range| this way:\\
|\setmathfont{KpMath-Regular}[|\optit{options}|]|\\
|\setmathfont{KpMath-Regular}[range={cal,bfcal},StylisticSet=1]|\\
Both lines are mandatory: the first one loads \family{KpMath} as usual while
the second one modifies |\mathcal{}| command’s output.

\vspace{\baselineskip}
The next four tables present the other Style Variants available:
\\[-.5\baselineskip]
  \begin{minipage}[t]{0.45\linewidth}\centering
    \captionof{table}{Style=leqslant (\texttt{+ss04})}\hlabel{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$ \\
      \cmd{lesseqgtr}   & $\lesseqgtr$   & $\lesseqslantgtr$ \\
      \cmd{gtreqless}   & $\gtreqless$   & $\gtreqslantless$ \\
      \cmd{lesseqqgtr}  & $\lesseqqgtr$  & $\lesseqqslantgtr$ \\
      \cmd{gtreqqless}  & $\gtreqqless$  & $\gtreqqslantless$ \\
      \hline
    \end{tabular}
  \end{minipage}\hspace{\fill}
  \begin{minipage}[t]{0.5\linewidth}\centering
    \captionof{table}{Style=smaller (\texttt{+ss05})}\hlabel{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$ \\
      \cmd{parallelslant}    & $\parallelslant$    & $\shortparallelslant$ \\
      \cmd{nparallelslant}   & $\nparallelslant$   & $\nshortparallelslant$ \\
      \hline
    \end{tabular}
  \end{minipage}
  \par\noindent
  \begin{minipage}[t]{0.45\linewidth}\centering
    \captionof{table}{Style=subsetneq (\texttt{+ss06})}\hlabel{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{minipage}\hspace{\fill}
  \begin{minipage}[t]{0.5\linewidth}\centering
    \captionof{table}{Style=parallelslant (\texttt{+ss07})}\hlabel{ss07}
    \begin{tabular}{@{}lcc@{}}
      \hline
      Command               & Default            & Variant \\
      \hline
      \cmd{parallel}        & $\parallel$        & $\parallelslant$ \\
      \cmd{nparallel}       & $\nparallel$       & $\nparallelslant$ \\
      \cmd{shortparallel}   & $\shortparallel$   & $\shortparallelslant$ \\
      \cmd{nshortparallel}  & $\nshortparallel$  & $\nshortparallelslant$ \\
      \hline
    \end{tabular}
  \end{minipage}

\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}]|\\
but this second syntax is available only if \pkg{kpfonts-otf.sty} has been
loaded (eventually with the \opt{symbols} option).
\enlargethispage*{\baselineskip}

\vspace{\baselineskip}
\mathversion{full}
Table~\vref{cv} shows the available `Glyphs Variants’:

\begin{table}[ht]
  \centering
  \caption{Glyphs Variants}
  \hlabel{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 & $\epsilon$    & $\varepsilon$    & \cmd{epsilon} \\
      cv04 & $\kappa$      & $\varkappa$      & \cmd{kappa} \\
      cv05 & $\pi$         & $\varpi$         & \cmd{pi} \\
      cv06 & $\phi$        & $\varphi$        & \cmd{phi} \\
      cv07 & $\rho$        & $\varrho$        & \cmd{rho} \\
      cv08 & $\sigma$      & $\varsigma$      & \cmd{sigma} \\
      cv09 & $\theta$      & $\vartheta$      & \cmd{theta} \\
      cv10 & $\Theta$      & $\varTheta$      & \cmd{Theta}\\
    \hline
  \end{tabular}
\end{table}

\vspace{\baselineskip}
Example: with |\setmathfont{KpMath-Regular.otf}[CharacterVariant={3,6}]|\\
commands |\epsilon| and |\phi| print $\varepsilon$
and $\varphi$ instead of $\epsilon$ and $\phi$.
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 $\symup{\varepsilon}$ and $\symup{\varphi}$ (upright).

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{Specific commands defined in \pkg{kpfonts-otf.sty}}

\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}| prints	$\displaystyle\varint f(t)\D{t}$.


\subsection{Specific maths symbols}
\label{ssec:symb-spec-kp}

The next tables present symbols unavailable 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{wideoverbar} and \cmd{mathunderbar}%
  \footnote{\cmd{overline} and \cmd{underline} are not font related,
     they are based on \cmd{rule}.}
  \[\wideoverbar{x}\quad \wideoverbar{xy}\quad \wideoverbar{xyz}\quad
    \wideoverbar{A\cup B}\quad \wideoverbar{A\cup (B\cap C)\cup D}\quad
    \mathunderbar{m+n+p}\]

\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{widecheck} and \cmd{widebreve}
  \[\widecheck{x}\quad \widecheck{xxxx}\quad \widecheck{xxxxxx}\quad
    \widebreve{x}\quad \widebreve{xxxx}\quad \widebreve{xxxxxx}\]

\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} (or \cmd{overrightarc})
\[\widearc{AMB}\quad \widearcarrow{AMB}\]
\end{itemize}

\subsection{Maths Versions}

Different versions of the \family{KpMath} fonts may be defined in the
document’s preamble:\\
|\setmathfont{KpMath-Regular.otf}[version=base|, \optit{options} |]|\\
|\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}|}|.

%\pagebreak[4]
Example\footnote{\mathversion{full}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:
\setmathfont{KpMath-Regular.otf}[Style=leqslant, CharacterVariant=3]

\[ \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 \]

To get bold formulas you do not need to define |\mathversion{bold}|, you can
just use the |\boldmath| command:
f.i. |{\boldmath $E=mc^2$}| prints {\boldmath $E=mc^2$}.
\end{document}

%%% Local Variables:
%%% mode: latex
%%% TeX-engine: luatex
%%% TeX-master: t
%%% coding: utf-8
%%% End:
