Spécifier une fonte dans un environnement

Bonjour à toutes et à tous,

Depuis que j’utilise LuaLaTex, il m’arrive de jouer avec des super familles de fontes et notamment IBM Plex, que je trouve très élégante (et très complète).

Dans cette super famille, il existe des fontes Sans et SansCondensed mais également une fonte Serif que je voudrais utiliser uniquement dans un environnement… j’ai résumé la chose dans le fichier joint.

Vous verrez que j’ai spécifié \sffamily \slshape dans l’environnement mais je suis bien conscient qu’il faut changer ça si je veux utiliser la fonte IBM Plex Serif dans l’environnement.

Au delà de mon problème spécifique, ma question : comemnt spécifier un changement “local” de fonte dans LuaLaTeX avec fontspec ?

Merci aux bonnes âmes pour leur aide !

François

Bonjour,

Il suffit d’ajouter dans votre préambule :

\renewfontfamily\sffamily{IBM Plex Serif}[AutoFakeSlant=0.2]

Notez qu’on peut généralement utiliser le nom de la fonte pour la famille plutôt que le nom du fichier. De même, vous pouvez vous contenter de \setmainfont{IBM Plex Sans Condensed}, fontspec va retrouver tout seul les variantes de cette (sous-)famille.

J’ai inclus AutoFakeSlant parce que IBM Plex n’a pas de variantes penchées : il faut donc demander au moteur de rendu de l’émuler. Personnellement, j’opterais plutôt pour la jolie italique incluse dans la fonte, mais comme dirait le pape, chi sono per giudicare ?

Bonne soirée,

Bastien

Le Thursday 16 November 2023 à 03:54:06PM, François Druel a écrit :

Bonjour à toutes et à tous,

Depuis que j’utilise LuaLaTex, il m’arrive de jouer avec des super familles de
fontes et notamment IBM Plex, que je trouve très élégante (et très complète).

Dans cette super famille, il existe des fontes Sans et SansCondensed mais
également une fonte Serif que je voudrais utiliser uniquement dans un
environnement… j’ai résumé la chose dans le fichier joint.

Vous verrez que j’ai spécifié \sffamily \slshape dans l’environnement mais je
suis bien conscient qu’il faut changer ça si je veux utiliser la fonte IBM Plex
Serif dans l’environnement.

Au delà de mon problème spécifique, ma question : comemnt spécifier un
changement “local” de fonte dans LuaLaTeX avec fontspec ?

Merci aux bonnes âmes pour leur aide !

François

\documentclass[10pt,french]{scrartcl}

\usepackage{fontspec}

\setmainfont[
BoldFont={IBMPlexSansCondensed-SemiBold.otf},
ItalicFont={IBMPlexSansCondensed-Italic.otf},
BoldItalicFont={IBMPlexSansCondensed-SemiBoldItalic.otf}
]{IBMPlexSansCondensed-Regular.otf}

\setsansfont[
BoldFont={IBMPlexSans-SemiBold.otf},
ItalicFont={IBMPlexSans-Italic.otf},
BoldItalicFont={IBMPlexSans-SemiBoldItalic.otf}
]{IBMPlexSans-Text.otf}

\setmonofont[
BoldFont={IBMPlexMono-SemiBold.otf},
ItalicFont={IBMPlexMono-TextItalic.otf},
BoldItalicFont={IBMPlexMono-SemiBoldItalic.otf}
]{IBMPlexMono-Regular.otf}

\usepackage{lipsum}

\KOMAoptions{DIV=classic} % calc ou bien classic
\usepackage{babel}

\newenvironment{scite}%
{\begin{quote} \sffamily \slshape}%
{\end{quote}}%

\title{Essais de fontes}
\subtitle{Comment g??rer une fonte \emph{locale} ?}
\date{Hiver 6023}
\author{le roi des N00bs}

\begin{document}
\maketitle

\section{Du texte}

Essai ?? compiler avec LuaLaTeX… il faut installer la superfamille IBM Plex pour compiler cet essai mais on peut utiliser toute famille de fonte, ??a ne changera pas le probl??me : comment utiliser une fonte sp??cifique ?? un environnement.

\lipsum[1-2]

