\RequirePackage{pdfmanagement-testphase} \DeclareDocumentMetadata{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[longs]{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.43} \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 cinq polices mathématiques \family{KpMath-Regular}, \family{KpMath-Bold}, \family{KpMath-Light}, \family{KpMath-Semibold} et \family{KpMath-Sans}. Les familles \family{KpRoman} et \family{KpSans} ont de vraies petites capitales en deux tailles (\textpsc{normale} et \textlsc{grande}), des chiffres elzéviriens ({\addfontfeatures{Numbers=Lowercase} 0123456789}) et offrent des ligatures anciennes comme {\addfontfeatures{Ligatures=Rare} ct, st} et le {\addfontfeatures{Style=Swash}Q} long. Les chiffres et lettres supérieures et inférieures ont été ajoutées aux polices OpenType pour les appels de notes et les abréviations M\up{me} 1\ier, etc. Les 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} ainsi que \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 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[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[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 « {\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. Avec LuaTeX, 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). \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[bbsans :] dans tous les cas, la commande |\mathbb| produit du sans-serif : \mathversion{full} $\mathbb{C}$, $\mathbb{K}$, $\mathbb{N}$, $\mathbb{Q}$, $\mathbb{R}$, $\mathbb{Z}$, à comparer à \mathversion{base} $\mathbb{C}$, $\mathbb{K}$, $\mathbb{N}$, $\mathbb{Q}$, $\mathbb{R}$, $\mathbb{Z}$. %\item[mathcal :] cette option modifie l’effet des commandes % |\mathcal| et |\mathscr|, elles produisent toutes les deux % \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. \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 |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}). \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. Les commandes |\setmonofont{KpMono}|, |\setsansfont{KpSans}| et |\setmainfont{KpRoman}| fonctionnent parce que la distribution Kp-fonts est fournie avec des fichiers \file{KpMono.fontspec}, \file{KpSans.fontspec} et \file{KpRoman.fontspec}. 2. Noter le |+| après |\defaultfontfeatures| : les options sont \emph{ajoutées} au options par défaut. 3. On peut regrouper des options : |Ligatures={Rare,Historic}| (avec accolades) équivaut aux deux options |Ligatures=Rare| et |Ligatures=Historic|. 4. Il est possible de modifier une option \emph{localement}, ainsi pour afficher les chiffres elzéviriens {\addfontfeatures{Numbers=Lowercase} 1234576890} alors que l’option globale est |Numbers=Lining|, on utilise la commande |\addfontfeatures| dans un groupe : \begin{verbatim} {\addfontfeatures{Numbers=Lowercase}1234576890} \end{verbatim} 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{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 \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}|}|. 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 : \mathversion{base} \[ \mathbb{E}_i(N_i) = \sum_{n\ge1} P_i(N_i\ge n) = \frac{\epsilon_i}{1-\epsilon_i}<+\infty \] |\mathversion{bold}|\mathversion{bold} \[ \mathbb{E}_i(N_i) = \sum_{n\ge1} P_i(N_i\ge n) = \frac{\epsilon_i}{1-\epsilon_i}<+\infty \] |\mathversion{sans}|\mathversion{sans} \[ \mathbb{E}_i(N_i) = \sum_{n\ge1} P_i(N_i\ge n) = \frac{\epsilon_i}{1-\epsilon_i}<+\infty \] \end{document} %%% Local Variables: %%% mode: latex %%% TeX-engine: luatex %%% TeX-master: t %%% coding: utf-8 %%% End: