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 :

\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 :

\footnote{J'ai composé {\fontspec{Noto Sans Medium}\char"03B5}-\TeX{} en écrivant \lstDeleteShortInline"\lstinline+{\fontspec{Noto Sans Medium}\char"03B5}-\TeX{}+.}

... et j'ai obtenu un splendide ! Package Listings Error: " is not a short reference for \lstinline. Je ne comprends pas ce qui se passe.

Posée 30 Avr '22, 12:22

Pathe's gravatar image

Pathe ♦♦
7.5k42204251
Taux d'acceptation : 55%

Modifiée 30 Avr '22, 16:39

1

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+..."...+.

(01 Mai '22, 14:22) denis ♦♦ denis's gravatar image

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 :

  1. 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. ...) ;
  2. en recourant au package hologo.

ainsi que le montre l'exemple suivant (qui nécessite une compilation Xe- ou Lua- LaTeX).

\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
  \lstinline+\\hologo\{eTeX\}+.}
\end{document}
Lien permanent

Publiée 01 Mai '22, 14:41

denis's gravatar image

denis ♦♦
7.3k1510
Taux d'acceptation : 53%

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.

(04 Mai '22, 08:02) Pathe ♦♦ Pathe's gravatar image

Je n’ai pas d’explication, mais est-ce qu’utiliser simplement \verb suffirait ?

\verb+{\fontspec{Noto Sans Medium}\char"03B5}-\TeX{}+

Lien permanent

Publiée 30 Avr '22, 15:50

zkpr9IRn5CrI's gravatar image

zkpr9IRn5CrI
211
Taux d'acceptation : 0%

2

J'obtiens hélas ceci :

! Missing } inserted.
<inserted text> 
}
l.928 ...oto Sans Medium}\char"03B5}-\hologo{TeX}+.}

Je précise que cette phrase figure dans une note en bas de page : je modifie ma question en le précisant.

(30 Avr '22, 16:36) Pathe ♦♦ Pathe's gravatar image

Dans de telles circonstances (court fragment), on peut échapper les symboles à la main et éviter les solutions compliquées:

\textsf{\textbackslash{}fontspec\{Noto Sans Medium\}\textbackslash{}char"03B5\}-\textbackslash{}TeX\{\}}

(02 Mai '22, 13:24) zkpr9IRn5CrI zkpr9IRn5CrI's gravatar image

Le fait que cette commande \lstinline soit utilisée dans une commande \footnote change 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. ☹️

Lien permanent

Publiée 01 Mai '22, 08:30

Pathe's gravatar image

Pathe ♦♦
7.5k42204251
Taux d'acceptation : 55%

Modifiée 01 Mai '22, 14:23

denis's gravatar image

denis ♦♦
7.3k1510

Cf. § 5.1 « Listings inside arguments », p. 49-50 de la documentation.

(01 Mai '22, 14:06) denis ♦♦ denis's gravatar image

Très mauvaise explication dans cette doc, qui manque de pédagogie.

(04 Mai '22, 08:03) Pathe ♦♦ Pathe's gravatar image

je ne vois pas le problème des sauts de ligne ICI !, comme chez moi.

(04 Mai '22, 18:03) touhami touhami's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.