\begin{scite}
Ici je voudrais que le texte utilise la fonte IBM Plex Serif
\end{scite}

\lipsum[3-4]

Merci de votre aide !

\end{document}

Le 16 nov. 2023 à 16:54, François Druel xyz@xyz.tld a écrit :

Bonjour à toutes et à tous,

Depuis que j’utilise LuaLaTex, il m’arrive de jouer avec des super familles de fontes et notamment IBM Plex, que je trouve très élégante (et très complète).

Dans cette super famille, il existe des fontes Sans et SansCondensed mais également une fonte Serif que je voudrais utiliser uniquement dans un environnement… j’ai résumé la chose dans le fichier joint.

Vous verrez que j’ai spécifié \sffamily \slshape dans l’environnement mais je suis bien conscient qu’il faut changer ça si je veux utiliser la fonte IBM Plex Serif dans l’environnement.

Au delà de mon problème spécifique, ma question : comemnt spécifier un changement « local » de fonte dans LuaLaTeX avec fontspec ?

\fontspec{Nom de la police de caractère}
{
Texte
}

Merci aux bonnes âmes pour leur aide !

François
<2023-11-16_essais-fontes.tex>\tiny \g{Si vous ne l’avez pas encore fait, dans un premier temps, \st{v}[!!n!!]ous vous invitons à aller à la rencontre de votre voisin afin d’essayer de régler vos différends à l’amiable.}}

Bonsoir,

Pardon de mettre mon grain de sel tardivement…

Au delà de mon problème spécifique, ma question : comemnt spécifier un
changement “local” de fonte dans LuaLaTeX avec fontspec ?

Si l’environnement scite doit être utilisé à plusieurs reprises,
l’utilisation de la commande \fontspec n’est pas recommandée car elle
recharge la police à chaque fois, la doc de fontspec dit ceci :

« The plain \fontspec command is not generally recommended for document
use. It is an ad hoc command best suited for testing and loading fonts
on a one-off basis. »

Pour moi, il n’y a aucun problème pour changer localement de fonte ou
alors je n’ai pas compris la question…

Exemple :
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[10pt,french]{scrartcl}
\usepackage{fontspec}

\setmainfont[
BoldFont={IBMPlexSansCondensed-SemiBold.otf},
ItalicFont={IBMPlexSansCondensed-Italic.otf},
BoldItalicFont={IBMPlexSansCondensed-SemiBoldItalic.otf}
]{IBMPlexSansCondensed-Regular.otf}

\setsansfont[
BoldFont={IBMPlexSans-SemiBold.otf},
ItalicFont={IBMPlexSans-Italic.otf},
BoldItalicFont={IBMPlexSans-SemiBoldItalic.otf}
]{IBMPlexSans-Text.otf}

\setmonofont[
BoldFont={IBMPlexMono-SemiBold.otf},
ItalicFont={IBMPlexMono-TextItalic.otf},
BoldItalicFont={IBMPlexMono-SemiBoldItalic.otf}
]{IBMPlexMono-Regular.otf}

\usepackage{lipsum}

\usepackage{babel}

\newfontfamily{\mafonte}{IBMPlexSerif}
[Extension = .otf,
UprightFont= *-Medium,
BoldFont= *-Bold,
BoldItalicFont= *-BoldItalic,
ItalicFont= *-MediumItalic,
SlantedFont= *-Medium,
SlantedFeatures = {FakeSlant=0.2},
]
\newenvironment{scite}%
{\begin{quote} \mafonte}%
{\end{quote}}%

\begin{document}
\showoutput % Pour voir dans le .log quelles fontes sont utilisées
Essai à compiler avec LuaLaTeX…

\begin{scite} Une citation, \textsl{penché}, \textit{italique}
\textbf{gras} ou \textbf{\textit{gras italique}}.
\end{scite}

{\sffamily Du texte sans pas condensé}

Retour à la police de base.
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


Daniel Flipo

-------- Message d’origine --------
Le 16 nov. 2023, 18:32, MFerrer < xyz@xyz.tld> a écrit :

Le 16 nov. 2023 à 16:54, François Druel xyz@xyz.tld a écrit :

Bonjour à toutes et à tous,

