From 6c90555ebb89f41cc4dfb6cf3ee6bfaa8107650e Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Thu, 4 Jun 2020 03:02:40 +0000 Subject: CTAN sync 202006040302 --- fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.ltx | 666 +++++++++++++++++++++ fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.pdf | Bin 0 -> 185303 bytes fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.ltx | 687 ++++++++++++++++++++++ fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.pdf | Bin 0 -> 186790 bytes fonts/kpfonts-otf/doc/unimath-kpfonts.ltx | 515 ++++++++++++++++ fonts/kpfonts-otf/doc/unimath-kpfonts.pdf | Bin 0 -> 1808511 bytes 6 files changed, 1868 insertions(+) create mode 100644 fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.ltx create mode 100644 fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.pdf create mode 100644 fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.ltx create mode 100644 fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.pdf create mode 100644 fonts/kpfonts-otf/doc/unimath-kpfonts.ltx create mode 100644 fonts/kpfonts-otf/doc/unimath-kpfonts.pdf (limited to 'fonts/kpfonts-otf/doc') 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 Binary files /dev/null and b/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.pdf 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 Binary files /dev/null and b/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.pdf 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 +%%^^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 +% ------------------------------------------------ +% 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): . +% ------------------------------------------------ +% 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 Binary files /dev/null and b/fonts/kpfonts-otf/doc/unimath-kpfonts.pdf differ -- cgit v1.2.3