Avec PDFLaTeX, j'utilise le préambule suivant pour avoir la police KP-Fonts, sauf pour la famille monospace faite en LatinModern. J'ai accès à des petites capitales penchées en monospace. ECM1 :
1
2
3
4
5
6
7
8
9
% !TeX TS-program = pdflatex
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{kpfonts}
\renewcommand{\ttdefault}{lmtt}
\begin{document}
En slanted: \textsl{test \textsc{testsc \texttt{testsctt}}}
Avec LuaLaTeX, j'ai le préambule suivant qui, je le pensais, faisait la même chose (à part qu'il utilise NewComputerModern au lieu de LatinModern). Sauf qu'il ne trouve pas de petites capitales penchées en monospace. ECM2 :
1
2
3
4
5
6
7
% !TeX TS-program = lualatex
\documentclass{article}
\usepackage{kpfonts-otf}
\setmonofont{NewCMMono10-Regular}
\begin{document}
En slanted: \textsl{test \textsc{testsc \texttt{testsctt}}}
J'en conclus que le \setmonofont{NewCMMono10-Regular} ne charge pas tout ce que je pensais :-(
Question 1 : que changer à mon ECM2 pour obtenir la police monospace de NewComputerModern avec des petites caps penchées ?
Question 2 (bonus!) : existe-t-il, pour chaque fonte, un recueil de tous les arguments que l'on peut mettre dans un setmainfont/setmonofont/ etc.? Dans la documentation de NewComputerModern, je n'ai pas trouvé :-( ; j'ai aussi parcouru les documents de Daniel Flipo (@dflipo : très utiles !) mais il n'y a que le nom des fontes, et non toutes leurs déclinaisons (ce qui m'a déjà bien aidé).
Edit (réponse) : j'utilise le mix ci-dessous des deux réponses proposées (je ne crée pas localement le fichier .fontspec car je travaille sur plusieurs ordinateurs différents ce qui complique la synchronisation) :
je m'attendais à ce qu'écrire \setmonofont{nom} charge la famille mono de nom avec toutes ses options par défaut : y a-t-il un intérêt à que ce ne soit pas le cas ?
le README du package newcomputermodern indique un chargement par \usepackage{newcomputermodern} ou par :
Pourquoi ça marche ? on charge d'abordnewcomputermodern (en fait fspdefault.tex) qui inclut toutes les définitions nécessaires, en particulier celles décrites par @samcarter pour la fonte mono,
et ensuite on charge kpfonts-otfsauf les fontes mono, ce qui redéfinit les polices Serif et Sans et Math.
Un commande brute \setmonofont{NewCMMono10-Book} suffirait si la fonte NewCMMono10-Book était accompagnée d'un fichier NewCMMono10-Book.fontspec qui contiendrait les options adéquates :
Certaines polices sont accompagnées d'un tel fichier (Erewhon, XCharter, …), d'autres pas comme NewComputerModern, ce qui aboutit à des comportements différents selon les polices.
Rien n'empêche de créer un tel fichier et de le placer dans le répertoire courant (ou dans $TEXMFHOME ou $TEXMFLOCAL pour un usage global), ensuite l'ECM2 fonctionnera correctement. Cette solution me paraît préférable car elle évite de charger une fois pour rien les polices Serif, Sans et Math de NewComputerModern. Ajouter l'option nott lors du chargement de kpfonts-otf éviterait de charger la police mono deux fois.
Professeurs de mathématiques dans le secondaire, connaissez-vous le package ProfCollege de Christophe Poulain ? Il est aussi utile que bien documenté !