Depuis que j’utilise LuaLaTex, il m’arrive de jouer avec des super familles de fontes et notamment IBM Plex, que je trouve très élégante (et très complète).

Dans cette super famille, il existe des fontes Sans et SansCondensed mais également une fonte Serif que je voudrais utiliser uniquement dans un environnement… j’ai résumé la chose dans le fichier joint.

Vous verrez que j’ai spécifié \sffamily \slshape dans l’environnement mais je suis bien conscient qu’il faut changer ça si je veux utiliser la fonte IBM Plex Serif dans l’environnement.

Au delà de mon problème spécifique, ma question : comemnt spécifier un changement « local » de fonte dans LuaLaTeX avec fontspec ?

\fontspec{Nom de la police de caractère}
{
Texte
}

Bonsoir et merci beaucoup Bernard,

On y est… presque !

En effet lma commande que vous proposez fonctionne mais je souhaiterais la limiter à l’environnement que j’ai créé… et même si je sens que je touche au but, je n’y suis pas encore. Voici ce que je fais, à insérer dans le doc de test déjà fourni :

\newenvironment{scite}%
{\fontspec{IBM Plex Serif}{
{\begin{quote}}%
{\end{quote}}
}}

Qu’en pensez-vous ?

François

Merci aux bonnes âmes pour leur aide !

François
<2023-11-16_essais-fontes.tex>\tiny \g{Si vous ne l’avez pas encore fait, dans un premier temps, \st{v}[!!n!!]ous vous invitons à aller à la rencontre de votre voisin afin d’essayer de régler vos différends à l’amiable.}}

En chemin vers la journée GUTenberg,

Bonjour et merci Daniel pour cette solution que je viens de tester et qui fonctionne bien.

Bien sûr, j’ai voulu tester avec d’autres fontes et je crois que je vois comment je peux adapter cette approche

Bien cordialement,
François

-------- Message d’origine --------
Le 17 nov. 2023, 18:27, Daniel Flipo a écrit :

