[Lualatex] \mathchardef

Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex.
[participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 525
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

[Lualatex] \mathchardef

Message non lu par zariski63 »

Bonsoir,

j'ai un soucis. Je n'obtiens pas ce que je voudrais avec \mathchardef (cf fichier) via une compilation "lualatex", ni même via une compilation "pdflatex".
essais2.pdf
(9.94 Kio) Téléchargé 176 fois
Une idée svp ? Je vous en serais très reconnaissant.

Code : Tout sélectionner

\documentclass[12pt]{article}
%\usepackage[utf8]{inputenc}
%\usepackage[T1]{fontenc}

\usepackage[bold-style=ISO,
            %math-style=french
             ]{fourier-otf}
             
\begin{document}

\mathchardef\foo=8721 %"2211

Si \verb!\mathchardef\foo=8721!  \; où 8721 vaut 2211 en base 16

alors :

En mode math  \verb"($\foo$)" donne :  ($\foo$) alors que j'attends ($\Sigma$).

\end{document}
un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 995
Inscription : vendredi 12 juin 2009, 22:35
Statut actuel : Enseignant
Localisation : Chambéry
Contact :

Re: [Lualatex] \mathchardef

Message non lu par un bon petit »

Écrire $\char\foo$ et non pas $\foo$.

Ou mieux pour définir \foo :

Code : Tout sélectionner

\let\foo=Σ 
et par la suite $\foo$.
Programmer en TeX, TeXpérimental
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 525
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: [Lualatex] \mathchardef

Message non lu par zariski63 »

D'accord !
En fait c'est un exemple tiré du livre "apprendre à programmer en Tex" ...
un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 995
Inscription : vendredi 12 juin 2009, 22:35
Statut actuel : Enseignant
Localisation : Chambéry
Contact :

Re: [Lualatex] \mathchardef

Message non lu par un bon petit »

zariski63 a écrit : mardi 09 février 2021, 12:45 En fait c est un exemple tiré du livre "apprendre à programmer en Tex" ...
Exemple qui compile parfaitement avec pdflatex (à l'exception du glyphe | qui est mal rendu à cause du codage de fonte part défaut), xelatex ou lualatex :

Code : Tout sélectionner

\documentclass{article}
\begin{document}
\mathchardef\foo4944
a) |$\foo$|\qquad
b) |\number\foo|
\end{document}
Le rendu avec lualatex est le suivant :
Screenshot_20210209_172026.png
Screenshot_20210209_172026.png (3.75 Kio) Consulté 1349 fois
Programmer en TeX, TeXpérimental
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 525
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: [Lualatex] \mathchardef

Message non lu par zariski63 »

En effet sous pdflatex ça marche.
un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 995
Inscription : vendredi 12 juin 2009, 22:35
Statut actuel : Enseignant
Localisation : Chambéry
Contact :

Re: [Lualatex] \mathchardef

Message non lu par un bon petit »

zariski63 a écrit : mardi 09 février 2021, 21:18 En effet sous pdflatex ça marche.
Sous luaLaTeX et XeLaTeX, ça fonctionne aussi !
Programmer en TeX, TeXpérimental
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 525
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: [Lualatex] \mathchardef

Message non lu par zariski63 »

Pas chez moi, à la place du symbole "somme' j'ai la lettre majuscule "P" (sous LuaLatex) ...
un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 995
Inscription : vendredi 12 juin 2009, 22:35
Statut actuel : Enseignant
Localisation : Chambéry
Contact :

Re: [Lualatex] \mathchardef

Message non lu par un bon petit »

zariski63 a écrit : jeudi 11 février 2021, 09:27 Pas chez moi, à la place du symbole "somme' j'ai la lettre majuscule "P" (sous LuaLatex) ...
Bien, on va arrêter le jeu du « ça marche pas », car vous ne donnez aucune indication qui permette de comprendre ce qui dysfonctionne chez vous.

Il est plus intéressant de connaître le « pourquoi » de votre manœuvre. Si vous voulez rendre une séquence de contrôle \let égale à \sum ou à \Sigma (pour quelle raison d'ailleurs ?), et bien, vous faites \let\foo=\sum ou \let\foo=\Sigma et voilà ! Si vous cherchez autre chose, il faudrait expliquer...

Cet ECM compile parfaitement sous luaLaTeX avec une TeXlive à jour :

Code : Tout sélectionner

\documentclass{article}
\begin{document}
\let\foo=\Sigma
Essai 1 : $\foo$

\let\foo=Σ
Essai 2 : \foo

\mathchardef\foo4944
Essai 3 : $\foo$

\let\foo=\sum
Essai 4 : $\foo$
\end{document}
Le rendu est le suivant :
Screenshot_20210211_105322.png
Screenshot_20210211_105322.png (5.08 Kio) Consulté 1290 fois
Programmer en TeX, TeXpérimental
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 525
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: [Lualatex] \mathchardef

Message non lu par zariski63 »

En fait je travaille le bouquin cité plus haut et donc je teste les exemples mais comme j'utilise "lualatex" j'ai constaté que l'essai 3 ne fonctionne pas. Aussi étant curieux je voulais savoir pourquoi ce disfonctionnement chez moi.
un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 995
Inscription : vendredi 12 juin 2009, 22:35
Statut actuel : Enseignant
Localisation : Chambéry
Contact :

Re: [Lualatex] \mathchardef

Message non lu par un bon petit »

zariski63 a écrit : jeudi 11 février 2021, 11:32 En fait je travaille le bouquin cité plus haut et donc je teste les exemples mais comme j'utilise "lualatex" j'ai constaté que l'essai 3 ne fonctionne pas.
Ne fonctionne pas chez vous.

Ceci dit, luatex et xetex étant des moteurs UTF8, il y a quand même des différences importantes par rapports aux moteurs 8bits (pdftex, par exemple).

Avec un moteur UTF8, on peut définir des macros dont le nom contient des lettres accentuées. On peut également définir des \chardef supérieurs à 255. Cet ECM ne compile qu'avec XeLaTeX et luaLaTeX et échoue en pfdLaTeX :

Code : Tout sélectionner

\documentclass{article}
\begin{document}
\chardef\foo=8364
\foo

\def\Été{Le contraire de l'hiver}
\meaning\Été
\end{document}
Le comportement même de TeX vis à vis des tokens change puisque la notion de token pour un moteur UTF8 diffère de celle des moteurs 8 bits. Cet CEM compile avec tous les moteurs, mais ne donne le résultat attendu qu'avec les moteurs UTF8.

Code : Tout sélectionner

\documentclass{article}
\def\firsttok#1{\firsttoki#1\firsttoki}
\def\firsttoki#1#2\firsttoki{%
	token = \fbox{\string#1},
	n° caractère = \expandafter\number\expandafter`\string#1\relax}
\begin{document}
\firsttok{été}

\firsttok{€}
\end{document}
Programmer en TeX, TeXpérimental
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 525
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: [Lualatex] \mathchardef

Message non lu par zariski63 »

Bonjour !
Ayant trouvé du temps pour me pencher sur ce problème, effectivement j'avais oublié que j'utilisais : \usepackage{fourier-otf}

et donc avec cet ecm je n'obtiens pas le signe somme mais la lettre P :

Code : Tout sélectionner

\documentclass[12pt]{article}
\usepackage{fourier-otf}

\begin{document}
\mathchardef\foo4944
a. |$\foo$|        

b. |\number\foo| 
\end{document}
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message