Je compose un texte dans une fonte qui ne possède pas de caractères grecs.
Du coup, j'utilise Noto, qui en propose, en faisant : {\fontspec{Noto Sans Medium}\char"03B5}-\TeX{} (oui, il s'agit de composer « e-TeX »). Tout ça fonctionne parfaitement.
Mais j'indique dans une note en bas de page (je ne sais si c'est important, mais suite à une réponse, je le spécifie à présent) comment j'ai fait pour composer cet epsilon, en utilisant le package listings, que j'utilise auparavant dans ce document sans rencontrer le moindre problème :
1
\footnote{J'ai composé {\fontspec{Noto Sans Medium}\char"03B5}-\TeX{} en écrivant \lstinline+{\fontspec{Noto Sans Medium}\char"03B5}-\TeX{}+.}
Ça ne compile pas ! J'ai changé les caractères actifs de la commande \lstinline, par exemple en faisant \lstinline|{\fontspec{Noto Sans Medium}\char"03B5}-\TeX{}|, sans succès.
Du coup, j'ai ajouté \lstDeleteShortInline" avant la commande \lstinline :
1
\footnote{J'ai composé {\fontspec{Noto Sans Medium}\char"03B5}-\TeX{} en écrivant \lstDeleteShortInline"\lstinline+{\fontspec{Noto Sans Medium}\char"03B5}-\TeX{}+.}
Un ECM aurait été le bienvenu ;) Je ne pense pas que, dans tes exemples, + ou | puissent être qualifiés de caractères actifs. C'est si on recourt à \lstMakeShortInline+ que + en devient un car, alors +...+ se comporte comme \lstinline+...+. J'avais suggéré \lstDeleteShortInline" au cas où un \lstMakeShortInline" ait précédé, ce qui aurait fait échouer \lstinline+..."...+.
De manière générale, l'insertion de fragments de code (commande \lstinline) et de codes (environnement lstlisting ou commande \lstinputlisting) en argument d'une autre commande (par exemple \footnote) nécessite quelques précautions, parmi lesquelles la nécessité de mettre un \ supplémentaire devant chaque \, {, } et %. Je suis surpris que cela ajoute des sauts de ligne intempestifs.
Ceci étant, l'obtention de « ε-TeX » peut être simplifiée de deux façons :
en saisissant directement le caractère ε (mais, pour une raison qui m'échappe, on ne peut l'utiliser en argument de \lstinline en argument de \footnote : cf. ...) ;
en recourant au package hologo.
ainsi que le montre l'exemple suivant (qui nécessite une compilation Xe- ou Lua- LaTeX).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
\documentclass{article}
\usepackage{fontspec}
\usepackage{hologo}
\usepackage{listings}
\lstset{basicstyle=\ttfamily}
\begin{document}
{\fontspec{Noto Sans Medium}\char"03B5}-\TeX{}\footnote{J'ai composé
{\fontspec{Noto Sans Medium}\char"03B5}-\TeX{} en écrivant
\lstinline+\{\\fontspec\{Noto Sans Medium\}\\char"03B5\}-\\TeX\{\}+.}
{\fontspec{Noto Sans Medium}ε}-\TeX{}\footnote{J'ai composé
{\fontspec{Noto Sans Medium}ε}-\TeX{} en écrivant
\lstinline+\{\\fontspec\{Noto Sans Medium\}...\}-\\TeX\{\}+.}
\lstinline+{\fontspec{Noto Sans Medium}ε}-\TeX{}+
\hologo{eTeX}\footnote{J'ai composé \hologo{eTeX} en écrivant
Malheureusement, il s'agissait pour moi de composer « ε-TeX » dans une fonte ne disposant pas du signe « « ε » : impossible d'utiliser hologo, d'où le choix de la fonte Noto Sans Medium, qui en dispose. D'où la note en bas de page pour expliquer le pourquoi et le comment du changement de fonte.
Le fait que cette commande \lstinline soit utilisée dans une commande \footnotechange tout, selon @denis qui me répond par SMS depuis son téléphone. Il te faut mettre un \ supplémentaire devant chaque \, {, et }, précise-t-il. Et il a raison : ça fonctionne !
Bon, ça ajoute des sauts de ligne intempestifs. Mais il me précise également : Pour en savoir plus, cherche footnote dans la documentation de listings. Ah ben ça, pour chercher, je cherche. Trouver, c'est une autre histoire. ☹️
Professeurs de mathématiques dans le secondaire, connaissez-vous le package ProfCollege de Christophe Poulain ? Il est aussi utile que bien documenté !
Un ECM aurait été le bienvenu ;) Je ne pense pas que, dans tes exemples,
+
ou|
puissent être qualifiés de caractères actifs. C'est si on recourt à\lstMakeShortInline+
que+
en devient un car, alors+...+
se comporte comme\lstinline+...+
. J'avais suggéré\lstDeleteShortInline"
au cas où un\lstMakeShortInline"
ait précédé, ce qui aurait fait échouer\lstinline+..."...+
.