Bonsoir, Pardon de mettre mon grain de sel tardivement… > Au delà de mon problème spécifique, ma question : comemnt spécifier un > changement “local” de fonte dans LuaLaTeX avec fontspec ? Si l’environnement scite doit être utilisé à plusieurs reprises, l’utilisation de la commande \fontspec n’est pas recommandée car elle recharge la police à chaque fois, la doc de fontspec dit ceci : « The plain \fontspec command is not generally recommended for document use. It is an ad hoc command best suited for testing and loading fonts on a one-off basis. » Pour moi, il n’y a aucun problème pour changer localement de fonte ou alors je n’ai pas compris la question… Exemple : %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[10pt,french]{scrartcl} \usepackage{fontspec} \setmainfont[ BoldFont={IBMPlexSansCondensed-SemiBold.otf}, ItalicFont={IBMPlexSansCondensed-Italic.otf}, BoldItalicFont={IBMPlexSansCondensed-SemiBoldItalic.otf} ]{IBMPlexSansCondensed-Regular.otf} \setsansfont[ BoldFont={IBMPlexSans-SemiBold.otf}, ItalicFont={IBMPlexSans-Italic.otf}, BoldItalicFont={IBMPlexSans-SemiBoldItalic.otf} ]{IBMPlexSans-Text.otf} \setmonofont[ BoldFont={IBMPlexMono-SemiBold.otf}, ItalicFont={IBMPlexMono-TextItalic.otf}, BoldItalicFont={IBMPlexMono-SemiBoldItalic.otf} ]{IBMPlexMono-Regular.otf} \usepackage{lipsum} \usepackage{babel} \newfontfamily{\mafonte}{IBMPlexSerif} [Extension = .otf, UprightFont= *-Medium, BoldFont= *-Bold, BoldItalicFont= *-BoldItalic, ItalicFont= *-MediumItalic, SlantedFont= *-Medium, SlantedFeatures = {FakeSlant=0.2}, ] \newenvironment{scite}% {\begin{quote} \mafonte}% {\end{quote}}% \begin{document} \showoutput % Pour voir dans le .log quelles fontes sont utilisées Essai à compiler avec LuaLaTeX… \begin{scite} Une citation, \textsl{penché}, \textit{italique} \textbf{gras} ou \textbf{\textit{gras italique}}. \end{scite} {\sffamily Du texte sans pas condensé} Retour à la police de base. \end{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% – Daniel Flipo

Le vendredi 17 novembre 2023 à 18:27, Daniel Flipo xyz@xyz.tld a écrit :

Bonsoir,

Pardon de mettre mon grain de sel tardivement…

Au delà de mon problème spécifique, ma question : comemnt spécifier un
changement “local” de fonte dans LuaLaTeX avec fontspec ?

Si l’environnement scite doit être utilisé à plusieurs reprises,
l’utilisation de la commande \fontspec n’est pas recommandée car elle
recharge la police à chaque fois, la doc de fontspec dit ceci :

« The plain \fontspec command is not generally recommended for document
use. It is an ad hoc command best suited for testing and loading fonts
on a one-off basis. »

Pour moi, il n’y a aucun problème pour changer localement de fonte ou
alors je n’ai pas compris la question…

Exemple :
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[10pt,french]{scrartcl}
\usepackage{fontspec}

\setmainfont[
BoldFont={IBMPlexSansCondensed-SemiBold.otf},
ItalicFont={IBMPlexSansCondensed-Italic.otf},
BoldItalicFont={IBMPlexSansCondensed-SemiBoldItalic.otf}
]{IBMPlexSansCondensed-Regular.otf}

\setsansfont[
BoldFont={IBMPlexSans-SemiBold.otf},
ItalicFont={IBMPlexSans-Italic.otf},
BoldItalicFont={IBMPlexSans-SemiBoldItalic.otf}
]{IBMPlexSans-Text.otf}

\setmonofont[
BoldFont={IBMPlexMono-SemiBold.otf},
ItalicFont={IBMPlexMono-TextItalic.otf},
BoldItalicFont={IBMPlexMono-SemiBoldItalic.otf}
]{IBMPlexMono-Regular.otf}

\usepackage{lipsum}

\usepackage{babel}

\newfontfamily{\mafonte}{IBMPlexSerif}
[Extension = .otf,
UprightFont= *-Medium,
BoldFont= *-Bold,
BoldItalicFont= *-BoldItalic,
ItalicFont= *-MediumItalic,
SlantedFont= *-Medium,
SlantedFeatures = {FakeSlant=0.2},
]
\newenvironment{scite}%
{\begin{quote} \mafonte}%
{\end{quote}}%

\begin{document}
\showoutput % Pour voir dans le .log quelles fontes sont utilisées
Essai à compiler avec LuaLaTeX…

\begin{scite} Une citation, \textsl{penché}, \textit{italique}
\textbf{gras} ou \textbf{\textit{gras italique}}.
\end{scite}

{\sffamily Du texte sans pas condensé}

Retour à la police de base.
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


Daniel Flipo

Merci encore Daniel pour votre aide précieuse !

Comme j’avais un peu de temps ce soir, j’ai même fait une variante qui utilise le package tcolorbox. Cela me permet de varier les plaisirs ! Voici ce que j’ai fait et que je me permets de partager :

\usepackage{tcolorbox}
\newfontfamily{\mafonte}{IBMPlexSerif}
[Extension = .otf,
UprightFont= *-Medium,
BoldFont= *-Bold,
BoldItalicFont= *-BoldItalic,
ItalicFont= *-MediumItalic,
SlantedFont= *-Medium,
SlantedFeatures = {FakeSlant=0.2},
]
\newenvironment{scite}%
{\begin{tcolorbox}[sharp corners] \parskip 3pt \mafonte}%
{\end{tcolorbox}}%

À inséser dans l’exemple déjà donné

Bien cordialement
François

Bonjour

Il y a un problème dans la définition de votre environnement scite.

Il faudrait écrire simplement :

\newenvironment{scite}%
{\fontspec{IBM Plex Serif}%
\begin{quote}}%
{\end{quote}}

et, ainsi, il me semble que cela marche…

François

Bonjour et merci François,

Je vous confirme que votre proposition fonctionne !

Je vous remercie pour cette solution qui va me permettre de finaliser un beau document.

Bien cordialement,
François