Commençons par une parenthèse concernant l’encodage du fichier,
Comment je peux vérifier ?
Ça va dépendre de ton système d’exploitation et de selon que tu soit plutôt interface graphique ou ligne de commande. Chez moi, aussi bien du Mac à partir duquel je réponds que du Linux où je fais la majorité de mes productions perso, dans un terminal (je travail toujours en CLI)
gilcot $ # soit
gilcot $ file --mime-encoding test.tex
test.tex: utf-8
gilcot $ # soit
gilcot $ file -I test.tex
test.tex: text/x-tex; charset=utf-8
Même si cette commande a des limitation, ça me dit en gros (et pour sûr mais sans plus) si c’est UTF-8/UTF-16/EBCDIC/ISO-8859-x/ASCII.
Tout bon éditeur de texte te permet de savoir l’encodage de ton fichier ou au moins d’en imposer en toute confiance (faut juste faire gaffe quand cela doit convertir). Par exemple, j’utilise Vim
:set fileencoding?
fileencoding=utf-8
Press ENTER or type command to continue
Bon, le problème ne se pose finalement pas ici (tu as résolu l’énigme)
En fait l’espace insécable est supprimée automatiquement lorsque l’on copie du code sur ZdS. En le remettant, j’ai bien le « ǎ ».
Pour poursuivre sur les espaces insécables
Il semblerai que la police utilisée ne gère pas les espaces insécables. Ce qui m’étonne c’est que cela ne semble pas lui poser de problème si j’utilise le ~
.
Le caractère est bien connu, ce qui permet le traitement de ~
Par contre, il peut en effet ne pas être dans la police en cours
(en fait ~
est une commande interne qui au besoin change de police et applique divers traitements)
ou y être mais ne pas être reconnu…
(les modules chargés avant d’utiliser ces caractères disent en fait au moteur de compilation à quel glyphe de quelles polices va correspondre les codes de points rencontrés, et ici la correspondance de U+202F n’est pas définie.)
Bienvenue dans le monde merveilleux de TEX, inventé longtemps avant l’apparition des normes ISO-8859 puis Unicode.
Pour en revenir à faire tomber la chose en marche,
Pour le Ω par contre j’ai un unicode-math-input.sty not found
et je ne le trouve pas dans les dépots.
Je soupçonne que ton installation soit un peu ancienne par rapport à ce module qui est assez jeune (apparu quelque part en 2022 et j’ai de mon côté un TeXLive 2023.)
Une solution serait de l’installer manuellement (et localement) : par chance il ne semble pas avoir de dépendance problématique, mais réservons cela en dernier recours.
Une autre solution est de se tourner vers le module ucs
qui est plus ancien (depuis 2000)
- \usepackage{unicode-math-input}
+ \usepackage{ucs}
Ce n’est pas mieux car l’essentiel des apports de cette extension a été intégré au cœur de LaTeX (et ça coince toujours sur le mode mathématique)
gilcot $ lualetx test.tex
This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)
restricted system commands enabled.
(./test.tex
LaTeX2e <2023-06-01> patch level 1
L3 programming layer <2023-08-11>
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/article.cls
Document Class: article 2023/05/17 v1.4n Standard LaTeX document class
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/size12.clo))
(/usr/local/texlive/2023/texmf-dist/tex/latex/geometry/geometry.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/graphics/keyval.sty)
(/usr/local/texlive/2023/texmf-dist/tex/generic/iftex/ifvtex.sty
(/usr/local/texlive/2023/texmf-dist/tex/generic/iftex/iftex.sty)))
(/usr/local/texlive/2023/texmf-dist/tex/latex/ucs/ucs.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/ucs/data/uni-global.def))
(/usr/local/texlive/2023/texmf-dist/tex/latex/ntheorem/ntheorem.sty
Style `ntheorem', Version 1.33 <2011/08/15>
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/ifthen.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/ntheorem/ntheorem.std
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/latexsym.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsfonts/amssymb.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsfonts/amsfonts.sty))))
(/usr/local/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-luatex.def)
(./test.aux) (/usr/local/texlive/2023/texmf-dist/tex/latex/base/ts1cmr.fd)
*geometry* driver: auto-detecting
*geometry* detected driver: luatex
(/usr/local/texlive/2023/texmf-dist/tex/latex/ucs/ucsencs.def)
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/ulasy.fd)
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsfonts/umsa.fd)
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsfonts/umsb.fd)
Missing character: There is no Ω (U+03A9) in font cmmi12!
[1{/usr/local/texlive/2023/texmf-var/fonts/map/pdftex/updmap/pdftex.map}
Missing character: There is no (U+202F) in font [lmroman12-bold]:+tlig;!
Missing character: There is no (U+202F) in font [lmroman12-bold]:+tlig;!
] (./test.aux))
441 words of node memory still in use:
3 hlist, 1 vlist, 1 rule, 2 glue, 3 kern, 1 glyph, 4 attribute, 55 glue_spec
, 4 attribute_list, 1 write nodes
avail lists: 1:1,2:80,3:38,4:1,5:30,6:10,7:520,8:1,9:36,11:40
</usr/local/texlive/2023/texmf-dist/fonts/opentype/public/lm/lmroman12-italic.o
tf></usr/local/texlive/2023/texmf-dist/fonts/opentype/public/lm/lmroman12-regul
ar.otf></usr/local/texlive/2023/texmf-dist/fonts/opentype/public/lm/lmroman12-b
old.otf></usr/local/texlive/2023/texmf-dist/fonts/type1/public/amsfonts/cm/cmr1
2.pfb>
Output written on test.pdf (1 page, 17571 bytes).
Transcript written on test.log.
Il y a un autre module que l’on peut essayer aussi : commonunicode
- \usepackage{ucs}
+ \usepackage{commonunicode}
Ça fait juste le boulot ici Mais il a la limitation de ne pas reconnaître que des caractères esimés courants.
gilcot $ lualatex test.tex
This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)
restricted system commands enabled.
(./test.tex
LaTeX2e <2023-06-01> patch level 1
L3 programming layer <2023-08-11>
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/article.cls
Document Class: article 2023/05/17 v1.4n Standard LaTeX document class
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/size12.clo))
(/usr/local/texlive/2023/texmf-dist/tex/latex/geometry/geometry.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/graphics/keyval.sty)
(/usr/local/texlive/2023/texmf-dist/tex/generic/iftex/ifvtex.sty
(/usr/local/texlive/2023/texmf-dist/tex/generic/iftex/iftex.sty)))
(/usr/local/texlive/2023/texmf-dist/tex/latex/commonunicode/commonunicode.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsfonts/amsfonts.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsfonts/amssymb.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/jknapltx/mathrsfs.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/mathtools/mathtools.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/tools/calc.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/mathtools/mhsetup.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsmath/amsmath.sty
For additional information on amsmath, use the `?' option.
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsmath/amstext.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsmath/amsgen.sty))
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsmath/amsbsy.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsmath/amsopn.sty)))
(/usr/local/texlive/2023/texmf-dist/tex/latex/stmaryrd/stmaryrd.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/wasysym/wasysym.sty))
(/usr/local/texlive/2023/texmf-dist/tex/latex/ntheorem/ntheorem.sty
Style `ntheorem', Version 1.33 <2011/08/15>
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/ifthen.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/ntheorem/ntheorem.std
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/latexsym.sty)))
(/usr/local/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-luatex.def)
(./test.aux) (/usr/local/texlive/2023/texmf-dist/tex/latex/base/ts1cmr.fd)
*geometry* driver: auto-detecting
*geometry* detected driver: luatex
(/usr/local/texlive/2023/texmf-dist/tex/latex/graphics/graphicx.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/graphics/graphics.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/graphics/trig.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/graphics-cfg/graphics.cfg)
(/usr/local/texlive/2023/texmf-dist/tex/latex/graphics-def/luatex.def
(/usr/local/texlive/2023/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
)))
(/usr/local/texlive/2023/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg)))
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsfonts/umsa.fd)
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsfonts/umsb.fd)
(/usr/local/texlive/2023/texmf-dist/tex/latex/jknapltx/ursfs.fd)
(/usr/local/texlive/2023/texmf-dist/tex/latex/stmaryrd/Ustmry.fd)
(/usr/local/texlive/2023/texmf-dist/tex/latex/wasysym/uwasy.fd)
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/ulasy.fd) [1{/usr/local/texl
ive/2023/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./test.aux))
529 words of node memory still in use:
6 hlist, 2 vlist, 2 rule, 2 glue, 4 kern, 1 glyph, 6 attribute, 61 glue_spec
, 6 attribute_list, 1 write nodes
avail lists: 1:1,2:94,3:38,4:1,5:36,6:10,7:522,8:1,9:42,11:40
</usr/local/texlive/2023/texmf-dist/fonts/opentype/public/lm/lmroman12-italic.o
tf></usr/local/texlive/2023/texmf-dist/fonts/opentype/public/lm/lmroman12-regul
ar.otf></usr/local/texlive/2023/texmf-dist/fonts/opentype/public/lm/lmroman12-b
old.otf></usr/local/texlive/2023/texmf-dist/fonts/type1/public/amsfonts/cm/cmr1
2.pfb>
Output written on test.pdf (1 page, 17380 bytes).
Transcript written on test.log.
Cependant, je suis tenté de revenir à unicode-math
qui n’aurait pas du poser de souci dans cet exemple minimal.
En regardant de plus près le message d’erreur…
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsfonts/amssymb.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsfonts/amsfonts.sty)
! LaTeX Error: Command `\eth' already defined.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.240 ...mbol{\eth} {\mathord}{AMSb}{"67}
? q
…je soupçonne un conflit avec ntheorem
…qui charge les modules amsfonts
et amssymb
…avec lequel il y a un souci d’ordre de chargement
(les TeXubtilités qui rendent LaTeX peu amène) Du coup, le préambule devient
\documentclass[notitlepage, 12pt]{article}
\usepackage[a4paper, margin=1cm]{geometry}
\usepackage[standard]{ntheorem}
\renewtheorem{Definition}{Définition}
\usepackage{unicode-math}
Ce qui marche mieux ! (enfin, presque) et t’épargne l’installation de paquets à côté.
gilcot $ lualatex test.tex
This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)
restricted system commands enabled.
(./test.tex
LaTeX2e <2023-06-01> patch level 1
L3 programming layer <2023-08-11>
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/article.cls
Document Class: article 2023/05/17 v1.4n Standard LaTeX document class
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/size12.clo))
(/usr/local/texlive/2023/texmf-dist/tex/latex/geometry/geometry.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/graphics/keyval.sty)
(/usr/local/texlive/2023/texmf-dist/tex/generic/iftex/ifvtex.sty
(/usr/local/texlive/2023/texmf-dist/tex/generic/iftex/iftex.sty)))
(/usr/local/texlive/2023/texmf-dist/tex/latex/ntheorem/ntheorem.sty
Style `ntheorem', Version 1.33 <2011/08/15>
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/ifthen.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/ntheorem/ntheorem.std
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/latexsym.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsfonts/amssymb.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsfonts/amsfonts.sty))))
(/usr/local/texlive/2023/texmf-dist/tex/latex/unicode-math/unicode-math.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/l3kernel/expl3.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-luatex.def))
(/usr/local/texlive/2023/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.
sty (/usr/local/texlive/2023/texmf-dist/tex/latex/l3packages/xparse/xparse.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
) (/usr/local/texlive/2023/texmf-dist/tex/latex/fontspec/fontspec.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/fontenc.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/fontspec/fontspec.cfg)))
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/fix-cm.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/ts1enc.def))
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsmath/amsmath.sty
For additional information on amsmath, use the `?' option.
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsmath/amstext.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsmath/amsgen.sty))
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsmath/amsbsy.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsmath/amsopn.sty))
(/usr/local/texlive/2023/texmf-dist/tex/lualatex/lualatex-math/lualatex-math.st
y (/usr/local/texlive/2023/texmf-dist/tex/latex/etoolbox/etoolbox.sty))
(/usr/local/texlive/2023/texmf-dist/tex/latex/unicode-math/unicode-math-table.t
ex))) (./test.aux)
*geometry* driver: auto-detecting
*geometry* detected driver: luatex
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsfonts/umsa.fd)
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsfonts/umsb.fd) [1{/usr/local/t
exlive/2023/texmf-var/fonts/map/pdftex/updmap/pdftex.map}
Missing character: There is no (U+202F) in font [lmroman12-bold]:+tlig;!
Missing character: There is no (U+202F) in font [lmroman12-bold]:+tlig;!
] (./test.aux))
519 words of node memory still in use:
6 hlist, 2 vlist, 2 rule, 2 glue, 4 kern, 1 glyph, 6 attribute, 59 glue_spec
, 6 attribute_list, 1 write nodes
avail lists: 1:1,2:80,3:38,4:1,5:30,6:10,7:522,8:1,9:36,11:40
</usr/local/texlive/2023/texmf-dist/fonts/opentype/public/lm-math/latinmodern-m
ath.otf></usr/local/texlive/2023/texmf-dist/fonts/opentype/public/lm/lmroman12-
italic.otf></usr/local/texlive/2023/texmf-dist/fonts/opentype/public/lm/lmroman
12-regular.otf></usr/local/texlive/2023/texmf-dist/fonts/opentype/public/lm/lmr
oman12-bold.otf>
Output written on test.pdf (1 page, 11831 bytes).
Transcript written on test.log.
Désolé de ne l’avoir pas vu plus tôt.