diff options
Diffstat (limited to 'fonts/kpfonts-otf')
28 files changed, 95 insertions, 155 deletions
diff --git a/fonts/kpfonts-otf/README.md b/fonts/kpfonts-otf/README.md index 8a18734d6e..2d3ed1f8f4 100644 --- a/fonts/kpfonts-otf/README.md +++ b/fonts/kpfonts-otf/README.md @@ -177,9 +177,17 @@ Either version 1.3 or, at your option, any later version. * v. 0.45: Maths fonts: delimiters, integrals, sum, prod etc. are now vertically - centerred by design on the maths axis (required by luametatex). + centred by design on the maths axis (required by luametatex). Fixed inconsistencies about bold and semibold integrals. - + +* v. 0.46: + 1. Text fonts: option longs deleted, option veryoldstyle improved, the + substitution from `s' to `ſ' is now handled by "StylisticSet=12". + 2. Maths fonts: + - Added a smaller variant for \widehat, \widetilde, \widecheck. + - Vertical variants added for \vert, \Vert, \Vvert. + - Added extensible integral for U+222B (usable with luametatex). + --- -Copyright 2020-2022 Daniel Flipo +Copyright 2020-2022 Daniel Flipo E-mail: daniel (dot) flipo (at) free (dot) fr diff --git a/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.ltx b/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.ltx index e945af75a3..ced8669435 100644 --- a/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.ltx +++ b/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.ltx @@ -6,8 +6,7 @@ \usepackage[svgnames]{xcolor} \usepackage[hypcap=false]{caption} \usepackage{shortvrb} -% Option "longs" for local exemples of the long s -\usepackage[longs]{kpfonts-otf} +\usepackage{kpfonts-otf} % Math demos \setmathfont{KpMath-Regular.otf}[version=full, @@ -42,7 +41,7 @@ \title{Kp-fonts: OpenType version} \author{\href{mailto:daniel.flipo@free.fr}{Daniel \textsc{Flipo}}} -\newcommand*{\version}{0.45} +\newcommand*{\version}{0.46} \begin{document} \selectlanguage{british} @@ -213,32 +212,23 @@ 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\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.} +\item[veryoldstyle:]\hlabel{veryoldstyle} same as option \opt{oldstyle} but + the round `s’ is replaced by the long one `ſ’ + unless it ends a word or is followed by \textit{b}, \textit{f} or \textit{h}% + \footnote{Rules found on + \href{https://fr.wikipedia.org/wiki/S_long}{wikipedia}.} and ancient ligatures {\addfontfeatures{RawFeature=+hist;+hlig} si, sl, st} are activated. - Coding \texttt{s=} prints a round `s’ anytime; in most cases this coding is - not necessary with LuaTeX, - f.i. |\textit{some of Highlands’ mysterious castles…}| - will print + Coding |\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 : - final `s’ followed by a punctuation sign is never turned into - {\addfontfeatures{RawFeature=+hist;+hlig}`s\hspace{1sp}’}, when followed by - a space it is a trickier, see option \opt{longs} below. - -\item[longs] \hlabel{longs} - inhibits the transformation of an `s’ followed by a space into - {\addfontfeatures{RawFeature=+hist;+hlig}`s\hspace{1sp}’}. This option, - available only with LuaTeX, is silently switched on by \opt{veryoldstyle}; - it is used explicitly in the present document to deal with the examples of - long `s’ shown in the preceding item. + \textit{some of Highlands’ mysterious castles…}} which is correct. + + The automatic substitution relies on the OpenType feature + \texttt{StylisticSet=12}. A round `s’ (resp. long `ſ’) can be forced by + coding \texttt{s\char"200B=} or |\shorts{}| (resp. \texttt{ſ}% + \footnote{On Unix systems the \texttt{Compose} key can be used: + \texttt{Compose f s}.} + or |\longs{}|). \item[largesmallcaps:] prints larger \textlsc{Small Caps} than the default ones (\textsc{Petite Caps}). @@ -363,7 +353,8 @@ Here are the options available for Text Kp-fonts: \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=Common] (default) automatic ligatures ff ffi ffl fi fl + (plus s\char"200B=). \item[StylisticSet=1] provides an alternative for glyphs {\addfontfeature{StylisticSet=1} ffi ffl fi fl} (ff is unchanged). @@ -377,19 +368,23 @@ Here are the options available for Text Kp-fonts: Q: {\addfontfeature{Style=Swash}Queen, also in small caps (both sizes): \textpsc{Queen} and \textlsc{Queen}}. -\item[Style=Historic] replaces any instance of `s’ by the long variant - {\addfontfeature{Style=Historic}s}. It is still possible to get a round - `s’ coding it as `|s=|’ specially at end of words; see options - \opt{veryoldstyle} and \opt{longs} p.~\pageref{longs} for more details. +\item[Style=Historic] replaces any instance of `s’ by the long variant~`ſ’. + It is still possible to get a round `s’ coding it as + `\texttt{s\char"200B=}’; this option should no longer be used, it is + superseded by \opt{StylisticSet=12} below. + +\item[StylisticSet=12] has been described in option \opt{veryoldstyle} + p.~\pageref{veryoldstyle}: it operates a contextual substitution of + round~`s’ by long~`ſ’. An alias \opt{Style=autolongs} is available if + \pkg{kpfonts-otf.sty} has been loaded. -\item[Ligatures=Historic] switches specific ligatures for the long - {\addfontfeature{Style=Historic}s}: +\item[Ligatures=Historic] switches specific ligatures for the long~ſ: {\addfontfeature{Style=Historic,Ligatures=Historic} si, sl, st}. \item[StylisticSet=2 :] |\SS| prints {\addfontfeatures{StylisticSet=2}\SS} instead of {\char"1E9E} (capital \textit{Eszett}), ditto for small/petite caps. -\item[StylisticSet=3 :] replaces the Euro character (€) by the official symbol +\item[StylisticSet=3] replaces the Euro character (€) by the official symbol {\addfontfeatures{StylisticSet=3}(€)} (available in regular, italics, bold and bolditalic). @@ -689,22 +684,22 @@ The full list of Unicode symbols available with Kp-fonts is shown in file \subsection{Wide accents} \begin{itemize} +\item \cmd{wideoverbar} and \cmd{mathunderbar}% + \footnote{\cmd{overline} and \cmd{underline} are not font related, + they are based on \cmd{rule}.} + \[\wideoverbar{x}\quad \wideoverbar{xy}\quad \wideoverbar{xyz}\quad + \wideoverbar{A\cup B}\quad \wideoverbar{A\cup (B\cap C)\cup D}\quad + \mathunderbar{m+n+p}\] + \item \cmd{widehat} and \cmd{widetilde} \[\widehat{x}\; \widehat{xx} \;\widehat{xxx} \;\widehat{xxxx}\; \widehat{xxxxx} \;\widehat{xxxxxx} \;\widetilde{x}\; \widetilde{xx}\; \widetilde{xxx} \;\widetilde{xxxx} \;\widetilde{xxxxx}\; \widetilde{xxxxxx}\] -\item \cmd{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{wideoverbar}, \cmd{widecheck} and \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{widecheck} and \cmd{widebreve} + \[\widecheck{x}\quad \widecheck{xxxx}\quad \widecheck{xxxxxx}\quad + \widebreve{x}\quad \widebreve{xxxx}\quad \widebreve{xxxxxx}\] \item \cmd{overparen} and \cmd{underparen} \[\overparen{x}\quad \overparen{xy}\quad \overparen{xyz}\quad diff --git a/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.pdf b/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.pdf Binary files differindex 5529c0e23e..40fc33cb66 100644 --- a/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.pdf +++ b/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.pdf diff --git a/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.ltx b/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.ltx index 6be3c43ff6..09ea4e292c 100644 --- a/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.ltx +++ b/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.ltx @@ -7,10 +7,8 @@ \usepackage[hypcap=false]{caption} \usepackage{shortvrb} \usepackage{babel} -\frenchsetup{og=«, fg=»,%ListItemsAsPar -} - -\usepackage[longs]{kpfonts-otf} +\frenchsetup{og=«, fg=», ListItemsAsPar} +\usepackage{kpfonts-otf} % Pour les démos : \setmathfont{KpMath-Regular.otf}[version=full, @@ -42,7 +40,7 @@ \title{Kp-fonts version OpenType} \author{\href{mailto:daniel.flipo@free.fr}{Daniel \textsc{Flipo}}} -\newcommand*{\version}{0.45} +\newcommand*{\version}{0.46} \begin{document} \maketitle @@ -118,7 +116,7 @@ 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}, \pkg{fontspec} ainsi que \pkg{realscripts} et +ceci charge \pkg{unicode-math}, \pkg{fontspec} et \pkg{realscripts} 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 @@ -224,38 +222,23 @@ Notez que ces options n'affectent que les polices de texte. \item[veryoldstyle :] \hlabel{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 + remplacé par le «ſ» long sauf en fin de mot et sauf devant \textit{b}, + \textit{f} et \textit{h}% + \footnote{Ces règles sont celles décrites + \href{https://fr.wikipedia.org/wiki/S_long}{ici}.} + et les ligatures {\addfontfeatures{RawFeature=+hist;+hlig} si, sl, st} sont activées. - Avec LuaTeX, le codage |\textit{« Des espoirs si funestes… »}| donne bien + Le codage |\textit{« Des espoirs si funestes… »}| donne bien {\addfontfeatures{RawFeature=+hist;+hlig;+calt} \textit{«Des espoirs si funestes…»}. } - Les choses se passent bien tant que le « s » est immédiatement suivi des - \emph{caractères} Unicode U+0020 espace-mot, - 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 (sécable ou non) produite par TeX% - \footnote{On utilise la \emph{feature} OpenType \texttt{calt} qui ne - reconnaît ni les \cmd{hskip} ni les \cmd{penalty} de TeX.} ! - Le fichier \file{kpfont-otf.sty} fournit une parade au moins avec le - moteur LuaTeX. - - Exemple : le codage |\textit{espoirs, mais quels~espoirs?}| produit comme il - se doit en français - {\addfontfeatures{RawFeature=+hist;+calt}\textit{espoirs, mais~quels~espoirs?}} - (avec fine insécable devant le `?’). - - Il est toujours possible de forcer un «s» rond en codant \texttt{s=}. - Avec XeTeX, il faudrait coder: |\textit{espoirs, mais= quels=~espoirs=?}|. - -\item[longs :] \hlabel{longs} - empêche qu’un « s » suivi d’une espace sécable ou non soit - transformé en « s » long. Cette option, utilisable seulement avec - LuaTeX, est activée automatiquement par \opt{veryoldstyle} ; dans ce document - elle est utilisée seule pour traiter les exemples locaux de « s » long - (voir ci-dessus). + La substitution automatique repose sur la \textit{feature} OpenType + \texttt{StylisticSet=12}. Il est toujours possible de forcer un «s» rond + en codant \texttt{s\char"200B=} ou |\shorts{}| ou un «ſ» long en codant + \texttt{ſ}% + \footnote{Sous Unix, le \texttt{ſ} long s’obtient grâce à la touche + \texttt{Compose} : \texttt{Compose f s}.} ou |\longs{}|. \item[largesmallcaps :] produit des petites capitales plus \textlsc{Grandes} que par les \textsc{Petites} obtenues par défaut. @@ -388,7 +371,8 @@ Pour les polices de texte de Kp-fonts les options suivantes sont proposées : \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=Common :] (par défaut) ligatures automatiques ff ffi ffl fi fl + (plus s\char"200B=). \item[StylisticSet=1] modifie l’aspect des ligatures {\addfontfeature{StylisticSet=1} ffi ffl fi fl} (ff inchangé). @@ -404,10 +388,14 @@ Pour les polices de texte de Kp-fonts les options suivantes sont proposées : \item[Style=Historic :] pour remplacer systématiquement le « s » rond par un {\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 activer l’option \opt{longs} de - \pkg{kpfonts-otf} |\usepackage[longs]{kpfonts-otf}| permet d’éviter ce - codage pour les « s » suivis d’une espace (voir p.~\pageref{veryoldstyle}). + « s » rond, en fin de mot notamment, en codant \texttt{s\char"200B=}. + Cette option ne devrait plus être utilisée, elle est remplacée par la + suivante \opt{StylisticSet=12}. + +\item[StylisticSet=12 :] option décrite sous le nom de \opt{veryoldstyle} + p.~\pageref{veryoldstyle}: elle opère un remplacement contextuel du `s’~rond + par le `ſ’~long. Si \pkg{kpfonts-otf.sty} est chargé, elle a pour alias + \opt{Style=autolongs}. \item[Ligatures=Historic :] active les ligatures spécifiques au {\addfontfeature{Style=Historic,Ligatures=Historic}« s » long si, sl, st}. @@ -730,20 +718,21 @@ n’ont pas de code Unicode, ils sont codés en zone privée pour Kp-fonts. \subsection{Accents extensibles} \begin{itemize} +\item \cmd{wideoverbar} and \cmd{mathunderbar}% + \footnote{\cmd{overline} and \cmd{underline} utilisent \cmd{rule}, elles + ne sont pas liées à la police.} + \[\wideoverbar{x}\quad \wideoverbar{xy}\quad \wideoverbar{xyz}\quad + \wideoverbar{A\cup B}\quad \wideoverbar{A\cup (B\cap C)\cup D}\quad + \mathunderbar{m+n+p}\] + \item \cmd{widehat} 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{wideoverbar}, \cmd{widecheck} et \cmd{widebreve} - \[\wideoverbar{x}\quad \wideoverbar{xy}\quad \wideoverbar{xyz}\quad - \widecheck{x}\quad \widecheck{xxxx}\quad \widecheck{xxxxxx}\quad +\item \cmd{widecheck} et \cmd{widebreve} + \[\widecheck{x}\quad \widecheck{xxxx}\quad \widecheck{xxxxxx}\quad \widebreve{x}\quad \widebreve{xxxx}\quad \widebreve{xxxxxx} \] diff --git a/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.pdf b/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.pdf Binary files differindex 7206dabf88..da0c19bac2 100644 --- a/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.pdf +++ b/fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.pdf diff --git a/fonts/kpfonts-otf/doc/unimath-kpfonts.pdf b/fonts/kpfonts-otf/doc/unimath-kpfonts.pdf Binary files differindex f10f284d68..d767b66dd0 100644 --- a/fonts/kpfonts-otf/doc/unimath-kpfonts.pdf +++ b/fonts/kpfonts-otf/doc/unimath-kpfonts.pdf diff --git a/fonts/kpfonts-otf/fonts/KpMath-Bold.otf b/fonts/kpfonts-otf/fonts/KpMath-Bold.otf Binary files differindex aadba155b7..2978442d80 100644 --- a/fonts/kpfonts-otf/fonts/KpMath-Bold.otf +++ b/fonts/kpfonts-otf/fonts/KpMath-Bold.otf diff --git a/fonts/kpfonts-otf/fonts/KpMath-Light.otf b/fonts/kpfonts-otf/fonts/KpMath-Light.otf Binary files differindex 417c1f64e7..f9875d5966 100644 --- a/fonts/kpfonts-otf/fonts/KpMath-Light.otf +++ b/fonts/kpfonts-otf/fonts/KpMath-Light.otf diff --git a/fonts/kpfonts-otf/fonts/KpMath-Regular.otf b/fonts/kpfonts-otf/fonts/KpMath-Regular.otf Binary files differindex ee8a58cc92..059418084a 100644 --- a/fonts/kpfonts-otf/fonts/KpMath-Regular.otf +++ b/fonts/kpfonts-otf/fonts/KpMath-Regular.otf diff --git a/fonts/kpfonts-otf/fonts/KpMath-Sans.otf b/fonts/kpfonts-otf/fonts/KpMath-Sans.otf Binary files differindex a24d67fff9..fafb63051e 100644 --- a/fonts/kpfonts-otf/fonts/KpMath-Sans.otf +++ b/fonts/kpfonts-otf/fonts/KpMath-Sans.otf diff --git a/fonts/kpfonts-otf/fonts/KpMath-Semibold.otf b/fonts/kpfonts-otf/fonts/KpMath-Semibold.otf Binary files differindex f88a36bb65..5fd8318793 100644 --- a/fonts/kpfonts-otf/fonts/KpMath-Semibold.otf +++ b/fonts/kpfonts-otf/fonts/KpMath-Semibold.otf diff --git a/fonts/kpfonts-otf/fonts/KpMono-Bold.otf b/fonts/kpfonts-otf/fonts/KpMono-Bold.otf Binary files differindex 827c37d6c8..13aa55494b 100644 --- a/fonts/kpfonts-otf/fonts/KpMono-Bold.otf +++ b/fonts/kpfonts-otf/fonts/KpMono-Bold.otf diff --git a/fonts/kpfonts-otf/fonts/KpMono-BoldItalic.otf b/fonts/kpfonts-otf/fonts/KpMono-BoldItalic.otf Binary files differindex afb1ff2e80..91170c263e 100644 --- a/fonts/kpfonts-otf/fonts/KpMono-BoldItalic.otf +++ b/fonts/kpfonts-otf/fonts/KpMono-BoldItalic.otf diff --git a/fonts/kpfonts-otf/fonts/KpMono-Italic.otf b/fonts/kpfonts-otf/fonts/KpMono-Italic.otf Binary files differindex b71e12016b..d95fa10bc9 100644 --- a/fonts/kpfonts-otf/fonts/KpMono-Italic.otf +++ b/fonts/kpfonts-otf/fonts/KpMono-Italic.otf diff --git a/fonts/kpfonts-otf/fonts/KpMono-Regular.otf b/fonts/kpfonts-otf/fonts/KpMono-Regular.otf Binary files differindex 315adffd5a..65fa0fc174 100644 --- a/fonts/kpfonts-otf/fonts/KpMono-Regular.otf +++ b/fonts/kpfonts-otf/fonts/KpMono-Regular.otf diff --git a/fonts/kpfonts-otf/fonts/KpRoman-Bold.otf b/fonts/kpfonts-otf/fonts/KpRoman-Bold.otf Binary files differindex 37c8338a21..4a64c4c946 100644 --- a/fonts/kpfonts-otf/fonts/KpRoman-Bold.otf +++ b/fonts/kpfonts-otf/fonts/KpRoman-Bold.otf diff --git a/fonts/kpfonts-otf/fonts/KpRoman-BoldItalic.otf b/fonts/kpfonts-otf/fonts/KpRoman-BoldItalic.otf Binary files differindex 420c6fc90f..d1cc6d8a45 100644 --- a/fonts/kpfonts-otf/fonts/KpRoman-BoldItalic.otf +++ b/fonts/kpfonts-otf/fonts/KpRoman-BoldItalic.otf diff --git a/fonts/kpfonts-otf/fonts/KpRoman-Italic.otf b/fonts/kpfonts-otf/fonts/KpRoman-Italic.otf Binary files differindex aeab6d58ca..589bc5eef7 100644 --- a/fonts/kpfonts-otf/fonts/KpRoman-Italic.otf +++ b/fonts/kpfonts-otf/fonts/KpRoman-Italic.otf diff --git a/fonts/kpfonts-otf/fonts/KpRoman-Light.otf b/fonts/kpfonts-otf/fonts/KpRoman-Light.otf Binary files differindex 4760d0f82f..e0ceca0e0f 100644 --- a/fonts/kpfonts-otf/fonts/KpRoman-Light.otf +++ b/fonts/kpfonts-otf/fonts/KpRoman-Light.otf diff --git a/fonts/kpfonts-otf/fonts/KpRoman-LightItalic.otf b/fonts/kpfonts-otf/fonts/KpRoman-LightItalic.otf Binary files differindex 847c46a822..42f5c657d7 100644 --- a/fonts/kpfonts-otf/fonts/KpRoman-LightItalic.otf +++ b/fonts/kpfonts-otf/fonts/KpRoman-LightItalic.otf diff --git a/fonts/kpfonts-otf/fonts/KpRoman-Regular.otf b/fonts/kpfonts-otf/fonts/KpRoman-Regular.otf Binary files differindex c32cf5442f..f97fe3d007 100644 --- a/fonts/kpfonts-otf/fonts/KpRoman-Regular.otf +++ b/fonts/kpfonts-otf/fonts/KpRoman-Regular.otf diff --git a/fonts/kpfonts-otf/fonts/KpRoman-Semibold.otf b/fonts/kpfonts-otf/fonts/KpRoman-Semibold.otf Binary files differindex 6ef1b162da..40726c8a01 100644 --- a/fonts/kpfonts-otf/fonts/KpRoman-Semibold.otf +++ b/fonts/kpfonts-otf/fonts/KpRoman-Semibold.otf diff --git a/fonts/kpfonts-otf/fonts/KpRoman-SemiboldItalic.otf b/fonts/kpfonts-otf/fonts/KpRoman-SemiboldItalic.otf Binary files differindex 9fe7448652..8545049265 100644 --- a/fonts/kpfonts-otf/fonts/KpRoman-SemiboldItalic.otf +++ b/fonts/kpfonts-otf/fonts/KpRoman-SemiboldItalic.otf diff --git a/fonts/kpfonts-otf/fonts/KpSans-Bold.otf b/fonts/kpfonts-otf/fonts/KpSans-Bold.otf Binary files differindex 68a33ee3ab..9e386648cd 100644 --- a/fonts/kpfonts-otf/fonts/KpSans-Bold.otf +++ b/fonts/kpfonts-otf/fonts/KpSans-Bold.otf diff --git a/fonts/kpfonts-otf/fonts/KpSans-BoldItalic.otf b/fonts/kpfonts-otf/fonts/KpSans-BoldItalic.otf Binary files differindex 1d26116eb2..ac9a827ed6 100644 --- a/fonts/kpfonts-otf/fonts/KpSans-BoldItalic.otf +++ b/fonts/kpfonts-otf/fonts/KpSans-BoldItalic.otf diff --git a/fonts/kpfonts-otf/fonts/KpSans-Italic.otf b/fonts/kpfonts-otf/fonts/KpSans-Italic.otf Binary files differindex bed2d15e76..8020d08390 100644 --- a/fonts/kpfonts-otf/fonts/KpSans-Italic.otf +++ b/fonts/kpfonts-otf/fonts/KpSans-Italic.otf diff --git a/fonts/kpfonts-otf/fonts/KpSans-Regular.otf b/fonts/kpfonts-otf/fonts/KpSans-Regular.otf Binary files differindex 768bfc3f28..5ee33920e6 100644 --- a/fonts/kpfonts-otf/fonts/KpSans-Regular.otf +++ b/fonts/kpfonts-otf/fonts/KpSans-Regular.otf diff --git a/fonts/kpfonts-otf/tex/kpfonts-otf.sty b/fonts/kpfonts-otf/tex/kpfonts-otf.sty index 4d6ca62a31..9fdb53d30b 100644 --- a/fonts/kpfonts-otf/tex/kpfonts-otf.sty +++ b/fonts/kpfonts-otf/tex/kpfonts-otf.sty @@ -1,6 +1,6 @@ \NeedsTeXFormat{LaTeX2e}[2019-01-01] -\def\fileversion{0.45} -\def\filedate{2022-10-06} +\def\fileversion{0.46} +\def\filedate{2022-11-10} \ProvidesPackage{kpfonts-otf}[\filedate\space\fileversion] % Ensure luatex or xetex engine @@ -21,7 +21,6 @@ \newif\ifkp@osn \newif\ifkp@os \newif\ifkp@vos -\newif\ifkp@longs \newif\ifkp@Qtail % \newif\ifkp@lightmath @@ -50,9 +49,7 @@ \DeclareOption{lighttext} {\kp@lighttexttrue} \DeclareOption{oldstylenums} {\kp@osntrue} \DeclareOption{oldstyle} {\kp@ostrue\kp@osntrue\kp@Qtailtrue} -\DeclareOption{longs} {\kp@longstrue} -\DeclareOption{veryoldstyle} {\kp@vostrue\kp@osntrue\kp@Qtailtrue - \ifluatex\kp@longstrue\fi} +\DeclareOption{veryoldstyle} {\kp@vostrue\kp@osntrue\kp@Qtailtrue} \DeclareOption{largesmallcaps} {\kp@largesmallcapstrue} \DeclareOption{altfligs} {\kp@altfligstrue} \DeclareOption{germandbls} {\kp@germandblstrue} @@ -81,6 +78,8 @@ % Text fonts setup... \ifkp@text \RequirePackage{fontspec}[2019/01/01] + % Style alias (text only) + \newopentypefeature{Style}{autolongs}{+ss12} \RequirePackage{realscripts} % Two candidates for \rmfamily: \newfontfamily\KpRoman{KpRoman} @@ -98,6 +97,9 @@ % Accents not in tuenc.def \DeclareUnicodeAccent{\candra} \UnicodeEncodingName{"0310} \DeclareUnicodeAccent{\ringbelow} \UnicodeEncodingName{"0325} + % Long s: ſ + \DeclareTextCommand{\longs}{TU}{\char"17F} + \DeclareTextCommand{\shorts}{TU}{\char"17F\char"200B} % Oldstylenums \ifkp@osn \ifkp@tt @@ -115,64 +117,10 @@ %% Veryoldstyle \ifkp@vos \ifkp@tt - \defaultfontfeatures+[\ttfamily]{Style=Historic, Contextuals=Alternate} + \defaultfontfeatures+[\ttfamily]{StylisticSet=12} \fi \defaultfontfeatures+[KpRoman,KpLight,\sffamily]{% - Style=Historic,Ligatures=Historic,Contextuals=Alternate} - \fi - %% No Long s before spaces with luatex - \ifkp@longs - \ifluatex - % This function adds character U+200B (zero width space) when an "s" - % is followed by a TeX space (glue or penalty) so that it is not turned - % into a long "s" by the "calt" feature. - \directlua{% - function add_eow_char (head) - local eow = 0x200B - local GLUE = node.id("glue") - local GLYPH = node.id("glyph") - local SPSKIP = 13 - local PENALTY = node.id("penalty") - local Longs = - {[string.byte("s")] = true} - local new_node = node.new - local copy_node = node.copy - local insert_node_after = node.insert_after - % Perserve TeX's kerning - head = node.kerning(head) - % wordbd is the zero width node to add - local wordbd = new_node(GLYPH) - for item in node.traverse_id(GLYPH, head) do - if Longs[item.char] then - local fid = item.font - % Check if char U+200B is available in the current font: - % code borrowed from file "luaotfload-auxiliary.lua". - local fontdata = fonts.hashes.identifiers[fid] - if fontdata and fontdata.characters[eow] then - nxt = item.next - if not nxt or (nxt.id == GLUE and nxt.subtype == SPSKIP) - or nxt.id == PENALTY then - wordbd.font = fid - wordbd.char = eow - wordbd.attr = item.attr - insert_node_after(head,item,copy_node(wordbd)) - end - end - end - end - end - } - % Register *after* loading babel-french! - \AtBeginDocument{% - \directlua{ - luatexbase.add_to_callback("kerning", add_eow_char, - "add_end_of_word_boundary"); - } - } - \else - \PackageWarning{kpfonts-otf}% - {Option "longs" skipped (luatex only), reported} - \fi + StylisticSet=12, Ligatures=Historic} \fi % Smallcaps \ifkp@largesmallcaps |