diff options
32 files changed, 364 insertions, 240 deletions
diff --git a/Master/texmf-dist/doc/fonts/kpfonts-otf/Kpfonts-OTF-Doc-English.ltx b/Master/texmf-dist/doc/fonts/kpfonts-otf/Kpfonts-OTF-Doc-English.ltx index 982dd0a6262..50327f0ad3d 100644 --- a/Master/texmf-dist/doc/fonts/kpfonts-otf/Kpfonts-OTF-Doc-English.ltx +++ b/Master/texmf-dist/doc/fonts/kpfonts-otf/Kpfonts-OTF-Doc-English.ltx @@ -1,7 +1,8 @@ -\documentclass[paper=a4,british]{scrartcl} +\documentclass[paper=a4]{scrartcl} % Packages -\usepackage{graphics, array, varioref} +\usepackage{graphics, array} \usepackage[svgnames]{xcolor} +\usepackage[hypcap=false]{caption} \usepackage{shortvrb} \usepackage{kpfonts-otf} \setmonofont{KpMono}[Color=DarkBlue] @@ -13,7 +14,8 @@ \setmathfont{KpMath-Bold.otf}[version=bold, Style=leqslant, CharacterVariant=3] \setmathfont{KpMath-Sans.otf}[version=sans, Style=leqslant, CharacterVariant=3] -\usepackage{babel} +\usepackage[british,french]{babel} % french layout (lists, …) +\usepackage[english]{varioref} \usepackage{realscripts} \usepackage{microtype} \usepackage{hyperref} @@ -27,7 +29,6 @@ % \MakeShortVerb{\|} -\newcommand*{\textsb}[1]{{\Semibold #1}} \newcommand*{\pkg}[1]{\texttt{#1}} \newcommand*{\opt}[1]{\texttt{#1}} \newcommand*{\optit}[1]{\textit{\color{DarkBlue}#1}} @@ -39,9 +40,10 @@ \title{Kp-fonts: OpenType version} \author{\href{mailto:daniel.flipo@free.fr}{Daniel \textsc{Flipo}}} -\newcommand*{\version}{0.31} +\newcommand*{\version}{0.32} \begin{document} +\selectlanguage{british} \maketitle \thispagestyle{empty} @@ -187,13 +189,25 @@ and a bunch of Kp-fonts specifics symbols. \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[veryoldstyle:] \label{veryoldstyle} same as option \opt{oldstyle} but + the round `s’ is replaced by the long one + {\addfontfeatures{RawFeature=+hist;+hlig}`s\hspace{1sp}’}, + unless it ends a word (then it remains `s’)% + \footnote{The OpenType \texttt{calt} feature is used to catch `s’ ending + a word.} + and ancient ligatures {\addfontfeatures{RawFeature=+hist;+hlig} si, sl, st} + are activated. + Coding \texttt{s=} prints a round `s’ anytime; in most cases this coding is + not necessary with LuaTeX% + \footnote{TeX’s \tild{} char (nobreakspace) fails to be recognised as ending + a word: \texttt{boys\tild{}band} prints + {\addfontfeatures{RawFeature=+hist;+hlig}boys~band}.}, + f.i. |\textit{some of Highlands’ mysterious castles…}| + will print + {\addfontfeatures{RawFeature=+hist;+hlig;+calt}% + \textit{some of Highlands’ mysterious castles…}} which is correct; + with XeTeX an \texttt{=} sign must be added at the end of + \texttt{mysterious=} to get a round `s’ there. \item[largesmallcaps:] prints larger \textlsc{Small Caps} than the default ones (\textsc{Petites Caps}). @@ -217,8 +231,8 @@ and a bunch of Kp-fonts specifics symbols. \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). + \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; @@ -240,6 +254,9 @@ and a bunch of Kp-fonts specifics symbols. \item[fancyReIm:] commands |\Re| et |\Im| print $\RE$ and $\IM$ respectively instead of $\Re$ et $\Im$. +\item[tight :] horizontal spaces tightened in math mode (same settings as + \pkg{fourier-otf}). + \item[noDcommand:] do not define |\D| to avoid incompatibilities with other packages. @@ -249,8 +266,8 @@ and a bunch of Kp-fonts specifics symbols. \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. +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 @@ -295,16 +312,23 @@ Here are the options available for Text Kp-fonts: \item[Ligatures=Common] (default) automatic ligatures ff ffi ffl fi fl. -\item[Ligatures=Rare] {\addfontfeature{Ligatures=Rare} ct et st} ligatures. +\item[Alternate=1] provides an alternative for glyphs + {\addfontfeature{Alternate=1} ffi ffl fi fl} (ff is unchanged). + +\item[Ligatures=Required :] adds {\addfontfeature{Ligatures=Required} ft et tt} + ligatures. + +\item[Ligatures=Rare] adds {\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}} ; + \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[Style=Historic] replaces any instance of `s’ by the long variant + {\addfontfeature{Style=Historic}s}. It is still possible to get a round + `s’ coding it as `|s=|’. As the long variant is never used at words’ ends + the feature \opt{calc} is also activated: it tries to catch end of words, + see \opt{veryoldstyle} p.~\pageref{veryoldstyle} for more details. \item[Ligatures=Historic] switches specific ligatures for the long {\addfontfeature{Style=Historic}s}: @@ -358,7 +382,7 @@ or to |\setmathfont{}|: \item[nabla =] \opt{italic} (default upright); \end{description} -Seven `Style Variants’ are available with Kp-fonts, here are the first thee: +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 @@ -374,16 +398,16 @@ Seven `Style Variants’ are available with Kp-fonts, here are the first thee: \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 +\vspace{\baselineskip} +The next four tables present the other Style Variants available: +\par\noindent +\begin{minipage}{\linewidth} + \begin{minipage}[t]{0.45\linewidth}\centering + \captionof{table}{Style=leqslant (\texttt{+ss04})}\label{ss04} + \begin{tabular}{@{}lcc@{}} + \hline Command & Default & Variant \\ - \hline + \hline \cmd{leq} & $\leq$ & $\leqslant$ \\ \cmd{geq} & $\geq$ & $\geqslant$ \\ \cmd{nleq} & $\nleq$ & $\nleqslant$ \\ @@ -392,68 +416,70 @@ The next four tables present the other Style Variants available. \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 + \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})}\label{ss05} + \begin{tabular}{@{}lcc@{}} + \hline Command & Default & Variant \\ - \hline + \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 + \cmd{parallelslant} & $\parallelslant$ & $\shortparallelslant$ \\ + \cmd{nparallelslant} & $\nparallelslant$ & $\nshortparallelslant$ \\ + \hline + \end{tabular} + \end{minipage}\\[\baselineskip] + \begin{minipage}[t]{0.45\linewidth}\centering + \captionof{table}{Style=subsetneq (\texttt{+ss06})}\label{ss06} + \begin{tabular}{@{}lcc@{}} + \hline Command & Default & Variant \\ - \hline + \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 + \hline + \end{tabular} + \end{minipage}\hspace{\fill} + \begin{minipage}[t]{0.5\linewidth}\centering + \captionof{table}{Style=parallelslant (\texttt{+ss07})}\label{ss07} + \begin{tabular}{@{}lcc@{}} + \hline Command & Default & Variant \\ - \hline + \hline \cmd{parallel} & $\parallel$ & $\parallelslant$ \\ \cmd{nparallel} & $\nparallel$ & $\nparallelslant$ \\ - \hline - \end{tabular}\par} + \cmd{shortparallel} & $\shortparallel$ & $\shortparallelslant$ \\ + \cmd{nshortparallel} & $\nshortparallel$ & $\nshortparallelslant$ \\ + \hline + \end{tabular} + \end{minipage} +\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}]| -\end{table} +|\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). \vspace{\baselineskip} -Table~\vref{cv} shows the available `Glyph Variants’: +Table~\vref{cv} shows the available `Glyphs Variants’: \begin{table}[ht] \centering - \caption{Variantes de glyphe} + \caption{Glyphs Variants} \label{cv} \begin{tabular}{@{}>{\ttfamily}lccl@{}} \hline @@ -575,6 +601,7 @@ are coded in Kp-fonts’ private zone. The full list of Unicode symbols available with Kp-fonts is shown in file \file{unimath-kpfonts.pdf}. +\newpage \subsection{Wide accents} \begin{itemize} @@ -589,6 +616,12 @@ The full list of Unicode symbols available with Kp-fonts is shown in file \overline{A\cup B}\quad \overline{A\cup (B\cap C)\cup D}\quad \underline{m+n+p}\] +\item \cmd{wideoverbar}, \cmd{widecheck} et \cmd{widebreve} + \[\wideoverbar{x}\quad \wideoverbar{xy}\quad \wideoverbar{xyz}\quad + \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 @@ -623,8 +656,9 @@ The full list of Unicode symbols available with Kp-fonts is shown in file \subsection{Math Versions} -Different versions of the \family{KpMath} fonts may be definde in the +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} |]|\\ @@ -632,7 +666,8 @@ document’s preamble:\\ then, it is easy to switch from one version to another one with |\mathversion{|\optit{name}|}|. -\vspace{\baselineskip} + +\newpage Example\footnote{Option \opt{CharacterVariant=3} changes $\epsilon$ into $\varepsilon$.} : \begin{verbatim} diff --git a/Master/texmf-dist/doc/fonts/kpfonts-otf/Kpfonts-OTF-Doc-English.pdf b/Master/texmf-dist/doc/fonts/kpfonts-otf/Kpfonts-OTF-Doc-English.pdf Binary files differindex 902b9b78a2b..403512a9813 100644 --- a/Master/texmf-dist/doc/fonts/kpfonts-otf/Kpfonts-OTF-Doc-English.pdf +++ b/Master/texmf-dist/doc/fonts/kpfonts-otf/Kpfonts-OTF-Doc-English.pdf diff --git a/Master/texmf-dist/doc/fonts/kpfonts-otf/Kpfonts-OTF-Doc-French.ltx b/Master/texmf-dist/doc/fonts/kpfonts-otf/Kpfonts-OTF-Doc-French.ltx index 7eda2aa3867..faf90978927 100644 --- a/Master/texmf-dist/doc/fonts/kpfonts-otf/Kpfonts-OTF-Doc-French.ltx +++ b/Master/texmf-dist/doc/fonts/kpfonts-otf/Kpfonts-OTF-Doc-French.ltx @@ -2,6 +2,7 @@ % Packages \usepackage{graphics, array, varioref} \usepackage[svgnames]{xcolor} +\usepackage[hypcap=false]{caption} \usepackage{shortvrb} \usepackage{kpfonts-otf} \setmonofont{KpMono}[Color=DarkBlue] @@ -33,7 +34,6 @@ \MakeShortVerb{\|} -\newcommand*{\textsb}[1]{{\Semibold #1}} \newcommand*{\pkg}[1]{\texttt{#1}} \newcommand*{\opt}[1]{\texttt{#1}} \newcommand*{\optit}[1]{\textit{\color{DarkBlue}#1}} @@ -45,7 +45,7 @@ \title{Kp-fonts version OpenType} \author{\href{mailto:daniel.flipo@free.fr}{Daniel \textsc{Flipo}}} -\newcommand*{\version}{0.31} +\newcommand*{\version}{0.32} \begin{document} \maketitle @@ -207,13 +207,36 @@ Notez que ces options n'affectent que les polices de texte. \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[veryoldstyle :] \label{veryoldstyle} + identique à l'option \opt{oldstyle} mais en plus le « s » rond est + remplacé par le « {\addfontfeatures{RawFeature=+hist;+hlig}s} » long + sauf en fin de mot (où il doit rester rond) et les ligatures + {\addfontfeatures{RawFeature=+hist;+hlig} si, sl, st} sont activées. + Ceci fonctionne assez bien avec LuaTeX : le codage\\ + |\textit{« Des espoirs si funestes… »}| donne + {\addfontfeatures{RawFeature=+hist;+hlig;+fina;+calt} + \textit{«Des espoirs si funestes…»}. + } + + Les choses se passent bien tant que le « s » est immédiatement suivi + d’une espace Unicode (U+0020 espace sécable de base, U+00A0 espace-mot + insécable, U+202F fine insécable) ou d’un signe de ponctuation (virgule, + point, etc.) \emph{mais pas} s’il est suivi d’une espace + insécable produite par TeX (sous la forme pénalité + espace)% + \footnote{On utilise la \emph{feature} OpenType \texttt{calt} qui ne + reconnaît pas les \cmd{penalty} de TeX.} ! + + Exemple : le codage |\textit{espoirs, mais quels~espoirs.}| produit + {\addfontfeatures{RawFeature=+hist}\textit{espoirs, mais quels~espoirs?}} + + Même problème devant la ponctuation haute en français, sauf à utiliser + l’option |UnicodeNoBreakSpaces| de \pkg{babel-french}. On doit + forcer le «s» rond final en codant \texttt{s=} : + |\textit{espoirs? désespoirs=!}| produit + {\addfontfeatures{RawFeature=+hist}\textit{espoirs? désespoirs=!}} + + Avec XeTeX il faut forcer le «s» rond final avant toutes les espaces + en codant \texttt{s=}. \item[largesmallcaps :] produit des petites capitales plus \textlsc{Grandes} que par les \textsc{Petites} obtenues par défaut. @@ -259,16 +282,19 @@ Notez que ces options n'affectent que les polices de texte. \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. +\item[tight :] les espaces horizontaux sont réduits en math (comme + ceux de \pkg{fourier-otf}). + +\item[noDcommand :] la commande |\D| n'est pas définie (risque + d’incompatibilité). \end{description} +\enlargethispage*{2\baselineskip} \section{Autre façon de charger les Kp-fonts} \label{sec:options-standard} @@ -311,20 +337,36 @@ Pour les polices de texte de Kp-fonts les options suivantes sont proposées : \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[Alternate=1] modifie l’aspect des ligatures + {\addfontfeature{Alternate=1} ffi ffl fi fl} (ff inchangé) ; + +\item[Ligatures=Required :] ajoute les ligatures + {\addfontfeature{Ligatures=Required} ft et tt} ; + +\item[Ligatures=Rare :] ajoute les 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=| ; + {\addfontfeature{Style=Historic}« s »} long, il reste possible de forcer un + « s » rond, en fin de mot notamment, en codant |s=| ; ce n’est pas toujours + nécessaire sous LuaTeX, voir l’option \opt{veryoldstyle} + p.~\pageref{veryoldstyle}. + \item[Ligatures=Historic :] active les ligatures spécifiques au {\addfontfeature{Style=Historic,Ligatures=Historic}« s » long si, sl, st}. \end{description} @@ -394,16 +436,18 @@ trois premières : \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 +\vspace{\baselineskip}\enlargethispage*{\baselineskip} +Les quatre tables suivantes recensent les autres variantes de style proposées : +\par\noindent +\begin{minipage}{\linewidth} + \setlength{\parindent}{0pt} + \centering + \begin{minipage}[t]{0.45\linewidth}\centering + \captionof{table}{Style=leqslant (\texttt{+ss04})} \label{ss04} + \begin{tabular}[t]{@{}lcc@{}} + \hline Commande & Base & Variante \\ - \hline + \hline \cmd{leq} & $\leq$ & $\leqslant$ \\ \cmd{geq} & $\geq$ & $\geqslant$ \\ \cmd{nleq} & $\nleq$ & $\nleqslant$ \\ @@ -412,67 +456,71 @@ Les quatre tables suivantes recensent les autres variantes de style proposées. \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 + \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})}\label{ss05} + \begin{tabular}[t]{@{}lcc@{}} + \hline Commande & Base & Variante \\ - \hline + \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 + \cmd{parallelslant} & $\parallelslant$ & $\shortparallelslant$ \\ + \cmd{nparallelslant} & $\nparallelslant$ & $\nshortparallelslant$ \\ + \hline + \end{tabular} + \end{minipage}\\ + \begin{minipage}[t]{0.45\linewidth}\centering + \captionof{table}{Style=subsetneq (\texttt{+ss06})}\label{ss06} + \begin{tabular}[t]{@{}lcc@{}} + \hline Commande & Base & Variante \\ - \hline + \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 + \hline + \end{tabular} + \end{minipage}\hspace{\fill} + \begin{minipage}[t]{0.5\linewidth}\centering + \captionof{table}{Style=parallelslant (\texttt{+ss07})}\label{ss07} + \begin{tabular}[t]{@{}lcc@{}} + \hline Commande & Base & Variante \\ - \hline + \hline \cmd{parallel} & $\parallel$ & $\parallelslant$ \\ \cmd{nparallel} & $\nparallel$ & $\nparallelslant$ \\ - \hline - \end{tabular}\par} + \cmd{shortparallel} & $\shortparallel$ & $\shortparallelslant$ \\ + \cmd{nshortparallel} & $\nshortparallel$ & $\nshortparallelslant$ \\ + \hline + \end{tabular} + \end{minipage} +\end{minipage} + \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} +|\setmathfont{KpMath-Regular.otf}[Style={leqslant,subsetneq}]|\\ +ma cette variante plus parlante n’est disponible que si on a chargé +\pkg{kpfonts-otf.sty} (même avec l’option \opt{symbols}). +%\end{table} -\vspace{\baselineskip} La table~\vref{cv} recense les variantes de glyphes proposées : +\vspace{\baselineskip} \begin{table}[ht] \centering - \caption{Variantes de glyphe} + \caption{Variantes de glyphes} \label{cv} \begin{tabular}{@{}>{\ttfamily}lccl@{}} \hline @@ -609,6 +657,12 @@ n’ont pas de code Unicode, ils sont codés en zone privée pour Kp-fonts. \overline{A\cup B}\quad \overline{A\cup (B\cap C)\cup D}\quad \underline{m+n+p}\] +\item \cmd{wideoverbar}, \cmd{widecheck} et \cmd{widebreve} + \[\wideoverbar{x}\quad \wideoverbar{xy}\quad \wideoverbar{xyz}\quad + \widecheck{x}\quad \widecheck{xxxx}\quad \widecheck{xxxxxx}\quad + \widebreve{x}\quad \widebreve{xxxx}\quad \widebreve{xxxxxx} + \] + \item \cmd{overparen} et \cmd{underparen} \[\overparen{x}\quad \overparen{xy}\quad \overparen{xyz}\quad \mathring{\overparen{A\cup B}}\quad @@ -648,6 +702,7 @@ Il est possible de définir plusieurs versions de la police mathématique et une version sans empattements (\textit{sans}). On définit dans le préambule les versions désirées, par exemple :\\ +|\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} |]|\\ diff --git a/Master/texmf-dist/doc/fonts/kpfonts-otf/Kpfonts-OTF-Doc-French.pdf b/Master/texmf-dist/doc/fonts/kpfonts-otf/Kpfonts-OTF-Doc-French.pdf Binary files differindex df0cad77bc4..e8700d78d52 100644 --- a/Master/texmf-dist/doc/fonts/kpfonts-otf/Kpfonts-OTF-Doc-French.pdf +++ b/Master/texmf-dist/doc/fonts/kpfonts-otf/Kpfonts-OTF-Doc-French.pdf diff --git a/Master/texmf-dist/doc/fonts/kpfonts-otf/README.md b/Master/texmf-dist/doc/fonts/kpfonts-otf/README.md index 767c396cec5..8507ed6fe1d 100644 --- a/Master/texmf-dist/doc/fonts/kpfonts-otf/README.md +++ b/Master/texmf-dist/doc/fonts/kpfonts-otf/README.md @@ -15,7 +15,7 @@ The package is still experimental, bug reports and suggestions are welcome. fontspec configuration files; * the `doc/` directory holds documentation in English and French and a table of available Math symbols comparing kpfonts-otf to LatinModern, - STIXTwo, Erewhon, TeXGyrePagella and DejaVu. + STIXTwo, Erewhon, TeXGyreTermes, Garamond and Libertinus. ## Installation @@ -45,8 +45,35 @@ Either version 1.3 or, at your option, any later version. ## Changes * First release version: 0.30 (experimental, expect changes!). -* v. 0.31: Fixed inconsistent widths/sidebearings for six glyphs: - = ≠ < ≤ > ≥ (all five Math fonts affected, original Type1 too). + +* v. 0.31: + Fixed inconsistent widths/sidebearings for six glyphs: + = ≠ < ≤ > ≥ (all five Math fonts affected, original Type1 too). + +* v. 0.32: + 1) Text fonts: + kpfonts-otf.sty corrected: the "light" option didn't work properly. + kffonts-otf should now cover all glyphs in TS1 encoding (textcomp.sty). + The height of all diacritics has been reviewed and corrected + New combining diacritics added : U+0310, U+0323, U+0325, U+0327, U+0328. + New glyphs added: U+0110 (Dcroat), U+0111 (dcroat), U+0123 (gcircumflex), + U+0126 (Hbar), U+0127 (hbar), U+0129 (itilde), U+012B (imacron), + U+012D (ibreve), U+0135 (jcircumflex), U+0166 (Tbar), U+0167 (tbar) + and their counterparts in Petite Caps and Small Caps. + Corrected Petite Caps and Small Caps variant for U+00F0 (eth), + U+00FE (thorn), U+0111 (dcroat) and U+014B (eng). + Optional ft and tt ligatures added, see feature "Ligatures=Required". + Variants for ligatures fi ffi fl ffl added, see "Alternate=1". + (faked) slanted fonts added to match kpfonts T1 version. + + 2) Math fonts: + Corrected mismatch between mitl (U+1d459) and ell (U+2113). + Slanted versions for \shortparallel and \nshortparallel + and for \gtreqless, \lesseqgtr, \gtreqqless, \lesseqqgtr added. + Stretchy accents \wideoverbar, \widebreve, \widecheck added. + Reduced boldness for superscripts and supersuperscripts. + New option "tight" to reduce horizontal spaces in math mode + (same settings as \pkg{fourier} and \pkg{fourier-otf}). --- Copyright 2020- Daniel Flipo diff --git a/Master/texmf-dist/doc/fonts/kpfonts-otf/unimath-kpfonts.pdf b/Master/texmf-dist/doc/fonts/kpfonts-otf/unimath-kpfonts.pdf Binary files differindex b25e4d178c4..dbea25a6c72 100644 --- a/Master/texmf-dist/doc/fonts/kpfonts-otf/unimath-kpfonts.pdf +++ b/Master/texmf-dist/doc/fonts/kpfonts-otf/unimath-kpfonts.pdf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Bold.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Bold.otf Binary files differindex 22739ff7da2..b591945bd5f 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Bold.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Bold.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Light.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Light.otf Binary files differindex d5c5f130aa4..c2473a28503 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Light.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Light.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Regular.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Regular.otf Binary files differindex d5276a938b7..c8838ff2d66 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Regular.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Regular.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Sans.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Sans.otf Binary files differindex 6b628cb3061..4441bc6fb95 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Sans.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Sans.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Semibold.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Semibold.otf Binary files differindex 91dc14f9da0..34eb8a98792 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Semibold.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMath-Semibold.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMono-Bold.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMono-Bold.otf Binary files differindex 165aa4a2685..13d211e3891 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMono-Bold.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMono-Bold.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMono-BoldItalic.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMono-BoldItalic.otf Binary files differindex ac196e11c6c..ec1ee937e6b 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMono-BoldItalic.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMono-BoldItalic.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMono-Italic.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMono-Italic.otf Binary files differindex edb98e852d8..fe706f7d1bc 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMono-Italic.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMono-Italic.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMono-Regular.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMono-Regular.otf Binary files differindex 3302fa064df..d5a0babceba 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMono-Regular.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpMono-Regular.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Bold.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Bold.otf Binary files differindex a6a2cbe904b..f97f218f3ca 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Bold.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Bold.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-BoldItalic.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-BoldItalic.otf Binary files differindex cda2905d704..b1651325f06 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-BoldItalic.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-BoldItalic.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Italic.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Italic.otf Binary files differindex 3d2fcd2b62d..990bcea0cd2 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Italic.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Italic.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Light.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Light.otf Binary files differindex 6501008d9eb..a59f5df343f 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Light.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Light.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-LightItalic.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-LightItalic.otf Binary files differindex 9acf44991e9..e30a7e0e36f 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-LightItalic.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-LightItalic.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Regular.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Regular.otf Binary files differindex fe3f2a7fe00..ac0e2b5bcc8 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Regular.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Regular.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Semibold.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Semibold.otf Binary files differindex 30377b06b3d..ed6103ddfee 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Semibold.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-Semibold.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-SemiboldItalic.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-SemiboldItalic.otf Binary files differindex 9ccb0fa3821..81fb9946a20 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-SemiboldItalic.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpRoman-SemiboldItalic.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpSans-Bold.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpSans-Bold.otf Binary files differindex e8d61e6bba4..0312cb23f10 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpSans-Bold.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpSans-Bold.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpSans-BoldItalic.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpSans-BoldItalic.otf Binary files differindex b3ffb36ef29..14751f9b477 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpSans-BoldItalic.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpSans-BoldItalic.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpSans-Italic.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpSans-Italic.otf Binary files differindex b3597205e04..4ba797c0568 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpSans-Italic.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpSans-Italic.otf diff --git a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpSans-Regular.otf b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpSans-Regular.otf Binary files differindex 6d6f4197367..2e047662b6b 100644 --- a/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpSans-Regular.otf +++ b/Master/texmf-dist/fonts/opentype/public/kpfonts-otf/KpSans-Regular.otf diff --git a/Master/texmf-dist/tex/latex/kpfonts-otf/KpLight.fontspec b/Master/texmf-dist/tex/latex/kpfonts-otf/KpLight.fontspec index 861054f1f2d..5f86a1b29d4 100644 --- a/Master/texmf-dist/tex/latex/kpfonts-otf/KpLight.fontspec +++ b/Master/texmf-dist/tex/latex/kpfonts-otf/KpLight.fontspec @@ -1,7 +1,12 @@ \defaultfontfeatures[KpLight] { Extension = .otf, - UprightFont = *-Light, - BoldFont = *-Semibold, - ItalicFont = *-LightItalic, - BoldItalicFont = *-SemiboldItalic + UprightFont = KpRoman-Light, + BoldFont = KpRoman-Semibold, + ItalicFont = KpRoman-LightItalic, + BoldItalicFont = KpRoman-SemiboldItalic, + SlantedFont = KpRoman-Light, + SlantedFeatures = {FakeSlant=0.19}, + BoldSlantedFont = KpRoman-Semibold, + BoldSlantedFeatures = {FakeSlant=0.19}, + Ligatures={Common,RequiredOff,RareOff,HistoricOff} } diff --git a/Master/texmf-dist/tex/latex/kpfonts-otf/KpMono.fontspec b/Master/texmf-dist/tex/latex/kpfonts-otf/KpMono.fontspec index c15afe0bcf5..5677ba19afa 100644 --- a/Master/texmf-dist/tex/latex/kpfonts-otf/KpMono.fontspec +++ b/Master/texmf-dist/tex/latex/kpfonts-otf/KpMono.fontspec @@ -1,7 +1,7 @@ \defaultfontfeatures[KpMono] { Extension = .otf, - UprightFont = *-Regular, - BoldFont = *-Bold, - ItalicFont = *-Italic, - BoldItalicFont = *-BoldItalic + UprightFont = *-Regular, + BoldFont = *-Bold, + ItalicFont = *-Italic, + BoldItalicFont = *-BoldItalic } diff --git a/Master/texmf-dist/tex/latex/kpfonts-otf/KpRoman.fontspec b/Master/texmf-dist/tex/latex/kpfonts-otf/KpRoman.fontspec index 00ed521b7a0..d4664c1f8a4 100644 --- a/Master/texmf-dist/tex/latex/kpfonts-otf/KpRoman.fontspec +++ b/Master/texmf-dist/tex/latex/kpfonts-otf/KpRoman.fontspec @@ -1,7 +1,12 @@ \defaultfontfeatures[KpRoman] { Extension = .otf, - UprightFont = *-Regular, - BoldFont = *-Bold, - ItalicFont = *-Italic, - BoldItalicFont = *-BoldItalic - } + UprightFont = KpRoman-Regular, + BoldFont = KpRoman-Bold, + ItalicFont = KpRoman-Italic, + BoldItalicFont = KpRoman-BoldItalic, + SlantedFont = KpRoman-Regular, + SlantedFeatures = {FakeSlant=0.19}, + BoldSlantedFont = KpRoman-Bold, + BoldSlantedFeatures = {FakeSlant=0.19}, + Ligatures={Common,RequiredOff,RareOff,HistoricOff} +} diff --git a/Master/texmf-dist/tex/latex/kpfonts-otf/KpSans.fontspec b/Master/texmf-dist/tex/latex/kpfonts-otf/KpSans.fontspec index eae6a607701..41c334157c7 100644 --- a/Master/texmf-dist/tex/latex/kpfonts-otf/KpSans.fontspec +++ b/Master/texmf-dist/tex/latex/kpfonts-otf/KpSans.fontspec @@ -1,7 +1,8 @@ \defaultfontfeatures[KpSans] { Extension = .otf, - UprightFont = *-Regular, - BoldFont = *-Bold, - ItalicFont = *-Italic, - BoldItalicFont = *-BoldItalic + UprightFont = *-Regular, + BoldFont = *-Bold, + ItalicFont = *-Italic, + BoldItalicFont = *-BoldItalic, + Ligatures={Common,RequiredOff,RareOff,HistoricOff} } diff --git a/Master/texmf-dist/tex/latex/kpfonts-otf/kpfonts-otf.sty b/Master/texmf-dist/tex/latex/kpfonts-otf/kpfonts-otf.sty index 38e42fa7b6a..74e8ef19f2d 100644 --- a/Master/texmf-dist/tex/latex/kpfonts-otf/kpfonts-otf.sty +++ b/Master/texmf-dist/tex/latex/kpfonts-otf/kpfonts-otf.sty @@ -1,6 +1,6 @@ \NeedsTeXFormat{LaTeX2e}[2019/01/01] -\def\fileversion{0.31} -\def\filedate{2020/06/20} +\def\fileversion{0.32} +\def\filedate{2020/11/18} \ProvidesPackage{kpfonts-otf}[\filedate\space\fileversion] % Ensure luatex or xetex engine @@ -29,6 +29,7 @@ \newif\ifkp@calasscr \newif\ifkp@oldReIm \newif\ifkp@symbols \kp@symbolstrue +\newif\ifkp@tight % % Global options \DeclareOption{light} {\kp@lighttexttrue\kp@lightmathtrue} @@ -40,8 +41,8 @@ % Text options \DeclareOption{lighttext} {\kp@lighttexttrue} \DeclareOption{oldstylenums} {\kp@osntrue} -\DeclareOption{oldstyle} {\kp@ostrue\kp@Qtailtrue} -\DeclareOption{veryoldstyle} {\kp@vostrue\kp@Qtailtrue} +\DeclareOption{oldstyle} {\kp@ostrue\kp@osntrue\kp@Qtailtrue} +\DeclareOption{veryoldstyle} {\kp@vostrue\kp@osntrue\kp@Qtailtrue} \DeclareOption{largesmallcaps} {\kp@largesmallcapstrue} % Math options \DeclareOption{lightmath} {\kp@lightmathtrue} @@ -53,10 +54,18 @@ \DeclareOption{oldstylenumsmath} {\kp@osnmtrue} \DeclareOption{fancyReIm} {\kp@oldReImtrue} \DeclareOption{noDcommand} {\kp@Dcommandfalse} +\DeclareOption{tight} {\kp@tighttrue} \DeclareOption{symbols} {\kp@textfalse\kp@sffalse\kp@ttfalse \kp@mathfalse} \ProcessOptions +% This is adapted from babel to concatenate font features. +\def\KP@addto#1#2{% + {\toks@\expandafter{#1,#2}% + \xdef#1{\the\toks@}}% +} +\def\KP@options{Ligatures=TeX} + \ifkp@symbols % true unless "nomath" \RequirePackage{unicode-math}[2019/01/01] % \D close integral @@ -66,6 +75,11 @@ \fi % Loading Math fonts... \ifkp@math + \ifkp@tight + \thinmuskip=2mu + \medmuskip=2.5mu plus 1mu minus 2.5mu + \thickmuskip=3.5mu plus 2.5mu + \fi \ifkp@lightmath \ifkp@calasscr \defaultfontfeatures+[KpMath-Light.otf]{RawFeature=+ss01} @@ -118,99 +132,75 @@ % Loading Text fonts... \ifkp@text \RequirePackage{fontspec}[2019/01/01] - \defaultfontfeatures+[\rmfamily,\KpLight]{Contextuals={WordFinal,Alternate}} - %Oldstylenums + % This needed with LuaTeX to typeset some composed chars like + % āēīōū ẽ ĕ ċṅṁ etc. not ready-made in the KPfonts… + \ifluahbtex\defaultfontfeatures{Renderer=HarfBuzz}\fi + % TS1 accent in Private Area + \DeclareUnicodeAccent{\newtie}{TU}{"E9F0} + % Accents not in tuenc.def + \DeclareUnicodeAccent{\candra} \UnicodeEncodingName{"0310} + \DeclareUnicodeAccent{\ringbelow} \UnicodeEncodingName{"0325} + % Oldstylenums \ifkp@osn - \ifkp@sf - \ifkp@tt - \defaultfontfeatures+[\rmfamily,\KpLight,\sffamily,\ttfamily]% - {Numbers=Lowercase} - \else - \defaultfontfeatures+[\rmfamily,\KpLight,\sffamily]{Numbers=Lowercase} - \fi - \else - \defaultfontfeatures+[\rmfamily,\KpLight]{Numbers=Lowercase} + \ifkp@tt + \defaultfontfeatures+[\ttfamily]{Numbers=Lowercase} \fi + \KP@addto\KP@options{Numbers=Lowercase} \fi - % Oldstyle + %% Oldstyle \ifkp@os - \ifkp@sf - \defaultfontfeatures+[\rmfamily,\KpLight,\sffamily]{% - Style=Swash,Ligatures={TeX,Rare},Numbers=Lowercase} - \else - \defaultfontfeatures+[\rmfamily,\KpLight]{% - Style=Swash,Ligatures={TeX,Rare},Numbers=Lowercase} + \ifkp@tt + \defaultfontfeatures+[\ttfamily]{Style=Swash} \fi - \ifkp@tt\defaultfontfeatures+[\ttfamily]{Numbers=Lowercase}\fi + \KP@addto\KP@options{Style=Swash,Ligatures=Rare} \fi - % Veryoldstyle + %% Veryoldstyle \ifkp@vos - \ifkp@sf - \defaultfontfeatures+[\rmfamily,\KpLight,\sffamily]{% - Style=Historic, Ligatures={TeX,Historic}} - \else - \defaultfontfeatures+[\rmfamily,\KpLight]{% - Style=Historic, Ligatures={TeX,Historic}} + \ifkp@tt + \defaultfontfeatures+[\ttfamily]{Style=Historic, Contextuals=Alternate} \fi + \KP@addto\KP@options{Style=Historic, Ligatures=Historic, + Contextuals=Alternate} \fi + % Smallcaps \ifkp@largesmallcaps - \defaultfontfeatures+{SmallCapsFeatures = {Letters=SmallCaps}} + \KP@addto\KP@options{SmallCapsFeatures = {Letters=SmallCaps}} \else - \defaultfontfeatures+{SmallCapsFeatures = {Letters=PetiteCaps}} + \KP@addto\KP@options{SmallCapsFeatures = {Letters=PetiteCaps}} \fi % Text Serif fonts: - \setmainfont{KpRoman}[ - Extension = .otf, - UprightFont = *-Regular, - BoldFont = *-Bold, - ItalicFont = *-Italic, - BoldItalicFont = *-BoldItalic - ] - \newfontfamily\KpLight{KpRoman-Light}[ - Extension = .otf, - BoldFont = KpRoman-Semibold, - ItalicFont = KpRoman-LightItalic, - BoldItalicFont = KpRoman-SemiboldItalic, - Ligatures=TeX - ] - \newfontface\Light{KpRoman-Light.otf}[Ligatures=TeX] - \newfontface\LightItalic {KpRoman-LightItalic.otf}[Ligatures=TeX] - \newfontface\Semibold{KpRoman-Semibold.otf}[Ligatures=TeX] - \newfontface\SemiboldItalic{KpRoman-SemiboldItalic.otf}[Ligatures=TeX] -\fi -% Text Sans Serif fonts: -\ifkp@sf - \defaultfontfeatures+[\sffamily]{Contextuals={WordFinal,Alternate}} - \setsansfont{KpSans}[ - Extension = .otf, - UprightFont = *-Regular, - BoldFont = *-Bold, - ItalicFont = *-Italic, - BoldItalicFont = *-BoldItalic - ] -\fi -% Text Typewriter fonts: -\ifkp@tt - \defaultfontfeatures+[\ttfamily]{Contextuals={WordFinal,Alternate}} - \setmonofont{KpMono}[ - Extension = .otf, - UprightFont = *-Regular, - BoldFont = *-Bold, - ItalicFont = *-Italic, - BoldItalicFont = *-BoldItalic - ] -\fi -% Light option -\ifkp@lighttext - \renewcommand{\rmfamily}{\KpLight} + \ifkp@lighttext + \setmainfont{KpLight}[\KP@options] + \newfontface\Semibold{KpRoman-Regular.otf}[\KP@options] + \newfontface\SemiboldItalic{KpRoman-Italic.otf}[\KP@options] + \newfontface\Extrabold{KpRoman-Bold.otf}[\KP@options] + \newfontface\ExtraboldItalic{KpRoman-BoldItalic.otf}[\KP@options] + \DeclareTextFontCommand{\textsb}{\Semibold} + \DeclareTextFontCommand{\texteb}{\Extrabold} + \else + \setmainfont{KpRoman}[\KP@options] + \newfontface\Light{KpRoman-Light.otf}[\KP@options] + \newfontface\LightItalic {KpRoman-LightItalic.otf}[\KP@options] + \newfontface\Semibold{KpRoman-Semibold.otf}[\KP@options] + \newfontface\SemiboldItalic{KpRoman-SemiboldItalic.otf}[\KP@options] + \DeclareTextFontCommand{\textsb}{\Semibold} + \DeclareTextFontCommand{\textlt}{\Light} + \fi + % Text Sans Serif fonts: + \ifkp@sf + \setsansfont{KpSans}[\KP@options] + \fi + % Text Typewriter fonts: + \ifkp@tt + \setmonofont{KpMono} + \fi + % Large/Petites smallcaps + \DeclareRobustCommand\lscshape{\addfontfeatures{RawFeature=+smcp}} + \DeclareRobustCommand\pscshape{\addfontfeatures{RawFeature=+pcap}} + \DeclareRobustCommand\textlsc[1]{{\lscshape #1}} + \DeclareRobustCommand\textpsc[1]{{\pscshape #1}} \fi -% Large/Petites smallcaps -\DeclareRobustCommand\lscshape{\addfontfeatures{RawFeature=+smcp}} -\DeclareRobustCommand\pscshape{\addfontfeatures{RawFeature=+pcap}} -\DeclareRobustCommand\textlsc[1]{{\lscshape #1}} -\DeclareRobustCommand\textpsc[1]{{\pscshape #1}} - \ifkp@symbols % Style aliases \newopentypefeature{Style}{mathcal}{ss01} @@ -361,8 +351,14 @@ % <math type> : \mathord=0 \mathrel=3 ; <family>=0 \Umathchardef\circledR = 0 0 "24C7 \relax \Umathchardef\circledS = 0 0 "24C8 \relax - \Umathchardef\npreceq = 3 0 "E096 \relax - \Umathchardef\nsucceq = 3 0 "E097 \relax + \Umathchardef\shortparallelslant = 3 0 "E092 \relax + \Umathchardef\nshortparallelslant = 3 0 "E093 \relax + \Umathchardef\lesseqslantgtr = 3 0 "E094 \relax + \Umathchardef\gtreqslantless = 3 0 "E095 \relax + \Umathchardef\lesseqqslantgtr = 3 0 "E096 \relax + \Umathchardef\gtreqqslantless = 3 0 "E097 \relax + \Umathchardef\npreceq = 3 0 "E098 \relax + \Umathchardef\nsucceq = 3 0 "E099 \relax \Umathchardef\diagup = 0 0 "E0A0 \relax \Umathchardef\diagdown = 0 0 "E0A1 \relax \Umathchardef\shortmid = 3 0 "E0A2 \relax |