\DocumentMetadata{pdfstandard=A-2b, lang=fr-FR} \documentclass[paper=a4,french]{scrartcl} % Packages \usepackage{graphics, array, varioref} \usepackage[svgnames]{xcolor} \usepackage[hypcap=false]{caption} \usepackage{shortvrb} \usepackage{babel} \frenchsetup{og=«, fg=», ListItemsAsPar} \usepackage{kpfonts-otf} % Pour les démos : \setmathfont{KpMath-Regular.otf}[version=full, StylisticSet={1,2,3,4,5,6,7}] \setmathfont{KpMath-Light.otf}[version=light] \setmathfont{KpMath-Regular.otf}[version=base, CharacterVariant=3] \setmathfont{KpMath-Bold.otf}[version=bold, Style=leqslant, CharacterVariant=3] \setmathfont{KpMath-Sans.otf}[version=sans, Style=leqslant, CharacterVariant=3] \usepackage{realscripts} \usepackage{microtype} \usepackage{hyperref} \hypersetup{pdftitle={Mode d’emploi des Kpfonts-otf}, pdfauthor={Daniel FLIPO}, colorlinks, } \newcommand*{\hlabel}[1]{\phantomsection\label{#1}} % \MakeShortVerb{\|} \newcommand*{\pkg}[1]{\texttt{#1}} \newcommand*{\opt}[1]{\texttt{#1}} \newcommand*{\optit}[1]{\textit{\color{DarkBlue}#1}} \newcommand*{\file}[1]{\texttt{#1}} \newcommand*{\style}[1]{\textsf{\textbf{#1}}} \newcommand*{\cmd}[1]{\texttt{\textbackslash #1}} \newcommand*{\family}[1]{\textsb{#1}} \newcommand*{\famvar}[1]{\textit{#1}} \title{Kp-fonts version OpenType} \author{\href{mailto:daniel.flipo@free.fr}{Daniel \textsc{Flipo}}} \newcommand*{\version}{0.64} \begin{document} \maketitle \thispagestyle{empty} \mathversion{full} \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, voir 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 six polices mathématiques \family{KpMath-Regular}, \family{KpMath-Bold}, \family{KpMath-Light}, \family{KpMath-Semibold}, \family{KpMath-Sans} et \family{KpMath-SansBold}. 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 polices de texte couvrent les alphabets latin et latin étendu~A (U+0020 à U+017F) mais aucun des alphabets grec, cyrillique ou IPA. Les polices mathématiques disposent les lettres latines et grecques droites, italiques, grasses 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{base} $\mathbb{ABC}$ par défaut ou \mathversion{full}$\mathbb{ABC}$ avec l’option |Style=bbsans|, deux versions des capitales calligraphiées sont disponibles : |\mathcal{ABC}| et |\mathscr{ABC}| affichent respectivement \mathversion{full}$\mathcal{ABC}$ et \mathversion{base}$\mathcal{ABC}$ ; 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}, \pkg{fontspec} et normalement \pkg{realscripts}% \footnote{Sauf option \opt{fakedscripts}, voir ci-dessous.} 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}\ltseries\test{} \mathversion{light}$E=mc^2$ \end{minipage} \medskip\mathversion{base} \begin{minipage}{.45\textwidth}\itshape \test\end{minipage}\hfill \begin{minipage}{.45\textwidth}\ltseries\itshape \test\end{minipage} \medskip \begin{minipage}{.45\textwidth}\bfseries \test\end{minipage}\hfill \begin{minipage}{.45\textwidth}\sbseries \test\end{minipage} \medskip \begin{minipage}{.45\textwidth}\bfseries\itshape \test\end{minipage}\hfill \begin{minipage}{.45\textwidth}\sbseries\itshape \test\end{minipage} \medskip \item[sans :] pour utiliser la version \famvar{sans-serif} des polices texte et math. \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. \item[fulloldstyle :] équivalente aux options \opt{oldstyle} et \opt{oldstylemath}. \item[fulloldstylenums :] équivalente aux options \opt{oldstylenums} et \opt{oldstylenumsmath}. \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 ». \pkg{kpfonts-otf.sty} donne accès à des graisses intermédiaires: avec l’option \famvar{lighttext} (ou \famvar{light}) on a du \famvar{Semibold} et du \famvar{Extrabold}, et par défaut on a du \famvar{Light} et du \famvar{Semibold}. Ces graisses s’obtiennent par les commandes |\ltseries|, |\sbseries| et |\ebseries| à utiliser dans un groupe ou bien grâce aux commandes à un argument |\textlt{}|, |\textsb{}| et |\texteb{}|. |{\sbseries\itshape Foo}| ou |\textsb{\textit{Foo}}| donne {\sbseries\itshape Foo}. \item[sftext :] le texte est composé en utilisant les polices sans-serif. \item[fakedscripts :] empêche le chargement de l’extension \pkg{realscripts} qui donne accès aux vraies lettres supérieures et inférieures disponibles dans la police (chiffres, lettres minuscules latines non accentuées, parenthèses, etc. pour les Kpfonts) ; avec l’option \opt{fakedscripts} les lettres supérieures et inférieures sont obtenues par simple réduction des lettres de base correspondantes (comme le fait pdflatex), ce qui permet de placer en exposant ou en indice n’importe quel glyphe présent dans la police au prix d’une perte de qualité (résultat trop haut et trop maigre) comparer M\up{me} à M\up*{me} ou M\up{lle} à M\up*{lle}. Noter que la commande \cmd{up} de \pkg{babel-french} utilise les vraies supérieures lorsque \pkg{realscripts} est chargé et que sa variante \cmd{up*} permet d’accéder aux supérieures simulées en cas de besoin : le caractère \# n’étant pas disponible en lettre supérieure \verb+H\up{\#}+ produit H\up{\#} tandis que \verb+H\up*{\#}+ produit H\up*{\#}. \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 :] \hlabel{veryoldstyle} identique à l'option \opt{oldstyle} mais en plus le « s » rond est 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. Le codage |\textit{« Des espoirs si funestes… »}| donne bien {\addfontfeatures{RawFeature=+hist;+hlig;+calt} \textit{«Des espoirs si funestes…»}. } 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. \item[altfligs :] affiche des variantes des ligatures {\addfontfeatures{StylisticSet=1}fi, fl, ffi, ffl} au lieu de fi, fl, ffi, ffl. \item[germandbls :] |\SS| affiche {\addfontfeatures{StylisticSet=2}\SS} au lieu de {\char"1E9E} (\textit{eszett} majuscule), idem en petites capitales. \item[eurosym :] remplace le caractère Euro (€) par le symbole officiel {\addfontfeatures{StylisticSet=3}(€)}, disponible également en italique, gras et gras italique. %Cette option influe sur le résultat de la commande %|\kpeuro|, section~\ref{ssec:kpeuro} p.~\pageref{ssec:kpeuro}. \item[harfbuzz :] active le moteur de rendu |Renderer=Harfbuzz| pour HBLuaTeX ; depuis la version 0.35, il n’est plus activé par défaut (il est rarement nécessaire). \end{description} \subsection{Options des polices mathématiques} \begin{description} \item[lightmath :] les mathématiques sont composées avec les polices « light ». \item[sfmath :] les mathématiques sont composées avec les polices sans-serif. \item[bbsans :] 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}$ obtenus par défaut. %\item[mathcal :] cette option modifie l’effet des commandes % |\mathcal| et |\mathscr|, elles produisent toutes les deux % \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$. \item[fancyReIm :] les commandes |\Re| et |\Im| donnent normalement $\Re$ et $\Im$, avec cette option elles produisent respectivement $\RE$ et $\IM$. \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} L’option \textsf{\textbf{mathcal}} a été supprimée : désormais, les commandes |$\mathcal{ABC}$| et |$\mathscr{ABC}$| affichent respectivement \mathversion{full}$\mathcal{ABC}$ et \mathversion{base}$\mathcal{ABC}$ lorsque \pkg{kpfonts-otf.sty} est chargé. %\enlargethispage*{2\baselineskip} \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-dessous sans charger \pkg{kpfonts-otf}. \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 de plus \textlsc{Grandes} petites capitales à la place des \textpsc{Petites} obtenues par défaut, correspondant à l’option% \footnote{Inversée en version v0.37 pour coller à celle de \pkg{kpfonts}.} \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 (plus s\char"200B=). \item[StylisticSet=1] modifie l’aspect des ligatures {\addfontfeature{StylisticSet=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, il reste possible de forcer un « 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}. \item[StylisticSet=2 :] |\SS| affiche {\addfontfeatures{StylisticSet=2}\SS} au lieu de {\char"1E9E} (\textit{eszett} majuscule), idem en petites capitales. \item[StylisticSet=3 :] remplace le caractère Euro (€) par le symbole officiel {\addfontfeatures{StylisticSet=3}(€)}, disponible également en italique, gras et gras italique. \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=PetiteCaps}, } \setmainfont{KpRoman} \setsansfont{KpSans} \setmonofont{KpMono} \end{verbatim} Remarques : 1. La distribution Kp-fonts contient les fichiers \file{KpRoman.fontspec}, \file{KpSans.fontspec} et \file{KpMono.fontspec} qui précisent les noms des polices italiques, grasses, etc. il est donc inutile d’ajouter des options |ItalicFont = ...|, |BoldFont = ...|, etc. aux commandes |\setmainfont{KpRoman}|, |\setsansfont{KpSans}| et|\setmonofont{KpMono}|. 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} 5. Avec la famille \family{KpRoman}, il est possible de definir deux graisses supplémentaires \famvar{Light} et \famvar{Semibold} empruntées à la famille \family{KpLight} comme ceci : \begin{verbatim} \newfontfamily\KpLight{KpLight}[] \newcommand*{\ltseries}{\KpLight} \newcommand*{\sbseries}{\KpLight\bfseries} \DeclareTextFontCommand{\textlt}{\ltseries} \DeclareTextFontCommand{\textsb}{\sbseries} \end{verbatim} Ces graisses s’obtiennent ensuite grâce aux commandes |\ltseries| et |\sbseries| à utiliser dans un groupe ou bien avec les commandes à un argument |\textlt{}| et |\textsb{}|. Avec la famille \family{KpLight}, on peut définir de même les graisses \famvar{Semibold} et \famvar{Extrabold}. \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}$ (voir remarque ci-dessous) ; \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} \textbf{Remarque :} pour que |$\mathcal{ABC}$| et |$\mathscr{ABC}$| affichent respectivement \mathversion{full}$\mathcal{ABC}$ et \mathversion{base}$\mathcal{ABC}$, on peut utiliser l’option |range| de \pkg{unicode-math} comme ceci :\\ |\setmathfont{KpMath-Regular}[|\optit{options}|]|\\ |\setmathfont{KpMath-Regular}[range={cal,bfcal},StylisticSet=1]|\\ Les \emph{deux} lignes sont nécessaires : la première ligne charge \family{KpMath} normalement, la seconde modifie la sortie de la commande |\mathcal{}|. \mathversion{base} Les quatre tables suivantes recensent les autres variantes de style proposées. \nopagebreak\par\noindent \begin{minipage}[t]{0.45\linewidth}\centering \captionof{table}{Style=leqslant (\texttt{+ss04})} \hlabel{ss04} \begin{tabular}[t]{@{}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$ \\ \cmd{lesseqgtr} & $\lesseqgtr$ & $\lesseqslantgtr$ \\ \cmd{gtreqless} & $\gtreqless$ & $\gtreqslantless$ \\ \cmd{lesseqqgtr} & $\lesseqqgtr$ & $\lesseqqslantgtr$ \\ \cmd{gtreqqless} & $\gtreqqless$ & $\gtreqqslantless$ \\ \hline \end{tabular} \end{minipage}\hspace{\fill} \begin{minipage}[t]{0.5\linewidth}\centering \captionof{table}{Style=smaller (\texttt{+ss05})}\hlabel{ss05} \begin{tabular}[t]{@{}lcc@{}} \hline Commande & Base & Variante \\ \hline \cmd{mid} & $\mid$ & $\shortmid$ \\ \cmd{nmid} & $\nmid$ & $\nshortmid$ \\ \cmd{parallel} & $\parallel$ & $\shortparallel$ \\ \cmd{nparallel} & $\nparallel$ & $\nshortparallel$ \\ \cmd{parallelslant} & $\parallelslant$ & $\shortparallelslant$ \\ \cmd{nparallelslant} & $\nparallelslant$ & $\nshortparallelslant$ \\ \hline \end{tabular} \end{minipage} \par\noindent \begin{minipage}[t]{0.45\linewidth}\centering \captionof{table}{Style=subsetneq (\texttt{+ss06})}\hlabel{ss06} \begin{tabular}[t]{@{}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{minipage}\hspace{\fill} \begin{minipage}[t]{0.5\linewidth}\centering \captionof{table}{Style=parallelslant (\texttt{+ss07})}\hlabel{ss07} \begin{tabular}[t]{@{}lcc@{}} \hline Commande & Base & Variante \\ \hline \cmd{parallel} & $\parallel$ & $\parallelslant$ \\ \cmd{nparallel} & $\nparallel$ & $\nparallelslant$ \\ \cmd{shortparallel} & $\shortparallel$ & $\shortparallelslant$ \\ \cmd{nshortparallel} & $\nshortparallel$ & $\nshortparallelslant$ \\ \hline \end{tabular} \end{minipage} \vspace{2\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}]|\\ mais cette variante plus parlante n’est disponible que si \pkg{kpfonts-otf.sty} a été chargé (éventuellement avec l’option \opt{symbols}). %\end{table} \vspace{\baselineskip} La table~\vref{cv} recense les variantes de glyphes proposées. \mathversion{full} \begin{table}[ht] \centering \caption{Variantes de glyphes} \hlabel{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 & $\epsilon$ & $\varepsilon$ & \cmd{epsilon} \\ cv04 & $\kappa$ & $\varkappa$ & \cmd{kappa} \\ cv05 & $\pi$ & $\varpi$ & \cmd{pi} \\ cv06 & $\phi$ & $\varphi$ & \cmd{phi} \\ cv07 & $\rho$ & $\varrho$ & \cmd{rho} \\ cv08 & $\sigma$ & $\varsigma$ & \cmd{sigma} \\ cv09 & $\theta$ & $\vartheta$ & \cmd{theta} \\ cv10 & $\Theta$ & $\varTheta$ & \cmd{Theta}\\ \hline \end{tabular} \end{table} \vspace{\baselineskip} Exemple : |\setmathfont{KpMath-Regular.otf}[CharacterVariant={3,6}]|\\ fera en sorte que les commandes |\epsilon| et |\phi| produisent $\varepsilon$ et $\varphi$ plutôt que $\epsilon$ et $\phi$. Ceci vaut pour toutes les formes et graisses (droit, italique, gras, gras italique, sans-serif, etc.), ainsi avec l’option \opt{math-style=french}, |\epsilon| et |\phi| produisent $\symup{\varepsilon}$ and $\symup{\varphi}$. 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 definies dans \pkg{kpfonts-otf.sty}} %\subsection{Commande \texttt{\boi kpeuro}} %\label{ssec:kpeuro} %La commande |\kpeuro| %définie dans \pkg{kpfonts-otf.sty} %admet un argument %optionnel : |\kpeuro[1,50]{}| imprime \kpeuro[1,50] (espace-mot insécable) %ou {\addfontfeatures{StylisticSet=3}\kpeuro[1,50] si l’option \opt{eurosym} %(ou la \emph{feature} |StylisticSet=3|) est activée. \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{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{widecheck} et \cmd{widebreve} \[\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 \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-Regular.otf}[version=base|, \optit{options} |]|\\ |\setmathfont{KpMath-Bold.otf}[version=bold|, \optit{options} |]|\\ |\setmathfont{KpMath-Semibold.otf}[version=semibold|, \optit{options} |]|\\ |\setmathfont{KpMath-Sans.otf}[version=sans|, \optit{options} |]|\\ |\setmathfont{KpMath-Light.otf}[version=light|, \optit{options} |]|\\ et ensuite on passe d’une version à l’autre grâce à la commande |\mathversion{|\optit{nom}|}|. \pagebreak[4] Exemple\footnote{\mathversion{full}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 : \setmathfont{KpMath-Regular.otf}[Style=leqslant, CharacterVariant=3] \[ \mathbb{E}_i(N_i) = \sum_{n\ge1} P_i(N_i\ge n) = \frac{\epsilon_i}{1-\epsilon_i}<+\infty \] |\mathversion{bold}|\mathversion{bold} \[ \mathbb{E}_i(N_i) = \sum_{n\ge1} P_i(N_i\ge n) = \frac{\epsilon_i}{1-\epsilon_i}<+\infty \] |\mathversion{sans}|\mathversion{sans} \[ \mathbb{E}_i(N_i) = \sum_{n\ge1} P_i(N_i\ge n) = \frac{\epsilon_i}{1-\epsilon_i}<+\infty \] Noter que la commande |\boldmath| peut également être utilisée sans avoir à définir |\mathversion{bold}| : |{\boldmath $E=mc^2$}| produit {\boldmath $E=mc^2$}. \end{document} %%% Local Variables: %%% mode: latex %%% TeX-engine: luatex %%% TeX-master: t %%% coding: utf-8 %%% End: