XCompose embelli - le fichier (2 de 2)
<sourire>, j’ai réussi à tout copier !
Précisions : le fichier est contenu entre les balises de « code » donc visible sans formatage. J’ai quand même du transformer les liens http (refusés par le forum) avec la commande suivante :
sed -i 's/\(http[s]\?\)/\1 /g' XCompose
Ça mis à part, c’est le fichier original (je dis ça par rapport à l’authentification).
Bon, encore merci pour le
Bépo, depuis que j’ai croisé un adepte du
Dvorak, je fantasmais sur une disposition plus exotique mais plus efficace. Maintenant que je suis en Bépo et que je ne dépasse pas les 20 mots par minute (!), je suis un peu refroidi mais je m’accroche, et surtout je vous remercie tant.
(fichier correct cette fois-ci)
# XCompose d’origine https://download.tuxfamily.org/dvorak/xkb/fr-dvorak-bepo-xkb-1.1rc2.tar.xz
# modifié par Gintru avec xcompose-embellisseur.tcl version 0 pour la disposition Bépo 1.1rc2
# à copier en ~/.XCompose avant de se reloger sous X
# ou lançer "xterm -ls" pour les impatients
# XCompose d’origine https://gitlab.com/bepo/pilotes.git fonctionne mieux mais n’est pas tabulé
# (et à cette heure de la rédaction, omet les caractères suivants
# <dead_stroke> <U> : "Ꞹ" UA7B8
# <dead_stroke> <u> : "ꞹ" UA7B9
# <UFDD5> <UFDD5> <Q> : "ꞯ" UA7AF )
#[
# Début de l’archive XCompose
# Protocole PGSSUA version 0
# Liste des fichiers de l’archive :
# → XCompose
# → xcompose-embellisseur.tcl
# → LISEZ_MOI.md
# → COPYING
#]
#[
# Début du fichier XCompose
#]
include "%L"
<dead_abovedot> <U0249> : "ɟ" U025F # ɟ - Lettre minuscule latine J sans point barré
<dead_abovedot> <U202F> : "˙" U02D9 # ˙ - Point en chef (ton léger du mandarin)
<dead_abovedot> <underscore> : "˙" U02D9 # ˙ - Point en chef (ton léger du mandarin)
<dead_abovedot> <nobreakspace> : "˙" U02D9 # ˙ - Point en chef (ton léger du mandarin)
<dead_abovedot> <period> : "̇" U0307 # ̇ - Diacritique point en chef
<dead_abovedot> <colon> : "̇" U0307 # ̇ - Diacritique point en chef
<dead_abovedot> <ellipsis> : "̇" U0307 # ̇ - Diacritique point en chef
<dead_abovedot> <periodcentered> : "̇" U0307 # ̇ - Diacritique point en chef
<dead_abovedot> <rightsinglequotemark> : "̇" U0307 # ̇ - Diacritique point en chef
<dead_abovedot> <question> : "̇" U0307 # ̇ - Diacritique point en chef
<dead_abovedot> <questiondown> : "̇" U0307 # ̇ - Diacritique point en chef
<dead_abovedot> <dead_hook> : "̇" U0307 # ̇ - Diacritique point en chef
<dead_acute> <V> : "Ǘ" U01D7 # Ǘ - Lettre majuscule latine U trémaa et accent aigu
<dead_acute> <v> : "ǘ" U01D8 # ǘ - Lettre minuscule latine U trémaa et accent aigu
<dead_acute> <space> : "´" U00B4 # ´ - Accent aigu
<dead_acute> <U202F> : "´" U00B4 # ´ - Accent aigu
<dead_acute> <underscore> : "´" U00B4 # ´ - Accent aigu
<dead_acute> <nobreakspace> : "´" U00B4 # ´ - Accent aigu
<dead_acute> <period> : "́" U0301 # ́ - Diacritique accent aigu (oxeia, accent)
<dead_acute> <colon> : "́" U0301 # ́ - Diacritique accent aigu (oxeia, accent)
<dead_acute> <ellipsis> : "́" U0301 # ́ - Diacritique accent aigu (oxeia, accent)
<dead_acute> <periodcentered> : "́" U0301 # ́ - Diacritique accent aigu (oxeia, accent)
<dead_acute> <rightsinglequotemark> : "́" U0301 # ́ - Diacritique accent aigu (oxeia, accent)
<dead_acute> <question> : "́" U0301 # ́ - Diacritique accent aigu (oxeia, accent)
<dead_acute> <questiondown> : "́" U0301 # ́ - Diacritique accent aigu (oxeia, accent)
<dead_acute> <dead_hook> : "́" U0301 # ́ - Diacritique accent aigu (oxeia, accent)
<dead_belowdot> <space> : "." U002E # . - Point
<dead_belowdot> <U202F> : "." U002E # . - Point
<dead_belowdot> <underscore> : "." U002E # . - Point
<dead_belowdot> <nobreakspace> : "." U002E # . - Point
<dead_belowdot> <period> : "̣" U0323 # ̣ - Diacritique point souscrit
<dead_belowdot> <colon> : "̣" U0323 # ̣ - Diacritique point souscrit
<dead_belowdot> <ellipsis> : "̣" U0323 # ̣ - Diacritique point souscrit
<dead_belowdot> <periodcentered> : "̣" U0323 # ̣ - Diacritique point souscrit
<dead_belowdot> <rightsinglequotemark> : "̣" U0323 # ̣ - Diacritique point souscrit
<dead_belowdot> <question> : "̣" U0323 # ̣ - Diacritique point souscrit
<dead_belowdot> <questiondown> : "̣" U0323 # ̣ - Diacritique point souscrit
<dead_belowdot> <dead_hook> : "̣" U0323 # ̣ - Diacritique point souscrit
<dead_abovedot> <dead_abovedot> <A> : "Ạ" U1EA0 # Ạ - Lettre majuscule latine a point souscrit
<dead_abovedot> <dead_abovedot> <Abreve> : "Ặ" U1EB6 # Ặ - Lettre majuscule latine a brève et point souscrit
<dead_abovedot> <dead_abovedot> <Acircumflex> : "Ậ" U1EAC # Ậ - Lettre majuscule latine a accent circonflexe et point souscrit
<dead_abovedot> <dead_abovedot> <a> : "ạ" U1EA1 # ạ - Lettre minuscule latine a point souscrit
<dead_abovedot> <dead_abovedot> <abreve> : "ặ" U1EB7 # ặ - Lettre minuscule latine a brève et point souscrit
<dead_abovedot> <dead_abovedot> <acircumflex> : "ậ" U1EAD # ậ - Lettre minuscule latine a accent circonflexe et point souscrit
<dead_abovedot> <dead_abovedot> <B> : "Ḅ" U1E04 # Ḅ - Lettre majuscule latine b point souscrit
<dead_abovedot> <dead_abovedot> <b> : "ḅ" U1E05 # ḅ - Lettre minuscule latine b point souscrit
<dead_abovedot> <dead_abovedot> <D> : "Ḍ" U1E0C # Ḍ - Lettre majuscule latine d point souscrit
<dead_abovedot> <dead_abovedot> <d> : "ḍ" U1E0D # ḍ - Lettre minuscule latine d point souscrit
<dead_abovedot> <dead_abovedot> <E> : "Ẹ" U1EB8 # Ẹ - Lettre majuscule latine e point souscrit
<dead_abovedot> <dead_abovedot> <Ecircumflex> : "Ệ" U1EC6 # Ệ - Lettre majuscule latine e accent circonflexe et point souscrit
<dead_abovedot> <dead_abovedot> <e> : "ẹ" U1EB9 # ẹ - Lettre minuscule latine e point souscrit
<dead_abovedot> <dead_abovedot> <ecircumflex> : "ệ" U1EC7 # ệ - Lettre minuscule latine e accent circonflexe et point souscrit
<dead_abovedot> <dead_abovedot> <H> : "Ḥ" U1E24 # Ḥ - Lettre majuscule latine h point souscrit
<dead_abovedot> <dead_abovedot> <h> : "ḥ" U1E25 # ḥ - Lettre minuscule latine h point souscrit
<dead_abovedot> <dead_abovedot> <I> : "Ị" U1ECA # Ị - Lettre majuscule latine i point souscrit
<dead_abovedot> <dead_abovedot> <i> : "ị" U1ECB # ị - Lettre minuscule latine i point souscrit
<dead_abovedot> <dead_abovedot> <K> : "Ḳ" U1E32 # Ḳ - Lettre majuscule latine k point souscrit
<dead_abovedot> <dead_abovedot> <k> : "ḳ" U1E33 # ḳ - Lettre minuscule latine k point souscrit
<dead_abovedot> <dead_abovedot> <L> : "Ḷ" U1E36 # Ḷ - Lettre majuscule latine l point souscrit
<dead_abovedot> <dead_abovedot> <l> : "ḷ" U1E37 # ḷ - Lettre minuscule latine l point souscrit
<dead_abovedot> <dead_abovedot> <M> : "Ṃ" U1E42 # Ṃ - Lettre majuscule latine m point souscrit
<dead_abovedot> <dead_abovedot> <m> : "ṃ" U1E43 # ṃ - Lettre minuscule latine m point souscrit
<dead_abovedot> <dead_abovedot> <N> : "Ṇ" U1E46 # Ṇ - Lettre majuscule latine n point souscrit
<dead_abovedot> <dead_abovedot> <n> : "ṇ" U1E47 # ṇ - Lettre minuscule latine n point souscrit
<dead_abovedot> <dead_abovedot> <O> : "Ọ" U1ECC # Ọ - Lettre majuscule latine o point souscrit
<dead_abovedot> <dead_abovedot> <Ocircumflex> : "Ộ" U1ED8 # Ộ - Lettre majuscule latine o accent circonflexe et point souscrit
<dead_abovedot> <dead_abovedot> <Ohorn> : "Ợ" U1EE2 # Ợ - Lettre majuscule latine o cornu point souscrit
<dead_abovedot> <dead_abovedot> <o> : "ọ" U1ECD # ọ - Lettre minuscule latine o point souscrit
<dead_abovedot> <dead_abovedot> <ocircumflex> : "ộ" U1ED9 # ộ - Lettre minuscule latine o accent circonflexe et point souscrit
<dead_abovedot> <dead_abovedot> <ohorn> : "ợ" U1EE3 # ợ - Lettre minuscule latine o cornu point souscrit
<dead_abovedot> <dead_abovedot> <R> : "Ṛ" U1E5A # Ṛ - Lettre majuscule latine r point souscrit
<dead_abovedot> <dead_abovedot> <r> : "ṛ" U1E5B # ṛ - Lettre minuscule latine r point souscrit
<dead_abovedot> <dead_abovedot> <Sabovedot> : "Ṩ" U1E68 # Ṩ - Lettre majuscule latine s point souscrit et point en chef
<dead_abovedot> <dead_abovedot> <S> : "Ṣ" U1E62 # Ṣ - Lettre majuscule latine s point souscrit
<dead_abovedot> <dead_abovedot> <sabovedot> : "ṩ" U1E69 # ṩ - Lettre minuscule latine s point souscrit et point en chef
<dead_abovedot> <dead_abovedot> <s> : "ṣ" U1E63 # ṣ - Lettre minuscule latine s point souscrit
<dead_abovedot> <dead_abovedot> <T> : "Ṭ" U1E6C # Ṭ - Lettre majuscule latine t point souscrit
<dead_abovedot> <dead_abovedot> <t> : "ṭ" U1E6D # ṭ - Lettre minuscule latine t point souscrit
<dead_abovedot> <dead_abovedot> <U> : "Ụ" U1EE4 # Ụ - Lettre majuscule latine u point souscrit
<dead_abovedot> <dead_abovedot> <Uhorn> : "Ự" U1EF0 # Ự - Lettre majuscule latine u cornu point souscrit
<dead_abovedot> <dead_abovedot> <u> : "ụ" U1EE5 # ụ - Lettre minuscule latine u point souscrit
<dead_abovedot> <dead_abovedot> <uhorn> : "ự" U1EF1 # ự - Lettre minuscule latine u cornu point souscrit
<dead_abovedot> <dead_abovedot> <V> : "Ṿ" U1E7E # Ṿ - Lettre majuscule latine v point souscrit
<dead_abovedot> <dead_abovedot> <v> : "ṿ" U1E7F # ṿ - Lettre minuscule latine v point souscrit
<dead_abovedot> <dead_abovedot> <W> : "Ẉ" U1E88 # Ẉ - Lettre majuscule latine w point souscrit
<dead_abovedot> <dead_abovedot> <w> : "ẉ" U1E89 # ẉ - Lettre minuscule latine w point souscrit
<dead_abovedot> <dead_abovedot> <Y> : "Ỵ" U1EF4 # Ỵ - Lettre majuscule latine y point souscrit
<dead_abovedot> <dead_abovedot> <y> : "ỵ" U1EF5 # ỵ - Lettre minuscule latine y point souscrit
<dead_abovedot> <dead_abovedot> <Z> : "Ẓ" U1E92 # Ẓ - Lettre majuscule latine z point souscrit
<dead_abovedot> <dead_abovedot> <z> : "ẓ" U1E93 # ẓ - Lettre minuscule latine z point souscrit
<dead_abovedot> <dead_abovedot> <space> : "." U002E # . - Point
<dead_abovedot> <dead_abovedot> <U202F> : "." U002E # . - Point
<dead_abovedot> <dead_abovedot> <underscore> : "." U002E # . - Point
<dead_abovedot> <dead_abovedot> <nobreakspace> : "." U002E # . - Point
<dead_abovedot> <dead_abovedot> <period> : "̣" U0323 # ̣ - Diacritique point souscrit
<dead_abovedot> <dead_abovedot> <colon> : "̣" U0323 # ̣ - Diacritique point souscrit
<dead_abovedot> <dead_abovedot> <ellipsis> : "̣" U0323 # ̣ - Diacritique point souscrit
<dead_abovedot> <dead_abovedot> <periodcentered> : "̣" U0323 # ̣ - Diacritique point souscrit
<dead_abovedot> <dead_abovedot> <rightsinglequotemark> : "̣" U0323 # ̣ - Diacritique point souscrit
<dead_abovedot> <dead_abovedot> <question> : "̣" U0323 # ̣ - Diacritique point souscrit
<dead_abovedot> <dead_abovedot> <questiondown> : "̣" U0323 # ̣ - Diacritique point souscrit
<dead_abovedot> <dead_abovedot> <dead_hook> : "̣" U0323 # ̣ - Diacritique point souscrit
<dead_breve> <U202F> : "˘" U02D8 # ˘ - Brève
<dead_breve> <underscore> : "˘" U02D8 # ˘ - Brève
<dead_breve> <nobreakspace> : "˘" U02D8 # ˘ - Brève
<dead_breve> <period> : "̆" U0306 # ̆ - Diacritique brève (brève)
<dead_breve> <colon> : "̆" U0306 # ̆ - Diacritique brève (brève)
<dead_breve> <ellipsis> : "̆" U0306 # ̆ - Diacritique brève (brève)
<dead_breve> <periodcentered> : "̆" U0306 # ̆ - Diacritique brève (brève)
<dead_breve> <rightsinglequotemark> : "̆" U0306 # ̆ - Diacritique brève (brève)
<dead_breve> <question> : "̆" U0306 # ̆ - Diacritique brève (brève)
<dead_breve> <questiondown> : "̆" U0306 # ̆ - Diacritique brève (brève)
<dead_breve> <dead_hook> : "̆" U0306 # ̆ - Diacritique brève (brève)
<dead_breve> <dead_breve> <H> : "Ḫ" U1E2A # Ḫ - Lettre majuscule latine h brève souscrit
<dead_breve> <dead_breve> <h> : "ḫ" U1E2B # ḫ - Lettre minuscule latine h brève souscrit
<dead_breve> <dead_breve> <A> : "Ȃ" U0202 # Ȃ - Lettre majuscule latine A brève renversée
<dead_breve> <dead_breve> <a> : "ȃ" U0203 # ȃ - Lettre minuscule latine A brève renversée
<dead_breve> <dead_breve> <E> : "Ȇ" U0206 # Ȇ - Lettre majuscule latine E brève renversée
<dead_breve> <dead_breve> <e> : "ȇ" U0207 # ȇ - Lettre minuscule latine E brève renversée
<dead_breve> <dead_breve> <I> : "Ȋ" U020A # Ȋ - Lettre majuscule latine I brève renversée
<dead_breve> <dead_breve> <i> : "ȋ" U020B # ȋ - Lettre minuscule latine I brève renversée
<dead_breve> <dead_breve> <U> : "Ȗ" U0216 # Ȗ - Lettre majuscule latine U brève renversée
<dead_breve> <dead_breve> <u> : "ȗ" U0217 # ȗ - Lettre minuscule latine U brève renversée
<dead_breve> <dead_breve> <O> : "Ȏ" U020E # Ȏ - Lettre majuscule latine O brève renversée
<dead_breve> <dead_breve> <o> : "ȏ" U020F # ȏ - Lettre minuscule latine O brève renversée
<dead_breve> <dead_breve> <R> : "Ȓ" U0212 # Ȓ - Lettre majuscule latine R brève renversée
<dead_breve> <dead_breve> <r> : "ȓ" U0213 # ȓ - Lettre minuscule latine R brève renversée
<dead_breve> <dead_breve> <period> : "̑" U0311 # ̑ - Diacritique brève renversée
<dead_breve> <dead_breve> <colon> : "̑" U0311 # ̑ - Diacritique brève renversée
<dead_breve> <dead_breve> <ellipsis> : "̑" U0311 # ̑ - Diacritique brève renversée
<dead_breve> <dead_breve> <periodcentered> : "̑" U0311 # ̑ - Diacritique brève renversée
<dead_breve> <dead_breve> <rightsinglequotemark> : "̮" U032E # ̮ - Diacritique brève souscrite
<dead_breve> <dead_breve> <question> : "̮" U032E # ̮ - Diacritique brève souscrite
<dead_breve> <dead_breve> <questiondown> : "̮" U032E # ̮ - Diacritique brève souscrite
<dead_breve> <dead_breve> <dead_hook> : "̮" U032E # ̮ - Diacritique brève souscrite
<dead_caron> <V> : "Ǚ" U01D9 # Ǚ - Lettre majuscule latine U trémaa et caron
<dead_caron> <v> : "ǚ" U01DA # ǚ - Lettre minuscule latine U trémaa et caron
<dead_caron> <U202F> : "ˇ" U02C7 # ˇ - Caron (troisième ton du mandarin)
<dead_caron> <underscore> : "ˇ" U02C7 # ˇ - Caron (troisième ton du mandarin)
<dead_caron> <nobreakspace> : "ˇ" U02C7 # ˇ - Caron (troisième ton du mandarin)
<dead_caron> <period> : "̌" U030C # ̌ - Diacritique caron
<dead_caron> <colon> : "̌" U030C # ̌ - Diacritique caron
<dead_caron> <ellipsis> : "̌" U030C # ̌ - Diacritique caron
<dead_caron> <periodcentered> : "̌" U030C # ̌ - Diacritique caron
<dead_caron> <rightsinglequotemark> : "̌" U030C # ̌ - Diacritique caron
<dead_caron> <question> : "̌" U030C # ̌ - Diacritique caron
<dead_caron> <questiondown> : "̌" U030C # ̌ - Diacritique caron
<dead_caron> <dead_hook> : "̌" U030C # ̌ - Diacritique caron
<dead_caron> <dead_caron> <period> : "̬" U032C # ̬ - Diacritique caron souscrit
<dead_caron> <dead_caron> <colon> : "̬" U032C # ̬ - Diacritique caron souscrit
<dead_caron> <dead_caron> <ellipsis> : "̬" U032C # ̬ - Diacritique caron souscrit
<dead_caron> <dead_caron> <periodcentered> : "̬" U032C # ̬ - Diacritique caron souscrit
<dead_caron> <dead_caron> <rightsinglequotemark> : "̬" U032C # ̬ - Diacritique caron souscrit
<dead_caron> <dead_caron> <question> : "̬" U032C # ̬ - Diacritique caron souscrit
<dead_caron> <dead_caron> <questiondown> : "̬" U032C # ̬ - Diacritique caron souscrit
<dead_caron> <dead_caron> <dead_hook> : "̬" U032C # ̬ - Diacritique caron souscrit
<dead_cedilla> <U202F> : "¸" U00B8 # ¸ - Cédille
<dead_cedilla> <underscore> : "¸" U00B8 # ¸ - Cédille
<dead_cedilla> <nobreakspace> : "¸" U00B8 # ¸ - Cédille
<dead_cedilla> <period> : "̧" U0327 # ̧ - Diacritique cédille
<dead_cedilla> <colon> : "̧" U0327 # ̧ - Diacritique cédille
<dead_cedilla> <ellipsis> : "̧" U0327 # ̧ - Diacritique cédille
<dead_cedilla> <periodcentered> : "̧" U0327 # ̧ - Diacritique cédille
<dead_cedilla> <rightsinglequotemark> : "̧" U0327 # ̧ - Diacritique cédille
<dead_cedilla> <question> : "̧" U0327 # ̧ - Diacritique cédille
<dead_cedilla> <questiondown> : "̧" U0327 # ̧ - Diacritique cédille
<dead_cedilla> <dead_hook> : "̧" U0327 # ̧ - Diacritique cédille
<dead_circumflex> <U202F> : "^" U005E # ^ - Accent circonflexe
<dead_circumflex> <underscore> : "^" U005E # ^ - Accent circonflexe
<dead_circumflex> <nobreakspace> : "^" U005E # ^ - Accent circonflexe
<dead_circumflex> <period> : "̂" U0302 # ̂ - Diacritique accent circonflexe
<dead_circumflex> <colon> : "̂" U0302 # ̂ - Diacritique accent circonflexe
<dead_circumflex> <ellipsis> : "̂" U0302 # ̂ - Diacritique accent circonflexe
<dead_circumflex> <periodcentered> : "̂" U0302 # ̂ - Diacritique accent circonflexe
<dead_circumflex> <rightsinglequotemark> : "̂" U0302 # ̂ - Diacritique accent circonflexe
<dead_circumflex> <question> : "̂" U0302 # ̂ - Diacritique accent circonflexe
<dead_circumflex> <questiondown> : "̂" U0302 # ̂ - Diacritique accent circonflexe
<dead_circumflex> <dead_hook> : "̂" U0302 # ̂ - Diacritique accent circonflexe
<dead_circumflex> <dead_circumflex> <D> : "Ḓ" U1E12 # Ḓ - Lettre majuscule latine d accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <d> : "ḓ" U1E13 # ḓ - Lettre minuscule latine d accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <E> : "Ḙ" U1E18 # Ḙ - Lettre majuscule latine e accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <e> : "ḙ" U1E19 # ḙ - Lettre minuscule latine e accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <L> : "Ḽ" U1E3C # Ḽ - Lettre majuscule latine l accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <l> : "ḽ" U1E3D # ḽ - Lettre minuscule latine l accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <N> : "Ṋ" U1E4A # Ṋ - Lettre majuscule latine n accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <n> : "ṋ" U1E4B # ṋ - Lettre minuscule latine n accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <T> : "Ṱ" U1E70 # Ṱ - Lettre majuscule latine t accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <t> : "ṱ" U1E71 # ṱ - Lettre minuscule latine t accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <U> : "Ṷ" U1E76 # Ṷ - Lettre majuscule latine u accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <u> : "ṷ" U1E77 # ṷ - Lettre minuscule latine u accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <period> : "̭" U032D # ̭ - Diacritique accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <colon> : "̭" U032D # ̭ - Diacritique accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <ellipsis> : "̭" U032D # ̭ - Diacritique accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <periodcentered> : "̭" U032D # ̭ - Diacritique accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <rightsinglequotemark> : "̭" U032D # ̭ - Diacritique accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <question> : "̭" U032D # ̭ - Diacritique accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <questiondown> : "̭" U032D # ̭ - Diacritique accent circonflexe souscrit
<dead_circumflex> <dead_circumflex> <dead_hook> : "̭" U032D # ̭ - Diacritique accent circonflexe souscrit
<dead_belowcomma> <U202F> : "," U002C # , - Virgule
<dead_belowcomma> <underscore> : "," U002C # , - Virgule
<dead_belowcomma> <nobreakspace> : "," U002C # , - Virgule
<dead_belowcomma> <period> : "̦" U0326 # ̦ - Diacritique virgule souscrite
<dead_belowcomma> <colon> : "̦" U0326 # ̦ - Diacritique virgule souscrite
<dead_belowcomma> <ellipsis> : "̦" U0326 # ̦ - Diacritique virgule souscrite
<dead_belowcomma> <periodcentered> : "̦" U0326 # ̦ - Diacritique virgule souscrite
<dead_belowcomma> <rightsinglequotemark> : "̦" U0326 # ̦ - Diacritique virgule souscrite
<dead_belowcomma> <question> : "̦" U0326 # ̦ - Diacritique virgule souscrite
<dead_belowcomma> <questiondown> : "̦" U0326 # ̦ - Diacritique virgule souscrite
<dead_belowcomma> <dead_hook> : "̦" U0326 # ̦ - Diacritique virgule souscrite
<dead_currency> <A> : "₳" U20B3 # ₳ - Symbole austral
<dead_currency> <a> : "؋" U060B # ؋ - Symbole afghani
<dead_currency> <B> : "฿" U0E3F # ฿ - Symbole monétaire thaï baht
<dead_currency> <b> : "₿" U20BF # ₿ - Bitcoin Sign
<dead_currency> <C> : "₡" U20A1 # ₡ - Symbole colon
<dead_currency> <ccedilla> : "₵" U20B5 # ₵ - Symbole cedi
<dead_currency> <c> : "¢" U00A2 # ¢ - Symbole Centime
<dead_currency> <dead_cedilla> : "₢" U20A2 # ₢ - Symbole cruzeiro
<dead_currency> <D> : "₯" U20AF # ₯ - Symbole drachme
<dead_currency> <d> : "₫" U20AB # ₫ - Symbole dong
<dead_currency> <e> : "₠" U20A0 # ₠ - Symbole écu
<dead_currency> <F> : "₣" U20A3 # ₣ - Symbole franc français
<dead_currency> <f> : "ƒ" U0192 # ƒ - Lettre minuscule latine F hameçon
<dead_currency> <g> : "₲" U20B2 # ₲ - Symbole guarani
<dead_currency> <h> : "₴" U20B4 # ₴ - Symbole hryvnia
<dead_currency> <I> : "៛" U17DB # ៛ - Symbole monétaire khmer riel
<dead_currency> <i> : "﷼" UFDFC # ﷼ - Symbole rial
<dead_currency> <k> : "₭" U20AD # ₭ - Symbole kip
<dead_currency> <L> : "₤" U20A4 # ₤ - Symbole lire
<dead_currency> <l> : "₺" U20BA # ₺ - Symbole lire turque
<dead_currency> <sterling> : "₶" U20B6 # ₶ - Symbole livre tournois
<dead_currency> <dead_stroke> : "₾" U20BE # ₾ - Lari Sign
<dead_currency> <M> : "ℳ" U2133 # ℳ - Majuscule m de ronde
<dead_currency> <m> : "₥" U20A5 # ₥ - Symbole millième
<dead_currency> <U26FD> : "₻" U20BB # ₻ - Symbole du mark nordique
<dead_currency> <dead_macron> : "₼" U20BC # ₼ - Symbole manat
<dead_currency> <n> : "₦" U20A6 # ₦ - Symbole naira
<dead_currency> <O> : "૱" U0AF1 # ૱ - Symbole goudjarati roupie
<dead_currency> <o> : "௹" U0BF9 # ௹ - Symbole tamoul roupie
<dead_currency> <P> : "₧" U20A7 # ₧ - Symbole peseta
<dead_currency> <p> : "₱" U20B1 # ₱ - Symbole peso
<dead_currency> <ampersand> : "₰" U20B0 # ₰ - Symbole pfennig
<dead_currency> <R> : "₹" U20B9 # ₹ - Symbole roupie indienne
<dead_currency> <r> : "₽" U20BD # ₽ - Ruble Symbol
<dead_currency> <dead_breve> : "₨" U20A8 # ₨ - Symbole roupie
<dead_currency> <S> : "₷" U20B7 # ₷ - Symbole spesmilo
<dead_currency> <s> : "₪" U20AA # ₪ - Symbole nouveau chékel
<dead_currency> <T> : "₮" U20AE # ₮ - Symbole tougrik
<dead_currency> <t> : "₸" U20B8 # ₸ - Symbole tenge
<dead_currency> <trademark> : "৲" U09F2 # ৲ - Signe bengali roupie
<dead_currency> <UFDD5> : "৳" U09F3 # ৳ - Symbole bengali roupie
<dead_currency> <U> : "圓" U5713 # 圓 - Cercle idéographique; rond, circulaire; CJK complet
<dead_currency> <u> : "元" U5143 # 元 - Idéogramme en premier; dollar; origine; tête CJK
<dead_currency> <w> : "₩" U20A9 # ₩ - Symbole won
<dead_currency> <Y> : "円" U5186 # 円 - Idéogramme en CJK
<dead_currency> <y> : "¥" U00A5 # ¥ - Symbole Yen
<dead_currency> <dead_currency> : "¤" U00A4 # ¤ - Symbole Monétaire
<dead_diaeresis> <space> : "¨" U00A8 # ¨ - Tréma
<dead_diaeresis> <U202F> : "¨" U00A8 # ¨ - Tréma
<dead_diaeresis> <underscore> : "¨" U00A8 # ¨ - Tréma
<dead_diaeresis> <nobreakspace> : "¨" U00A8 # ¨ - Tréma
<dead_diaeresis> <period> : "̈" U0308 # ̈ - Diacritique tréma (tréma)
<dead_diaeresis> <colon> : "̈" U0308 # ̈ - Diacritique tréma (tréma)
<dead_diaeresis> <ellipsis> : "̈" U0308 # ̈ - Diacritique tréma (tréma)
<dead_diaeresis> <periodcentered> : "̈" U0308 # ̈ - Diacritique tréma (tréma)
<dead_diaeresis> <rightsinglequotemark> : "̈" U0308 # ̈ - Diacritique tréma (tréma)
<dead_diaeresis> <question> : "̈" U0308 # ̈ - Diacritique tréma (tréma)
<dead_diaeresis> <questiondown> : "̈" U0308 # ̈ - Diacritique tréma (tréma)
<dead_diaeresis> <dead_hook> : "̈" U0308 # ̈ - Diacritique tréma (tréma)
<dead_diaeresis> <dead_diaeresis> <U> : "Ṳ" U1E72 # Ṳ - Lettre majuscule latine u tréma souscrit
<dead_diaeresis> <dead_diaeresis> <u> : "ṳ" U1E73 # ṳ - Lettre minuscule latine u tréma souscrit
<dead_diaeresis> <dead_diaeresis> <period> : "̤" U0324 # ̤ - Diacritique tréma souscrit
<dead_diaeresis> <dead_diaeresis> <colon> : "̤" U0324 # ̤ - Diacritique tréma souscrit
<dead_diaeresis> <dead_diaeresis> <ellipsis> : "̤" U0324 # ̤ - Diacritique tréma souscrit
<dead_diaeresis> <dead_diaeresis> <periodcentered> : "̤" U0324 # ̤ - Diacritique tréma souscrit
<dead_diaeresis> <dead_diaeresis> <rightsinglequotemark> : "̤" U0324 # ̤ - Diacritique tréma souscrit
<dead_diaeresis> <dead_diaeresis> <question> : "̤" U0324 # ̤ - Diacritique tréma souscrit
<dead_diaeresis> <dead_diaeresis> <questiondown> : "̤" U0324 # ̤ - Diacritique tréma souscrit
<dead_diaeresis> <dead_diaeresis> <dead_hook> : "̤" U0324 # ̤ - Diacritique tréma souscrit
<dead_acute> <dead_acute> <O> : "Ő" U0150 # Ő - Lettre majuscule latine O double accent aigu
<dead_acute> <dead_acute> <o> : "ő" U0151 # ő - Lettre minuscule latine O double accent aigu
<dead_acute> <dead_acute> <U> : "Ű" U0170 # Ű - Lettre majuscule latine U double accent aigu
<dead_acute> <dead_acute> <u> : "ű" U0171 # ű - Lettre minuscule latine U double accent aigu
<dead_acute> <dead_acute> <space> : "˝" U02DD # ˝ - Double accent aigu
<dead_acute> <dead_acute> <U202F> : "˝" U02DD # ˝ - Double accent aigu
<dead_acute> <dead_acute> <underscore> : "˝" U02DD # ˝ - Double accent aigu
<dead_acute> <dead_acute> <nobreakspace> : "˝" U02DD # ˝ - Double accent aigu
<dead_acute> <dead_acute> <period> : "̋" U030B # ̋ - Diacritique double accent aigu
<dead_acute> <dead_acute> <colon> : "̋" U030B # ̋ - Diacritique double accent aigu
<dead_acute> <dead_acute> <ellipsis> : "̋" U030B # ̋ - Diacritique double accent aigu
<dead_acute> <dead_acute> <periodcentered> : "̋" U030B # ̋ - Diacritique double accent aigu
<dead_acute> <dead_acute> <rightsinglequotemark> : "̋" U030B # ̋ - Diacritique double accent aigu
<dead_acute> <dead_acute> <question> : "̋" U030B # ̋ - Diacritique double accent aigu
<dead_acute> <dead_acute> <questiondown> : "̋" U030B # ̋ - Diacritique double accent aigu
<dead_acute> <dead_acute> <dead_hook> : "̋" U030B # ̋ - Diacritique double accent aigu
<dead_grave> <dead_grave> <A> : "Ȁ" U0200 # Ȁ - Lettre majuscule latine A double accent grave
<dead_grave> <dead_grave> <a> : "ȁ" U0201 # ȁ - Lettre minuscule latine A double accent grave
<dead_grave> <dead_grave> <E> : "Ȅ" U0204 # Ȅ - Lettre majuscule latine E double accent grave
<dead_grave> <dead_grave> <e> : "ȅ" U0205 # ȅ - Lettre minuscule latine E double accent grave
<dead_grave> <dead_grave> <I> : "Ȉ" U0208 # Ȉ - Lettre majuscule latine I double accent grave
<dead_grave> <dead_grave> <i> : "ȉ" U0209 # ȉ - Lettre minuscule latine I double accent grave
<dead_grave> <dead_grave> <O> : "Ȍ" U020C # Ȍ - Lettre majuscule latine O double accent grave
<dead_grave> <dead_grave> <o> : "ȍ" U020D # ȍ - Lettre minuscule latine O double accent grave
<dead_grave> <dead_grave> <R> : "Ȑ" U0210 # Ȑ - Lettre majuscule latine R double accent grave
<dead_grave> <dead_grave> <r> : "ȑ" U0211 # ȑ - Lettre minuscule latine R double accent grave
<dead_grave> <dead_grave> <U> : "Ȕ" U0214 # Ȕ - Lettre majuscule latine U double accent grave
<dead_grave> <dead_grave> <u> : "ȕ" U0215 # ȕ - Lettre minuscule latine U double accent grave
<dead_grave> <dead_grave> <period> : "̏" U030F # ̏ - Diacritique double accent grave
<dead_grave> <dead_grave> <colon> : "̏" U030F # ̏ - Diacritique double accent grave
<dead_grave> <dead_grave> <ellipsis> : "̏" U030F # ̏ - Diacritique double accent grave
<dead_grave> <dead_grave> <periodcentered> : "̏" U030F # ̏ - Diacritique double accent grave
<dead_grave> <dead_grave> <rightsinglequotemark> : "̏" U030F # ̏ - Diacritique double accent grave
<dead_grave> <dead_grave> <question> : "̏" U030F # ̏ - Diacritique double accent grave
<dead_grave> <dead_grave> <questiondown> : "̏" U030F # ̏ - Diacritique double accent grave
<dead_grave> <dead_grave> <dead_hook> : "̏" U030F # ̏ - Diacritique double accent grave
<dead_grave> <V> : "Ǜ" U01DB # Ǜ - Lettre majuscule latine U trémaa et accent grave
<dead_grave> <v> : "ǜ" U01DC # ǜ - Lettre minuscule latine U trémaa et accent grave
<dead_grave> <U202F> : "`" U0060 # ` - Accent grave
<dead_grave> <underscore> : "`" U0060 # ` - Accent grave
<dead_grave> <nobreakspace> : "`" U0060 # ` - Accent grave
<dead_grave> <period> : "̀" U0300 # ̀ - Diacritique accent grave (varia)
<dead_grave> <colon> : "̀" U0300 # ̀ - Diacritique accent grave (varia)
<dead_grave> <ellipsis> : "̀" U0300 # ̀ - Diacritique accent grave (varia)
<dead_grave> <periodcentered> : "̀" U0300 # ̀ - Diacritique accent grave (varia)
<dead_grave> <rightsinglequotemark> : "̀" U0300 # ̀ - Diacritique accent grave (varia)
<dead_grave> <question> : "̀" U0300 # ̀ - Diacritique accent grave (varia)
<dead_grave> <questiondown> : "̀" U0300 # ̀ - Diacritique accent grave (varia)
<dead_grave> <dead_hook> : "̀" U0300 # ̀ - Diacritique accent grave (varia)
<dead_greek> <Amacron> : "Ᾱ" U1FB9 # Ᾱ - Lettre majuscule grecque alpha macron
<dead_greek> <amacron> : "ᾱ" U1FB1 # ᾱ - Lettre minuscule grecque alpha macron
<dead_greek> <C> : "Ψ" U03A8 # Ψ - Lettre majuscule grecque Psi
<dead_greek> <c> : "ψ" U03C8 # ψ - Lettre minuscule grecque Psi
<dead_greek> <Imacron> : "Ῑ" U1FD9 # Ῑ - Lettre majuscule grecque iota macron
<dead_greek> <imacron> : "ῑ" U1FD1 # ῑ - Lettre minuscule grecque iota macron
<dead_greek> <J> : "Ξ" U039E # Ξ - Lettre majuscule grecque Xi
<dead_greek> <j> : "ξ" U03BE # ξ - Lettre minuscule grecque Xi
<dead_greek> <U024D> : "ϼ" U03FC # ϼ - Symbole grec Rhô barré
<dead_greek> <U> : "Θ" U0398 # Θ - Lettre majuscule grecque Thêta
<dead_greek> <Uhook> : "ϒ" U03D2 # ϒ - Symbole grec Upsilon crochet
<dead_greek> <Umacron> : "Ῡ" U1FE9 # Ῡ - Lettre majuscule grecque upsilon macron
<dead_greek> <u> : "θ" U03B8 # θ - Lettre minuscule grecque Thêta
<dead_greek> <umacron> : "ῡ" U1FE1 # ῡ - Lettre minuscule grecque upsilon macron
<dead_greek> <V> : "Ω" U03A9 # Ω - Lettre majuscule grecque Oméga
<dead_greek> <v> : "ω" U03C9 # ω - Lettre minuscule grecque Oméga
<dead_greek> <w> : "ς" U03C2 # ς - Lettre minuscule grecque Sigma final
<dead_greek> <X> : "Χ" U03A7 # Χ - Lettre majuscule grecque Khi
<dead_greek> <x> : "χ" U03C7 # χ - Lettre minuscule grecque Khi
<dead_greek> <Y> : "Υ" U03A5 # Υ - Lettre majuscule grecque Upsilon
<dead_greek> <y> : "υ" U03C5 # υ - Lettre minuscule grecque Upsilon
<dead_hook> <D> : "Ɖ" U0189 # Ɖ - Lettre majuscule latine D african
<dead_hook> <d> : "ɖ" U0256 # ɖ - Lettre minuscule latine D hameçon rétroflexe
<dead_hook> <H> : "Ꜧ" UA726 # Ꜧ - Lettre majuscule latine heng
<dead_hook> <h> : "ꜧ" UA727 # ꜧ - Lettre minuscule latine heng
<dead_hook> <Q> : "Ɋ" U024A # Ɋ - Lettre majuscule latine Petit q avec hameçon
<dead_hook> <q> : "ɋ" U024B # ɋ - Lettre minuscule latine Q avec hameçon
<dead_hook> <R> : "Ɽ" U2C64 # Ɽ - Lettre majuscule latine r hameçon rétroflexe
<dead_hook> <r> : "ɽ" U027D # ɽ - Lettre minuscule latine R hameçon rétroflexe
<dead_hook> <T> : "Ʈ" U01AE # Ʈ - Lettre majuscule latine T hameçon rétroflexe
<dead_hook> <t> : "ʈ" U0288 # ʈ - Lettre minuscule latine T hameçon rétroflexe
<dead_hook> <Greek_UPSILON> : "ϒ" U03D2 # ϒ - Symbole grec Upsilon crochet
<dead_hook> <period> : "̉" U0309 # ̉ - Diacritique crochet en chef
<dead_hook> <colon> : "̉" U0309 # ̉ - Diacritique crochet en chef
<dead_hook> <ellipsis> : "̉" U0309 # ̉ - Diacritique crochet en chef
<dead_hook> <periodcentered> : "̉" U0309 # ̉ - Diacritique crochet en chef
<dead_hook> <rightsinglequotemark> : "̉" U0309 # ̉ - Diacritique crochet en chef
<dead_hook> <question> : "̉" U0309 # ̉ - Diacritique crochet en chef
<dead_hook> <questiondown> : "̉" U0309 # ̉ - Diacritique crochet en chef
<dead_hook> <dead_hook> <B> : "Ɓ" U0181 # Ɓ - Lettre majuscule latine B crosse
<dead_hook> <dead_hook> <b> : "ɓ" U0253 # ɓ - Lettre minuscule latine B crosse
<dead_hook> <dead_hook> <C> : "Ƈ" U0187 # Ƈ - Lettre majuscule latine C crosse
<dead_hook> <dead_hook> <c> : "ƈ" U0188 # ƈ - Lettre minuscule latine C crosse
<dead_hook> <dead_hook> <D> : "Ɗ" U018A # Ɗ - Lettre majuscule latine D crosse
<dead_hook> <dead_hook> <d> : "ɗ" U0257 # ɗ - Lettre minuscule latine D crosse
<dead_hook> <dead_hook> <G> : "Ɠ" U0193 # Ɠ - Lettre majuscule latine G crosse
<dead_hook> <dead_hook> <g> : "ɠ" U0260 # ɠ - Lettre minuscule latine G crosse
<dead_hook> <dead_hook> <H> : "Ɦ" UA7AA # Ɦ - Lettre majuscule latine h crosse
<dead_hook> <dead_hook> <h> : "ɦ" U0266 # ɦ - Lettre minuscule latine H crosse
<dead_hook> <dead_hook> <K> : "Ƙ" U0198 # Ƙ - Lettre majuscule latine K crosse
<dead_hook> <dead_hook> <k> : "ƙ" U0199 # ƙ - Lettre minuscule latine K crosse
<dead_hook> <dead_hook> <P> : "Ƥ" U01A4 # Ƥ - Lettre majuscule latine P crosse
<dead_hook> <dead_hook> <p> : "ƥ" U01A5 # ƥ - Lettre minuscule latine P crosse
<dead_hook> <dead_hook> <q> : "ʠ" U02A0 # ʠ - Lettre minuscule latine Q crosse
<dead_hook> <dead_hook> <T> : "Ƭ" U01AC # Ƭ - Lettre majuscule latine T crosse
<dead_hook> <dead_hook> <t> : "ƭ" U01AD # ƭ - Lettre minuscule latine T crosse
<dead_hook> <dead_hook> <u> : "ꭒ" UAB52 # ꭒ - Lettre minuscule latine u hameçon
<dead_hook> <dead_hook> <V> : "Ʋ" U01B2 # Ʋ - Lettre majuscule latine V crosse
<dead_hook> <dead_hook> <v> : "ʋ" U028B # ʋ - Lettre minuscule latine V de ronde
<dead_hook> <dead_hook> <W> : "Ⱳ" U2C72 # Ⱳ - Lettre majuscule latine w crosse
<dead_hook> <dead_hook> <w> : "ⱳ" U2C73 # ⱳ - Lettre minuscule latine w crosse
<dead_hook> <dead_hook> <Y> : "Ƴ" U01B3 # Ƴ - Lettre majuscule latine Y crosse
<dead_hook> <dead_hook> <y> : "ƴ" U01B4 # ƴ - Lettre minuscule latine Y crosse
<dead_horn> <dead_horn> : "?" U1F918 # ? - Signe des cornes Emoji
<dead_horn> <period> : "̛" U031B # ̛ - Diacritique cornu
<dead_horn> <colon> : "̛" U031B # ̛ - Diacritique cornu
<dead_horn> <ellipsis> : "̛" U031B # ̛ - Diacritique cornu
<dead_horn> <periodcentered> : "̛" U031B # ̛ - Diacritique cornu
<dead_horn> <rightsinglequotemark> : "̛" U031B # ̛ - Diacritique cornu
<dead_horn> <question> : "̛" U031B # ̛ - Diacritique cornu
<dead_horn> <questiondown> : "̛" U031B # ̛ - Diacritique cornu
<dead_horn> <dead_hook> : "̛" U031B # ̛ - Diacritique cornu
<dead_macron> <dead_macron> <B> : "Ḇ" U1E06 # Ḇ - Lettre majuscule latine b ligne souscrite
<dead_macron> <dead_macron> <b> : "ḇ" U1E07 # ḇ - Lettre minuscule latine b ligne souscrite
<dead_macron> <dead_macron> <D> : "Ḏ" U1E0E # Ḏ - Lettre majuscule latine d ligne souscrite
<dead_macron> <dead_macron> <d> : "ḏ" U1E0F # ḏ - Lettre minuscule latine d ligne souscrite
<dead_macron> <dead_macron> <h> : "ẖ" U1E96 # ẖ - Lettre minuscule latine h ligne souscrite
<dead_macron> <dead_macron> <K> : "Ḵ" U1E34 # Ḵ - Lettre majuscule latine k ligne souscrite
<dead_macron> <dead_macron> <k> : "ḵ" U1E35 # ḵ - Lettre minuscule latine k ligne souscrite
<dead_macron> <dead_macron> <L> : "Ḻ" U1E3A # Ḻ - Lettre majuscule latine l ligne souscrite
<dead_macron> <dead_macron> <l> : "ḻ" U1E3B # ḻ - Lettre minuscule latine l ligne souscrite
<dead_macron> <dead_macron> <N> : "Ṉ" U1E48 # Ṉ - Lettre majuscule latine n ligne souscrite
<dead_macron> <dead_macron> <n> : "ṉ" U1E49 # ṉ - Lettre minuscule latine n ligne souscrite
<dead_macron> <dead_macron> <R> : "Ṟ" U1E5E # Ṟ - Lettre majuscule latine r ligne souscrite
<dead_macron> <dead_macron> <r> : "ṟ" U1E5F # ṟ - Lettre minuscule latine r ligne souscrite
<dead_macron> <dead_macron> <T> : "Ṯ" U1E6E # Ṯ - Lettre majuscule latine t ligne souscrite
<dead_macron> <dead_macron> <t> : "ṯ" U1E6F # ṯ - Lettre minuscule latine t ligne souscrite
<dead_macron> <dead_macron> <Z> : "Ẕ" U1E94 # Ẕ - Lettre majuscule latine z ligne souscrite
<dead_macron> <dead_macron> <z> : "ẕ" U1E95 # ẕ - Lettre minuscule latine z ligne souscrite
<dead_macron> <dead_macron> <space> : "_" U005F # _ - Tiret bas
<dead_macron> <dead_macron> <U202F> : "_" U005F # _ - Tiret bas
<dead_macron> <dead_macron> <underscore> : "_" U005F # _ - Tiret bas
<dead_macron> <dead_macron> <nobreakspace> : "_" U005F # _ - Tiret bas
<dead_macron> <dead_macron> <period> : "̱" U0331 # ̱ - Diacritique macron souscrit
<dead_macron> <dead_macron> <colon> : "̱" U0331 # ̱ - Diacritique macron souscrit
<dead_macron> <dead_macron> <ellipsis> : "̱" U0331 # ̱ - Diacritique macron souscrit
<dead_macron> <dead_macron> <periodcentered> : "̱" U0331 # ̱ - Diacritique macron souscrit
<dead_macron> <dead_macron> <rightsinglequotemark> : "̱" U0331 # ̱ - Diacritique macron souscrit
<dead_macron> <dead_macron> <question> : "̱" U0331 # ̱ - Diacritique macron souscrit
<dead_macron> <dead_macron> <questiondown> : "̱" U0331 # ̱ - Diacritique macron souscrit
<dead_macron> <dead_macron> <dead_hook> : "̱" U0331 # ̱ - Diacritique macron souscrit
<dead_macron> <V> : "Ǖ" U01D5 # Ǖ - Lettre majuscule latine U trémaa et macron
<dead_macron> <v> : "ǖ" U01D6 # ǖ - Lettre minuscule latine U trémaa et macron
<dead_macron> <U202F> : "¯" U00AF # ¯ - Macron
<dead_macron> <underscore> : "¯" U00AF # ¯ - Macron
<dead_macron> <nobreakspace> : "¯" U00AF # ¯ - Macron
<dead_macron> <period> : "̄" U0304 # ̄ - Diacritique macron
<dead_macron> <colon> : "̄" U0304 # ̄ - Diacritique macron
<dead_macron> <ellipsis> : "̄" U0304 # ̄ - Diacritique macron
<dead_macron> <periodcentered> : "̄" U0304 # ̄ - Diacritique macron
<dead_macron> <rightsinglequotemark> : "̄" U0304 # ̄ - Diacritique macron
<dead_macron> <question> : "̄" U0304 # ̄ - Diacritique macron
<dead_macron> <questiondown> : "̄" U0304 # ̄ - Diacritique macron
<dead_macron> <dead_hook> : "̄" U0304 # ̄ - Diacritique macron
<dead_ogonek> <U202F> : "˛" U02DB # ˛ - Ogonek
<dead_ogonek> <underscore> : "˛" U02DB # ˛ - Ogonek
<dead_ogonek> <nobreakspace> : "˛" U02DB # ˛ - Ogonek
<dead_ogonek> <period> : "̨" U0328 # ̨ - Diacritique ogonek
<dead_ogonek> <colon> : "̨" U0328 # ̨ - Diacritique ogonek
<dead_ogonek> <ellipsis> : "̨" U0328 # ̨ - Diacritique ogonek
<dead_ogonek> <periodcentered> : "̨" U0328 # ̨ - Diacritique ogonek
<dead_ogonek> <rightsinglequotemark> : "̨" U0328 # ̨ - Diacritique ogonek
<dead_ogonek> <question> : "̨" U0328 # ̨ - Diacritique ogonek
<dead_ogonek> <questiondown> : "̨" U0328 # ̨ - Diacritique ogonek
<dead_ogonek> <dead_hook> : "̨" U0328 # ̨ - Diacritique ogonek
<dead_abovering> <space> : "°" U00B0 # ° - Symbole Degré
<dead_abovering> <U202F> : "°" U00B0 # ° - Symbole Degré
<dead_abovering> <underscore> : "°" U00B0 # ° - Symbole Degré
<dead_abovering> <nobreakspace> : "°" U00B0 # ° - Symbole Degré
<dead_abovering> <period> : "̊" U030A # ̊ - Diacritique rond en chef
<dead_abovering> <colon> : "̊" U030A # ̊ - Diacritique rond en chef
<dead_abovering> <ellipsis> : "̊" U030A # ̊ - Diacritique rond en chef
<dead_abovering> <periodcentered> : "̊" U030A # ̊ - Diacritique rond en chef
<dead_abovering> <rightsinglequotemark> : "̊" U030A # ̊ - Diacritique rond en chef
<dead_abovering> <question> : "̊" U030A # ̊ - Diacritique rond en chef
<dead_abovering> <questiondown> : "̊" U030A # ̊ - Diacritique rond en chef
<dead_abovering> <dead_hook> : "̊" U030A # ̊ - Diacritique rond en chef
<dead_abovering> <dead_abovering> <A> : "Ḁ" U1E00 # Ḁ - Lettre majuscule latine a rond souscrit
<dead_abovering> <dead_abovering> <a> : "ḁ" U1E01 # ḁ - Lettre minuscule latine a rond souscrit
<dead_abovering> <dead_abovering> <period> : "̥" U0325 # ̥ - Diacritique rond souscrit
<dead_abovering> <dead_abovering> <colon> : "̥" U0325 # ̥ - Diacritique rond souscrit
<dead_abovering> <dead_abovering> <ellipsis> : "̥" U0325 # ̥ - Diacritique rond souscrit
<dead_abovering> <dead_abovering> <periodcentered> : "̥" U0325 # ̥ - Diacritique rond souscrit
<dead_abovering> <dead_abovering> <rightsinglequotemark> : "̥" U0325 # ̥ - Diacritique rond souscrit
<dead_abovering> <dead_abovering> <question> : "̥" U0325 # ̥ - Diacritique rond souscrit
<dead_abovering> <dead_abovering> <questiondown> : "̥" U0325 # ̥ - Diacritique rond souscrit
<dead_abovering> <dead_abovering> <dead_hook> : "̥" U0325 # ̥ - Diacritique rond souscrit
<UFDD8> <2> : "ƻ" U01BB # ƻ - Lettre latine Deux barré
<UFDD8> <B> : "Ƀ" U0243 # Ƀ - Lettre majuscule latine B barré
<UFDD8> <b> : "ƀ" U0180 # ƀ - Lettre minuscule latine B barré
<dead_stroke> <b> : "␢" U2422 # ␢ - Symbole visuel pour l'espace
<UFDD8> <C> : "Ꞓ" UA792 # Ꞓ - Lettre majuscule latine c rayé
<UFDD8> <c> : "ꞓ" UA793 # ꞓ - Lettre majuscule latine c rayé
<UFDD8> <D> : "Đ" U0110 # Đ - Lettre majuscule latine D barré
<UFDD8> <d> : "đ" U0111 # đ - Lettre minuscule latine D barré
<UFDD8> <F> : "Ꞙ" UA798 # Ꞙ - Lettre majuscule latine f barré
<UFDD8> <f> : "ꞙ" UA799 # ꞙ - Lettre minuscule latine f barré
<UFDD8> <G> : "Ǥ" U01E4 # Ǥ - Lettre majuscule latine G barré
<UFDD8> <g> : "ǥ" U01E5 # ǥ - Lettre minuscule latine G barré
<dead_stroke> <G> : "Ꞡ" UA7A0 # Ꞡ - Lettre majuscule latine g barre oblique
<dead_stroke> <g> : "ꞡ" UA7A1 # ꞡ - Lettre minuscule latine g barre oblique
<UFDD8> <H> : "Ħ" U0126 # Ħ - Lettre majuscule latine H barré
<UFDD8> <h> : "ħ" U0127 # ħ - Lettre minuscule latine H barré
<UFDD8> <I> : "Ɨ" U0197 # Ɨ - Lettre majuscule latine I barré
<UFDD8> <i> : "ɨ" U0268 # ɨ - Lettre minuscule latine I barré
<UFDD8> <J> : "Ɉ" U0248 # Ɉ - Lettre majuscule latine J barré
<UFDD8> <j> : "ɉ" U0249 # ɉ - Lettre minuscule latine J barré
<UFDD8> <K> : "Ꝁ" UA740 # Ꝁ - Lettre majuscule latine k à trait horizontal
<UFDD8> <k> : "ꝁ" UA741 # ꝁ - Lettre minuscule latine k à trait horizontal
<dead_stroke> <K> : "Ꞣ" UA7A2 # Ꞣ - Lettre majuscule latine k barre oblique
<dead_stroke> <k> : "ꞣ" UA7A3 # ꞣ - Lettre minuscule latine k barre oblique
<dead_stroke> <U2011> : "Ꝃ" UA742 # Ꝃ - Lettre majuscule latine k barré
<dead_stroke> <asciitilde> : "ꝃ" UA743 # ꝃ - Lettre minuscule latine k barré
<UFDD8> <L> : "Ƚ" U023D # Ƚ - Lettre majuscule latine L rayé
<UFDD8> <l> : "ƚ" U019A # ƚ - Lettre minuscule latine L rayé
<UFDD8> <sterling> : "Ꝉ" UA748 # Ꝉ - Lettre majuscule latine l à trait élevé
<dead_stroke> <N> : "Ꞥ" UA7A4 # Ꞥ - Lettre majuscule latine n barre oblique
<dead_stroke> <n> : "ꞥ" UA7A5 # ꞥ - Lettre minuscule latine n barre oblique
<UFDD8> <O> : "Ꝋ" UA74A # Ꝋ - Lettre majuscule latine o à long trait couvrant
<UFDD8> <o> : "ꝋ" UA74B # ꝋ - Lettre minuscule latine o à long trait couvrant
<UFDD8> <OE> : "Ɵ" U019F # Ɵ - Lettre majuscule latine O tilde median *
<UFDD8> <oe> : "ɵ" U0275 # ɵ - Lettre minuscule latine O barré
<UFDD8> <P> : "Ᵽ" U2C63 # Ᵽ - Lettre majuscule latine p barré
<UFDD8> <p> : "ᵽ" U1D7D # ᵽ - Lettre minuscule latine p barré
<UFDD8> <section> : "Ꝑ" UA750 # Ꝑ - Lettre majuscule latine p à jambage barré
<UFDD8> <ampersand> : "ꝑ" UA751 # ꝑ - Lettre minuscule latine p à jambage barré
<UFDD8> <Q> : "Ꝗ" UA756 # Ꝗ - Lettre majuscule latine q à queue barrée
<UFDD8> <q> : "ꝗ" UA757 # ꝗ - Lettre minuscule latine q à queue barrée
<dead_stroke> <Q> : "Ꝙ" UA758 # Ꝙ - Lettre majuscule latine q à barre diagonale
<dead_stroke> <q> : "ꝙ" UA759 # ꝙ - Lettre minuscule latine q à barre diagonale
<UFDD8> <R> : "Ɍ" U024C # Ɍ - Lettre majuscule latine R barré
<dead_stroke> <Greek_rho> : "ϼ" U03FC # ϼ - Symbole grec Rhô barré
<UFDD8> <r> : "ɍ" U024D # ɍ - Lettre minuscule latine R barré
<dead_stroke> <R> : "Ꞧ" UA7A6 # Ꞧ - Lettre majuscule latine r barre oblique
<dead_stroke> <r> : "ꞧ" UA7A7 # ꞧ - Lettre minuscule latine r barre oblique
<dead_stroke> <S> : "Ꞩ" UA7A8 # Ꞩ - Lettre majuscule latine s barre oblique
<dead_stroke> <s> : "ꞩ" UA7A9 # ꞩ - Lettre minuscule latine s barre oblique
<dead_stroke> <U1D11> : "ᴓ" U1D13 # ᴓ - Lettre minuscule latine o couché barré obliquement
<dead_stroke> <U017F> : "ẜ" U1E9C # ẜ - Lettre minuscule latine s long à barre diagonale
<UFDD8> <U017F> : "ẝ" U1E9D # ẝ - Lettre minuscule latine s long à barre haute
<UFDD8> <T> : "Ŧ" U0166 # Ŧ - Lettre majuscule latine T barré
<UFDD8> <t> : "ŧ" U0167 # ŧ - Lettre minuscule latine T barré
<dead_stroke> <T> : "Ⱦ" U023E # Ⱦ - Lettre majuscule latine T barré diagonalement
<dead_stroke> <t> : "ⱦ" U2C66 # ⱦ - Lettre minuscule latine t barré diagonalement
<dead_stroke> <U> : "Ꞹ" UA7B8 # Ꞹ - Latin Capital Letter U with Stroke
<dead_stroke> <u> : "ꞹ" UA7B9 # ꞹ - Latin Small Letter U with Stroke
<UFDD8> <U> : "Ʉ" U0244 # Ʉ - Lettre majuscule latine U barré
<UFDD8> <u> : "ʉ" U0289 # ʉ - Lettre minuscule latine U barré
<dead_stroke> <U028A> : "ᵿ" U1D7F # ᵿ - Lettre minuscule latine upsilon barré
<dead_stroke> <V> : "Ꝟ" UA75E # Ꝟ - Lettre majuscule latine v à barre diagonale
<dead_stroke> <v> : "ꝟ" UA75F # ꝟ - Lettre minuscule latine v à barre diagonale
<UFDD8> <Y> : "Ɏ" U024E # Ɏ - Lettre majuscule latine Y barré
<UFDD8> <y> : "ɏ" U024F # ɏ - Lettre minuscule latine Y barré
<UFDD8> <Z> : "Ƶ" U01B5 # Ƶ - Lettre majuscule latine Z barré
<UFDD8> <z> : "ƶ" U01B6 # ƶ - Lettre minuscule latine Z barré
<dead_stroke> <U202F> : "/" U002F # / - Barre Oblique
<dead_stroke> <underscore> : "/" U002F # / - Barre Oblique
<dead_stroke> <nobreakspace> : "/" U002F # / - Barre Oblique
<dead_stroke> <period> : "" U0338 # - Diacritique barre oblique longue couvrante
<dead_stroke> <colon> : "" U0338 # - Diacritique barre oblique longue couvrante
<dead_stroke> <ellipsis> : "" U0338 # - Diacritique barre oblique longue couvrante
<dead_stroke> <periodcentered> : "" U0338 # - Diacritique barre oblique longue couvrante
<dead_stroke> <rightsinglequotemark> : "" U0338 # - Diacritique barre oblique longue couvrante
<dead_stroke> <question> : "" U0338 # - Diacritique barre oblique longue couvrante
<dead_stroke> <questiondown> : "" U0338 # - Diacritique barre oblique longue couvrante
<dead_stroke> <dead_hook> : "" U0338 # - Diacritique barre oblique longue couvrante
<UFDD8> <space> : "–" U2013 # – - Tiret demi-cadratin
<UFDD8> <U202F> : "–" U2013 # – - Tiret demi-cadratin
<UFDD8> <underscore> : "–" U2013 # – - Tiret demi-cadratin
<UFDD8> <nobreakspace> : "–" U2013 # – - Tiret demi-cadratin
<UFDD8> <period> : "̵" U0335 # ̵ - Diacritique barre courte couvrante
<UFDD8> <colon> : "̵" U0335 # ̵ - Diacritique barre courte couvrante
<UFDD8> <ellipsis> : "̵" U0335 # ̵ - Diacritique barre courte couvrante
<UFDD8> <periodcentered> : "̵" U0335 # ̵ - Diacritique barre courte couvrante
<UFDD8> <rightsinglequotemark> : "̶" U0336 # ̶ - Diacritique barre longue couvrante
<UFDD8> <question> : "̶" U0336 # ̶ - Diacritique barre longue couvrante
<UFDD8> <questiondown> : "̶" U0336 # ̶ - Diacritique barre longue couvrante
<UFDD8> <dead_hook> : "̶" U0336 # ̶ - Diacritique barre longue couvrante
<UFDD8> <UFDD8> <L> : "Ⱡ" U2C60 # Ⱡ - Lettre majuscule latine l à double barre
<UFDD8> <UFDD8> <l> : "ⱡ" U2C61 # ⱡ - Lettre minuscule latine l à double barre
<dead_stroke> <UFDD5> <UFDD5> <L> : "ᴌ" U1D0C # ᴌ - Lettre latine petite capitale l barré obliquement
<UFDD5> <UFDD5> <dead_stroke> <L> : "ᴌ" U1D0C # ᴌ - Lettre latine petite capitale l barré obliquement
<UFDD8> <UFDD5> <UFDD5> <U> : "ᵾ" U1D7E # ᵾ - Lettre latine petite capitale u barré
<UFDD5> <UFDD5> <UFDD8> <U> : "ᵾ" U1D7E # ᵾ - Lettre latine petite capitale u barré
<UFDD8> <UFDD5> <UFDD5> <I> : "ᵻ" U1D7B # ᵻ - Lettre latine petite capitale i barré
<UFDD5> <UFDD5> <UFDD8> <I> : "ᵻ" U1D7B # ᵻ - Lettre latine petite capitale i barré
<UFDD8> <UFDD5> <UFDD5> <B> : "ᴃ" U1D03 # ᴃ - Lettre latine petite capitale b barré
<UFDD5> <UFDD5> <UFDD8> <B> : "ᴃ" U1D03 # ᴃ - Lettre latine petite capitale b barré
<dead_tilde> <minus> : "≃" U2243 # ≃ - Asymptotiquement égal à
<dead_tilde> <U202F> : "~" U007E # ~ - Tilde
<dead_tilde> <underscore> : "~" U007E # ~ - Tilde
<dead_tilde> <nobreakspace> : "~" U007E # ~ - Tilde
<dead_tilde> <period> : "̃" U0303 # ̃ - Diacritique tilde
<dead_tilde> <colon> : "̃" U0303 # ̃ - Diacritique tilde
<dead_tilde> <ellipsis> : "̃" U0303 # ̃ - Diacritique tilde
<dead_tilde> <periodcentered> : "̃" U0303 # ̃ - Diacritique tilde
<dead_tilde> <rightsinglequotemark> : "̃" U0303 # ̃ - Diacritique tilde
<dead_tilde> <question> : "̃" U0303 # ̃ - Diacritique tilde
<dead_tilde> <questiondown> : "̃" U0303 # ̃ - Diacritique tilde
<dead_tilde> <dead_hook> : "̃" U0303 # ̃ - Diacritique tilde
<dead_tilde> <dead_tilde> <b> : "ᵬ" U1D6C # ᵬ - Lettre minuscule latine b tilde médian
<dead_tilde> <dead_tilde> <d> : "ᵭ" U1D6D # ᵭ - Lettre minuscule latine d tilde médian
<dead_tilde> <dead_tilde> <f> : "ᵮ" U1D6E # ᵮ - Lettre minuscule latine f tilde médian
<dead_tilde> <dead_tilde> <L> : "Ɫ" U2C62 # Ɫ - Lettre majuscule latine l tilde médian
<dead_tilde> <dead_tilde> <l> : "ɫ" U026B # ɫ - Lettre minuscule latine L tilde médian
<dead_tilde> <dead_tilde> <m> : "ᵯ" U1D6F # ᵯ - Lettre minuscule latine m tilde médian
<dead_tilde> <dead_tilde> <n> : "ᵰ" U1D70 # ᵰ - Lettre minuscule latine n tilde médian
<dead_tilde> <dead_tilde> <O> : "Ɵ" U019F # Ɵ - Lettre majuscule latine O tilde median *
<dead_tilde> <dead_tilde> <p> : "ᵱ" U1D71 # ᵱ - Lettre minuscule latine p tilde médian
<dead_tilde> <dead_tilde> <r> : "ᵲ" U1D72 # ᵲ - Lettre minuscule latine r tilde médian
<dead_tilde> <dead_tilde> <s> : "ᵴ" U1D74 # ᵴ - Lettre minuscule latine s tilde médian
<dead_tilde> <dead_tilde> <t> : "ᵵ" U1D75 # ᵵ - Lettre minuscule latine t tilde médian
<dead_tilde> <dead_tilde> <z> : "ᵶ" U1D76 # ᵶ - Lettre minuscule latine z tilde médian
<dead_tilde> <dead_tilde> <E> : "Ḛ" U1E1A # Ḛ - Lettre majuscule latine e tilde souscrit
<dead_tilde> <dead_tilde> <e> : "ḛ" U1E1B # ḛ - Lettre minuscule latine e tilde souscrit
<dead_tilde> <dead_tilde> <I> : "Ḭ" U1E2C # Ḭ - Lettre majuscule latine i tilde souscrit
<dead_tilde> <dead_tilde> <i> : "ḭ" U1E2D # ḭ - Lettre minuscule latine i tilde souscrit
<dead_tilde> <dead_tilde> <U> : "Ṵ" U1E74 # Ṵ - Lettre majuscule latine u tilde souscrit
<dead_tilde> <dead_tilde> <u> : "ṵ" U1E75 # ṵ - Lettre minuscule latine u tilde souscrit
<dead_tilde> <dead_tilde> <plus> : "⨦" U2A26 # ⨦ - Plus à tilde souscrit
<dead_tilde> <dead_tilde> <period> : "̰" U0330 # ̰ - Diacritique tilde souscrit
<dead_tilde> <dead_tilde> <colon> : "̰" U0330 # ̰ - Diacritique tilde souscrit
<dead_tilde> <dead_tilde> <ellipsis> : "̰" U0330 # ̰ - Diacritique tilde souscrit
<dead_tilde> <dead_tilde> <periodcentered> : "̰" U0330 # ̰ - Diacritique tilde souscrit
<dead_tilde> <dead_tilde> <rightsinglequotemark> : "̰" U0330 # ̰ - Diacritique tilde souscrit
<dead_tilde> <dead_tilde> <question> : "̰" U0330 # ̰ - Diacritique tilde souscrit
<dead_tilde> <dead_tilde> <questiondown> : "̰" U0330 # ̰ - Diacritique tilde souscrit
<dead_tilde> <dead_tilde> <dead_hook> : "̰" U0330 # ̰ - Diacritique tilde souscrit
<dead_tilde> <dead_tilde> <dead_tilde> <l> : "ꬸ" UAB38 # ꬸ - Lettre minuscule latine l double tilde médian
<dead_abovedot> <dead_abovedot> <dead_abovedot> <S> : "Ṩ" U1E68 # Ṩ - Lettre majuscule latine s point souscrit et point en chef
<dead_abovedot> <dead_abovedot> <dead_abovedot> <s> : "ṩ" U1E69 # ṩ - Lettre minuscule latine s point souscrit et point en chef
<dead_abovedot> <dead_abovedot> <dead_breve> <A> : "Ặ" U1EB6 # Ặ - Lettre majuscule latine a brève et point souscrit
<dead_breve> <dead_abovedot> <dead_abovedot> <A> : "Ặ" U1EB6 # Ặ - Lettre majuscule latine a brève et point souscrit
<dead_abovedot> <dead_abovedot> <dead_breve> <a> : "ặ" U1EB7 # ặ - Lettre minuscule latine a brève et point souscrit
<dead_breve> <dead_abovedot> <dead_abovedot> <a> : "ặ" U1EB7 # ặ - Lettre minuscule latine a brève et point souscrit
<dead_abovedot> <dead_abovedot> <dead_circumflex> <A> : "Ậ" U1EAC # Ậ - Lettre majuscule latine a accent circonflexe et point souscrit
<dead_circumflex> <dead_abovedot> <dead_abovedot> <A> : "Ậ" U1EAC # Ậ - Lettre majuscule latine a accent circonflexe et point souscrit
<dead_abovedot> <dead_abovedot> <dead_circumflex> <a> : "ậ" U1EAD # ậ - Lettre minuscule latine a accent circonflexe et point souscrit
<dead_circumflex> <dead_abovedot> <dead_abovedot> <a> : "ậ" U1EAD # ậ - Lettre minuscule latine a accent circonflexe et point souscrit
<dead_abovedot> <dead_abovedot> <dead_circumflex> <E> : "Ệ" U1EC6 # Ệ - Lettre majuscule latine e accent circonflexe et point souscrit
<dead_circumflex> <dead_abovedot> <dead_abovedot> <E> : "Ệ" U1EC6 # Ệ - Lettre majuscule latine e accent circonflexe et point souscrit
<dead_abovedot> <dead_abovedot> <dead_circumflex> <e> : "ệ" U1EC7 # ệ - Lettre minuscule latine e accent circonflexe et point souscrit
<dead_circumflex> <dead_abovedot> <dead_abovedot> <e> : "ệ" U1EC7 # ệ - Lettre minuscule latine e accent circonflexe et point souscrit
<dead_abovedot> <dead_abovedot> <dead_circumflex> <O> : "Ộ" U1ED8 # Ộ - Lettre majuscule latine o accent circonflexe et point souscrit
<dead_circumflex> <dead_abovedot> <dead_abovedot> <O> : "Ộ" U1ED8 # Ộ - Lettre majuscule latine o accent circonflexe et point souscrit
<dead_abovedot> <dead_abovedot> <dead_circumflex> <o> : "ộ" U1ED9 # ộ - Lettre minuscule latine o accent circonflexe et point souscrit
<dead_circumflex> <dead_abovedot> <dead_abovedot> <o> : "ộ" U1ED9 # ộ - Lettre minuscule latine o accent circonflexe et point souscrit
<dead_abovedot> <dead_abovedot> <dead_horn> <O> : "Ợ" U1EE2 # Ợ - Lettre majuscule latine o cornu point souscrit
<dead_horn> <dead_abovedot> <dead_abovedot> <O> : "Ợ" U1EE2 # Ợ - Lettre majuscule latine o cornu point souscrit
<dead_abovedot> <dead_abovedot> <dead_horn> <o> : "ợ" U1EE3 # ợ - Lettre minuscule latine o cornu point souscrit
<dead_horn> <dead_abovedot> <dead_abovedot> <o> : "ợ" U1EE3 # ợ - Lettre minuscule latine o cornu point souscrit
<dead_abovedot> <dead_abovedot> <dead_horn> <U> : "Ự" U1EF0 # Ự - Lettre majuscule latine u cornu point souscrit
<dead_horn> <dead_abovedot> <dead_abovedot> <U> : "Ự" U1EF0 # Ự - Lettre majuscule latine u cornu point souscrit
<dead_abovedot> <dead_abovedot> <dead_horn> <u> : "ự" U1EF1 # ự - Lettre minuscule latine u cornu point souscrit
<dead_horn> <dead_abovedot> <dead_abovedot> <u> : "ự" U1EF1 # ự - Lettre minuscule latine u cornu point souscrit
<dead_abovedot> <dead_abovedot> <dead_macron> <L> : "Ḹ" U1E38 # Ḹ - Lettre majuscule latine l point souscrit et macron
<dead_macron> <dead_abovedot> <dead_abovedot> <L> : "Ḹ" U1E38 # Ḹ - Lettre majuscule latine l point souscrit et macron
<dead_abovedot> <dead_abovedot> <dead_macron> <l> : "ḹ" U1E39 # ḹ - Lettre minuscule latine l point souscrit et macron
<dead_macron> <dead_abovedot> <dead_abovedot> <l> : "ḹ" U1E39 # ḹ - Lettre minuscule latine l point souscrit et macron
<dead_abovedot> <dead_abovedot> <dead_macron> <R> : "Ṝ" U1E5C # Ṝ - Lettre majuscule latine r point souscrit et macron
<dead_macron> <dead_abovedot> <dead_abovedot> <R> : "Ṝ" U1E5C # Ṝ - Lettre majuscule latine r point souscrit et macron
<dead_abovedot> <dead_abovedot> <dead_macron> <r> : "ṝ" U1E5D # ṝ - Lettre minuscule latine r point souscrit et macron
<dead_macron> <dead_abovedot> <dead_abovedot> <r> : "ṝ" U1E5D # ṝ - Lettre minuscule latine r point souscrit et macron
<UFDD8> <dead_stroke> <K> : "Ꝅ" UA744 # Ꝅ - Lettre majuscule latine k barré à trait horizontal
<dead_stroke> <UFDD8> <K> : "Ꝅ" UA744 # Ꝅ - Lettre majuscule latine k barré à trait horizontal
<UFDD8> <dead_stroke> <k> : "ꝅ" UA745 # ꝅ - Lettre minuscule latine k barré à trait horizontal
<dead_stroke> <UFDD8> <k> : "ꝅ" UA745 # ꝅ - Lettre minuscule latine k barré à trait horizontal
<UFDD4> <dollar> : "♭" U266D # ♭ - Bémol
<UFDD4> <numbersign> : "♯" U266F # ♯ - Dièse
<UFDD4> <endash> : "‒" U2012 # ‒ - Tiret numérique
<UFDD4> <paragraph> : "♮" U266E # ♮ - Bécarre
<UFDD4> <1> : "ↀ" U2180 # ↀ - Chiffre romain mille c d
<UFDD4> <emdash> : "―" U2015 # ― - Barre horizontale
<UFDD4> <guillemotleft> : "‹" U2039 # ‹ - Guillemet simple vers la gauche
<UFDD4> <guillemotright> : "›" U203A # › - Guillemet simple vers la droite
<UFDD4> <5> : "ↁ" U2181 # ↁ - Chiffre romain cinq mille
<UFDD4> <plus> : "⁜" U205C # ⁜ - Croix pointée
<UFDD4> <notsign> : "☞" U261E # ☞ - Index blanc pointant vers la droite
<UFDD4> <minus> : "" U00AD # - Trait d'union conditionnel
<UFDD4> <U2212> : "‐" U2010 # ‐ - Trait d'union
<UFDD4> <onequarter> : "⅓" U2153 # ⅓ - Fraction un tiers
<UFDD4> <asterisk> : "⁂" U2042 # ⁂ - Astérisme
<UFDD4> <0> : "ↂ" U2182 # ↂ - Chiffre romain dix mille
<UFDD4> <multiply> : "※" U203B # ※ - Marque de référence
<UFDD4> <threequarters> : "⅔" U2154 # ⅔ - Fraction deux tiers
<UFDD4> <minutes> : "‴" U2034 # ‴ - Triple prime
<UFDD4> <percent> : "‱" U2031 # ‱ - Symbole pour dix mille
<UFDD4> <grave> : "◌" U25CC # ◌ - Cercle en pointillés
<UFDD4> <seconds> : "⁗" U2057 # ⁗ - Quadruple prime
<UFDD4> <b> : "ꞵ" UA7B5 # ꞵ - Latin Small Letter Beta
<UFDD4> <B> : "Ꞵ" UA7B4 # Ꞵ - Latin Capital Letter Beta
<UFDD4> <eacute> : "ɛ" U025B # ɛ - Lettre minuscule latine Epsilon
<UFDD4> <Eacute> : "Ɛ" U0190 # Ɛ - Lettre majuscule latine E ouvert
<UFDD4> <ampersand> : "⁊" U204A # ⁊ - Note tironienne et
<UFDD4> <section> : "℗" U2117 # ℗ - Copyright de phonogramme
<UFDD4> <o> : "ɔ" U0254 # ɔ - Lettre minuscule latine O ouvert
<UFDD4> <O> : "Ɔ" U0186 # Ɔ - Lettre majuscule latine O ouvert
<UFDD4> <oe> : "ꞷ" UA7B7 # ꞷ - Latin Small Letter Omega
<UFDD4> <OE> : "Ꞷ" UA7B6 # Ꞷ - Latin Capital Letter Omega
<UFDD4> <egrave> : "ǝ" U01DD # ǝ - Lettre minuscule latine E culbuté
<UFDD4> <Egrave> : "Ǝ" U018E # Ǝ - Lettre majuscule latine E réfléchi
<UFDD4> <exclam> : "‽" U203D # ‽ - Point exclarrogatif
<UFDD4> <v> : "ʌ" U028C # ʌ - Lettre minuscule latine V culbuté
<UFDD4> <V> : "Ʌ" U0245 # Ʌ - Lettre majuscule latine V culbuté
<UFDD4> <d> : "ð" U00F0 # ð - Lettre minuscule latine ED (islandais)
<UFDD4> <D> : "Ð" U00D0 # Ð - Lettre majuscule latine ED (islandais)
<UFDD4> <j> : "ij" U0133 # ij - Diagramme soudé minuscule latin Ij
<UFDD4> <J> : "IJ" U0132 # IJ - Diagramme soudé majuscule latin Ij
<UFDD4> <z> : "ʒ" U0292 # ʒ - Lettre minuscule latine Ej
<UFDD4> <Z> : "Ʒ" U01B7 # Ʒ - Lettre majuscule latine Ej
<UFDD4> <w> : "ƿ" U01BF # ƿ - Lettre latine Wynn
<UFDD4> <W> : "Ƿ" U01F7 # Ƿ - Lettre majuscule latine Wynn
<UFDD4> <a> : "ɑ" U0251 # ɑ - Lettre minuscule latine Alpha
<UFDD4> <A> : "Ɑ" U2C6D # Ɑ - Lettre majuscule latine alpha
<UFDD4> <ae> : "ꜥ" UA725 # ꜥ - Lettre minuscule latine égyptologique 'aïn
<UFDD4> <AE> : "Ꜥ" UA724 # Ꜥ - Lettre majuscule latine égyptologique 'aïn
<UFDD4> <u> : "ʊ" U028A # ʊ - Lettre minuscule latine Upsilon
<UFDD4> <U> : "Ʊ" U01B1 # Ʊ - Lettre majuscule latine Upsilon
<UFDD4> <ugrave> : "ɥ" U0265 # ɥ - Lettre minuscule latine H culbuté
<UFDD4> <Ugrave> : "Ɥ" UA78D # Ɥ - Lettre majuscule latine h culbuté
<UFDD4> <i> : "ɩ" U0269 # ɩ - Lettre minuscule latine Iota
<UFDD4> <I> : "Ɩ" U0196 # Ɩ - Lettre majuscule latine Iota
<UFDD4> <e> : "ə" U0259 # ə - Lettre minuscule latine Schwa
<UFDD4> <E> : "Ə" U018F # Ə - Lettre majuscule latine Schwa
<UFDD4> <c> : "θ" U03B8 # θ - Lettre minuscule grecque Thêta
<UFDD4> <C> : "ϴ" U03F4 # ϴ - Symbole grec Thêta majuscule
<UFDD4> <t> : "þ" U00FE # þ - Lettre minuscule latine Thorn (islandais)
<UFDD4> <T> : "Þ" U00DE # Þ - Lettre majuscule latine Thron (islandais)
<UFDD4> <s> : "ß" U00DF # ß - Lettre minuscule latine S dur (allemand)
<UFDD4> <S> : "ẞ" U1E9E # ẞ - Lettre majuscule latine s dur
<UFDD4> <UFDD4> : "ß" U00DF # ß - Lettre minuscule latine S dur (allemand)
<UFDD4> <U017F> : "ẞ" U1E9E # ẞ - Lettre majuscule latine s dur
<UFDD4> <n> : "ŋ" U014B # ŋ - Lettre minuscule latine Eng (sámi)
<UFDD4> <N> : "Ŋ" U014A # Ŋ - Lettre majuscule latine Eng (sámi)
<UFDD4> <m> : "º" U00BA # º - Indicateur ordinal masculin
<UFDD4> <ccedilla> : "ʃ" U0283 # ʃ - Lettre minuscule latine Ech
<UFDD4> <Ccedilla> : "Ʃ" U01A9 # Ʃ - Lettre majuscule latine Ech
<UFDD4> <ecircumflex> : "ɪ" U026A # ɪ - Lettre latine petite capitale I
<UFDD4> <Ecircumflex> : "Ɪ" UA7AE # Ɪ - Latin Capital Letter Small Capital I
<UFDD4> <agrave> : "ꜣ" UA723 # ꜣ - Lettre minuscule latine égyptologique alef
<UFDD4> <Agrave> : "Ꜣ" UA722 # Ꜣ - Lettre majuscule latine égyptologique alef
<UFDD4> <y> : "ȝ" U021D # ȝ - Lettre minuscule latine Yogh
<UFDD4> <Y> : "Ȝ" U021C # Ȝ - Lettre majuscule latine Yogh
<UFDD4> <braceleft> : "ʿ" U02BF # ʿ - Lettre modificative demi-anneau à gauche
<UFDD4> <leftsinglequotemark> : "ʻ" U02BB # ʻ - Lettre modificative virgule culbutée
<UFDD4> <x> : "ꞌ" UA78C # ꞌ - Lettre minuscule latine saltillo
<UFDD4> <X> : "Ꞌ" UA78B # Ꞌ - Lettre majuscule latine saltillo
<UFDD4> <rightsinglequotemark> : "ʼ" U02BC # ʼ - Lettre modificative apostrophe
<UFDD4> <period> : "•" U2022 # • - Puce
<UFDD4> <colon> : "⁃" U2043 # ⁃ - Puce trait d'union
<UFDD4> <periodcentered> : "▪" U25AA # ▪ - Petit carré noir Emoji
<UFDD4> <k> : "ĸ" U0138 # ĸ - Lettre minuscule latine Kra (groenlandais)
<UFDD4> <question> : "⸮" U2E2E # ⸮ - Point d'interrogation réfléchi
<UFDD4> <dead_hook> : "ʻ" U02BB # ʻ - Lettre modificative virgule culbutée
<UFDD4> <q> : "ꭓ" UAB53 # ꭓ - Lettre minuscule latinelettre minuscule latine khi
<UFDD4> <Q> : "Ꭓ" UA7B3 # Ꭓ - Latin Capital Letter Chi
<UFDD4> <g> : "ɣ" U0263 # ɣ - Lettre minuscule latine Gamma
<UFDD4> <G> : "Ɣ" U0194 # Ɣ - Lettre majuscule latine Gamma
<UFDD4> <h> : "ɂ" U0242 # ɂ - Lettre minuscule latine Coup de glotte
<UFDD4> <H> : "Ɂ" U0241 # Ɂ - Lettre majuscule latine Coup de glotte
<UFDD4> <f> : "ª" U00AA # ª - Indicateur ordinal féminin
<UFDD4> <space> : "␣" U2423 # ␣ - Boîte ouverte
<UFDD4> <U202F> : " " U2003 # - Espace cadratin
<UFDD4> <underscore> : "‾" U203E # ‾ - Tiret en chef
<UFDD4> <nobreakspace> : "‿" U203F # ‿ - Tirant souscrit (énotikon)
<dead_caron> <UFDD4> <Z> : "Ǯ" U01EE # Ǯ - Lettre majuscule latine Ej caron
<dead_caron> <UFDD4> <z> : "ǯ" U01EF # ǯ - Lettre minuscule latine Ej caron
<dead_hook> <UFDD4> <e> : "ɚ" U025A # ɚ - Lettre minuscule latine Schwa crochet
<UFDD8> <UFDD4> <T> : "Ꝥ" UA764 # Ꝥ - Lettre majuscule latine thorn à trait
<UFDD4> <UFDD8> <T> : "Ꝥ" UA764 # Ꝥ - Lettre majuscule latine thorn à trait
<UFDD8> <UFDD4> <t> : "ꝥ" UA765 # ꝥ - Lettre minuscule latine thorn à trait
<UFDD4> <UFDD8> <t> : "ꝥ" UA765 # ꝥ - Lettre minuscule latine thorn à trait
<UFDD8> <UFDD4> <a> : "ꬰ" UAB30 # ꬰ - Lettre minuscule latine alpha barré
<UFDD4> <UFDD8> <a> : "ꬰ" UAB30 # ꬰ - Lettre minuscule latine alpha barré
<UFDD8> <UFDD4> <i> : "ᵼ" U1D7C # ᵼ - Lettre minuscule latine iota barré
<UFDD4> <UFDD8> <i> : "ᵼ" U1D7C # ᵼ - Lettre minuscule latine iota barré
<UFDD4> <UFDD8> <u> : "ᵿ" U1D7F # ᵿ - Lettre minuscule latine upsilon barré
<dead_stroke> <UFDD4> <o> : "ꬿ" UAB3F # ꬿ - Lettre minuscule latine o ouvert barré
<UFDD4> <dead_stroke> <o> : "ꬿ" UAB3F # ꬿ - Lettre minuscule latine o ouvert barré
<dead_hook> <U025F> : "ʄ" U0284 # ʄ - Lettre minuscule latine J sans point barré crosse
<dead_hook> <dead_abovedot> <UFDD8> <j> : "ʄ" U0284 # ʄ - Lettre minuscule latine J sans point barré crosse
<dead_hook> <UFDD8> <dead_abovedot> <j> : "ʄ" U0284 # ʄ - Lettre minuscule latine J sans point barré crosse
<dead_abovedot> <dead_hook> <UFDD8> <j> : "ʄ" U0284 # ʄ - Lettre minuscule latine J sans point barré crosse
<dead_abovedot> <UFDD8> <dead_hook> <j> : "ʄ" U0284 # ʄ - Lettre minuscule latine J sans point barré crosse
<UFDD8> <dead_abovedot> <dead_hook> <j> : "ʄ" U0284 # ʄ - Lettre minuscule latine J sans point barré crosse
<UFDD8> <dead_hook> <dead_abovedot> <j> : "ʄ" U0284 # ʄ - Lettre minuscule latine J sans point barré crosse
<UFDD5> <parenleft> : "⁽" U207D # ⁽ - Exposant parenthèse gauche
<UFDD5> <parenright> : "⁾" U207E # ⁾ - Exposant parenthèse droite
<UFDD5> <plus> : "⁺" U207A # ⁺ - Exposant signe plus
<UFDD5> <minus> : "⁻" U207B # ⁻ - Exposant signe moins
<UFDD5> <0> : "⁰" U2070 # ⁰ - Exposant zéro
<UFDD5> <1> : "¹" U00B9 # ¹ - Exposant un
<UFDD5> <2> : "²" U00B2 # ² - Exposant deux
<UFDD5> <3> : "³" U00B3 # ³ - Exposant trois
<UFDD5> <4> : "⁴" U2074 # ⁴ - Exposant quatre
<UFDD5> <5> : "⁵" U2075 # ⁵ - Exposant cinq
<UFDD5> <6> : "⁶" U2076 # ⁶ - Exposant six
<UFDD5> <7> : "⁷" U2077 # ⁷ - Exposant sept
<UFDD5> <8> : "⁸" U2078 # ⁸ - Exposant huit
<UFDD5> <9> : "⁹" U2079 # ⁹ - Exposant neuf
<UFDD5> <equal> : "⁼" U207C # ⁼ - Exposant signe égal
<UFDD5> <A> : "ᴬ" U1D2C # ᴬ - Lettre modificative majuscule a
<UFDD5> <AE> : "ᴭ" U1D2D # ᴭ - Lettre modificative majuscule ae
<UFDD5> <B> : "ᴮ" U1D2E # ᴮ - Lettre modificative majuscule b
<UFDD5> <D> : "ᴰ" U1D30 # ᴰ - Lettre modificative majuscule d
<UFDD5> <E> : "ᴱ" U1D31 # ᴱ - Lettre modificative majuscule e
<UFDD5> <G> : "ᴳ" U1D33 # ᴳ - Lettre modificative majuscule g
<UFDD5> <H> : "ᴴ" U1D34 # ᴴ - Lettre modificative majuscule h
<UFDD5> <I> : "ᴵ" U1D35 # ᴵ - Lettre modificative majuscule i
<UFDD5> <J> : "ᴶ" U1D36 # ᴶ - Lettre modificative majuscule j
<UFDD5> <K> : "ᴷ" U1D37 # ᴷ - Lettre modificative majuscule k
<UFDD5> <L> : "ᴸ" U1D38 # ᴸ - Lettre modificative majuscule l
<UFDD5> <M> : "ᴹ" U1D39 # ᴹ - Lettre modificative majuscule m
<UFDD5> <N> : "ᴺ" U1D3A # ᴺ - Lettre modificative majuscule n
<UFDD5> <O> : "ᴼ" U1D3C # ᴼ - Lettre modificative majuscule o
<UFDD5> <P> : "ᴾ" U1D3E # ᴾ - Lettre modificative majuscule p
<UFDD5> <R> : "ᴿ" U1D3F # ᴿ - Lettre modificative majuscule r
<UFDD5> <T> : "ᵀ" U1D40 # ᵀ - Lettre modificative majuscule t
<UFDD5> <U> : "ᵁ" U1D41 # ᵁ - Lettre modificative majuscule u
<UFDD5> <V> : "ⱽ" U2C7D # ⱽ - Lettre modificative v majuscule
<UFDD5> <W> : "ᵂ" U1D42 # ᵂ - Lettre modificative majuscule w
<UFDD5> <a> : "ᵃ" U1D43 # ᵃ - Lettre modificative minuscule a
<UFDD5> <b> : "ᵇ" U1D47 # ᵇ - Lettre modificative minuscule b
<UFDD5> <c> : "ᶜ" U1D9C # ᶜ - Lettre modificative minuscule c
<UFDD5> <d> : "ᵈ" U1D48 # ᵈ - Lettre modificative minuscule d
<UFDD5> <e> : "ᵉ" U1D49 # ᵉ - Lettre modificative minuscule e
<UFDD5> <f> : "ᶠ" U1DA0 # ᶠ - Lettre modificative minuscule f
<UFDD5> <g> : "ᵍ" U1D4D # ᵍ - Lettre modificative minuscule g
<UFDD5> <h> : "ʰ" U02B0 # ʰ - Lettre modificative minuscule H
<UFDD5> <i> : "ⁱ" U2071 # ⁱ - Exposant lettre minuscule latine i
<UFDD5> <j> : "ʲ" U02B2 # ʲ - Lettre modificative minuscule J
<UFDD5> <k> : "ᵏ" U1D4F # ᵏ - Lettre modificative minuscule k
<UFDD5> <l> : "ˡ" U02E1 # ˡ - Lettre modificative L minuscule
<UFDD5> <m> : "ᵐ" U1D50 # ᵐ - Lettre modificative minuscule m
<UFDD5> <n> : "ⁿ" U207F # ⁿ - Exposant lettre minuscule latine n
<UFDD5> <o> : "ᵒ" U1D52 # ᵒ - Lettre modificative minuscule o
<UFDD5> <p> : "ᵖ" U1D56 # ᵖ - Lettre modificative minuscule p
<UFDD5> <r> : "ʳ" U02B3 # ʳ - Lettre modificative minuscule R
<UFDD5> <s> : "ˢ" U02E2 # ˢ - Lettre modificative S minuscule
<UFDD5> <t> : "ᵗ" U1D57 # ᵗ - Lettre modificative minuscule t
<UFDD5> <u> : "ᵘ" U1D58 # ᵘ - Lettre modificative minuscule u
<UFDD5> <v> : "ᵛ" U1D5B # ᵛ - Lettre modificative minuscule v
<UFDD5> <w> : "ʷ" U02B7 # ʷ - Lettre modificative minuscule W
<UFDD5> <x> : "ˣ" U02E3 # ˣ - Lettre modificative X minuscule
<UFDD5> <y> : "ʸ" U02B8 # ʸ - Lettre modificative minuscule Y
<UFDD5> <z> : "ᶻ" U1DBB # ᶻ - Lettre modificative minuscule z
<UFDD5> <oe> : "ꟹ" UA7F9 # ꟹ - Lettre modificative minuscule ligature oe
<UFDD5> <UFDD5> <parenleft> : "₍" U208D # ₍ - Indice parenthèse gauche
<UFDD5> <UFDD5> <parenright> : "₎" U208E # ₎ - Indice parenthèse droite
<UFDD5> <UFDD5> <plus> : "₊" U208A # ₊ - Indice signe plus
<UFDD5> <UFDD5> <minus> : "₋" U208B # ₋ - Indice signe moins
<UFDD5> <UFDD5> <0> : "₀" U2080 # ₀ - Indice zéro
<UFDD5> <UFDD5> <1> : "₁" U2081 # ₁ - Indice un
<UFDD5> <UFDD5> <2> : "₂" U2082 # ₂ - Indice deux
<UFDD5> <UFDD5> <3> : "₃" U2083 # ₃ - Indice trois
<UFDD5> <UFDD5> <4> : "₄" U2084 # ₄ - Indice quatre
<UFDD5> <UFDD5> <5> : "₅" U2085 # ₅ - Indice cinq
<UFDD5> <UFDD5> <6> : "₆" U2086 # ₆ - Indice six
<UFDD5> <UFDD5> <7> : "₇" U2087 # ₇ - Indice sept
<UFDD5> <UFDD5> <8> : "₈" U2088 # ₈ - Indice huit
<UFDD5> <UFDD5> <9> : "₉" U2089 # ₉ - Indice neuf
<UFDD5> <UFDD5> <equal> : "₌" U208C # ₌ - Indice signe égal
<UFDD5> <UFDD5> <A> : "ᴀ" U1D00 # ᴀ - Lettre latine petite capitale a
<UFDD5> <UFDD5> <AE> : "ᴁ" U1D01 # ᴁ - Lettre latine petite capitale ae
<UFDD5> <UFDD5> <B> : "ʙ" U0299 # ʙ - Lettre latine petite capitale B
<UFDD5> <UFDD5> <C> : "ᴄ" U1D04 # ᴄ - Lettre latine petite capitale c
<UFDD5> <UFDD5> <D> : "ᴅ" U1D05 # ᴅ - Lettre latine petite capitale d
<UFDD5> <UFDD5> <E> : "ᴇ" U1D07 # ᴇ - Lettre latine petite capitale e
<UFDD5> <UFDD5> <F> : "ꜰ" UA730 # ꜰ - Lettre latine petite capitale f
<UFDD5> <UFDD5> <G> : "ɢ" U0262 # ɢ - Lettre latine petite capitale G
<UFDD5> <UFDD5> <H> : "ʜ" U029C # ʜ - Lettre latine petite capitale H
<UFDD5> <UFDD5> <I> : "ɪ" U026A # ɪ - Lettre latine petite capitale I
<UFDD5> <UFDD5> <J> : "ᴊ" U1D0A # ᴊ - Lettre latine petite capitale j
<UFDD5> <UFDD5> <K> : "ᴋ" U1D0B # ᴋ - Lettre latine petite capitale k
<UFDD5> <UFDD5> <L> : "ʟ" U029F # ʟ - Lettre latine petite capitale L
<UFDD5> <UFDD5> <N> : "ɴ" U0274 # ɴ - Lettre latine petite capitale N
<UFDD5> <UFDD5> <M> : "ᴍ" U1D0D # ᴍ - Lettre latine petite capitale m
<UFDD5> <UFDD5> <O> : "ᴏ" U1D0F # ᴏ - Lettre latine petite capitale o
<UFDD5> <UFDD5> <OE> : "ɶ" U0276 # ɶ - Lettre latine petite capitale Oe
<UFDD5> <UFDD5> <P> : "ᴘ" U1D18 # ᴘ - Lettre latine petite capitale p
<UFDD5> <UFDD5> <Q> : "ꞯ" UA7AF # ꞯ - Latin Letter Small Capital Q
<UFDD5> <UFDD5> <R> : "ʀ" U0280 # ʀ - Lettre latine petite capitale R *
<UFDD5> <UFDD5> <S> : "ꜱ" UA731 # ꜱ - Lettre latine petite capitale s
<UFDD5> <UFDD5> <T> : "ᴛ" U1D1B # ᴛ - Lettre latine petite capitale t
<UFDD5> <UFDD5> <U> : "ᴜ" U1D1C # ᴜ - Lettre latine petite capitale u
<UFDD5> <UFDD5> <V> : "ᴠ" U1D20 # ᴠ - Lettre latine petite capitale v
<UFDD5> <UFDD5> <W> : "ᴡ" U1D21 # ᴡ - Lettre latine petite capitale w
<UFDD5> <UFDD5> <Y> : "ʏ" U028F # ʏ - Lettre latine petite capitale Y
<UFDD5> <UFDD5> <Z> : "ᴢ" U1D22 # ᴢ - Lettre latine petite capitale z
<UFDD5> <UFDD5> <a> : "ₐ" U2090 # ₐ - Indice lettre minuscule latine a
<UFDD5> <UFDD5> <e> : "ₑ" U2091 # ₑ - Indice lettre minuscule latine e
<UFDD5> <UFDD5> <h> : "ₕ" U2095 # ₕ - Lettre minuscule latine souscrite h
<UFDD5> <UFDD5> <i> : "ᵢ" U1D62 # ᵢ - Lettre minuscule latine i souscrit
<UFDD5> <UFDD5> <j> : "ⱼ" U2C7C # ⱼ - Lettre latine minuscule j souscrite
<UFDD5> <UFDD5> <k> : "ₖ" U2096 # ₖ - Lettre minuscule latine souscrite k
<UFDD5> <UFDD5> <l> : "ₗ" U2097 # ₗ - Lettre minuscule latine souscrite l
<UFDD5> <UFDD5> <m> : "ₘ" U2098 # ₘ - Lettre minuscule latine souscrite m
<UFDD5> <UFDD5> <n> : "ₙ" U2099 # ₙ - Lettre minuscule latine souscrite n
<UFDD5> <UFDD5> <o> : "ₒ" U2092 # ₒ - Indice lettre minuscule latine o
<UFDD5> <UFDD5> <p> : "ₚ" U209A # ₚ - Lettre minuscule latine souscrite p
<UFDD5> <UFDD5> <r> : "ᵣ" U1D63 # ᵣ - Lettre minuscule latine r souscrit
<UFDD5> <UFDD5> <s> : "ₛ" U209B # ₛ - Lettre minuscule latine souscrite s
<UFDD5> <UFDD5> <t> : "ₜ" U209C # ₜ - Lettre minuscule latine souscrite t
<UFDD5> <UFDD5> <u> : "ᵤ" U1D64 # ᵤ - Lettre minuscule latine u souscrit
<UFDD5> <UFDD5> <v> : "ᵥ" U1D65 # ᵥ - Lettre minuscule latine v souscrit
<UFDD5> <UFDD5> <x> : "ₓ" U2093 # ₓ - Indice lettre minuscule latine x
<UFDD7> <dollar> : "♀" U2640 # ♀ - Signe femelle Emoji
<UFDD7> <numbersign> : "☿" U263F # ☿ - Mercure
<UFDD7> <endash> : "♂" U2642 # ♂ - Signe mâle Emoji
<UFDD7> <paragraph> : "♁" U2641 # ♁ - Terre
<UFDD7> <quotedbl> : "♄" U2644 # ♄ - Saturne
<UFDD7> <1> : "♃" U2643 # ♃ - Jupiter
<UFDD7> <emdash> : "♆" U2646 # ♆ - Neptune
<UFDD7> <doublelowquotemark> : "♅" U2645 # ♅ - Uranus
<UFDD7> <guillemotleft> : "⟨" U27E8 # ⟨ - Chevron mathématique gauche
<UFDD7> <2> : "≪" U226A # ≪ - Beaucoup plus petit que
<UFDD7> <less> : "≺" U227A # ≺ - Précède
<UFDD7> <guillemotright> : "⟩" U27E9 # ⟩ - Chevron mathématique droit
<UFDD7> <3> : "≫" U226B # ≫ - Beaucoup plus grand que
<UFDD7> <greater> : "≻" U227B # ≻ - Suit
<UFDD7> <parenleft> : "⌊" U230A # ⌊ - Plancher à gauche
<UFDD7> <4> : "⌈" U2308 # ⌈ - Plafond à gauche
<UFDD7> <bracketleft> : "⊏" U228F # ⊏ - Image carrée de
<UFDD7> <U2A7D> : "≤" U2264 # ≤ - Plus petit ou égal à
<UFDD7> <parenright> : "⌋" U230B # ⌋ - Plancher à droite
<UFDD7> <5> : "⌉" U2309 # ⌉ - Plafond à droite
<UFDD7> <bracketright> : "⊐" U2290 # ⊐ - Original carré de
<UFDD7> <U2A7E> : "≥" U2265 # ≥ - Plus grand ou égal à
<UFDD7> <at> : "⟶" U27F6 # ⟶ - Longue flèche vers la droite
<UFDD7> <6> : "⟼" U27FC # ⟼ - Longue flèche d'un taquet vers la droite
<UFDD7> <asciicircum> : "" U202D # - Forçage gauche-à-droite
<UFDD7> <U262D> : "⃕" U20D5 # ⃕ - Diacritique flèche en sens négatif en chef
<UFDD7> <plus> : "⊕" U2295 # ⊕ - Plus cerclé
<UFDD7> <7> : "⊞" U229E # ⊞ - Plus encadré
<UFDD7> <plusminus> : "⊎" U228E # ⊎ - Union de multiensemble
<UFDD7> <minus> : "∞" U221E # ∞ - Infini
<UFDD7> <8> : "∝" U221D # ∝ - Proportionnel à
<UFDD7> <asterisk> : "⊗" U2297 # ⊗ - Multiplié par cerclé
<UFDD7> <0> : "∗" U2217 # ∗ - Opérateur astérisque
<UFDD7> <multiply> : "⋆" U22C6 # ⋆ - Opérateur étoile
<UFDD7> <equal> : "↔" U2194 # ↔ - Flèche bilatérale Emoji
<UFDD7> <degree> : "⇔" U21D4 # ⇔ - Double flèche bilatérale
<UFDD7> <notequal> : "≡" U2261 # ≡ - Identique à
<UFDD7> <minutes> : "⇄" U21C4 # ⇄ - Flèche vers la droite par-dessus flèche vers la gauche
<UFDD7> <B> : "ℶ" U2136 # ℶ - Symbole bèt
<UFDD7> <bar> : "∣" U2223 # ∣ - Est un diviseur de
<UFDD7> <eacute> : "∧" U2227 # ∧ - Et logique
<UFDD7> <Eacute> : "⅋" U214B # ⅋ - Perluète culbutée
<UFDD7> <dead_acute> : "↺" U21BA # ↺ - Flèche en sens positif à cercle ouvert
<UFDD7> <dead_acute> <dead_acute> : "↻" U21BB # ↻ - Flèche en sens négatif à cercle ouvert
<UFDD7> <p> : "∐" U2210 # ∐ - Coproduit de la famille
<UFDD7> <P> : "∏" U220F # ∏ - Produit de la famille
<UFDD7> <o> : "∘" U2218 # ∘ - Opérateur rond
<UFDD7> <O> : "∅" U2205 # ∅ - Ensemble vide
<UFDD7> <oe> : "⌀" U2300 # ⌀ - Symbole diamètre
<UFDD7> <egrave> : "←" U2190 # ← - Flèche vers la gauche
<UFDD7> <Egrave> : "⇐" U21D0 # ⇐ - Double flèche vers la gauche
<UFDD7> <dead_circumflex> : "→" U2192 # → - Flèche vers la droite
<UFDD7> <exclam> : "⇒" U21D2 # ⇒ - Double flèche vers la droite
<UFDD7> <exclamdown> : "↦" U21A6 # ↦ - Flèche d'un taquet vers la droite
<UFDD7> <U2620> : "⇀" U21C0 # ⇀ - Harpon vers la droite avec dent vers le haut
<UFDD7> <v> : "∨" U2228 # ∨ - Ou logique
<UFDD7> <V> : "√" U221A # √ - Racine carrée
<UFDD7> <dead_caron> : "⊻" U22BB # ⊻ - Ou exclusif
<UFDD7> <d> : "∂" U2202 # ∂ - Dérivée partielle
<UFDD7> <D> : "∆" U2206 # ∆ - Incrément
<UFDD7> <UFDD7> : "∇" U2207 # ∇ - Nabla
<UFDD7> <U2623> : "⊲" U22B2 # ⊲ - Sous-groupe normal de
<UFDD7> <l> : "ℓ" U2113 # ℓ - Minuscule l de ronde
<UFDD7> <L> : "℔" U2114 # ℔ - Symbole l b barré
<UFDD7> <j> : "↑" U2191 # ↑ - Flèche vers le haut
<UFDD7> <J> : "↓" U2193 # ↓ - Flèche vers le bas
<UFDD7> <U262E> : "⨡" U2A21 # ⨡ - Projection de schémas en notation z
<UFDD7> <z> : "" U200B # - Espace sans chasse
<UFDD7> <Z> : "℥" U2125 # ℥ - Symbole once
<UFDD7> <U2618> : "℈" U2108 # ℈ - Scrupule
<UFDD7> <w> : "≈" U2248 # ≈ - Presque égal à
<UFDD7> <W> : "∿" U223F # ∿ - Sinusoïde
<UFDD7> <U269C> : "⎓" U2393 # ⎓ - Symbole courant continu forme deux
<UFDD7> <A> : "∀" U2200 # ∀ - Pour tous
<UFDD7> <u> : "∪" U222A # ∪ - Union
<UFDD7> <U> : "∩" U2229 # ∩ - Intersection
<UFDD7> <dead_diaeresis> : "℩" U2129 # ℩ - Minuscule grecque iota culbuté
<UFDD7> <e> : "∈" U2208 # ∈ - Appartient à
<UFDD7> <E> : "∃" U2203 # ∃ - Il existe
<UFDD7> <EuroSign> : "⊂" U2282 # ⊂ - Sous-ensemble de
<UFDD7> <dead_currency> : "⊆" U2286 # ⊆ - Sous-ensemble ou égal à
<UFDD7> <comma> : "∋" U220B # ∋ - Contient comme élément
<UFDD7> <apostrophe> : "⊃" U2283 # ⊃ - Sur-ensemble de
<UFDD7> <dead_belowcomma> : "⊇" U2287 # ⊇ - Sur-ensemble ou égal à
<UFDD7> <C> : "∁" U2201 # ∁ - Complément
<UFDD7> <dead_cedilla> : "℃" U2103 # ℃ - Degré celsius
<UFDD7> <t> : "⊤" U22A4 # ⊤ - Taquet vers le bas
<UFDD7> <T> : "⊥" U22A5 # ⊥ - Taquet vers le haut
<UFDD7> <UFDD5> : "⊣" U22A3 # ⊣ - Taquet gauche
<UFDD7> <trademark> : "⊧" U22A7 # ⊧ - Modélise
<UFDD7> <s> : "∫" U222B # ∫ - Intégrale
<UFDD7> <S> : "∑" U2211 # ∑ - Sommation de la famille
<UFDD7> <UFDD4> : "∮" U222E # ∮ - Intégrale de contour
<UFDD7> <U017F> : "∬" U222C # ∬ - Intégrale double
<UFDD7> <n> : "‖" U2016 # ‖ - Double ligne verticale
<UFDD7> <N> : "ℵ" U2135 # ℵ - Symbole alef
<UFDD7> <backslash> : "∖" U2216 # ∖ - Différence d'ensembles
<UFDD7> <y> : "⋉" U22C9 # ⋉ - Produit semi-direct à gauche de facteur normal
<UFDD7> <x> : "⋊" U22CA # ⋊ - Produit semi-direct à droite de facteur normal
<UFDD7> <period> : "∙" U2219 # ∙ - Opérateur puce
<UFDD7> <colon> : "∎" U220E # ∎ - Ce qu'il fallait démontrer
<UFDD7> <ellipsis> : "⃛" U20DB # ⃛ - Diacritique trois points en chef
<UFDD7> <periodcentered> : "⃜" U20DC # ⃜ - Diacritique quatre points en chef
<UFDD7> <k> : "∼" U223C # ∼ - Opérateur tilde
<UFDD7> <K> : "⥲" U2972 # ⥲ - Flèche vers la droite surmontée d'un tilde
<UFDD7> <asciitilde> : "↪" U21AA # ↪ - Flèche vers la droite avec crochet Emoji
<UFDD7> <U2011> : "↠" U21A0 # ↠ - Flèche vers la droite à deux pointes
<UFDD7> <rightsinglequotemark> : "⋯" U22EF # ⋯ - Trois points médians
<UFDD7> <question> : "⋮" U22EE # ⋮ - Trois points suspendus
<UFDD7> <questiondown> : "⋱" U22F1 # ⋱ - Trois points diagonaux vers le coin bas à droite
<UFDD7> <dead_hook> : "⋰" U22F0 # ⋰ - Trois points diagonaux vers le coin haut à droite
<UFDD7> <q> : "⟂" U27C2 # ⟂ - Perpendiculaire à
<UFDD7> <Q> : "∥" U2225 # ∥ - Parallèle à
<UFDD7> <h> : "ℎ" U210E # ℎ - Constante de planck
<UFDD7> <dead_belowdot> : "ℏ" U210F # ℏ - Constante de planck sur deux pi
<UFDD7> <dead_abovedot> <dead_abovedot> : "ℏ" U210F # ℏ - Constante de planck sur deux pi
<UFDD7> <dead_ogonek> : "℉" U2109 # ℉ - Degré fahrenheit
<UFDD7> <dead_stroke> <less> : "⊀" U2280 # ⊀ - Ne précède pas
<UFDD7> <dead_stroke> <greater> : "⊁" U2281 # ⊁ - Ne suit pas
<UFDD7> <dead_stroke> <notequal> : "≢" U2262 # ≢ - Non identique à
<UFDD7> <dead_stroke> <bar> : "∤" U2224 # ∤ - N'est pas un diviseur de
<UFDD7> <dead_stroke> <U2623> : "⋪" U22EA # ⋪ - Pas un sous-groupe normal de
<UFDD7> <dead_stroke> <e> : "∉" U2209 # ∉ - N'appartient pas à
<UFDD7> <dead_stroke> <E> : "∄" U2204 # ∄ - Il n'existe pas
<UFDD7> <dead_stroke> <comma> : "∌" U220C # ∌ - Ne contient pas comme élément
<UFDD7> <dead_stroke> <EuroSign> : "⊄" U2284 # ⊄ - Pas un sous-ensemble de
<UFDD7> <dead_stroke> <apostrophe> : "⊅" U2285 # ⊅ - Pas un sur-ensemble de
<UFDD7> <dead_stroke> <dead_currency> : "⊊" U228A # ⊊ - Sous-ensemble mais pas égal à
<UFDD7> <dead_stroke> <dead_belowcomma> : "⊋" U228B # ⊋ - Sur-ensemble mais pas égal à
<UFDD7> <dead_stroke> <Q> : "∦" U2226 # ∦ - Non parallèle à
<UFDD7> <dead_stroke> <UFDD5> : "⊬" U22AC # ⊬ - Ne prouve pas
<UFDD7> <dead_stroke> <trademark> : "⊭" U22AD # ⊭ - Pas vrai
<UFDD7> <dead_stroke> <k> : "≁" U2241 # ≁ - Non tilde
<dead_stroke> <UFDD7> <less> : "⊀" U2280 # ⊀ - Ne précède pas
<dead_stroke> <UFDD7> <greater> : "⊁" U2281 # ⊁ - Ne suit pas
<dead_stroke> <UFDD7> <notequal> : "≢" U2262 # ≢ - Non identique à
<dead_stroke> <UFDD7> <bar> : "∤" U2224 # ∤ - N'est pas un diviseur de
<dead_stroke> <UFDD7> <U2623> : "⋪" U22EA # ⋪ - Pas un sous-groupe normal de
<dead_stroke> <UFDD7> <e> : "∉" U2209 # ∉ - N'appartient pas à
<dead_stroke> <UFDD7> <E> : "∄" U2204 # ∄ - Il n'existe pas
<dead_stroke> <UFDD7> <comma> : "∌" U220C # ∌ - Ne contient pas comme élément
<dead_stroke> <UFDD7> <EuroSign> : "⊄" U2284 # ⊄ - Pas un sous-ensemble de
<dead_stroke> <UFDD7> <apostrophe> : "⊅" U2285 # ⊅ - Pas un sur-ensemble de
<dead_stroke> <UFDD7> <dead_currency> : "⊊" U228A # ⊊ - Sous-ensemble mais pas égal à
<dead_stroke> <UFDD7> <dead_belowcomma> : "⊋" U228B # ⊋ - Sur-ensemble mais pas égal à
<dead_stroke> <UFDD7> <Q> : "∦" U2226 # ∦ - Non parallèle à
<dead_stroke> <UFDD7> <UFDD5> : "⊬" U22AC # ⊬ - Ne prouve pas
<dead_stroke> <UFDD7> <trademark> : "⊭" U22AD # ⊭ - Pas vrai
<dead_stroke> <UFDD7> <k> : "≁" U2241 # ≁ - Non tilde
<UFDD7> <dead_macron> <eacute> : "⊼" U22BC # ⊼ - Non et
<UFDD7> <dead_macron> <v> : "⊽" U22BD # ⊽ - Non ou
<dead_macron> <UFDD7> <eacute> : "⊼" U22BC # ⊼ - Non et
<dead_macron> <UFDD7> <v> : "⊽" U22BD # ⊽ - Non ou
<UFDD7> <dead_stroke> <eacute> : "⊼" U22BC # ⊼ - Non et
<UFDD7> <dead_stroke> <v> : "⊽" U22BD # ⊽ - Non ou
<dead_stroke> <UFDD7> <eacute> : "⊼" U22BC # ⊼ - Non et
<dead_stroke> <UFDD7> <v> : "⊽" U22BD # ⊽ - Non ou
<UFDD7> <b> <a> : "?" U1D552 # ? - Minuscule mathématique ajourée a
<UFDD7> <b> <b> : "?" U1D553 # ? - Minuscule mathématique ajourée b
<UFDD7> <b> <c> : "?" U1D554 # ? - Minuscule mathématique ajourée c
<UFDD7> <b> <d> : "?" U1D555 # ? - Minuscule mathématique ajourée d
<UFDD7> <b> <e> : "?" U1D556 # ? - Minuscule mathématique ajourée e
<UFDD7> <b> <f> : "?" U1D557 # ? - Minuscule mathématique ajourée f
<UFDD7> <b> <g> : "?" U1D558 # ? - Minuscule mathématique ajourée g
<UFDD7> <b> <h> : "?" U1D559 # ? - Minuscule mathématique ajourée h
<UFDD7> <b> <i> : "?" U1D55A # ? - Minuscule mathématique ajourée i
<UFDD7> <b> <j> : "?" U1D55B # ? - Minuscule mathématique ajourée j
<UFDD7> <b> <k> : "?" U1D55C # ? - Minuscule mathématique ajourée k
<UFDD7> <b> <l> : "?" U1D55D # ? - Minuscule mathématique ajourée l
<UFDD7> <b> <m> : "?" U1D55E # ? - Minuscule mathématique ajourée m
<UFDD7> <b> <n> : "?" U1D55F # ? - Minuscule mathématique ajourée n
<UFDD7> <b> <o> : "?" U1D560 # ? - Minuscule mathématique ajourée o
<UFDD7> <b> <p> : "?" U1D561 # ? - Minuscule mathématique ajourée p
<UFDD7> <b> <q> : "?" U1D562 # ? - Minuscule mathématique ajourée q
<UFDD7> <b> <r> : "?" U1D563 # ? - Minuscule mathématique ajourée r
<UFDD7> <b> <s> : "?" U1D564 # ? - Minuscule mathématique ajourée s
<UFDD7> <b> <t> : "?" U1D565 # ? - Minuscule mathématique ajourée t
<UFDD7> <b> <u> : "?" U1D566 # ? - Minuscule mathématique ajourée u
<UFDD7> <b> <v> : "?" U1D567 # ? - Minuscule mathématique ajourée v
<UFDD7> <b> <w> : "?" U1D568 # ? - Minuscule mathématique ajourée w
<UFDD7> <b> <x> : "?" U1D569 # ? - Minuscule mathématique ajourée x
<UFDD7> <b> <y> : "?" U1D56A # ? - Minuscule mathématique ajourée y
<UFDD7> <b> <z> : "?" U1D56B # ? - Minuscule mathématique ajourée z
<UFDD7> <b> <A> : "?" U1D538 # ? - Majuscule mathématique ajourée a
<UFDD7> <b> <B> : "?" U1D539 # ? - Majuscule mathématique ajourée b
<UFDD7> <b> <C> : "ℂ" U2102 # ℂ - C majuscule ajouré
<UFDD7> <b> <D> : "?" U1D53B # ? - Majuscule mathématique ajourée d
<UFDD7> <b> <E> : "?" U1D53C # ? - Majuscule mathématique ajourée e
<UFDD7> <b> <F> : "?" U1D53D # ? - Majuscule mathématique ajourée f
<UFDD7> <b> <G> : "?" U1D53E # ? - Majuscule mathématique ajourée g
<UFDD7> <b> <H> : "ℍ" U210D # ℍ - Majuscule h ajouré
<UFDD7> <b> <I> : "?" U1D540 # ? - Majuscule mathématique ajourée i
<UFDD7> <b> <J> : "?" U1D541 # ? - Majuscule mathématique ajourée j
<UFDD7> <b> <K> : "?" U1D542 # ? - Majuscule mathématique ajourée k
<UFDD7> <b> <L> : "?" U1D543 # ? - Majuscule mathématique ajourée l
<UFDD7> <b> <M> : "?" U1D544 # ? - Majuscule mathématique ajourée m
<UFDD7> <b> <N> : "ℕ" U2115 # ℕ - N majuscule ajouré
<UFDD7> <b> <O> : "?" U1D546 # ? - Majuscule mathématique ajourée o
<UFDD7> <b> <P> : "ℙ" U2119 # ℙ - P majuscule ajouré
<UFDD7> <b> <Q> : "ℚ" U211A # ℚ - Q majuscule ajouré
<UFDD7> <b> <R> : "ℝ" U211D # ℝ - R majuscule ajouré
<UFDD7> <b> <S> : "?" U1D54A # ? - Majuscule mathématique ajourée s
<UFDD7> <b> <T> : "?" U1D54B # ? - Majuscule mathématique ajourée t
<UFDD7> <b> <U> : "?" U1D54C # ? - Majuscule mathématique ajourée u
<UFDD7> <b> <V> : "?" U1D54D # ? - Majuscule mathématique ajourée v
<UFDD7> <b> <W> : "?" U1D54E # ? - Majuscule mathématique ajourée w
<UFDD7> <b> <X> : "?" U1D54F # ? - Majuscule mathématique ajourée x
<UFDD7> <b> <Y> : "?" U1D550 # ? - Majuscule mathématique ajourée y
<UFDD7> <b> <Z> : "ℤ" U2124 # ℤ - Z majuscule ajouré
<UFDD7> <b> <0> : "?" U1D7D8 # ? - Chiffre mathématique ajouré zéro
<UFDD7> <b> <1> : "?" U1D7D9 # ? - Chiffre mathématique ajouré un
<UFDD7> <b> <2> : "?" U1D7DA # ? - Chiffre mathématique ajouré deux
<UFDD7> <b> <3> : "?" U1D7DB # ? - Chiffre mathématique ajouré trois
<UFDD7> <b> <4> : "?" U1D7DC # ? - Chiffre mathématique ajouré quatre
<UFDD7> <b> <5> : "?" U1D7DD # ? - Chiffre mathématique ajouré cinq
<UFDD7> <b> <6> : "?" U1D7DE # ? - Chiffre mathématique ajouré six
<UFDD7> <b> <7> : "?" U1D7DF # ? - Chiffre mathématique ajouré sept
<UFDD7> <b> <8> : "?" U1D7E0 # ? - Chiffre mathématique ajouré huit
<UFDD7> <b> <9> : "?" U1D7E1 # ? - Chiffre mathématique ajouré neuf
<UFDD7> <b> <bracketleft> : "〚" U301A # 〚 - Crochet blanc gauche
<UFDD7> <b> <bracketright> : "〛" U301B # 〛 - Crochet blanc droit
<UFDD7> <b> <braceleft> : "⦃" U2983 # ⦃ - Accolade gauche ajourée
<UFDD7> <b> <braceright> : "⦄" U2984 # ⦄ - Accolade droite ajourée
<UFDD7> <b> <parenleft> : "⟬" U27EC # ⟬ - Crochet en écaille mathématique blanc gauche
<UFDD7> <b> <parenright> : "⟭" U27ED # ⟭ - Crochet en écaille mathématique blanc droit
<UFDD7> <b> <dead_greek> <p> : "ℼ" U213C # ℼ - Pi minuscule ajouré
<UFDD7> <b> <dead_greek> <g> : "ℽ" U213D # ℽ - Gamma minuscule ajouré
<UFDD7> <b> <dead_greek> <G> : "ℾ" U213E # ℾ - Gamma majuscule ajouré
<UFDD7> <b> <dead_greek> <P> : "ℿ" U213F # ℿ - Pi majuscule ajouré
<UFDD7> <b> <dead_greek> <S> : "⅀" U2140 # ⅀ - Sommation de la famille ajouré
<UFDD7> <i> <a> : "?" U1D44E # ? - Minuscule mathématique italique a
<UFDD7> <i> <b> : "?" U1D44F # ? - Minuscule mathématique italique b
<UFDD7> <i> <c> : "?" U1D450 # ? - Minuscule mathématique italique c
<UFDD7> <i> <d> : "?" U1D451 # ? - Minuscule mathématique italique d
<UFDD7> <i> <e> : "?" U1D452 # ? - Minuscule mathématique italique e
<UFDD7> <i> <f> : "?" U1D453 # ? - Minuscule mathématique italique f
<UFDD7> <i> <g> : "?" U1D454 # ? - Minuscule mathématique italique g
<UFDD7> <i> <h> : "ℎ" U210E # ℎ - Constante de planck
<UFDD7> <i> <i> : "?" U1D456 # ? - Minuscule mathématique italique i
<UFDD7> <i> <j> : "?" U1D457 # ? - Minuscule mathématique italique j
<UFDD7> <i> <k> : "?" U1D458 # ? - Minuscule mathématique italique k
<UFDD7> <i> <l> : "?" U1D459 # ? - Minuscule mathématique italique l
<UFDD7> <i> <m> : "?" U1D45A # ? - Minuscule mathématique italique m
<UFDD7> <i> <n> : "?" U1D45B # ? - Minuscule mathématique italique n
<UFDD7> <i> <o> : "?" U1D45C # ? - Minuscule mathématique italique o
<UFDD7> <i> <p> : "?" U1D45D # ? - Minuscule mathématique italique p
<UFDD7> <i> <q> : "?" U1D45E # ? - Minuscule mathématique italique q
<UFDD7> <i> <r> : "?" U1D45F # ? - Minuscule mathématique italique r
<UFDD7> <i> <s> : "?" U1D460 # ? - Minuscule mathématique italique s
<UFDD7> <i> <t> : "?" U1D461 # ? - Minuscule mathématique italique t
<UFDD7> <i> <u> : "?" U1D462 # ? - Minuscule mathématique italique u
<UFDD7> <i> <v> : "?" U1D463 # ? - Minuscule mathématique italique v
<UFDD7> <i> <w> : "?" U1D464 # ? - Minuscule mathématique italique w
<UFDD7> <i> <x> : "?" U1D465 # ? - Minuscule mathématique italique x
<UFDD7> <i> <y> : "?" U1D466 # ? - Minuscule mathématique italique y
<UFDD7> <i> <z> : "?" U1D467 # ? - Minuscule mathématique italique z
<UFDD7> <i> <A> : "?" U1D434 # ? - Majuscule mathématique italique a
<UFDD7> <i> <B> : "?" U1D435 # ? - Majuscule mathématique italique b
<UFDD7> <i> <C> : "?" U1D436 # ? - Majuscule mathématique italique c
<UFDD7> <i> <D> : "?" U1D437 # ? - Majuscule mathématique italique d
<UFDD7> <i> <E> : "?" U1D438 # ? - Majuscule mathématique italique e
<UFDD7> <i> <F> : "?" U1D439 # ? - Majuscule mathématique italique f
<UFDD7> <i> <G> : "?" U1D43A # ? - Majuscule mathématique italique g
<UFDD7> <i> <H> : "?" U1D43B # ? - Majuscule mathématique italique h
<UFDD7> <i> <I> : "?" U1D43C # ? - Majuscule mathématique italique i
<UFDD7> <i> <J> : "?" U1D43D # ? - Majuscule mathématique italique j
<UFDD7> <i> <K> : "?" U1D43E # ? - Majuscule mathématique italique k
<UFDD7> <i> <L> : "?" U1D43F # ? - Majuscule mathématique italique l
<UFDD7> <i> <M> : "?" U1D440 # ? - Majuscule mathématique italique m
<UFDD7> <i> <N> : "?" U1D441 # ? - Majuscule mathématique italique n
<UFDD7> <i> <O> : "?" U1D442 # ? - Majuscule mathématique italique o
<UFDD7> <i> <P> : "?" U1D443 # ? - Majuscule mathématique italique p
<UFDD7> <i> <Q> : "?" U1D444 # ? - Majuscule mathématique italique q
<UFDD7> <i> <R> : "?" U1D445 # ? - Majuscule mathématique italique r
<UFDD7> <i> <S> : "?" U1D446 # ? - Majuscule mathématique italique s
<UFDD7> <i> <T> : "?" U1D447 # ? - Majuscule mathématique italique t
<UFDD7> <i> <U> : "?" U1D448 # ? - Majuscule mathématique italique u
<UFDD7> <i> <V> : "?" U1D449 # ? - Majuscule mathématique italique v
<UFDD7> <i> <W> : "?" U1D44A # ? - Majuscule mathématique italique w
<UFDD7> <i> <X> : "?" U1D44B # ? - Majuscule mathématique italique x
<UFDD7> <i> <Y> : "?" U1D44C # ? - Majuscule mathématique italique y
<UFDD7> <i> <Z> : "?" U1D44D # ? - Majuscule mathématique italique z
<UFDD7> <i> <dead_greek> <a> : "?" U1D6FC # ? - Minuscule mathématique italique alpha
<UFDD7> <i> <dead_greek> <b> : "?" U1D6FD # ? - Minuscule mathématique italique bêta
<UFDD7> <i> <dead_greek> <c> : "?" U1D713 # ? - Minuscule mathématique italique psi
<UFDD7> <i> <dead_greek> <d> : "?" U1D6FF # ? - Minuscule mathématique italique delta
<UFDD7> <i> <dead_greek> <e> : "?" U1D700 # ? - Minuscule mathématique italique epsilon
<UFDD7> <i> <dead_greek> <EuroSign> : "?" U1D716 # ? - Symbole mathématique italique epsilon
<UFDD7> <i> <dead_greek> <f> : "?" U1D711 # ? - Minuscule mathématique italique phi
<UFDD7> <i> <dead_greek> <dead_ogonek> : "?" U1D719 # ? - Symbole mathématique italique phi
<UFDD7> <i> <dead_greek> <g> : "?" U1D6FE # ? - Minuscule mathématique italique gamma
<UFDD7> <i> <dead_greek> <h> : "?" U1D702 # ? - Minuscule mathématique italique êta
<UFDD7> <i> <dead_greek> <i> : "?" U1D704 # ? - Minuscule mathématique italique iota
<UFDD7> <i> <dead_greek> <j> : "?" U1D709 # ? - Minuscule mathématique italique xi
<UFDD7> <i> <dead_greek> <k> : "?" U1D705 # ? - Minuscule mathématique italique kappa
<UFDD7> <i> <dead_greek> <asciitilde> : "?" U1D718 # ? - Symbole mathématique italique kappa
<UFDD7> <i> <dead_greek> <l> : "?" U1D706 # ? - Minuscule mathématique italique lambda
<UFDD7> <i> <dead_greek> <m> : "?" U1D707 # ? - Minuscule mathématique italique mu
<UFDD7> <i> <dead_greek> <n> : "?" U1D708 # ? - Minuscule mathématique italique nu
<UFDD7> <i> <dead_greek> <o> : "?" U1D70A # ? - Minuscule mathématique italique omicron
<UFDD7> <i> <dead_greek> <p> : "?" U1D70B # ? - Minuscule mathématique italique pi
<UFDD7> <i> <dead_greek> <ampersand> : "?" U1D71B # ? - Symbole mathématique italique pi dorique
<UFDD7> <i> <dead_greek> <r> : "?" U1D70C # ? - Minuscule mathématique italique rhô
<UFDD7> <i> <dead_greek> <dead_breve> : "?" U1D71A # ? - Symbole mathématique italique rhô
<UFDD7> <i> <dead_greek> <s> : "?" U1D70E # ? - Minuscule mathématique italique sigma
<UFDD7> <i> <dead_greek> <t> : "?" U1D70F # ? - Minuscule mathématique italique tau
<UFDD7> <i> <dead_greek> <u> : "?" U1D709 # ? - Minuscule mathématique italique xi
<UFDD7> <i> <dead_greek> <ugrave> : "?" U1D717 # ? - Symbole mathématique italique thêta
<UFDD7> <i> <dead_greek> <v> : "?" U1D714 # ? - Minuscule mathématique italique oméga
<UFDD7> <i> <dead_greek> <w> : "?" U1D70D # ? - Minuscule mathématique italique sigma final
<UFDD7> <i> <dead_greek> <x> : "?" U1D712 # ? - Minuscule mathématique italique khi
<UFDD7> <i> <dead_greek> <y> : "?" U1D710 # ? - Minuscule mathématique italique upsilon
<UFDD7> <i> <dead_greek> <z> : "?" U1D701 # ? - Minuscule mathématique italique dzêta
<UFDD7> <i> <dead_greek> <A> : "?" U1D6E2 # ? - Majuscule mathématique italique alpha
<UFDD7> <i> <dead_greek> <B> : "?" U1D623 # ? - Minuscule mathématique italique sans empattement b
<UFDD7> <i> <dead_greek> <C> : "?" U1D6F9 # ? - Majuscule mathématique italique psi
<UFDD7> <i> <dead_greek> <D> : "?" U1D6E5 # ? - Majuscule mathématique italique delta
<UFDD7> <i> <dead_greek> <E> : "?" U1D6E6 # ? - Majuscule mathématique italique epsilon
<UFDD7> <i> <dead_greek> <F> : "?" U1D6F7 # ? - Majuscule mathématique italique phi
<UFDD7> <i> <dead_greek> <G> : "?" U1D6E4 # ? - Majuscule mathématique italique gamma
<UFDD7> <i> <dead_greek> <H> : "?" U1D6E8 # ? - Majuscule mathématique italique êta
<UFDD7> <i> <dead_greek> <I> : "?" U1D6EA # ? - Majuscule mathématique italique iota
<UFDD7> <i> <dead_greek> <J> : "?" U1D6EF # ? - Majuscule mathématique italique xi
<UFDD7> <i> <dead_greek> <K> : "?" U1D6EB # ? - Majuscule mathématique italique kappa
<UFDD7> <i> <dead_greek> <L> : "?" U1D6EC # ? - Majuscule mathématique italique lambda
<UFDD7> <i> <dead_greek> <M> : "?" U1D6ED # ? - Majuscule mathématique italique mu
<UFDD7> <i> <dead_greek> <N> : "?" U1D6EE # ? - Majuscule mathématique italique nu
<UFDD7> <i> <dead_greek> <O> : "?" U1D6F0 # ? - Majuscule mathématique italique omicron
<UFDD7> <i> <dead_greek> <P> : "?" U1D6F1 # ? - Majuscule mathématique italique pi
<UFDD7> <i> <dead_greek> <R> : "?" U1D6F2 # ? - Majuscule mathématique italique rhô
<UFDD7> <i> <dead_greek> <S> : "?" U1D6F4 # ? - Majuscule mathématique italique sigma
<UFDD7> <i> <dead_greek> <T> : "?" U1D6F5 # ? - Majuscule mathématique italique tau
<UFDD7> <i> <dead_greek> <U> : "?" U1D6F3 # ? - Majuscule mathématique italique symbole thêta
<UFDD7> <i> <dead_greek> <V> : "?" U1D6FA # ? - Majuscule mathématique italique oméga
<UFDD7> <i> <dead_greek> <X> : "?" U1D6F8 # ? - Majuscule mathématique italique khi
<UFDD7> <i> <dead_greek> <Y> : "?" U1D6F6 # ? - Majuscule mathématique italique upsilon
<UFDD7> <i> <dead_greek> <Z> : "?" U1D6E7 # ? - Majuscule mathématique italique dzêta
<UFDD7> <i> <UFDD7> : "?" U1D715 # ? - Symbole mathématique italique dérivée partielle
<UFDD7> <i> <U2623> : "?" U1D6FB # ? - Symbole mathématique italique nabla
<UFDD7> <i> <dead_diaeresis> : "?" U1D6A4 # ? - Minuscule mathématique italique i sans point
<UFDD7> <i> <U262E> : "?" U1D6A5 # ? - Minuscule mathématique italique j sans point
<UFDD7> <I> <A> : "?" U1D468 # ? - Majuscule mathématique italique grasse a
<UFDD7> <I> <B> : "?" U1D469 # ? - Majuscule mathématique italique grasse b
<UFDD7> <I> <C> : "?" U1D46A # ? - Majuscule mathématique italique grasse c
<UFDD7> <I> <D> : "?" U1D46B # ? - Majuscule mathématique italique grasse d
<UFDD7> <I> <E> : "?" U1D46C # ? - Majuscule mathématique italique grasse e
<UFDD7> <I> <F> : "?" U1D46D # ? - Majuscule mathématique italique grasse f
<UFDD7> <I> <G> : "?" U1D46E # ? - Majuscule mathématique italique grasse g
<UFDD7> <I> <H> : "?" U1D46F # ? - Majuscule mathématique italique grasse h
<UFDD7> <I> <I> : "?" U1D470 # ? - Majuscule mathématique italique grasse i
<UFDD7> <I> <J> : "?" U1D471 # ? - Majuscule mathématique italique grasse j
<UFDD7> <I> <K> : "?" U1D472 # ? - Majuscule mathématique italique grasse k
<UFDD7> <I> <L> : "?" U1D473 # ? - Majuscule mathématique italique grasse l
<UFDD7> <I> <M> : "?" U1D474 # ? - Majuscule mathématique italique grasse m
<UFDD7> <I> <N> : "?" U1D475 # ? - Majuscule mathématique italique grasse n
<UFDD7> <I> <O> : "?" U1D476 # ? - Majuscule mathématique italique grasse o
<UFDD7> <I> <P> : "?" U1D477 # ? - Majuscule mathématique italique grasse p
<UFDD7> <I> <Q> : "?" U1D478 # ? - Majuscule mathématique italique grasse q
<UFDD7> <I> <R> : "?" U1D479 # ? - Majuscule mathématique italique grasse r
<UFDD7> <I> <S> : "?" U1D47A # ? - Majuscule mathématique italique grasse s
<UFDD7> <I> <T> : "?" U1D47B # ? - Majuscule mathématique italique grasse t
<UFDD7> <I> <U> : "?" U1D47C # ? - Majuscule mathématique italique grasse u
<UFDD7> <I> <V> : "?" U1D47D # ? - Majuscule mathématique italique grasse v
<UFDD7> <I> <W> : "?" U1D47E # ? - Majuscule mathématique italique grasse w
<UFDD7> <I> <X> : "?" U1D47F # ? - Majuscule mathématique italique grasse x
<UFDD7> <I> <Y> : "?" U1D480 # ? - Majuscule mathématique italique grasse y
<UFDD7> <I> <Z> : "?" U1D481 # ? - Majuscule mathématique italique grasse z
<UFDD7> <I> <a> : "?" U1D482 # ? - Minuscule mathématique italique grasse a
<UFDD7> <I> <b> : "?" U1D483 # ? - Minuscule mathématique italique grasse b
<UFDD7> <I> <c> : "?" U1D484 # ? - Minuscule mathématique italique grasse c
<UFDD7> <I> <d> : "?" U1D485 # ? - Minuscule mathématique italique grasse d
<UFDD7> <I> <e> : "?" U1D486 # ? - Minuscule mathématique italique grasse e
<UFDD7> <I> <f> : "?" U1D487 # ? - Minuscule mathématique italique grasse f
<UFDD7> <I> <g> : "?" U1D488 # ? - Minuscule mathématique italique grasse g
<UFDD7> <I> <h> : "?" U1D489 # ? - Minuscule mathématique italique grasse h
<UFDD7> <I> <i> : "?" U1D48A # ? - Minuscule mathématique italique grasse i
<UFDD7> <I> <j> : "?" U1D48B # ? - Minuscule mathématique italique grasse j
<UFDD7> <I> <k> : "?" U1D48C # ? - Minuscule mathématique italique grasse k
<UFDD7> <I> <l> : "?" U1D48D # ? - Minuscule mathématique italique grasse l
<UFDD7> <I> <m> : "?" U1D48E # ? - Minuscule mathématique italique grasse m
<UFDD7> <I> <n> : "?" U1D48F # ? - Minuscule mathématique italique grasse n
<UFDD7> <I> <o> : "?" U1D490 # ? - Minuscule mathématique italique grasse o
<UFDD7> <I> <p> : "?" U1D491 # ? - Minuscule mathématique italique grasse p
<UFDD7> <I> <q> : "?" U1D492 # ? - Minuscule mathématique italique grasse q
<UFDD7> <I> <r> : "?" U1D493 # ? - Minuscule mathématique italique grasse r
<UFDD7> <I> <s> : "?" U1D494 # ? - Minuscule mathématique italique grasse s
<UFDD7> <I> <t> : "?" U1D495 # ? - Minuscule mathématique italique grasse t
<UFDD7> <I> <u> : "?" U1D496 # ? - Minuscule mathématique italique grasse u
<UFDD7> <I> <v> : "?" U1D497 # ? - Minuscule mathématique italique grasse v
<UFDD7> <I> <w> : "?" U1D498 # ? - Minuscule mathématique italique grasse w
<UFDD7> <I> <x> : "?" U1D499 # ? - Minuscule mathématique italique grasse x
<UFDD7> <I> <y> : "?" U1D49A # ? - Minuscule mathématique italique grasse y
<UFDD7> <I> <z> : "?" U1D49B # ? - Minuscule mathématique italique grasse z
<UFDD7> <I> <dead_greek> <a> : "?" U1D736 # ? - Minuscule mathématique italique grasse alpha
<UFDD7> <I> <dead_greek> <b> : "?" U1D737 # ? - Minuscule mathématique italique grasse bêta
<UFDD7> <I> <dead_greek> <c> : "?" U1D7D4 # ? - Chiffre mathématique gras six
<UFDD7> <I> <dead_greek> <d> : "?" U1D739 # ? - Minuscule mathématique italique grasse delta
<UFDD7> <I> <dead_greek> <e> : "?" U1D73A # ? - Minuscule mathématique italique grasse epsilon
<UFDD7> <I> <dead_greek> <EuroSign> : "?" U1D750 # ? - Symbole mathématique gras italique epsilon
<UFDD7> <I> <dead_greek> <f> : "?" U1D74B # ? - Minuscule mathématique italique grasse phi
<UFDD7> <I> <dead_greek> <dead_ogonek> : "?" U1D753 # ? - Symbole mathématique gras italique phi
<UFDD7> <I> <dead_greek> <g> : "?" U1D738 # ? - Minuscule mathématique italique grasse gamma
<UFDD7> <I> <dead_greek> <h> : "?" U1D73C # ? - Minuscule mathématique italique grasse êta
<UFDD7> <I> <dead_greek> <i> : "?" U1D73E # ? - Minuscule mathématique italique grasse iota
<UFDD7> <I> <dead_greek> <j> : "?" U1D743 # ? - Minuscule mathématique italique grasse xi
<UFDD7> <I> <dead_greek> <k> : "?" U1D73F # ? - Minuscule mathématique italique grasse kappa
<UFDD7> <I> <dead_greek> <asciitilde> : "?" U1D752 # ? - Symbole mathématique gras italique kappa
<UFDD7> <I> <dead_greek> <l> : "?" U1D740 # ? - Minuscule mathématique italique grasse lambda
<UFDD7> <I> <dead_greek> <m> : "?" U1D741 # ? - Minuscule mathématique italique grasse mu
<UFDD7> <I> <dead_greek> <n> : "?" U1D742 # ? - Minuscule mathématique italique grasse nu
<UFDD7> <I> <dead_greek> <o> : "?" U1D744 # ? - Minuscule mathématique italique grasse omicron
<UFDD7> <I> <dead_greek> <p> : "?" U1D745 # ? - Minuscule mathématique italique grasse pi
<UFDD7> <I> <dead_greek> <ampersand> : "?" U1D755 # ? - Symbole mathématique gras italique pi dorique
<UFDD7> <I> <dead_greek> <r> : "?" U1D746 # ? - Minuscule mathématique italique grasse rhô
<UFDD7> <I> <dead_greek> <dead_breve> : "?" U1D754 # ? - Symbole mathématique gras italique rhô
<UFDD7> <I> <dead_greek> <s> : "?" U1D748 # ? - Minuscule mathématique italique grasse sigma
<UFDD7> <I> <dead_greek> <t> : "?" U1D749 # ? - Minuscule mathématique italique grasse tau
<UFDD7> <I> <dead_greek> <u> : "?" U1D73D # ? - Minuscule mathématique italique grasse thêta
<UFDD7> <I> <dead_greek> <ugrave> : "?" U1D751 # ? - Symbole mathématique gras italique thêta
<UFDD7> <I> <dead_greek> <v> : "?" U1D74E # ? - Minuscule mathématique italique grasse oméga
<UFDD7> <I> <dead_greek> <w> : "?" U1D747 # ? - Minuscule mathématique italique grasse sigma final
<UFDD7> <I> <dead_greek> <x> : "?" U1D74C # ? - Minuscule mathématique italique grasse khi
<UFDD7> <I> <dead_greek> <y> : "?" U1D74A # ? - Minuscule mathématique italique grasse upsilon
<UFDD7> <I> <dead_greek> <z> : "?" U1D73B # ? - Minuscule mathématique italique grasse dzêta
<UFDD7> <I> <dead_greek> <A> : "?" U1D71C # ? - Majuscule mathématique italique grasse alpha
<UFDD7> <I> <dead_greek> <B> : "?" U1D71D # ? - Majuscule mathématique italique grasse bêta
<UFDD7> <I> <dead_greek> <C> : "?" U1D733 # ? - Majuscule mathématique italique grasse psi
<UFDD7> <I> <dead_greek> <D> : "?" U1D71F # ? - Majuscule mathématique italique grasse delta
<UFDD7> <I> <dead_greek> <E> : "?" U1D720 # ? - Majuscule mathématique italique grasse epsilon
<UFDD7> <I> <dead_greek> <F> : "?" U1D731 # ? - Majuscule mathématique italique grasse phi
<UFDD7> <I> <dead_greek> <G> : "?" U1D71E # ? - Majuscule mathématique italique grasse gamma
<UFDD7> <I> <dead_greek> <H> : "?" U1D722 # ? - Majuscule mathématique italique grasse êta
<UFDD7> <I> <dead_greek> <I> : "?" U1D724 # ? - Majuscule mathématique italique grasse iota
<UFDD7> <I> <dead_greek> <J> : "?" U1D729 # ? - Majuscule mathématique italique grasse xi
<UFDD7> <I> <dead_greek> <K> : "?" U1D725 # ? - Majuscule mathématique italique grasse kappa
<UFDD7> <I> <dead_greek> <L> : "?" U1D726 # ? - Majuscule mathématique italique grasse lambda
<UFDD7> <I> <dead_greek> <M> : "?" U1D727 # ? - Majuscule mathématique italique grasse mu
<UFDD7> <I> <dead_greek> <N> : "?" U1D728 # ? - Majuscule mathématique italique grasse nu
<UFDD7> <I> <dead_greek> <O> : "?" U1D72A # ? - Majuscule mathématique italique grasse omicron
<UFDD7> <I> <dead_greek> <P> : "?" U1D72B # ? - Majuscule mathématique italique grasse pi
<UFDD7> <I> <dead_greek> <R> : "?" U1D72C # ? - Majuscule mathématique italique grasse rhô
<UFDD7> <I> <dead_greek> <S> : "?" U1D72E # ? - Majuscule mathématique italique grasse sigma
<UFDD7> <I> <dead_greek> <T> : "?" U1D72F # ? - Majuscule mathématique italique grasse tau
<UFDD7> <I> <dead_greek> <U> : "?" U1D72D # ? - Majuscule mathématique italique grasse symbole thêta
<UFDD7> <I> <dead_greek> <V> : "?" U1D734 # ? - Majuscule mathématique italique grasse oméga
<UFDD7> <I> <dead_greek> <X> : "?" U1D732 # ? - Majuscule mathématique italique grasse khi
<UFDD7> <I> <dead_greek> <Y> : "?" U1D730 # ? - Majuscule mathématique italique grasse upsilon
<UFDD7> <I> <dead_greek> <Z> : "?" U1D721 # ? - Majuscule mathématique italique grasse dzêta
<UFDD7> <I> <UFDD7> : "?" U1D74F # ? - Symbole mathématique gras italique dérivée partielle
<UFDD7> <I> <U2623> : "?" U1D735 # ? - Symbole mathématique gras italique nabla
<UFDD7> <c> <A> : "?" U1D4D0 # ? - Majuscule mathématique grasse a de ronde
<UFDD7> <c> <B> : "?" U1D4D1 # ? - Majuscule mathématique grasse b de ronde
<UFDD7> <c> <C> : "?" U1D4D2 # ? - Majuscule mathématique grasse c de ronde
<UFDD7> <c> <D> : "?" U1D4D3 # ? - Majuscule mathématique grasse d de ronde
<UFDD7> <c> <E> : "?" U1D4D4 # ? - Majuscule mathématique grasse e de ronde
<UFDD7> <c> <F> : "?" U1D4D5 # ? - Majuscule mathématique grasse f de ronde
<UFDD7> <c> <G> : "?" U1D4D6 # ? - Majuscule mathématique grasse g de ronde
<UFDD7> <c> <H> : "?" U1D4D7 # ? - Majuscule mathématique grasse h de ronde
<UFDD7> <c> <I> : "?" U1D4D8 # ? - Majuscule mathématique grasse i de ronde
<UFDD7> <c> <J> : "?" U1D4D9 # ? - Majuscule mathématique grasse j de ronde
<UFDD7> <c> <K> : "?" U1D4DA # ? - Majuscule mathématique grasse k de ronde
<UFDD7> <c> <L> : "?" U1D4DB # ? - Majuscule mathématique grasse l de ronde
<UFDD7> <c> <M> : "?" U1D4DC # ? - Majuscule mathématique grasse m de ronde
<UFDD7> <c> <N> : "?" U1D4DD # ? - Majuscule mathématique grasse n de ronde
<UFDD7> <c> <O> : "?" U1D4DE # ? - Majuscule mathématique grasse o de ronde
<UFDD7> <c> <P> : "?" U1D4DF # ? - Majuscule mathématique grasse p de ronde
<UFDD7> <c> <Q> : "?" U1D4E0 # ? - Majuscule mathématique grasse q de ronde
<UFDD7> <c> <R> : "?" U1D4E1 # ? - Majuscule mathématique grasse r de ronde
<UFDD7> <c> <S> : "?" U1D4E2 # ? - Majuscule mathématique grasse s de ronde
<UFDD7> <c> <T> : "?" U1D4E3 # ? - Majuscule mathématique grasse t de ronde
<UFDD7> <c> <U> : "?" U1D4E4 # ? - Majuscule mathématique grasse u de ronde
<UFDD7> <c> <V> : "?" U1D4E5 # ? - Majuscule mathématique grasse v de ronde
<UFDD7> <c> <W> : "?" U1D4E6 # ? - Majuscule mathématique grasse w de ronde
<UFDD7> <c> <X> : "?" U1D4E7 # ? - Majuscule mathématique grasse x de ronde
<UFDD7> <c> <Y> : "?" U1D4E8 # ? - Majuscule mathématique grasse y de ronde
<UFDD7> <c> <Z> : "?" U1D4E9 # ? - Majuscule mathématique grasse z de ronde
<UFDD7> <c> <a> : "?" U1D4EA # ? - Minuscule mathématique grasse a de ronde
<UFDD7> <c> <b> : "?" U1D4EB # ? - Minuscule mathématique grasse b de ronde
<UFDD7> <c> <c> : "?" U1D4EC # ? - Minuscule mathématique grasse c de ronde
<UFDD7> <c> <d> : "?" U1D4ED # ? - Minuscule mathématique grasse d de ronde
<UFDD7> <c> <e> : "?" U1D4EE # ? - Minuscule mathématique grasse e de ronde
<UFDD7> <c> <f> : "?" U1D4EF # ? - Minuscule mathématique grasse f de ronde
<UFDD7> <c> <g> : "?" U1D4F0 # ? - Minuscule mathématique grasse g de ronde
<UFDD7> <c> <h> : "?" U1D4F1 # ? - Minuscule mathématique grasse h de ronde
<UFDD7> <c> <i> : "?" U1D4F2 # ? - Minuscule mathématique grasse i de ronde
<UFDD7> <c> <j> : "?" U1D4F3 # ? - Minuscule mathématique grasse j de ronde
<UFDD7> <c> <k> : "?" U1D4F4 # ? - Minuscule mathématique grasse k de ronde
<UFDD7> <c> <l> : "?" U1D4F5 # ? - Minuscule mathématique grasse l de ronde
<UFDD7> <c> <m> : "?" U1D4F6 # ? - Minuscule mathématique grasse m de ronde
<UFDD7> <c> <n> : "?" U1D4F7 # ? - Minuscule mathématique grasse n de ronde
<UFDD7> <c> <o> : "?" U1D4F8 # ? - Minuscule mathématique grasse o de ronde
<UFDD7> <c> <p> : "?" U1D4F9 # ? - Minuscule mathématique grasse p de ronde
<UFDD7> <c> <q> : "?" U1D4FA # ? - Minuscule mathématique grasse q de ronde
<UFDD7> <c> <r> : "?" U1D4FB # ? - Minuscule mathématique grasse r de ronde
<UFDD7> <c> <s> : "?" U1D4FC # ? - Minuscule mathématique grasse s de ronde
<UFDD7> <c> <t> : "?" U1D4FD # ? - Minuscule mathématique grasse t de ronde
<UFDD7> <c> <u> : "?" U1D4FE # ? - Minuscule mathématique grasse u de ronde
<UFDD7> <c> <v> : "?" U1D4FF # ? - Minuscule mathématique grasse v de ronde
<UFDD7> <c> <w> : "?" U1D500 # ? - Minuscule mathématique grasse w de ronde
<UFDD7> <c> <x> : "?" U1D501 # ? - Minuscule mathématique grasse x de ronde
<UFDD7> <c> <y> : "?" U1D502 # ? - Minuscule mathématique grasse y de ronde
<UFDD7> <c> <z> : "?" U1D503 # ? - Minuscule mathématique grasse z de ronde
<UFDD7> <r> <A> : "?" U1D49C # ? - Majuscule mathématique a de ronde
<UFDD7> <r> <B> : "ℬ" U212C # ℬ - Majuscule b de ronde
<UFDD7> <r> <C> : "?" U1D49E # ? - Majuscule mathématique c de ronde
<UFDD7> <r> <D> : "?" U1D49F # ? - Majuscule mathématique d de ronde
<UFDD7> <r> <E> : "ℰ" U2130 # ℰ - Majuscule e de ronde
<UFDD7> <r> <F> : "ℱ" U2131 # ℱ - Majuscule f de ronde
<UFDD7> <r> <G> : "?" U1D4A2 # ? - Majuscule mathématique g de ronde
<UFDD7> <r> <H> : "ℋ" U210B # ℋ - Majuscule h de ronde
<UFDD7> <r> <I> : "ℐ" U2110 # ℐ - Majuscule i de ronde
<UFDD7> <r> <J> : "?" U1D4A5 # ? - Majuscule mathématique j de ronde
<UFDD7> <r> <K> : "?" U1D4A6 # ? - Majuscule mathématique k de ronde
<UFDD7> <r> <L> : "ℒ" U2112 # ℒ - Majuscule l de ronde
<UFDD7> <r> <M> : "ℳ" U2133 # ℳ - Majuscule m de ronde
<UFDD7> <r> <N> : "?" U1D4A9 # ? - Majuscule mathématique n de ronde
<UFDD7> <r> <O> : "?" U1D4AA # ? - Majuscule mathématique o de ronde
<UFDD7> <r> <P> : "?" U1D4AB # ? - Majuscule mathématique p de ronde
<UFDD7> <r> <Q> : "?" U1D4AC # ? - Majuscule mathématique q de ronde
<UFDD7> <r> <R> : "ℛ" U211B # ℛ - Majuscule r de ronde
<UFDD7> <r> <S> : "?" U1D4AE # ? - Majuscule mathématique s de ronde
<UFDD7> <r> <T> : "?" U1D4AF # ? - Majuscule mathématique t de ronde
<UFDD7> <r> <U> : "?" U1D4B0 # ? - Majuscule mathématique u de ronde
<UFDD7> <r> <V> : "?" U1D4B1 # ? - Majuscule mathématique v de ronde
<UFDD7> <r> <W> : "?" U1D4B2 # ? - Majuscule mathématique w de ronde
<UFDD7> <r> <X> : "?" U1D4B3 # ? - Majuscule mathématique x de ronde
<UFDD7> <r> <Y> : "?" U1D4B4 # ? - Majuscule mathématique y de ronde
<UFDD7> <r> <Z> : "?" U1D4B5 # ? - Majuscule mathématique z de ronde
<UFDD7> <r> <a> : "?" U1D4B6 # ? - Minuscule mathématique a de ronde
<UFDD7> <r> <b> : "?" U1D4B7 # ? - Minuscule mathématique b de ronde
<UFDD7> <r> <c> : "?" U1D4B8 # ? - Minuscule mathématique c de ronde
<UFDD7> <r> <d> : "?" U1D4B9 # ? - Minuscule mathématique d de ronde
<UFDD7> <r> <e> : "ℯ" U212F # ℯ - Minuscule e de ronde
<UFDD7> <r> <f> : "?" U1D4BB # ? - Minuscule mathématique f de ronde
<UFDD7> <r> <g> : "ℊ" U210A # ℊ - Minuscule g de ronde
<UFDD7> <r> <h> : "?" U1D4BD # ? - Minuscule mathématique g de ronde
<UFDD7> <r> <i> : "?" U1D4BE # ? - Minuscule mathématique i de ronde
<UFDD7> <r> <j> : "?" U1D4BF # ? - Minuscule mathématique j de ronde
<UFDD7> <r> <k> : "?" U1D4C0 # ? - Minuscule mathématique k de ronde
<UFDD7> <r> <l> : "?" U1D4C1 # ? - Minuscule mathématique l de ronde
<UFDD7> <r> <m> : "?" U1D4C2 # ? - Minuscule mathématique m de ronde
<UFDD7> <r> <n> : "?" U1D4C3 # ? - Minuscule mathématique n de ronde
<UFDD7> <r> <o> : "ℴ" U2134 # ℴ - Minuscule o de ronde
<UFDD7> <r> <p> : "?" U1D4C5 # ? - Minuscule mathématique p de ronde
<UFDD7> <r> <q> : "?" U1D4C6 # ? - Minuscule mathématique q de ronde
<UFDD7> <r> <r> : "?" U1D4C7 # ? - Minuscule mathématique r de ronde
<UFDD7> <r> <s> : "?" U1D4C8 # ? - Minuscule mathématique s de ronde
<UFDD7> <r> <t> : "?" U1D4C9 # ? - Minuscule mathématique t de ronde
<UFDD7> <r> <u> : "?" U1D4CA # ? - Minuscule mathématique u de ronde
<UFDD7> <r> <v> : "?" U1D4CB # ? - Minuscule mathématique v de ronde
<UFDD7> <r> <w> : "?" U1D4CC # ? - Minuscule mathématique w de ronde
<UFDD7> <r> <x> : "?" U1D4CD # ? - Minuscule mathématique x de ronde
<UFDD7> <r> <y> : "?" U1D4CE # ? - Minuscule mathématique y de ronde
<UFDD7> <r> <z> : "?" U1D4CF # ? - Minuscule mathématique z de ronde
<UFDD7> <g> <A> : "?" U1D400 # ? - Majuscule mathématique grasse a
<UFDD7> <g> <B> : "?" U1D401 # ? - Majuscule mathématique grasse b
<UFDD7> <g> <C> : "?" U1D402 # ? - Majuscule mathématique grasse c
<UFDD7> <g> <D> : "?" U1D403 # ? - Majuscule mathématique grasse d
<UFDD7> <g> <E> : "?" U1D404 # ? - Majuscule mathématique grasse e
<UFDD7> <g> <F> : "?" U1D405 # ? - Majuscule mathématique grasse f
<UFDD7> <g> <G> : "?" U1D406 # ? - Majuscule mathématique grasse g
<UFDD7> <g> <H> : "?" U1D407 # ? - Majuscule mathématique grasse h
<UFDD7> <g> <I> : "?" U1D408 # ? - Majuscule mathématique grasse i
<UFDD7> <g> <J> : "?" U1D409 # ? - Majuscule mathématique grasse j
<UFDD7> <g> <K> : "?" U1D40A # ? - Majuscule mathématique grasse k
<UFDD7> <g> <L> : "?" U1D40B # ? - Majuscule mathématique grasse l
<UFDD7> <g> <M> : "?" U1D40C # ? - Majuscule mathématique grasse m
<UFDD7> <g> <N> : "?" U1D40D # ? - Majuscule mathématique grasse n
<UFDD7> <g> <O> : "?" U1D40E # ? - Majuscule mathématique grasse o
<UFDD7> <g> <P> : "?" U1D40F # ? - Majuscule mathématique grasse p
<UFDD7> <g> <Q> : "?" U1D410 # ? - Majuscule mathématique grasse q
<UFDD7> <g> <R> : "?" U1D411 # ? - Majuscule mathématique grasse r
<UFDD7> <g> <S> : "?" U1D412 # ? - Majuscule mathématique grasse s
<UFDD7> <g> <T> : "?" U1D413 # ? - Majuscule mathématique grasse t
<UFDD7> <g> <U> : "?" U1D414 # ? - Majuscule mathématique grasse u
<UFDD7> <g> <V> : "?" U1D415 # ? - Majuscule mathématique grasse v
<UFDD7> <g> <W> : "?" U1D416 # ? - Majuscule mathématique grasse w
<UFDD7> <g> <X> : "?" U1D417 # ? - Majuscule mathématique grasse x
<UFDD7> <g> <Y> : "?" U1D418 # ? - Majuscule mathématique grasse y
<UFDD7> <g> <Z> : "?" U1D419 # ? - Majuscule mathématique grasse z
<UFDD7> <g> <a> : "?" U1D41A # ? - Minuscule mathématique grasse a
<UFDD7> <g> <b> : "?" U1D41B # ? - Minuscule mathématique grasse b
<UFDD7> <g> <c> : "?" U1D41C # ? - Minuscule mathématique grasse c
<UFDD7> <g> <d> : "?" U1D41D # ? - Minuscule mathématique grasse d
<UFDD7> <g> <e> : "?" U1D41E # ? - Minuscule mathématique grasse e
<UFDD7> <g> <f> : "?" U1D41F # ? - Minuscule mathématique grasse f
<UFDD7> <g> <g> : "?" U1D420 # ? - Minuscule mathématique grasse g
<UFDD7> <g> <h> : "?" U1D421 # ? - Minuscule mathématique grasse h
<UFDD7> <g> <i> : "?" U1D422 # ? - Minuscule mathématique grasse i
<UFDD7> <g> <j> : "?" U1D423 # ? - Minuscule mathématique grasse j
<UFDD7> <g> <k> : "?" U1D424 # ? - Minuscule mathématique grasse k
<UFDD7> <g> <l> : "?" U1D425 # ? - Minuscule mathématique grasse l
<UFDD7> <g> <m> : "?" U1D426 # ? - Minuscule mathématique grasse m
<UFDD7> <g> <n> : "?" U1D427 # ? - Minuscule mathématique grasse n
<UFDD7> <g> <o> : "?" U1D428 # ? - Minuscule mathématique grasse o
<UFDD7> <g> <p> : "?" U1D429 # ? - Minuscule mathématique grasse p
<UFDD7> <g> <q> : "?" U1D42A # ? - Minuscule mathématique grasse q
<UFDD7> <g> <r> : "?" U1D42B # ? - Minuscule mathématique grasse r
<UFDD7> <g> <s> : "?" U1D42C # ? - Minuscule mathématique grasse s
<UFDD7> <g> <t> : "?" U1D42D # ? - Minuscule mathématique grasse t
<UFDD7> <g> <u> : "?" U1D42E # ? - Minuscule mathématique grasse u
<UFDD7> <g> <v> : "?" U1D42F # ? - Minuscule mathématique grasse v
<UFDD7> <g> <w> : "?" U1D430 # ? - Minuscule mathématique grasse w
<UFDD7> <g> <x> : "?" U1D431 # ? - Minuscule mathématique grasse x
<UFDD7> <g> <y> : "?" U1D432 # ? - Minuscule mathématique grasse y
<UFDD7> <g> <z> : "?" U1D433 # ? - Minuscule mathématique grasse z
<UFDD7> <g> <0> : "?" U1D7CE # ? - Chiffre mathématique gras zéro
<UFDD7> <g> <1> : "?" U1D7CF # ? - Chiffre mathématique gras un
<UFDD7> <g> <2> : "?" U1D7D0 # ? - Chiffre mathématique gras deux
<UFDD7> <g> <3> : "?" U1D7D1 # ? - Chiffre mathématique gras trois
<UFDD7> <g> <4> : "?" U1D7D2 # ? - Chiffre mathématique gras quatre
<UFDD7> <g> <5> : "?" U1D7D3 # ? - Chiffre mathématique gras cinq
<UFDD7> <g> <6> : "?" U1D7D4 # ? - Chiffre mathématique gras six
<UFDD7> <g> <7> : "?" U1D7D5 # ? - Chiffre mathématique gras sept
<UFDD7> <g> <8> : "?" U1D7D6 # ? - Chiffre mathématique gras huit
<UFDD7> <g> <9> : "?" U1D7D7 # ? - Chiffre mathématique gras neuf
<UFDD7> <g> <bracketleft> : "⦗" U2997 # ⦗ - Crochet noir gauche en écaille
<UFDD7> <g> <bracketright> : "⦘" U2998 # ⦘ - Crochet noir droite en écaille
<UFDD7> <g> <dead_greek> <a> : "?" U1D6C2 # ? - Minuscule mathématique grasse alpha
<UFDD7> <g> <dead_greek> <b> : "?" U1D6C3 # ? - Minuscule mathématique grasse bêta
<UFDD7> <g> <dead_greek> <c> : "?" U1D6D9 # ? - Minuscule mathématique grasse psi
<UFDD7> <g> <dead_greek> <d> : "?" U1D6C5 # ? - Minuscule mathématique grasse delta
<UFDD7> <g> <dead_greek> <e> : "?" U1D6C6 # ? - Minuscule mathématique grasse epsilon
<UFDD7> <g> <dead_greek> <EuroSign> : "?" U1D6D6 # ? - Minuscule mathématique grasse upsilon
<UFDD7> <g> <dead_greek> <f> : "?" U1D6D7 # ? - Minuscule mathématique grasse phi
<UFDD7> <g> <dead_greek> <dead_ogonek> : "?" U1D6DF # ? - Symbole mathématique gras phi
<UFDD7> <g> <dead_greek> <g> : "?" U1D6D4 # ? - Minuscule mathématique grasse sigma
<UFDD7> <g> <dead_greek> <h> : "?" U1D6C8 # ? - Minuscule mathématique grasse êta
<UFDD7> <g> <dead_greek> <i> : "?" U1D6CA # ? - Minuscule mathématique grasse iota
<UFDD7> <g> <dead_greek> <j> : "?" U1D6CF # ? - Minuscule mathématique grasse xi
<UFDD7> <g> <dead_greek> <k> : "?" U1D6CB # ? - Minuscule mathématique grasse kappa
<UFDD7> <g> <dead_greek> <asciitilde> : "?" U1D6DE # ? - Symbole mathématique gras kappa
<UFDD7> <g> <dead_greek> <l> : "?" U1D6CC # ? - Minuscule mathématique grasse lambda
<UFDD7> <g> <dead_greek> <m> : "?" U1D6CD # ? - Minuscule mathématique grasse mu
<UFDD7> <g> <dead_greek> <n> : "?" U1D6CE # ? - Minuscule mathématique grasse nu
<UFDD7> <g> <dead_greek> <o> : "?" U1D6D0 # ? - Minuscule mathématique grasse omicron
<UFDD7> <g> <dead_greek> <p> : "?" U1D6D1 # ? - Minuscule mathématique grasse pi
<UFDD7> <g> <dead_greek> <ampersand> : "?" U1D6E1 # ? - Symbole mathématique gras pi dorique
<UFDD7> <g> <dead_greek> <r> : "?" U1D6D2 # ? - Minuscule mathématique grasse rhô
<UFDD7> <g> <dead_greek> <dead_breve> : "?" U1D6E0 # ? - Symbole mathématique gras rhô
<UFDD7> <g> <dead_greek> <s> : "?" U1D6D4 # ? - Minuscule mathématique grasse sigma
<UFDD7> <g> <dead_greek> <t> : "?" U1D6D5 # ? - Minuscule mathématique grasse tau
<UFDD7> <g> <dead_greek> <u> : "?" U1D6C9 # ? - Minuscule mathématique grasse thêta
<UFDD7> <g> <dead_greek> <ugrave> : "?" U1D6DD # ? - Symbole mathématique gras thêta
<UFDD7> <g> <dead_greek> <v> : "?" U1D6DA # ? - Minuscule mathématique grasse oméga
<UFDD7> <g> <dead_greek> <w> : "?" U1D6D3 # ? - Minuscule mathématique grasse sigma final
<UFDD7> <g> <dead_greek> <x> : "?" U1D6D8 # ? - Minuscule mathématique grasse khi
<UFDD7> <g> <dead_greek> <y> : "?" U1D6D6 # ? - Minuscule mathématique grasse upsilon
<UFDD7> <g> <dead_greek> <z> : "?" U1D6C7 # ? - Minuscule mathématique grasse dzêta
<UFDD7> <g> <dead_greek> <A> : "?" U1D6A8 # ? - Majuscule mathématique grasse alpha
<UFDD7> <g> <dead_greek> <B> : "?" U1D6A9 # ? - Majuscule mathématique grasse bêta
<UFDD7> <g> <dead_greek> <C> : "?" U1D6BF # ? - Majuscule mathématique grasse psi
<UFDD7> <g> <dead_greek> <D> : "?" U1D6AB # ? - Majuscule mathématique grasse delta
<UFDD7> <g> <dead_greek> <E> : "?" U1D6AC # ? - Majuscule mathématique grasse epsilon
<UFDD7> <g> <dead_greek> <F> : "?" U1D6BD # ? - Majuscule mathématique grasse phi
<UFDD7> <g> <dead_greek> <G> : "?" U1D6AA # ? - Majuscule mathématique grasse gamma
<UFDD7> <g> <dead_greek> <H> : "?" U1D6AE # ? - Majuscule mathématique grasse êta
<UFDD7> <g> <dead_greek> <I> : "?" U1D6B0 # ? - Majuscule mathématique grasse iota
<UFDD7> <g> <dead_greek> <J> : "?" U1D6B5 # ? - Majuscule mathématique grasse xi
<UFDD7> <g> <dead_greek> <K> : "?" U1D6B1 # ? - Majuscule mathématique grasse kappa
<UFDD7> <g> <dead_greek> <L> : "?" U1D6B2 # ? - Majuscule mathématique grasse lambda
<UFDD7> <g> <dead_greek> <M> : "?" U1D6B3 # ? - Majuscule mathématique grasse mu
<UFDD7> <g> <dead_greek> <N> : "?" U1D6B4 # ? - Majuscule mathématique grasse nu
<UFDD7> <g> <dead_greek> <O> : "?" U1D6B6 # ? - Majuscule mathématique grasse omicron
<UFDD7> <g> <dead_greek> <P> : "?" U1D6B7 # ? - Majuscule mathématique grasse pi
<UFDD7> <g> <dead_greek> <R> : "?" U1D6B8 # ? - Majuscule mathématique grasse rhô
<UFDD7> <g> <dead_greek> <S> : "?" U1D6BA # ? - Majuscule mathématique grasse sigma
<UFDD7> <g> <dead_greek> <T> : "?" U1D6BB # ? - Majuscule mathématique grasse tau
<UFDD7> <g> <dead_greek> <U> : "?" U1D6AF # ? - Majuscule mathématique grasse thêta
<UFDD7> <g> <dead_greek> <V> : "?" U1D6C0 # ? - Majuscule mathématique grasse oméga
<UFDD7> <g> <dead_greek> <X> : "?" U1D6BE # ? - Majuscule mathématique grasse khi
<UFDD7> <g> <dead_greek> <Y> : "?" U1D6BC # ? - Majuscule mathématique grasse upsilon
<UFDD7> <g> <dead_greek> <Z> : "?" U1D6AD # ? - Majuscule mathématique grasse dzêta
<UFDD7> <g> <UFDD7> : "?" U1D6DB # ? - Symbole mathématique gras dérivée partielle
<UFDD7> <g> <U2623> : "?" U1D6C1 # ? - Symbole mathématique gras nabla
<UFDD7> <f> <A> : "?" U1D504 # ? - Majuscule mathématique gothique a
<UFDD7> <f> <B> : "?" U1D505 # ? - Majuscule mathématique gothique b
<UFDD7> <f> <C> : "ℭ" U212D # ℭ - Majuscule c gothique
<UFDD7> <f> <D> : "?" U1D507 # ? - Majuscule mathématique gothique d
<UFDD7> <f> <E> : "?" U1D508 # ? - Majuscule mathématique gothique e
<UFDD7> <f> <F> : "?" U1D509 # ? - Majuscule mathématique gothique f
<UFDD7> <f> <G> : "?" U1D50A # ? - Majuscule mathématique gothique g
<UFDD7> <f> <H> : "ℌ" U210C # ℌ - Majuscule h gothique
<UFDD7> <f> <I> : "ℑ" U2111 # ℑ - Majuscule i gothique
<UFDD7> <f> <J> : "?" U1D50D # ? - Majuscule mathématique gothique j
<UFDD7> <f> <K> : "?" U1D50E # ? - Majuscule mathématique gothique k
<UFDD7> <f> <L> : "?" U1D50F # ? - Majuscule mathématique gothique l
<UFDD7> <f> <M> : "?" U1D510 # ? - Majuscule mathématique gothique m
<UFDD7> <f> <N> : "?" U1D511 # ? - Majuscule mathématique gothique n
<UFDD7> <f> <O> : "?" U1D512 # ? - Majuscule mathématique gothique o
<UFDD7> <f> <P> : "?" U1D513 # ? - Majuscule mathématique gothique p
<UFDD7> <f> <Q> : "?" U1D514 # ? - Majuscule mathématique gothique q
<UFDD7> <f> <R> : "ℜ" U211C # ℜ - Majuscule r gothique
<UFDD7> <f> <S> : "?" U1D516 # ? - Majuscule mathématique gothique s
<UFDD7> <f> <T> : "?" U1D517 # ? - Majuscule mathématique gothique t
<UFDD7> <f> <U> : "?" U1D518 # ? - Majuscule mathématique gothique u
<UFDD7> <f> <V> : "?" U1D519 # ? - Majuscule mathématique gothique v
<UFDD7> <f> <W> : "?" U1D51A # ? - Majuscule mathématique gothique w
<UFDD7> <f> <X> : "?" U1D51B # ? - Majuscule mathématique gothique x
<UFDD7> <f> <Y> : "?" U1D51C # ? - Majuscule mathématique gothique y
<UFDD7> <f> <Z> : "ℨ" U2128 # ℨ - Majuscule z gothique
<UFDD7> <f> <a> : "?" U1D51E # ? - Minuscule mathématique gothique a
<UFDD7> <f> <b> : "?" U1D51F # ? - Minuscule mathématique gothique b
<UFDD7> <f> <c> : "?" U1D520 # ? - Minuscule mathématique gothique c
<UFDD7> <f> <d> : "?" U1D521 # ? - Minuscule mathématique gothique d
<UFDD7> <f> <e> : "?" U1D522 # ? - Minuscule mathématique gothique e
<UFDD7> <f> <f> : "?" U1D523 # ? - Minuscule mathématique gothique f
<UFDD7> <f> <g> : "?" U1D524 # ? - Minuscule mathématique gothique g
<UFDD7> <f> <h> : "?" U1D525 # ? - Minuscule mathématique gothique h
<UFDD7> <f> <i> : "?" U1D526 # ? - Minuscule mathématique gothique i
<UFDD7> <f> <j> : "?" U1D527 # ? - Minuscule mathématique gothique j
<UFDD7> <f> <k> : "?" U1D528 # ? - Minuscule mathématique gothique k
<UFDD7> <f> <l> : "?" U1D529 # ? - Minuscule mathématique gothique l
<UFDD7> <f> <m> : "?" U1D52A # ? - Minuscule mathématique gothique m
<UFDD7> <f> <n> : "?" U1D52B # ? - Minuscule mathématique gothique n
<UFDD7> <f> <o> : "?" U1D52C # ? - Minuscule mathématique gothique o
<UFDD7> <f> <p> : "?" U1D52D # ? - Minuscule mathématique gothique p
<UFDD7> <f> <q> : "?" U1D52E # ? - Minuscule mathématique gothique q
<UFDD7> <f> <r> : "?" U1D52F # ? - Minuscule mathématique gothique r
<UFDD7> <f> <s> : "?" U1D530 # ? - Minuscule mathématique gothique s
<UFDD7> <f> <t> : "?" U1D531 # ? - Minuscule mathématique gothique t
<UFDD7> <f> <u> : "?" U1D532 # ? - Minuscule mathématique gothique u
<UFDD7> <f> <v> : "?" U1D533 # ? - Minuscule mathématique gothique v
<UFDD7> <f> <w> : "?" U1D534 # ? - Minuscule mathématique gothique w
<UFDD7> <f> <x> : "?" U1D535 # ? - Minuscule mathématique gothique x
<UFDD7> <f> <y> : "?" U1D536 # ? - Minuscule mathématique gothique y
<UFDD7> <f> <z> : "?" U1D537 # ? - Minuscule mathématique gothique z
<UFDD7> <F> <A> : "?" U1D56C # ? - Majuscule mathématique gothique grasse a
<UFDD7> <F> <B> : "?" U1D56D # ? - Majuscule mathématique gothique grasse b
<UFDD7> <F> <C> : "?" U1D56E # ? - Majuscule mathématique gothique grasse c
<UFDD7> <F> <D> : "?" U1D56F # ? - Majuscule mathématique gothique grasse d
<UFDD7> <F> <E> : "?" U1D570 # ? - Majuscule mathématique gothique grasse e
<UFDD7> <F> <F> : "?" U1D571 # ? - Majuscule mathématique gothique grasse f
<UFDD7> <F> <G> : "?" U1D572 # ? - Majuscule mathématique gothique grasse g
<UFDD7> <F> <H> : "?" U1D573 # ? - Majuscule mathématique gothique grasse h
<UFDD7> <F> <I> : "?" U1D574 # ? - Majuscule mathématique gothique grasse i
<UFDD7> <F> <J> : "?" U1D575 # ? - Majuscule mathématique gothique grasse j
<UFDD7> <F> <K> : "?" U1D576 # ? - Majuscule mathématique gothique grasse k
<UFDD7> <F> <L> : "?" U1D577 # ? - Majuscule mathématique gothique grasse l
<UFDD7> <F> <M> : "?" U1D578 # ? - Majuscule mathématique gothique grasse m
<UFDD7> <F> <N> : "?" U1D579 # ? - Majuscule mathématique gothique grasse n
<UFDD7> <F> <O> : "?" U1D57A # ? - Majuscule mathématique gothique grasse o
<UFDD7> <F> <P> : "?" U1D57B # ? - Majuscule mathématique gothique grasse p
<UFDD7> <F> <Q> : "?" U1D57C # ? - Majuscule mathématique gothique grasse q
<UFDD7> <F> <R> : "?" U1D57D # ? - Majuscule mathématique gothique grasse r
<UFDD7> <F> <S> : "?" U1D57E # ? - Majuscule mathématique gothique grasse s
<UFDD7> <F> <T> : "?" U1D57F # ? - Majuscule mathématique gothique grasse t
<UFDD7> <F> <U> : "?" U1D580 # ? - Majuscule mathématique gothique grasse u
<UFDD7> <F> <V> : "?" U1D581 # ? - Majuscule mathématique gothique grasse v
<UFDD7> <F> <W> : "?" U1D582 # ? - Majuscule mathématique gothique grasse w
<UFDD7> <F> <X> : "?" U1D583 # ? - Majuscule mathématique gothique grasse x
<UFDD7> <F> <Y> : "?" U1D584 # ? - Majuscule mathématique gothique grasse y
<UFDD7> <F> <Z> : "?" U1D585 # ? - Majuscule mathématique gothique grasse z
<UFDD7> <F> <a> : "?" U1D586 # ? - Minuscule mathématique gothique grasse a
<UFDD7> <F> <b> : "?" U1D587 # ? - Minuscule mathématique gothique grasse b
<UFDD7> <F> <c> : "?" U1D588 # ? - Minuscule mathématique gothique grasse c
<UFDD7> <F> <d> : "?" U1D589 # ? - Minuscule mathématique gothique grasse d
<UFDD7> <F> <e> : "?" U1D58A # ? - Minuscule mathématique gothique grasse e
<UFDD7> <F> <f> : "?" U1D58B # ? - Minuscule mathématique gothique grasse f
<UFDD7> <F> <g> : "?" U1D58C # ? - Minuscule mathématique gothique grasse g
<UFDD7> <F> <h> : "?" U1D58D # ? - Minuscule mathématique gothique grasse h
<UFDD7> <F> <i> : "?" U1D58E # ? - Minuscule mathématique gothique grasse i
<UFDD7> <F> <j> : "?" U1D58F # ? - Minuscule mathématique gothique grasse j
<UFDD7> <F> <k> : "?" U1D590 # ? - Minuscule mathématique gothique grasse k
<UFDD7> <F> <l> : "?" U1D591 # ? - Minuscule mathématique gothique grasse l
<UFDD7> <F> <m> : "?" U1D592 # ? - Minuscule mathématique gothique grasse m
<UFDD7> <F> <n> : "?" U1D593 # ? - Minuscule mathématique gothique grasse n
<UFDD7> <F> <o> : "?" U1D594 # ? - Minuscule mathématique gothique grasse o
<UFDD7> <F> <p> : "?" U1D595 # ? - Minuscule mathématique gothique grasse p
<UFDD7> <F> <q> : "?" U1D596 # ? - Minuscule mathématique gothique grasse q
<UFDD7> <F> <r> : "?" U1D597 # ? - Minuscule mathématique gothique grasse r
<UFDD7> <F> <s> : "?" U1D598 # ? - Minuscule mathématique gothique grasse s
<UFDD7> <F> <t> : "?" U1D599 # ? - Minuscule mathématique gothique grasse t
<UFDD7> <F> <u> : "?" U1D59A # ? - Minuscule mathématique gothique grasse u
<UFDD7> <F> <v> : "?" U1D59B # ? - Minuscule mathématique gothique grasse v
<UFDD7> <F> <w> : "?" U1D59C # ? - Minuscule mathématique gothique grasse w
<UFDD7> <F> <x> : "?" U1D59D # ? - Minuscule mathématique gothique grasse x
<UFDD7> <F> <y> : "?" U1D59E # ? - Minuscule mathématique gothique grasse y
<UFDD7> <F> <z> : "?" U1D59F # ? - Minuscule mathématique gothique grasse z
#[
# Fin du fichier XCompose
#]
#[
# Début du fichier xcompose-embellisseur.tcl
#]
#!/usr/bin/tclsh
# Programme Tcl xcompose-embellisseur.tcl version 0
# corrige, augmente et formate le fichier XCompose issu de l’adresse
# https://download.tuxfamily.org/dvorak/xkb/fr-dvorak-bepo-xkb-1.1rc2.tar.xz
# tel que proposé à l’adresse https://bepo.fr/wiki/Installation_.XCompose
# Documentation disponible :
# - la documentation de ces liens
# - la documentation en ligne de cet exécutable
# - la documentation intégrée à la suite de ce code après le "exit 0" final
# (format .md pour les intimes)
# Tel que vu avec Zluglu sur irc.libera.chat #bepo
# l’option --gitlab et la variable gitlab ont été ajoutées afin de traiter
# le fichier - fonctionnel mais pas tabulé - XCompose
# issu du dépôt https://gitlab.com/bepo/pilotes.git
#
# Début du programme
#
# Et ouais, en Tcl, on peut utiliser des espaces dans les variables en usant des accolades
set {Ligne de présentation} [string repeat "–" 80]
set fichier_de_recherche_keysymdef "/usr/include/X11/keysymdef.h"
set url_de_recherche "http://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt"
set url_fr_de_recherche "https://unicode-table.com/fr/"
# Vous souhaitez désactiver la tabulation automatique et ne profiter que de la syntaxe fonctionnelle ?
# (c’est moche mais ça marche… mais c’est moche, y’en a qui aiment)
# passez l’option brute à true (option ajoutée à la dernière minute)
set brute false
# set brute true
# Pour traiter XCompose issu de https://gitlab.com/bepo/pilotes.git
set gitlab false
# Pour Debuggage avec RamDebugger
# set argv {--distant_unicode_fr}
# set argv {--distant_unicode}
# set argv {--local_keysymdef}
# Début du traitement des arguments de la ligne de commande
switch [lindex $argv 0] {
# Pour traiter XCompose issu de https://gitlab.com/bepo/pilotes.git
"--gitlab" {
set gitlab true
}
"--brute" {
set brute true
set mode "local_keysymdef"
}
"--local_keysymdef" {
set mode "local_keysymdef"
}
"--distant_unicode" {
set mode "distant_unicode"
}
"--distant_unicode_fr" {
set mode "distant_unicode_fr"
}
default {
if { ! [regexp "marre" [lindex $argv 1] ] } {
# Et ouais, avec Tcl, on peut utiliser une flèche en guise de variable afin de lisibilité
regexp -- {./(.*)} [info script] → commande
puts stderr ${Ligne de présentation}
puts stderr "▪ Syntaxe de la commande $commande :"
puts stderr ""
puts stderr " $commande {méthode}"
puts stderr ""
puts stderr " où {méthode} doit être l’une de ces valeurs :"
puts stderr ""
puts stderr " --local_keysymdef # utilise le fichier $fichier_de_recherche_keysymdef"
puts stderr " --brute # comme --local_keysymdef mais sans formatage (sortie brute)"
puts stderr " --distant_unicode # récupère $url_de_recherche"
puts stderr " --distant_unicode_fr # consulte les données sur $url_fr_de_recherche"
puts stderr " --gitlab # XCompose similaire à la version du dépôt https://gitlab.com/bepo/pilotes.git"
puts stderr ""
puts stderr "▪ La commade lit et écrit les données sur les flux standards /dev/stdin et /dev/stdout. Il utilise /dev/stderr pour afficher ses messages. Ainsi, la commande peut s’utiliser des façons suivantes :"
puts stderr ""
puts stderr " $ cat XCompose |./$commande --local_keysymdef >XCompose.nouveau"
puts stderr " $ cat XCompose |./$commande --distant_unicode |tee XCompose.nouveau"
puts stderr " $ time cat XCompose |./$commande --distant_unicode_fr |tee XCompose.nouveau |tail"
puts stderr ""
puts stderr "– La méthode « local_keysymdef » tente d’utiliser votre fichier local $fichier_de_recherche_keysymdef."
puts stderr "– Les méthodes « distant_* » récupèrent des données sur Internet."
puts stderr "– La méthode « distant_unicode_fr » consomme plusieurs minutes avec plus de 1500 requêtes, pour un texte en français et parfaitement aligné."
puts stderr ""
puts stderr "⚠ Nécessite Tcl pour le binaire \"/usr/bin/tclsh\" et les paquetages standards \"http\" et \"tls\"."
# puts stderr " Installé en standard et installable avec \"sudo apt install tcl\" sur Debian et consorts."
# puts stderr "⚠ Le script doit être exécutable, ce qui se réalise avec un \"chmod +x $commande\" à la console (déjà fait si vous lisez cela ?)."
puts stderr " Installé en standard et installable sur Debian et consorts avec :"
puts stderr ""
puts stderr " $ sudo apt install tcl"
puts stderr ""
puts stderr "⚠ Le script doit être exécutable, ce qui se réalise à la console avec (déjà fait si vous lisez cela ?) :"
puts stderr ""
puts stderr " $ chmod +x $commande"
puts stderr ""
puts stderr "▪ Copiez le fichier obtenu en ~/.XCompose (sauvegardez l’ancien s’il existe déjà ?) et testez-le avec xterm en mode « login shell » :"
puts stderr ""
puts stderr " $ cp XCompose.nouveau ~/.XCompose"
puts stderr " $ xterm -ls # -ls permet la relecture du fichier ~/.XCompose"
puts stderr ""
puts stderr "≡ Les combinaisons de touches suivantes vous donnent accès aux caractères scientifiques affichés en vis-à-vis"
puts stderr ""
puts stderr " AltGR-D, D ∂"
puts stderr " AltGR-D, Shift-D ∆"
puts stderr " AltGR-D, AltGr-D ∇"
puts stderr " AltGR-D, AltGr-Shift-D ⊲"
puts stderr ""
puts stderr "☞ Consultez la page https://bepo.fr/wiki/Touches_mortes pour tous ses trésors de possibilités, tels ces variations de la lettre A :"
puts stderr ""
puts stderr " A ᴀ ᴬ ? ? ? ? ? ? ? …"
puts stderr ${Ligne de présentation}
} else {
puts stderr "Pas du tout."
}
exit 0
}
}
# Fin du traitement des arguments de la ligne de commande
# {include "%L"} {}
# {<dead_abovedot> <U0249> : U025F} {}
set xcompose_extraction [dict create]
# {#define XK_space} {#define XK_space 0x0020 /* U+0020 SPACE */}
set keysymdef_extraction [dict create]
set eventmax {}
# 0000 {<control> Cc}
# 025F {{LATIN SMALL LETTER DOTLESS J WITH STROKE} {Ll}}
array set unicode_extraction_na_gc {}
# Initialise le dictionnaire unicode_extraction_na_gc en mode distant_unicode exploité par :
# - recherche_keysym
# - recherche_codepoint
# - Tabulage
proc init_distant_unicode {} {
package require http
global url_de_recherche
global unicode_extraction_na_gc
puts stderr "→ Initialisation des données Unicode en anglais"
# Récupération du fichier http://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt
set jeton [http::geturl $url_de_recherche]
set page [http::data $jeton]
::http::cleanup $jeton
# 0000;<control>;Cc;0;BN;;;;;N;NULL;;;;
set exp_unicodedata {^([^;]+);([^;]+);([^;]+).*$}
set total [expr [llength [split $page "\n"]] + 3]
set effectué 0
foreach ligne [split $page "\n"] {
# Ne traite que les lignes du modèle
# 0000;<control>;Cc;0;BN;;;;;N;NULL;;;;
if [ regexp -- $exp_unicodedata $ligne → cp na gc] {
# 025F {{LATIN SMALL LETTER DOTLESS J WITH STROKE} {Ll}}
set unicode_extraction_na_gc($cp) [list $na $gc]
}
incr effectué
puts -nonewline stderr "\r→ Récupération Internet en cours : effectué/total = ${effectué}/$total"
}
# Trois entrées concernent des caractères CJK (chinois) et ne sont pas répertoriées
set unicode_extraction_na_gc(5143) {{CJK UNIFIED IDEOGRAPH-#} {Lo}} ;# 元
set unicode_extraction_na_gc(5186) {{CJK UNIFIED IDEOGRAPH-#} {Lo}} ;# 円
set unicode_extraction_na_gc(5713) {{CJK UNIFIED IDEOGRAPH-#} {Lo}} ;# 圓
set effectué [expr ${effectué} + 3]
puts -nonewline stderr "\r→ Récupération Internet en cours : effectué/total = ${effectué}/$total"
}
# Initialise le dictionnaire unicode_extraction_na_gc en mode distant_unicode_fr exploité par :
# - recherche_keysym
# - recherche_codepoint
# - Tabulage
proc init_distant_unicode_fr {} {
package require http
package require tls
# Nécessaire afin d’accéder à HTTPS/TLS
# le site n’accèpte pas les connexions non-sécurisées
::http::register https 443 ::tls::socket
global xcompose_extraction
global url_fr_de_recherche
global unicode_extraction_na_gc
global keysymdef_extraction
puts stderr "→ Initialisation des données Unicode en français"
# Conulte l’url Internet afin d’obtenir le nom ????ç??? du Codeponit passé en argument
# Et ouais, sur Tcl, on peut définir une Proc ???? une Proc
# Et ouais, dans Tcl, on peut utiliser des caractères accentués dans le nom des Proc
proc requêtage { code } {
global url_fr_de_recherche
set url_complete $url_fr_de_recherche
append url_complete $code /
set jeton [http::geturl $url_complete]
set page [http::data $jeton]
::http::cleanup $jeton
# Seul le Titre de la page est d’intérêt
# pour une ligne de titre (∿100 octets) on télécharge 50Ko (!) : 499/500ᵉ de ce que l’on reçoit est bon à jeter…
# <title>ɟ - Lettre minuscule latine J sans point barré: U+025F - Table de caractères Unicode</title>
set exp_titre {^<title>(.[^:]+): U\+[0-9A-F]{4,5} ([^ ]* )?- Table de caractères Unicode</title>$}
foreach ligne [split $page "\n"] {
# {^<title>(.[^:]+): U\+[0-9A-F]{4,5} ([^ ]* )?- Table de caractères Unicode</title>$}
if { [regexp -- $exp_titre $ligne → nomfrançais] } {
# {ɟ - Lettre minuscule latine J sans point barré}
return ${nomfrançais}
break
}
}
}
# Début de requêtage local
# J’avais placé ici une redéfinition de la proc requêtage pour lire une base locale et éviter les connexions
# [… si seulement j’avais réussi à la faire marcher]
# Fin de requêtage local
# Le traitement est différent selon le type de ligne :
# <dead_abovedot> <U0249> : U025F
# <dead_abovedot> <U202F> : abovedot
# Les deux expressions suivantes sont mutuellement exclusives
set exp_keysym_sel {^(?!.*U[0-9A-F]{4,5}$)}
set exp_code_sel {^.*U[0-9A-F]{4,5}$}
set exp_keysym_grpini {^.* : (.+)$}
set exp_code_grpini {^.* : U([^ ]{4,5})$}
set expcode { U([0-9A-F]{4,5}) #}
set exp_url {^<title>(.[^:]+): U\+[0-9A-F]{4,5} ([^ ]* )?- Table de caractères Unicode</title>$}
set expkeysym {^#define XK_[_0-9a-zA-Z]+ +0x[^ ]*.*[ (]U\+([^ ]+) .*[ )]\*/$}
set total [dict size $xcompose_extraction]
set effectué 0
foreach ligne [dict keys $xcompose_extraction] {
# Type de ligne : <dead_abovedot> <U202F> : abovedot
# {^(?!.*U[0-9A-F]{4,5}$)}
if { [regexp -- $exp_keysym_sel $ligne]} {
# {^.* : (.+)$}
if { [regexp -- $exp_keysym_grpini $ligne → cp] } {
set nomkeysym {}
append nomkeysym "#define XK_" $cp
set lignekeysym [dict get $keysymdef_extraction $nomkeysym]
# #define XK_abovedot 0x01ff /* U+02D9 DOT ABOVE */
# {^#define XK_[_0-9a-zA-Z]+ +0x[^ ]*.*[ (]U\+([^ ]+) .*[ )]\*/$}
regexp -- $expkeysym $lignekeysym → code
set nomfrançais [requêtage $code]
set unicode_extraction_na_gc($code) [list ${nomfrançais} {inutilisé}]
# Si c’est une ligne à ignorer (de commentaire par exemple) ?
# on décrémante le total et on passe à la ligne suivante
} else {
set total [expr $total - 1]
# decr total
continue
}
# Type de ligne : <dead_abovedot> <U0249> : U025F
# {^.*U[0-9A-F]{4,5}$}
} else {
# {^.* : U([^ ]{4,5})$}
if { [regexp -- $exp_code_grpini $ligne → cp] } {
set code $cp
# Si c’est une ligne à ignorer (de commentaire par exemple) ?
# on décrémante le total et on passe à la ligne suivante
# [j’ai pas déjà dis ça moi ?]
} else {
set total [expr $total - 1]
# decr total
continue
}
}
set url_complete $url_fr_de_recherche
append url_complete $code /
set jeton [http::geturl $url_complete]
set page [http::data $jeton]
::http::cleanup $jeton
# 0249;LATIN SMALL LETTER J WITH STROKE;Ll;0;L;;;;;N;;;0248;;0248
foreach ligne [split $page "\n"] {
# {^<title>(.[^:]+): U\+[0-9A-F]{4,5} ([^ ]* )?- Table de caractères Unicode</title>$}
if { [regexp -- $exp_url $ligne → nomfrançais] } {
# 025F {{LATIN SMALL LETTER DOTLESS J WITH STROKE} {Ll}}
set unicode_extraction_na_gc($code) [list ${nomfrançais} {inutilisé}]
break
}
}
incr effectué
puts -nonewline stderr "\r→ Récupération Internet en cours : effectué/total = ${effectué}/$total"
}
}
# Chargement du contenu du fichier original sur l’entrée standard
# Chargement par /dev/stdin ici, plus bas une redéfinition commentée permet de lire depuis un fichier local
# Utilisez le fichier de commmande de cette façon :
# $ cat XCompose.original |./$commande --local_keysymdef >~/XCompose.nouveau"
proc Chargement {} {
global xcompose_extraction
# <dead_abovedot> <U0249> : U025F
while {[gets stdin ligne] >=0} {
# {<dead_abovedot> <U0249> : U025F} {}
dict set xcompose_extraction $ligne {}
}
}
# Pour Debuggage avec RamDebugger
# Redéfinition de Chargement lit depuis le fichier local précisé à la ligne « set filein "XCompose.original" »
# Dans ce cas, tilisez le fichier de commmande de cette façon :
# $ ./$commande --local_keysymdef >~/XCompose.nouveau"
# ou depuis RamDebugger en positionnant l’option argv en tête de fichier
# proc Chargement {} {
# global xcompose_extraction
# set filein "XCompose.original"
# set filehandle [open $filein r]
# # <dead_abovedot> <U0249> : U025F
# while {[gets $filehandle ligne] >=0} {
# # {<dead_abovedot> <U0249> : U025F} {}
# dict set xcompose_extraction $ligne {}
# }
# close $filehandle
# }
# Initialise le dictionnaire keysymdef_extraction exploité par
# - recherche_keysym
# - init_distant_unicode_fr
proc init_recherche_keysym {} {
global fichier_de_recherche_keysymdef
global keysymdef_extraction
set fichier_keysymdef [open $fichier_de_recherche_keysymdef r]
# #define XK_abovedot 0x01ff /* U+02D9 DOT ABOVE */
set exp_fichier {^(#define XK_[_0-9a-zA-Z]+) +0x[^ ]*.*[ (]U\+[^ ]+ .*[ )]\*/$}
puts -nonewline stderr "→ Initialisation des données depuis $fichier_de_recherche_keysymdef"
while {[gets $fichier_keysymdef ligne] >= 0} {
# #define XK_abovedot 0x01ff /* U+02D9 DOT ABOVE */
if { [regexp -- $exp_fichier $ligne → idligne]} {
# {#define XK_space} {#define XK_space 0x0020 /* U+0020 SPACE */}
dict set keysymdef_extraction $idligne $ligne
}
}
}
# Retourne une chaîne "RESULT [# COMMENT]" (voir man 5 xcompose) à partir d’un Keysym
# Exemple : on obtient la chaîne {"˙" U02D9 # DOT ABOVE} pour le Keysym {abovedot}
# Tcl ne supporte pas encore l’Unicode >FFFF (5 digits hexadécimaux), sinon, on utiliserait : set glyphe "\U$code"
# Et on économiserait du cooode ! En attendant, louange à Perl, encore le meilleur dans sa partie
proc recherche_keysym { string } {
global mode
global fichier_de_recherche_keysymdef
global keysymdef_extraction
set fichier_keysymdef [open $fichier_de_recherche_keysymdef r]
# Tcl ne supporte pas encore l’Unicode >FFFF (5 digits hexadécimaux), sinon, on utiliserait : set glyphe "\U$string"
# Et on économiserait du cooode ! En attendant, louange à Perl, encore le meilleur dans sa partie
switch $mode {
"local_keysymdef" {
# #define XK_abovedot 0x01ff /* U+02D9 DOT ABOVE */
set exp {}
append exp {^#define XK_} $string { +0x[^ ]*.*[ (]U\+([^ ]+) (.*)[ )]\*/$}
set ligne [dict get $keysymdef_extraction "#define XK_$string"]
regexp -- $exp $ligne → code nom
set cmd_perl {}
append cmd_perl {exec -- bash -c "perl -e 'binmode(STDOUT, \":utf8\"); print chr(0x} $code {)'"}
set glyphe [eval $cmd_perl]
return "\"$glyphe\" U$code # $nom"
}
"distant_unicode" {
global unicode_extraction_na_gc
# #define XK_abovedot 0x01ff /* U+02D9 DOT ABOVE */
set exp {}
append exp {^#define XK_} $string { +0x[^ ]*.*[ (]U\+([^ ]+) .*$}
set ligne [dict get $keysymdef_extraction "#define XK_$string"]
regexp -- $exp $ligne → code
set nom [lindex $unicode_extraction_na_gc($code) 0]
set cmd_perl {}
append cmd_perl {exec -- bash -c "perl -e 'binmode(STDOUT, \":utf8\"); print chr(0x} $code {)'"}
set glyphe [eval $cmd_perl]
return "\"$glyphe\" U$code # $nom"
}
"distant_unicode_fr" {
global unicode_extraction_na_gc
# #define XK_abovedot 0x01ff /* U+02D9 DOT ABOVE */
set exp {}
append exp {^#define XK_} $string { +0x[^ ]*.*[ (]U\+([^ ]+) .*$}
set ligne [dict get $keysymdef_extraction "#define XK_$string"]
regexp -- $exp $ligne → code
set nom [lindex $unicode_extraction_na_gc($code) 0]
set cmd_perl {}
append cmd_perl {exec -- bash -c "perl -e 'binmode(STDOUT, \":utf8\"); print chr(0x} $code {)'"}
set glyphe [eval $cmd_perl]
return "\"$glyphe\" U$code # $nom"
}
}
}
# Retourne une chaîne "RESULT [# COMMENT]" (voir man 5 xcompose) à partir d’un Codepoint
# Exemple : on obtient la chaîne {"ɟ" U025F # --} pour le codepoint {U025F}
# Tcl ne supporte pas encore l’Unicode >FFFF (5 digits hexadécimaux), sinon, on utiliserait : set glyphe "\U$code"
# Et on économiserait du cooode ! En attendant, louange à Perl, encore le meilleur dans sa partie
proc recherche_codepoint { code } {
global mode
global brute
global unicode_extraction_na_gc
# Tcl ne supporte pas encore l’Unicode >FFFF (5 digits hexadécimaux), sinon, on utiliserait : set glyphe "\U$code"
# Et on économiserait du cooode ! En attendant, louange à Perl, encore le meilleur dans sa partie
switch $mode {
"local_keysymdef" {
set cmd_perl {}
append cmd_perl {exec -- bash -c "perl -e 'binmode(STDOUT, \":utf8\"); print chr(0x} $code {)'"}
set glyphe [eval $cmd_perl]
if { $brute == "false" } {
return "\"$glyphe\" U$code # --"
} else {
return "\"$glyphe\" U$code"
}
}
"distant_unicode" {
set cmd_perl {}
append cmd_perl {exec -- bash -c "perl -e 'binmode(STDOUT, \":utf8\"); print chr(0x} $code {)'"}
set glyphe [eval $cmd_perl]
set nom [lindex $unicode_extraction_na_gc($code) 0]
return "\"$glyphe\" U$code # $nom"
}
"distant_unicode_fr" {
set cmd_perl {}
append cmd_perl {exec -- bash -c "perl -e 'binmode(STDOUT, \":utf8\"); print chr(0x} $code {)'"}
set glyphe [eval $cmd_perl]
set nom [lindex $unicode_extraction_na_gc($code) 0]
return "\"$glyphe\" U$code # $nom"
}
}
}
# Pilote la création de la chaîne modifiée pour chaque ligne du fichier d’entrée
# S’appuye sur les proc de recherche (recherche_keysym et recherche_codepoint)
proc Modification {} {
global xcompose_extraction
# Le traitement est différent selon le type de ligne :
# <dead_abovedot> <U0249> : U025F
# <dead_abovedot> <U202F> : abovedot
# Les deux expressions suivantes sont mutuellement exclusives
set exp_keysym_sel {^(?!.*U[0-9A-F]{4,5}$)}
set exp_code_sel {^.*U[0-9A-F]{4,5}$}
set exp_keysym_grp {^(.* : )(.+)$}
set exp_code_grp {^(.* : )U([^ ]{4,5})$}
set total [dict size $xcompose_extraction]
set effectué 0
foreach ligne [dict keys $xcompose_extraction] {
# Type de ligne : <dead_abovedot> <U202F> : abovedot
# {^(?!.*U[0-9A-F]{4,5}$)}
if { [regexp -- $exp_keysym_sel $ligne]} {
# {^(.* : )(.+)$}
if { [regexp -- $exp_keysym_grp $ligne → nomkeysym code]} {
append nomkeysym [recherche_keysym $code]
# {<dead_abovedot> <U0249> : U025F} {{<dead_abovedot> <U0249> : "ɟ" U025F # --}}
dict lappend xcompose_extraction $ligne $nomkeysym
# Ligne d’inclusion et de commentaire relayés verbatim
} else {
# {include "%L"} {{include "%L"}}
# {# …} {{# …}}
dict lappend xcompose_extraction $ligne $ligne
}
# Type de ligne : <dead_abovedot> <U0249> : U025F
# {^.*U[0-9A-F]{4,5}$}
} else {
# {^(.* : )U([^ ]{4,5})$}
if { [regexp -- $exp_code_grp $ligne → nomkeysym code] } {
append nomkeysym [recherche_codepoint $code]
dict lappend xcompose_extraction $ligne $nomkeysym
# Ligne d’inclusion et de commentaire relayés verbatim
} else {
# {include "%L"} {{include "%L"}}
# {# …} {{# …}}
dict lappend xcompose_extraction $ligne $ligne
}
}
incr effectué
puts -nonewline stderr "\r→ Transformation des données en mémoire : effectué/total = ${effectué}/$total"
}
}
# Retient la longueur maximale de la chaîne Event parmi toutes les lignes du fichier d’entrée et l’enregistre dans eventmax
# La chaîne Event est décrite dans « man 5 xcompose » comme une séquences de touches : EVENT [EVENT...]
# Exemple, dans : <dead_abovedot> <U0249> : "ɟ" U025F # --
# la chaîne Event est les caractères jusqu’au deux-points exclu : <dead_abovedot> <U0249>
proc Étalonnage {} {
# Pour traiter XCompose issu de https://gitlab.com/bepo/pilotes.git
global gitlab
global xcompose_extraction
global eventmax
# La ligne la plus longue à la rédaction est la suivante et retourne un eventmax de 58
# <dead_circumflex> <dead_circumflex> <rightsinglequotemark> : "̭" U032D # --
set exp_compte {^(.*) : ".*" U[0-9A-F]{4,5} # .*$}
# Pour traiter XCompose issu de https://gitlab.com/bepo/pilotes.git
if { $gitlab } {
set exp_compte {^(.*) : .*}
}
puts -nonewline stderr "→ Calculs de tabulation"
dict for {key value} $xcompose_extraction {
# {<dead_abovedot> <U0249> : "ɟ" U025F # --}
set ligne [lindex $value 0]
if { [regexp -- $exp_compte $ligne → event]} {
if { [set temp [string length $event]] > $eventmax } {
set eventmax $temp
}
}
}
}
# S’occupe d’aligner parfaitement les champs Event, String, Codepoint et Commentaire
proc Tabulage {} {
puts -nonewline stderr "→ Application du formatage"
global xcompose_extraction
global brute
# Si le pseudo mode brute est choisi, aucun formatage n’est effectué
if { $brute } {
dict for {key value} $xcompose_extraction {
set ligne [lindex $value 0]
#{<dead_abovedot> <U0249> : "ɟ" U025F # --}
dict set $key xcompose_extraction [lreplace $value 0 0 $ligne]
}
return
}
# Pour traiter XCompose issu de https://gitlab.com/bepo/pilotes.git
global gitlab
global eventmax
# Pour traiter XCompose issu de https://gitlab.com/bepo/pilotes.git
if { $gitlab } {
dict for {key value} $xcompose_extraction {
set exp_utile {^(.*) (:) (.*)$}
set ligne [lindex $value 0]
if { [regexp -- $exp_utile $ligne → event deux-points suite]} {
# Application d’une tabulation afin d’aligner sur le caractère « deux-points » ":"
set nombre [expr $eventmax - [string length $event]]
set tabulation [string repeat { } $nombre]
set résultat $event
append résultat $tabulation { }
append résultat ${deux-points} { }
append résultat ${suite}
dict set xcompose_extraction $key [lreplace $value 0 0 ${résultat}]
} else {
dict set $key xcompose_extraction [lreplace $value 0 0 $ligne]
}
}
return
}
global mode
global unicode_extraction_na_gc
# <dead_abovedot> <U0249> : "ɟ" U025F # --
set exp_utile {^(.*) (:) ("[^ ]*") (U[0-9A-F]{4,5}) (# .*)$}
dict for {key value} $xcompose_extraction {
set ligne [lindex $value 0]
if { [regexp -- $exp_utile $ligne → event deux-points glyphe code nom]} {
if { $mode == "local_keysymdef" } {
# Variables non utilisées fixées à une valeur saine
set espacedi ""
set espacecp ""
}
# Tabulage raffiné si utilisation du fichier UnicodeData.txt
if { $mode == "distant_unicode" } {
# Pour les cas du type "̇" U0307
# General_Category = Mn = Nonspacing Mark$
set espacedi ""
if { [lindex $unicode_extraction_na_gc([string trim $code U]) 1] == "Mn"} {
set espacedi " "
}
}
# Tabulage parachevé pour les diacritiques en mode 100% français
if { $mode == "distant_unicode_fr" } {
set espacedi ""
if { [ regexp -- {- Diacritique} $nom ] } {
set espacedi " "
}
}
# Opérations effectuées dans tous les cas
# Application d’une tabulation afin d’aligner sur le caractère « deux-points » ":"
set nombre [expr $eventmax - [string length $event]]
set tabulation [string repeat { } $nombre]
# <dead_abovedot> <U0249> : "ɟ" U025F # --
# Ajustement en fonction de la largeurs de certains caractères (2 ou 0)
# 圓, 元, 円, ?, LEFT-TO-RIGHT OVERRIDE, ZERO WIDTH SPACE, 〚, 〛
switch $code {
U5713 { set espacecw " " }
U5143 { set espacecw " " }
U5186 { set espacecw " " }
U1F918 { set espacecw "" }
U202D { set espacecw " " }
U200B { set espacecw " " }
U301A { set espacecw " " }
U301B { set espacecw " " }
default { set espacecw " " }
}
# Ajustement en fonction de la longueur du codepoint
# U025F ≠ U1D55, 5 ou 6 caractères (en comptant le U)
set espacecp " "
if { [string length $code] == "6"} {
# Mais pas pour "?" U1F918 parce que ça marche bien sans
#(le truc de Rockeur, ou de Texan… ou de je-n’sais-où)
if {$code != "U1F918"} {
set espacecp ""
}
}
set résultat $event
append résultat $tabulation { }
append résultat ${deux-points} { }
append résultat $glyphe
append résultat $espacedi
append résultat $espacecw
append résultat $espacecp
append résultat $code { }
append résultat $nom
# Avant Tabulage :
# <dead_abovedot> <U0249> : "ɟ" U025F # --
# Après Tabulage :
# différents contenus de résultat :
# <dead_abovedot> <U0249> : "ɟ" U025F # --
# <dead_abovedot> <U0249> : "ɟ" U025F # LATIN SMALL LETTER DOTLESS J WITH STROKE
# <dead_abovedot> <U0249> : "ɟ" U025F # ɟ - Lettre minuscule latine J sans point barré
dict set xcompose_extraction $key [lreplace $value 0 0 ${résultat}]
} else {
# Ligne d’inclusion et commentaires relayés verbatim (include "%L" et #…)
dict set $key xcompose_extraction [lreplace $value 0 0 $ligne]
}
}
}
# Affiche sur la sortie standard le fichier original modifié
proc Affichage {} {
global {Ligne de présentation}
global xcompose_extraction
puts stderr "→ Affichage du résultat sur la sortie standard"
puts stderr ${Ligne de présentation}
dict for {key value} $xcompose_extraction {
puts [lindex [dict get $xcompose_extraction $key] 0]
}
}
# Donne accès aux temps d’exécution des différentes étapes du programme
# S’utilise en encadrant la proc appelée et en passant un nombre afin d’ajuster la tabulation :
# Chronomètre [time { _procédure_ }] _longueur_
# Oui tu peux me piquer mon code
proc Chronomètre { microsecondes longueurmessage} {
set secondes [expr [lindex $microsecondes 0] /1000/1000]
set minutes [expr $secondes /60]
set messagemax 67
set tabulation [string repeat { } [expr $messagemax - $longueurmessage] ]
if { $secondes >60 } {
puts stderr "$tabulation∆? ≈ $minutes m"
} else {
puts stderr "$tabulation∆? ≈ $secondes s"
}
}
puts stderr ${Ligne de présentation}
# Début du programme principal (main)
# Chargement du contenu du fichier original sur l’entrée standard
Chargement
# Pour traiter XCompose issu de https://gitlab.com/bepo/pilotes.git
if { $gitlab } {
foreach ligne [dict keys $xcompose_extraction] {
dict lappend xcompose_extraction $ligne $ligne
}
Étalonnage; puts stderr ""
Tabulage; puts stderr ""
Affichage
exit 0
}
switch $mode {
"local_keysymdef" {
puts stderr "→ Méthode sélectionnée : $mode"
puts stderr "≡ fichier $fichier_de_recherche_keysymdef"
puts stderr "▪ Rapide, fonctionnelle, économique et sécurisée, en un mot fiable !"
puts stderr "▪ Que demande le peuple ‽"
puts stderr "▪ Du pain ‼"
init_recherche_keysym
puts stderr ""
}
"distant_unicode" {
puts stderr "→ Méthode sélectionnée : $mode"
puts stderr "≡ connexion à unicode.org"
puts stderr "▪ Le site officiel ?"
puts stderr "▪ Alors ça c’est du sérieux !"
init_recherche_keysym
puts stderr ""
Chronomètre [time { init_distant_unicode }] 61
}
"distant_unicode_fr" {
puts stderr "→ Méthode sélectionnée : $mode"
puts stderr "≡ connexion à unicode-table.com/fr"
puts stderr "▪ En français dans le texte, s’il vous plaît."
puts stderr "▪ Ouaiiisss !!!"
# puts stderr "▪ C’est de la bombe de balle !!!"
# puts stderr "▪ Mais c’est la classe !!!"
# puts stderr "▪ C’est bon à faire dans son froc !!!"
puts stderr "⚠ Une requête par caractère et plus de 1600 caractères"
puts stderr "≡ c’est un traitement Internet de 5 à 10 minutes !"
init_recherche_keysym
puts stderr ""
Chronomètre [time { init_distant_unicode_fr }] 59
}
}
# Pilote la création de la chaîne modifiée pour chaque ligne du fichier d’entrée
Chronomètre [time { Modification }] 66
# Retient la longueur maximale de la chaîne Event parmi toutes les lignes du fichier d’entrée et l’enregistre dans eventmax
Étalonnage
puts stderr ""
# S’occupe d’aligner parfaitement les champs Event, String, Codepoint et Commentaire
Tabulage
puts stderr ""
# Affiche sur la sortie standard le contenu du fichier original modifié
Affichage
# Fin du programme principal (main)
# exit 0
# C’étais le "exit 0" final
# qui permet d’ajouter n’importe quel texte à la suite sans pervertir le code du programme
#[
# Fin du fichier xcompose-embellisseur.tcl
#]
#[
# Début du fichier LISEZ_MOI.md
#]
XCOMPOSE-EMBELLISSEUR.TCL
===============
Rapport d’amour
#=============== 0. Sommaire
1. Résumé express
2. But
3. Problème
4. Solution
5. Pour les développeurs
6. Mes caractères préférés
7. Exploitation
8. Pour le Bépo 1.2 ?
9. Amour
10. Aller, un peu d’humour maitenant
11. Licence(s)
12. L’auteur
13. Authentification
#=============== 1. Résumé Express
Pour configuration Bépo :
Le programme xcompose-embellisseur.tcl permet d’obtenir un ficher ~/.XCompose fonctionnel à 100% et agréable à consulter, à partir du fichier bepo-1.1rc2/XCompose de l’archive https://download.tuxfamily.org/dvorak/xkb/fr-dvorak-bepo-xkb-1.1rc2.tar.xz .
$ wget https://download.tuxfamily.org/dvorak/xkb/fr-dvorak-bepo-xkb-1.1rc2.tar.xz
$ tar xvf fr-dvorak-bepo-xkb-1.1rc2.tar.xz
$ cp ~/.XCompose ~/.XCompose.original
$ cat bepo-1.1rc2/XCompose |./xcompose-embellisseur.tcl >~/.XCompose
En néophyte, on pourra parcourir en diagonal la page « Installation .XCompose » à l’adresse https://bepo.fr/wiki/Installation_.XCompose .
Vu avec Zluglu et Glandos sur irc.libera.chat #bepo, la version XCompose issue du dépôt https://gitlab.com/bepo/pilotes.git est idéjà fonctionnelle à l’inverse de celle déposée sur tuxfamily.org. Dans ce cas mon programme n’apporte que de l’embellissement. La tabulation est moins fine dans ce cas pour cause de temps de codage. Pour retrouver une finesse maximale, il faut utiliser la version XCompose de tuxfamily.org pour le moment…
#=============== 2. But
Disposer d’un moyen qui nous rend capable de produire efficacement des centaines de caractères riches de leur si vaste diversité avec un clavier qui reste standard, c’est ce que je recherchais depuis des années et plus intensemment ces derners mois. C’est là que j’ai découvert l’extraordinaire travail derrière le clavier **Bépo**, qui n’est pas seulement une disposition, mais aussi des centaines de caractères accéssibles aux bouts des doigts avec un effort minimal et un clavier standard (oui, j’ai collé des étiquettes dessus et c’est très joli).
Pour y accéder pleinement sous Linux (désolé les autres), il faut (pour moi tout du moins) utiliser la fonctionnalité XCompose, celle directement implémentée dans le serveur Xorg (inutile de rentrer dans les arcanes de XIM, SCIM, Fcitx ou iBUS). Pour tirer parti de cette fonction, un fichier caché XCompose peut être placé dans le répertoire racine de l’utilisateur. Les indications du mirobollant site bepo.fr suggère de télécharger une archive qui contient ce fameux fichier **XCompose**.
#=============== 3. Problème
Ouaaaouh ahah, ça marche ! Ça marchhh… ah ben nan, ça marche pas complètement.
[fort enthousiasme douché de frustration perplexe]
Ça marche pour certaines touches mais pas d’autres, ça marche pour certains symboles seulement. Bon point, c’est toujours les mêmes qui manquent.
Après une exploration poussée le problème se révèle assez simple : le fichier XCompose contient des lignes comprises par la pile logiciel XCompose, et puis d’autres ligne que ben nan.
Modèle de lignes comprises : `<dead_abovedot> <U0249> : U025F`
Modèle de lignes ignorés : `<dead_abovedot> <U202F> : abovedot`
Et en faisant une modification à la main ça se vérifie !
[Wouaaaaah enthousiasme de puissance]
Et il n’y a aucun reproche à faire à l’équipe derrière ce fichier XCompose (nanan), car en lisant la page de manuel (`man 5xcompose`)… ben on se rend bien compte qu’elle est mal foutue et imprécise.
Voicic ce qu’il faut comprendre :
- à part les commentaires (`# …` ) et la ligne d’inclusion système (`include "%L"`), toutes les lignes décrivent des « séqunce de composition » ("compose sequence" dans le texte).
- une séquence a la syntaxe suivante
EVENT [EVENT...] : RESULT [# COMMENT]
Le champs `EVENT`: rien à dire, c’est les touches à presser.
Le champs # `COMMENT` : pas plus à dire.
Mais le champs `RESULT` est, un coup du texte, un coup du code. Dans d’autres XCompose que j’essaye, je trouve même un mix des deux "ɟ" U025F.
Et malgré ses efforts (ou les miens pour la comprendre), la page de man n’aide que de façon incomplète à comprendre ce qui manque comme si une mise à jour interne entre XCompose et Keysym n’avait pas été documentée (ambiguité entre string, keysym et code en U qui ne me semble même pas évoqués (arrivée de l’Unicode sans doute :))).
Je prends le parti d’un format qui fonctionne **et**qui documente le mieux possible ces séquences avec le format suivant :
RESULT = "string" Ucodepoint
EVENT [EVENT...] : "glyphe" Ucodepoint # nom unicode
<dead_abovedot> <U0249> : "ɟ" U025F # ɟ - Lettre minuscule latine J sans point barré
#=============== 4. Solution
C’est la raison d’être de xcompose-embellisseur.tcl (c’est pas juste pour fair joli !). Mais attendu que de pouvoir parcourir avec aisance un fichier aussi long et riche, ce n’est pas du luxe, alors oui, j’ai aussi intégré une dimension esthétique. J’ai donc implémenté un mécanisme qui permet de tabuler les données du fichier en colonne : Les séquences, suivies des Glyphes entre guillemets doubles (syntaxe requise), suivis des code en U et un commentaire qui reprend le nom du caractère, lorsque celui-ci est disponible, tel que définit dans le fichier du sytème ("--" sinon).
Et là, fulgurance, je me dis : si on veut quand même le nom de tous les symboles, pourquoi ne pas aller chercher ceux qui manquent sur Internet ? Bah voilà, par le jeu d’une option, on peut retrouver *tous*les noms officiels Unicode des caractères du fichier.
Et le français est aussi officiel dans la spécification Unicode. Alors on aurait tord de se priver : via une autre option, c’est les noms en *français* qui seront intégrés dans le fichier XCompose.
Lancez l’exécutable avec l’option d’aide à intelligence artificielle et celle-ci saura répondre à vos questions, de syntaxe et d’autres.
$ xcompose-embellisseur.tcl AIDE
Ça marche aussi comme ça :
$ xcompose-embellisseur.tcl --help
$ xcompose-embellisseur.tcl -h
$ xcompose-embellisseur.tcl mayday
C’est une aide très sociable :
$ xcompose-embellisseur.tcl --Dialogue "Et tu sais faire le café ?"
Quand je vous dis qu’elle est intelligente :
$ xcompose-embellisseur.tcl --include="circuits neuronaux" AIDE="Et un allongé tu sais faire ?"
$ xcompose-embellisseur.tcl --Maieuh "T’en a pas marre de te répéter ?"
**Nota bene** : selon l’application utilisée, le rendu des polices peut induire des largeurs de caractères différentes. Utilisez « xterm » comme référence. Avec Guake, ça marche bien chez moi, moins avec XPad et encore moins avec Kate en police à chasse variable.
Bon, ce programme n’a que peu de prétentions, et c’est d’autant plus vrai que des sources de fichier XCompose corrigés pourraient fleurir dans un avenir proche (surtout quand la doc de XCompose sera mis à jour) et par là même, renvoyer ce programme correcteur enjoliveur au rebut. Moi, cela m’aura corrigé mon XCompose, et si cela en aura fait rire certain, alors cela en aura valu la peine je pense <sourire>.
#=============== 5. Pour développeurs
## ---------------- a. TCL?
Le Tcl (ou TCL/TK), ça se prononce Tiqueule (avec « eu » se prononçant comme dans "bonheur" et non comme dans "heureux", en alphabet phonétique, c’est /tikœl/)
C’est comme du python mais en mieux.
[Hannn ! Sacrilège !]
## ---------------- b. Durée de vie du programme
Même avec une durée de vie très limitée, ce programme a été composé avec soin pour être le plus clair et le plus maintenable possible, et pouvant être réutilisés par partie. Les commentaires intégrés au code complètent dans le détail ce que je consigne ici.
## ---------------- c. Plan du programme
* Définition de variables globales
* Traitement de la ligne de commande
* Définition des procédures
- init_distant_unicode
- init_distant_unicode_fr
- Chargement
- init_recherche_keysym
- recherche_keysym
- recherche_codepoint
- Modification
- Étalonnage
- Tabulage
- Affichage
- Chronomètre
* Exécution du programme (main)
* Chargement : charge le fichier par stdin
* init_recherche_keysym : charge le fichier keysym sous forme de dictionnaire
* Chronomètre { init_distant_unicode } : charge UnicodeData.txt sous forme de dictionnaire
* Chronomètre { init_distant_unicode_fr } : charge le résultat des requêtes sous forme de dictionnaire
* Chronomètre { Modification } : modification en mémoire du fichier
* Étalonnage : préambule à la mise en table
* Tabulage : mise en table fine
* Affichage : décharge le fichier modifié par stdout
## ---------------- d. Téléchargement Internet
De la connexion à **unicode.org** : plusieurs recherches m’ont amenées à retenir deux fichiers en ligne :
- http://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt
- http://www.unicode.org/Public/UCD/latest/ucdxml/ucd.all.flat.zip
Le deuxième contient tous les codes mais est très, beaucoup, oulalah volumineux (195M décompressé !). Donc bah, je le charge pas et je considère le premier (1,9M), c’est pas petit (surtout pour un modem 56K) mais ça se gère. Au prix de trois codes manquants (que j’ajoute manuellement), j’opte pour ce fichier plus léger : UnicodeData.txt.
Mais pourquoi le site unicode.org n’a pas les noms français ? En réponse, je me rabats sur un site qui a le mérite de retourner du français. Manque de bol, ça fonctionne par requêtes (1672 requêtes prennent plus de 7 minutes à s’exécuter en fibre).
## ---------------- e. Tcl et Unicode
De la subtilité de l’Unicode :
TCLne supporte que les Unicode à 4 digits hexadécimaux. C’est en m’en rendant compte que je me suis résolu à invoquer Perl afin de générer le Glyphe de chaque caractère. Perl me pique les yeux quand il s’agit de programmer du L4G. L’avantage de Tcl, c’est qu’il est d’inspiration Lisp très marquée :chaque commande retourne un résultat qui peut être directement exploité. **Perl reste une référence pour le traitement de flux.** Celui qui connaît Perl peut se passer de ugrep, sed et awk réunis (sans compter toutes ses bibliothèques qui remplace curl, xidel, mysql_client…).
## ---------------- f. → ?
Vous découvrez Tcl et vous êtes paniqués par la flèche dans la commande `regexp -- $exp $ligne → code` ? Lisez plus bas.
La flèche ne fait pas partie de la syntaxe, il faut juste un nom de variable.
Et ouais, en Tcl, on peut utiliser une simple flèche en guise de variable.
J’ai dis en Tcl, mais je pourrai dire dans Tcl, sur Tcl, sous Tcl, par dessus Tcl, dans le long, dans le large, on fait ce qu’on veut, j’aurai pu mettre une flèche en sens inverse, ou même :
regexp -- $exp $ligne ⇄ code
# [mais qu’est-ce qu’on se marre !]
## ---------------- g. Y’a un Bounty
Y’a un **Bounty** à se faire : je crois que l’on pourrait invoquer Perl directement sans passer par Bash. Mais je n’arrive pas à faire marcher la commande :
tclsh-8.6 % set code 025F
025F
tclsh-8.6 % set cmd_perl {}
tclsh-8.6 % append cmd_perl {exec -- perl -e 'binmode(STDOUT, ":utf8"); print chr(0x} $code {)'}
exec -- perl -e 'binmode(STDOUT, ":utf8"); print chr(0x025F)'
tclsh-8.6 % eval $cmd_perl
extra characters after close-quote
while evaluating eval $cmd_perl
Pour ceux qui aiment, il y a de l’argent à se faire avec des *Bounties* plus sérieux, en programmant en Tcl, voir l’adresse suivante :
☛ https://github.com/flightaware/Tcl-bounties
## ---------------- h. Pour Tcl 8.7 ou 9.0 ?
Dans la version prochaine de Tcl, je suggèrererait :
puts "\\u26A0" ;# « ⚠ » ça, ça marche déjà
- la gestion de l’Unicode jusqu’à 6 digits (Unicode officiel) ou 8 digits qui permettrait d’utiliser :
puts "\\U10000" ;# « ? » premier Glyphe non accessible par Tcl (la tuile Mah-Jong du vent d’Est, c’est le bon vent chinois !)
puts "\\U1F918" ;# « ?» premier code du fichier XCompose concerné par cette limite
puts "\\U1D434" ;# « ? » un A majuscule en italique
puts "\\U0001FFFF" ;# code spécial de fin de plan « »
puts "\\U0001DFFF" ;# codes réservés
La syntaxe \\U différente de \\u par la casse s’inspire de la commande echo de Bash :
$ LANG=C help echo # LANG=C parce qu’il y a un bug à l’affichage de la version fr_FR
...
\\uHHHH the Unicode character whose value is the hexadecimal value HHHH.
HHHH can be one to four hex digits.
\\UHHHHHHHH the Unicode character whose value is the hexadecimal value
HHHHHHHH. HHHHHHHH can be one to eight hex digits.
- la commande de décrémentation "decr" bien utile
decr total
au lieu de
set total [expr $total - 1]
- et puis une option à la commande "append" pour mettre à zéro la variable avant l’ajout : `append -unset varName ?value value value ...?` permettrait
append -unset cmd_perl {exec -- bash -c "perl -e 'binmode(STDOUT, \":utf8\"); print chr(0x} $code {)'"}
au lieu de
set cmd_perl {}
append cmd_perl {exec -- bash -c "perl -e 'binmode(STDOUT, \":utf8\"); print chr(0x} $code {)'"}
## ---------------- i. Indentation
Oui, je sais, j’ai une indentation spéciale : pour les `puts stderr`, j’aime bien les avoir à la première colonne. Ça me facilite grandement le débuggage. J’aime et ça ne chagera pas. Pas étonnant que je ne puisse pas pifré du Python. Et même si j’aime secrètement Nim, c’est pour la même raison que je pense ne pas y toucher.
## ---------------- i. Tabulage
Comment ça c’est mal tabulé ? Comment ça y’a « trop » d’espaces entre le Glyphe et le code en U?
Faut regarder la ligne du signe des cornes avant de crier au loup : codepoint U1F918 à toute fins utiles. Nan je sais mais je prends les devants.
Voir le switch final de la proc Tabulage pour comprendre qu’il y en avait des caractères capricieux.
## ---------------- j. Dictionnaires Tcl
En Tcl, il y a les array(s) qui sont de tableaux de hashage non ordonnés, mais il y a mieux pour certains cas : les dictionnaires qui eux, sont ordonnés. Afin de rendre les lignes dans le même ordre, c’est ce qu’il me fallait, sinon j’aurai du crée un indice (clef primaire) et l’enregistrer manuellement, et la recontrôlée… Avec dict, tout est géré par le moteur de Tcl, au prix d’une syntaxe un peu différente, ça marche très bien (`man 3tcl dict`). Je vous le conseil.
## ---------------- k. Site Internet pub et connexion
Certains sites sont rétribués par la pub qu’ils affichent. Ainsi, plus ils enregistrent de cliques, ou de requêtes, plus ils sont rétribués, Cela semble être le cas de ce site que l’on consulte pour la version FR des noms. Peut-être que, loin de les toucher négativement, ça leur rend service ces connexions multiples à répétition (?). Ça me laisse songeur.
#=============== 6. Mes caractères préférés
Nan, c’est pas vraiment mes préférés, mais, de certains, je m’en sers ou j’aimerai m’en servir souvent ; comme la flèche « → ».
Pour entrer des caractères Unicode sympas, avant le XCompose, j’utilisais une méthode très pratique intégrée à l’origine dans la pile **Gtk** (Gnome), puis le logiciel Vim… et pas encore dans **Qt** (Kde, Kate) ? Dommage.
Pressez <Ctrl>-<Maj>-u : un U minuscule souligné apparaît, entrez le code 203C et confirmez par <Espace> ou <Entrée>. On peut éditer le code et revenir sur un digit entré, mais il ne faut pas ré-appuyé sur <Maj>, si besoin il faut gardé enfoncé le premier <Maj> du début et resté appuyé sur <Maj> quand on n’utilise pas le pavé numérique… enfin vous verrez à l’usage.
<Ctrl>-<Maj>-U, 21D2, <Entrée> → ⇒
Dans LibreOffice, on peut entrer le code puis presser <Alt>-X pour insérer ces caractères.
Dans Vim, pour trouver le code d’un caractère, posez le curseur dessus, puis, en mode normal, pressez « ga » ; en bas à gauche le code hexadécimal s’affiche. Très pratique.
Petite liste de quelques codes que j’aime bien-beaucoup. La mention « Merci Bépo ! » C’est quand je me foulais les doigts en tappant le code, mais ça c’était avant…
̲ 0332 Un trait bas combinant qui permet de s̲o̲u̲l̲i̲g̲n̲e̲r̲ ̲d̲u̲ ̲t̲e̲x̲t̲e̲
(avec des polices à chasse fixe (monospace) comme dans un Terminal, mais attention au Terminal (la référence c’est xterm))
… 2026 Merci Bépo ! Hihihi mais qu’est-ce que j’adoore ces points
⅀ 2140 Merci Bépo !
→ 2192 Merci Bépo ! [je n’suis plus obligé de tapper ce foutu code…]
↔ 2194 Merci Bépo !
⇒ 21D2 Merci Bépo ! Ceci implique cela
⇔ 21D4 Merci Bépo ! Il y a équivalence etre ceci et cela
☛ 261B Suivre la consigne
☞ 261E Va voir si j’y suis
∀ 2200 Merci Bépo ! Dans tous les cas
∃ 2203 Merci Bépo ! Existe
∈ 2208 Merci Bépo ! Ça c’est à moi
∏ 220F Merci Bépo !
∝ 221D Merci Bépo ! La proportionalité, c’est pas l’exponentialité
∞ 221E Merci Bépo !
≈ 2248 Merci Bépo ! En gros
≠ 2260 Merci Bépo ! C’est pas pareil !
≡ 2261 Merci Bépo ! Très utile pour les menus "hamburger"
† 2020 Merci Bépo !
‼ 203C Ouuuh il est nerveux celui-là
⁇ 2047
⁜ 205C
∥ 2225 Merci Bépo !
⋮ 22EE Merci Bépo !
⎓ 2393 Merci Bépo !
⎔ 2394 Symbole fonction logicielle
⏚ 23DA À la masse
⏦ 23E6
⏯ 23EF
⚠ 26A0 Attention ! (Un peu trop petit ce triangle chez moi… et je l’aimerais mieux en vidéo inverse)
✓ 2713 Ça, c’est faiiit !
✗ 2717 Pas bieeen
⟂ 27C2 Merci Bépo !
? 1FBB1
• 2022 Plein de jolies puces
‣ 2023
▲ 25B2
△ 25B3
▶ 25B6
▷ 25B7
► 25BA
▻ 25BB
▼ 25BC
▽ 25BD Merci Bépo ! Symbole Nabla (<AltGr>-D, <AltGr>-D)
◆ 25C6
◇ 25C7
● 25CF
◦ 25E6
⯀ 2BC0
? 1F78E
↩ 21A9 Symbole de la touche <Entrée>
↵ 21B5 Symbole de la touche <Entrée> (une variante)
↹ 21B9 Symbole de la touche <Tabulation>
⌦ 2326 Symbole de la touche <Supprimer>
⌧ 2327 Symbole de la touche <Supprimer> (une variante)
⌫ 232B Symbole de la touche <Retour arrière>
⟵ 27F5 Symbole de la touche <Retour arrière>
⎈ 2388 Symbole de la touche <Ctrl>
⇧ 21E7 Symbole de la touche <Maj>
⎇ 2387 Symbole de la touche <Alt>
◆ 25C6 Symbole de la touche <Meta>
❖ 2756 Symbole de la touche <Super>
? 1D509 Danke Bépo ! Das Fraktur spricht Deutsch ist nicht gotisch !
? 1F583 Enveloppe
? 1F589 Crayon
? 1F592
? 1F5AB J’ai encore des disquettes
? 1F5AD J’ai encore des K7 !
? 1F56E J’ai encore des livres ?!
? 1F5B8 Disque optique CD
? 1F5BF
? 1F5C0
? 1F5C1 Un dossier ouvert
∎ U220E Merci Bépo ! CQFD
Avec Bépo et le XCompose qui marche c’est tellement plus simple, agréable, élégant, naturel! Logiiique !!
Comparez <Ctrl>-<Maj>-U,2192,<Entrée> (8 touches, 2 mains) à <AltGr>-D,^ (3 touches, 1 main), je ne faisais le code que quand c’était très pertinent… maintenant je me lâche [Mouahahaha].
- Pour obtenir les caractères barrés, utilisez la touche morte « \ » (<AltGr>-L) avant d’entrer le caractère scientifique. J’illustre : ∄ ø ȼ. Facile non ? (<AltGr>-L, <AltGr>-<Maj>-E → ∄)
Pour obtenir des caractères gras, utilisez la touches morte complexe (<AltGr>-D,G) puis la lettre, exemple pour Bépo : ?é?? (vous avez vu, on a pas é en gras, faut le dire à Unicode).
- Pour des caractères soulignés : et bien… ça ne marche pas encore.
- En indice ? (<AltGr>-V) 5 → ₅
- En exposant ? (touche morte « ^ » (entre È et V)) 5 → ⁵, Mme → … ça marche pas ?
- En exposant qui marche pour les lettres (<AltGr>-T) Mme → ᴹᵐᵉ (trop fort).
Tous le détail ici et là :
https://bepo.fr/wiki/Touches_mortes
https://bepo.fr/wiki/Symboles_scientifiques
☛ http://download.tuxfamily.org/dvorak/documents/bepo_aide-memoire.pdf
On peut aussi user de la commande `gkbd-keyboard-display -l $'fr\tbepo_afnor'` (Paquet : gkbd-capplet)
[Qu’est-ce que j’attends avec impatience le Bépo version 3 parfaitement couplé à l’Unicode 76 avec formatage à bascule à la volée]
#=============== 7. Exploitation
On aura pas omis de rendre exécutable le script et on se sera assuré que Tcl est bien installé dans le chemin spécifié :
$ chmod +x ./xcompose-embellisseur.tcl
$ head -1 xcompose-embellisseur.tcl
#!/usr/bin/tclsh
$ ll /usr/bin/tclsh
lrwxrwxrwx 1 root root 8 2021-03-29 01:11 /usr/bin/tclsh -> tclsh8.6*
Sinon, on aura installé Tcl et/ou modifié le chemin dans le script :
$ sudo apt install tcl # l’installation standard suffit
Pour profiter d’un soutien à la syntaxe :
./xcompose-embellisseur.tcl --aidemoijeteprie
Pour générer toutes les sorties possibles en une commande :
$ for mode in brute local_keysymdef distant_unicode distant_unicode_fr; do time cat bepo-1.1rc2/XCompose |./xcompose-embellisseur.tcl --$mode >XCompose.$mode; done
(⚠ attention au saut de ligne ou l’effacement du chevron sous mdless…) Pour visualiser les fichiers générés :
$ less bepo-1.1rc2/XCompose XCompose.{brute,local_keysymdef,distant_unicode,distant_unicode_fr}
(Passez de l’un à l’autre avec ":n" et ":p".) Pour voir instantanément le résultat de la commande :
$ time cat bepo-1.1rc2/XCompose |./xcompose-embellisseur.tcl --local_keysymdef |less
Pour voir le résultat et générer le fichier en même temps :
$ time cat bepo-1.1rc2/XCompose |./xcompose-embellisseur.tcl --local_keysymdef |tee XCompose.génial
Le programme en action :
$ time cat bepo-1.1rc2/XCompose |./xcompose-embellisseur.tcl --distant_unicode_fr >XCompose.génial
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
→ Méthode sélectionnée : distant_unicode_fr
≡ connexion à unicode-table.com/fr
▪ En français dans le texte, s’il vous plaît.
▪ Ouaiiisss !!!
⚠ Une requête par caractère et plus de 1600 caractères
≡ c’est un traitement Internet de 5 à 10 minutes !
→ Initialisation des données depuis /usr/include/X11/keysymdef.h
→ Initialisation des données Unicode en français
→ Récupération Internet en cours : effectué/total = 1672/1672 ∆? ≈ 7 m
→ Transformation des données en mémoire : effectué/total = 1673/1673 ∆? ≈ 53 s
→ Calculs de tabulation
→ Application du formatage
→ Affichage du résultat sur la sortie standard
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
real 8m29,342s
user 1m21,300s
sys 0m49,651s
Mes fichiers résultants :
$ ll bepo-1.1rc2/XCompose XCompose.{brute,local_keysymdef,distant_unicode,distant_unicode_fr}
-rw-r--r-- 1 stephane stephane 54K 2021-07-04 20:47 bepo-1.1rc2/XCompose
-rw-r--r-- 1 stephane stephane 68K janv. 14 22:19:49 XCompose.brute : sans tabulage
-rw-r--r-- 1 stephane stephane 136K janv. 14 22:20:37 XCompose.local_keysymdef : avec tabulage et les noms quand ils existent dans keysymdef
-rw-r--r-- 1 stephane stephane 173K janv. 14 22:21:45 XCompose.distant_unicode : avec tabulage et *tous* les noms
-rw-r--r-- 1 stephane stephane 190K janv. 14 22:30:14 XCompose.distant_unicode_fr : avec les noms fraçais de tous les symboles
Et non, je n’ai pas copié-collé des sorties différentes, si les dates n’ont pas le même format, c’est parce que je l’ai défini :
alias ll='ls -lFhSrct --color --time-style="+%Y-%m-%d %H:%M
%b %d %H:%M:%S"'
Le champs `--time-style` tient sur deux lignes dans mon fichier ~/.bashrc et permet deux formats différents. La preuve avec « exa » qui reprend le même comportement :
$ exa bepo-1.1rc2/XCompose XCompose.{brute,local_keysymdef,distant_unicode,distant_unicode_fr}
inode Permissions Links Size Blocks User Group Date Modified Name
3331994 .rw-r--r-- 1 189Ki 384 stephane stephane 01-14 22:30 XCompose.distant_unicode_fr
3331992 .rw-r--r-- 1 172Ki 352 stephane stephane 01-14 22:21 XCompose.distant_unicode
3331991 .rw-r--r-- 1 135Ki 272 stephane stephane 01-14 22:20 XCompose.local_keysymdef
3331985 .rw-r--r-- 1 67Ki 136 stephane stephane 01-14 22:19 XCompose.brute
3595234 .rw-r--r-- 1 53Ki 112 stephane stephane 2019-05-09 bepo-1.1rc2/XCompose ← Le fichier est très vieux alors le format est différent, et ouais
#=============== 8. Pour le Bépo 1.2 ?
Deux remarques
a. <Ctrl>-C, <Ctrl>-X et <Ctrl>-V
---------------
En tant que - entre autres - programmeur, j’utilise beaucoup les raccourcis <Ctrl>-C, <Ctrl>-X et <Ctrl>-V. Et à une main, c’est un peu difficile de tous les faire. Or, en agissant de la main droite sur les flèches, pour coller, je suis **contraint à une main** de l’autre ou contraint à ramener la main droite. Une idée ? Sinon, ça me conforte dans l’idèe que les petits claviers de portable sont bien meilleurs que les gros blocs de clavier ATpour des courses de mains réduite mais comme mon clavier de portable est en l’air…). Sans compter que les puristes (ceux qui ne sont pas "entre autres") n’utilise pas le pavé fléché ! Mais des touches tordues comme HIJK ou JKLM (ou encore CTSR).
b. Espace insécable
---------------
En tant que programmeur en tongue, il m’arrive souvent de passé d’un chiffre à l’Espace. En Faisant cela, si mon petit doigt ne se relève pas assez vite de la touche <Maj>, j’entre un caractère **Espace insécable**, et là, pour Linux, c’est le drame :
$ man 5xcompose
Aucune entrée de manuel pour 5xcompose
(Sinon, quelle page de manuel de la section 5xcompose voulez-vous ?)
Par exemple, essayez « man man ».
Et ce drame devient une tragédie le temps que je comprenne que là, quelque part, il y a un **espace traître**. Mettre dans la FAQBépo comment désactiver ou réaffecter l’insécable pourrait judicieux.
c. Logo de promotion Bépo
---------------
J’ai lu « [Bépo] Powered » alors que je pensais lire « [Bépo] En Force », ou « [Bépo] En Puissance », « Propulsé par [Bépo] » ou encore « Merci [Bépo] ».
d. Inclure dans l’archive un fichier qui contient
---------------
Inclure dans l’archive un fichier contenant les meilleurs suggestions pour XCompose, ça pourrait le faire ? Des exemples :
# Abréviations pour numéro(s)
<dead_circumflex> <n> <o> : "nᵒ"
<dead_circumflex> <N> <o> : "Nᵒ" # Majuscule en début de phrase
<dead_circumflex> <N> <O> : "Nᵒ"
<dead_circumflex> <n> <s> : "nᵒˢ" # Pluriel
<dead_circumflex> <N> <s> : "Nᵒˢ"
<dead_circumflex> <N> <S> : "Nᵒˢ"
# Espaces insécables autour des guillemets
<Multi_key> <guillemotleft> : "« "
<Multi_key> <guillemotright> : " »"
# L'autre solution: l'ajout direct
<guillemotleft> : "« "
<guillemotright> : " »"
# Transforme → en → combinante (pour les vecteurs, etc.)
<Multi_key> <BackSpace> <U2192> : U20D7
<Multi_key> <BackSpace> <Right> : U20D7
<Multi_key> <BackSpace> <BackSpace> <U2192> : U20EF
<Multi_key> <BackSpace> <BackSpace> <Right> : U20EF
# on peut même écrire du t̲e̲x̲t̲e̲ s̲o̲u̲l̲i̲g̲n̲é̲ ou du t̶e̶x̶t̶e̶ ̶b̶a̶r̶r̶é̶ si on veut,
# ou plus exotique le d̳o̳u̳b̳l̳e̳ s̳o̳u̳l̳i̳g̳n̳é̳
<Multi_key> <BackSpace> <BackSpace> <BackSpace> <U2013> : U0336 # barré, grand (LONG STROKE)
<Multi_key> <BackSpace> <BackSpace> <BackSpace> <minus> : U0335 # barré, petit (SHORT STROKE)
#=============== 9. Amour
Pour des personnalités morales et physiques d’exception, des combattant de lumière, pour sauver la planète ! Son corps et son Âme ‼
### tclreadline
Louanges à q3cpma sur github pour son patch Tclreadline qui permet de désactiver l’expansion de l’historique avec "!" et qui permet donc d’évaluer intéractivement des regex avec "!" sans plus de messages d’erreur ! Parce que, va essayer un regex avec « Variable-length look-behinds » sans pouvoir expérimenter un peu en mode intéractif… sauf à désactiver tclreadline mais ça revient au même : c’est la galère. Alors qu’avec le patch : `::tclreadline::readline historyexpansion 0` dans le fichier ~/.tclshrc et ça maaarche ! Génial.
### ugrep
Le meilleur grep du monde, des performance inégalées, un mode intéractif -Q unique, un mode «Extended » par défaut, une recherche « fuzzy » paramétrable ! Bluffant. Au milieu de tant de programmes tape-à-l’oœil, ça fait plaisir de trouver une réalisation qui s’applique aux fondements de la ligne de commande.
### Kate
Un éditeur texte qui ne m’a pas lâché quand j’en ai eu besoin : repliage de code poussé et aperçu dynamique, mise en surbrillance du code en accolade, mini-carte, bascule de commentaire (<Ctrl>+/), recherche-remplacement incrémental avec regex, affichages multiple et raccourcis claviers efficaces.
### Vim
Que dire, <sourire>, quand je sais faire un truc puissant c’est génial (par exemple ci" ou :s/ /\r/g), mais j’ai pas fini d’apprendre à m’en servir.
### RamDebugger
Un trésor de code, encore maitenu après tout ce temps, ça marche encore ! Un débugger excellent, truffés de fonctions contextuelles pour aider aux débuggage. Ceux qui se sont impliqués sont des gens géniaux.
- https://www2.compassis.com/c/ramdebugger/index : présente le programme
- https://www.compassis.com//ramdebugger/ : l’ancienne adresse n’est plus maintenue qui n’est plus maintenue
- https://www.compassis.com/downloads/Ramdebugger/ : pour le télécharger
- je n’ai pas réussi à faire marcher les paquets deb (peut-être parce que ma Debian est un Revert Bodhi)
- j’ai réussi à faire marcher le source 8.3 (RamDebugger-source8.3.zip)
(du source mais pas de compilation puisque c’est du script Tcl)
- https://github.com/albfan/ramdebugger Un dépôt github de nenopera que je n’ai pas eu le temps de voir
Par contre, il faut être vigilant quant à l’indentation quand on modifie le fichier ! RamDebugger est un peu comme moi, il a *sa* façon d’indenter, alors méfiance.
### Unicode
Merci de mettre autant à disposition de tous, pour tous.
J’ajoute une suggestion pour Unicode version 15 : mise en gras, souligné, en Fraktur, en exposant, et cætera, des caractères accentués, afin de pouvoir entrer ?é?? ou ????ç??? correctement (le é et le ç sont détonnamment non mis en forme). (Je crois que c’est en cours d’étude). Il n’y aurai pas tant à ajouter… surtout en comparaison des caractères chinois (!).
Quand j’y pense, n’aurait-on pas pu intégrer les idéogrammes sous forme de composition d’iédéogrames plus simples, chacun étant la composition de traits de base ? Pour avoir un peu étudié l’écriture, je sais que l’on retrouve certains caractères "comprimés" pour "entrer" dans la composition d’autres. C’est d’ailleurs ainsi que les polices à chasse variables sont « rendues » sur les ordinateurs : on a un vecteur abstrait qui définit la lettre, et ce vecteur est « rendu » en un glyphe visible à l’écran. Être capable d’envoyer une sonde sur la face cachée de la Lune et ne pas rationaliser leur alphabet à un nombre plus sage de codes, alors même qu’ils ont simplifié leur orthographe tout récemment, c’est quelque chose qui me laisse perplexe. Je crois que c’est l’inclusion direct du Big-5 dans Unicode pour obtenir quelque chose qui marche le plus vite possible qui explique ça. Parce que avoir vingt, cent (mille ?) fois plus de codes asiatiques que pour toutes les autres langues réunies, c’est quand même un certain degré de déconade. Et le jour où ils demande du gras et de l’italique à l’occidental, c’est buffer overflow dans les chaumières ! Le bug de l’an 2000 en pire ! Google qui demande l’asil politique au Groenland.
### Terminal xterm et autres
Je vous aime mais faut penser à utiliser les plages de codes réservées (y’en a plein) pour vos fonctionalités avancées, sinon, y’a conflit avec les codes : exemple le trait bas combinant U0332 pris en compte de façon érraeique (sauf par xterm).
### La syntaxe Markdown et mdless
mdless permet d’afficher les paragraphes *sans* se fouler les neurones avec les doubles espaces en fins de ligne (!). Merci, même si j’ai du ruser pour obtenir un formatage clair, **et** en mode Markdown **et** en mode texte simple. En effet, avoir un titre de niveau 1 (avec un #), numéroté (1.) mais qui ne soit pas considéré comme une puce (donc affiché en vidéo inverse avec des signes égales "="), aussi formaté en texte (donc avec un bloc "==============="), ça oblige à mixer les marks. Pour les curieux, voyez les essais suivants (avec mdless) :
# Titre
1. Titre
Titre
===============
1. Titre
===============
# =============== 1. Titre
## a. Sous-titre
## --------------- 1. Sous-titre
### a. Sous-sous-titre
Je parle du mdless de ttscoff qui s’installe avec `gem install mdless` et s’exécute avec `/usr/local/bin/mdless LISEZMOI.md` et non celui de Mikey Burkman qui s’installe avec `npm install mdless` et s’exécute avec `npx mdless …/LISEZMOI.md` (c’est encore un autre délire).
Et j’ajoute qu’à mon sens, mdless ne devrait pas reformater les espaces dans les blocs de codes, surtout quand on les pose justement pour aligner des colonnes (comparer la rubrique « Mes caractères préférés » en less *et* mdless).
[Qu’est ce qui m’a pris d’entrer dans les arcanes de cette syntaxe https://daringfireball.net/projects/markdown/syntax]
### Bépo
Rah mais je vous aime tant ! Je veux vous grimpez dessus, vous faire l’amour, à votre chien aussi, et votre plante verte. Ce que vous avez fait est plus qu’énorme, c’est inorme. Le site est une mine de connaissances, une prouesse qui ne manque en rien de rafinement culturel. C’est sublime [aah]. Ah j’ai pensé trop fort à vous, faut que je change de slip. En espérant que ma petite contribution facilite le bonheur des utilisateurs de votre travail, je vous salue.
### Et l’April et Framasoft sont dans la place aussiii.
#=============== 10. Aller, un peu d’humour maitenant
Claviers asiatiques pas tout à fait standards :
- https://upload.wikimedia.org/wikipedia/commons/4/4f/Large_chinese_keyboard.jpg
- http://xahlee.info/kbd/imisc/chinese_drum_keyboard_big_03892.jpg
- https://live.staticflickr.com/14/17023214_7722c7e5cb_b.jpg
- https://upload.wikimedia.org/wikipedia/commons/a/a6/Japanese_Keyboard.jpeg
- https://churchm.ag/wp-content/uploads/2013/01/Japanese-Keyboard-03.jpeg
#=============== 11. Licence(s)
Je pense que l’on peut décemment publier ce programme sous une de ces licences :
- WTFPL http://www.wtfpl.net/about/
- MULE https://wiki.tcl-lang.org/page/Maximum+Use+License+for+Everyone
#=============== 12. L’auteur
Stéphane alias Gintru, je me connecte une fois par an sur freenode.chat ou libera.chat, je n’ai pas de mot de passe, gare aux méprises donc.
#=============== 13. Authentification
Et c’est à ce point de ma rédaction que je m’interroge : comment être assuré que tout ce document est bien conforme à ce que j’ai rédigé, que ce n’est pas une version modifiée, que le fichier Tcl, le XCompose, les licences correspondent bien ? Que tout ceci est authentiquement la version première.
Dans ma reflexion pour réaliser ceci, j’ai à l’esprit les points fondamentaux suivants :
Philosophie :
- D’abord ce doit être simple. Pas de certificat X.25 autosigné à la mord-moi-le-nœud, on en sortirait pas. Ce doit être accessible même à des néophytes en matière d’authentification.
Utilisabilité :
- Il y a aussi l’idée d’une archive simple : étant donné que tous les fichiers sont de type texte, qu’il n’y a pas de binaire, ne pourrait-on pas les agréger ensemble avec des marques de séparations ? Le fichier résultant serait transparent aux utilisateurs : pas de commande de décompression `tar xvjf` ou `unzip -l` nécessaire avant d’en voir le contenu.
- On pourrait même définir l’utilisation première du fichier en ordonançant les fichiers agglutinés et en posant les bonnes balises de commentaires. Le fichier serait alors directement exploitable dans son but premier, les autres fichiers seraient du « commentaire » et donc ignorés.
Accessibilité :
- Pour, contrôler le fichier, on utiliserait une somme de contrôle posée en fin de fichier. Et pour en « vérouiller » le contenu, en quelque sorte, on utiliserait un mot de passe (avec un « E » le mot passe). Oui, on reste sur l’obligation d’utiliser un mot de passe, c’est pas infaillible mais c’est puissant en regard de sa simplicité. J’ai pensé à utiliser l’empreinte de mon testicule, mais c’est pas portable.
Après une bonne reflexion j’aboutis au protocole que je vous livre.
### PROTOCOLE
## 1 - A partir d’un fichier vierge :
on ajoute une Tête qui présente l’archive avec des commentaires (lignes commençant par #). On y trouve des commentaires à la Nim (permettant l’imbrication et le multi-ligne) qui _restent_ compatibles avec les commentaires standard (#)
#[
# Début de l’archive NOMDARCHIVE
# Liste des fichiers de l’archive :
# XCompose
# xcompose-embellisseur.tcl
# LISEZMOI.md
# COPYING
#]
La liste des fichiers n’est pas indispensable, le contenu des balises pourrait être prioritaire devant cette liste, elle est surtout informative. Des indications aditionelles peuvent être adjointes librement en commentaire : on pourra aprécier la syntaxe `# Balise :` pour les champs et `# Balise` pour les blocs.
## 2 - Vient ensuite le contenu des fichiers :
ils sont affichés entre des balises de ligne comme ceci :
#[
# Début du fichier NOMDUFICHIER
#]
... CONTENUDUNFICHIER
#[
# Fin du fichier NOMDUFICHIER
#]
Les fichiers étant concaténés, j’aurais choisi de placé le fichier XCompose en premier afin qu’il soit le contenu utile de l’archive et que l’on puisse le copier directement en ~/.XCompose. J’aurais posé en première ligne un commentaire de fichier XCompose présentant le fichier XCompose :
# XCompose d’origine https://download.tuxfamily.org/dvorak/xkb/fr-dvorak-bepo-xkb-1.1rc2.tar.xz
# modifié par Gintru avec xcompose-embellisseur.tcl version 0 pour la disposition Bépo 1.1
# à copier en ~/.XCompose avant de se relogé sous X
… et à la suite j’aurai présenté l’archive selon le protocole de Tête.
Je le redis clairement : l’archive est archive de plusieurs fichiers *et* fichier XCompose directement utilisable puisque les lignes des fichiers adjoints sont considérés comme des commentaires ou - ne correspondant pas à la syntaxe telle que décrite dans `man 5 xcompose` - sont purement ignorées (j’ai ce fichier actuellement installé).
(Si j’avais voulu que le programme Tcl soit la charge utile de l’archive, je l’aurais mis en premier et à la fin j’aurais placé une commande `exit 0` afin d’ignorer toutes les lignes des autres fichiers.)
Jusqu’ici c’est pas très dur.
## 3 - Vient maintenant la partie intéressante : l’authentification.
Après la Tête et les balises de fichiers vient le Pied de l’archive :
#[
# Fin de l’archive NOMDARCHIVE
# Description de méthode de contrôle choisie : UNEDESCRIPTIONDEMETHODE
# UNEAUTRELIGNEDEDESCRIPTIONDEMETHODEDECONTROLE
# ENCOREUNEAUTRELIGNE
# ...
# Mot de passe : UNMOTDEPASSE
# Somme de contrôle : SOMMEDECONTROLE
#]
`UNEDESCRIPTIONDEMETHODE
UNEAUTRELIGNEDEDESCRIPTIONDEMETHODEDECONTROLE
ENCOREUNEAUTRELIGNE`
est un bloc de texte qui peut se limiter à la ligne (c’est à vous de voir). C’est tout ce que vous jugez nécessaire afin de définir la méthode utilisée pour l’authentification de façon à ce qu’elle puisse être réutilisée au moment de la vérification. Exemple :
# cat NOMDARCHIVE |md5ssm --text
# cat NOMDARCHIVE |sha512
Ou encore
# sha512 version 8.26 sous Cygwin
`UNMOTDEPASSE :` entrez ici en clair votre mot de passe.
`SOMMEDECONTROLE :` c’est ici que *sera* copiée votre Contrôle
Fini ?
## 4 - Alors calculons l’empreinte de l’archive :
Les Tête et Pied d’archives, les balises et les fichiers copiés, l’archive est constitué dans l’état « À contrôler » avec le passe en Pied d’archive. Des commandes de contrôle standards sont `md5sum`, `sha512sum`…
$ md5sum NOMDARCHIVE
Evidemment, on obtient une somme de contrôle. Qu’est-ce qu’on en fait, on la copie dans l’archive à la ligne `# Somme de contrôle :`, *et* on _efface_ le mot de passe en clair.
On obtient l’archive constituée dans l’état « distribuable ».
Et après ?
## 5 - Contrôle de l’empreinte à posteriori
Ben après, si on veut contrôler que l’archive est bien la mienne, on me trouve parce que c’est moi l’authorité de confiance. Parce que sinon tout seul on peut rien faire, je l’ai dis, c’est pas autosigné, et on peut pas savoir si c’est bien mon archive seulement en se connectant sur Internet. Nan mais c’est pas fait pour ça, c’est pour moi !
C’est fait pour que **je** sois sûr que c’est bien *mon* archive, et que je reconnaisse que tout ce qui est écrit c’est bien **moi** qui l’ai fait. Et même que, si à un moment j’assume plus ce que j’avais dit, je peux feinter en disant que j’ai oublié le mot de passe… ou mettre un mauvais passe et dire « … a ben nan désolé c pas moi » (… sauf à faire un test testiculaire évidemment ! Là c’est plus dur à feinter c’est sûr).
… donc, moi, si je veux être sûr que l’archive est valide, j’efface le Contrôle, je rentre le Passe, je lance la commande de vérification et si c’est le même Contrôle, alors c’est bien mon fichier ! Voilà ! C’est tout ! Et oui j’assume !!
## Conclusion
Mais quelque part, c’est intéressant de pouvoir prouver les choses dans ce sens. Être sûr que ça vient bien de soi-même, « l’authentification de l’auteur, par lui même » (ou autrice, auteuse, ou auteure, pour ce cas je préfère auteure, mais c’est pas à moi de juger). D’ailleurs, si tout ce qu’on disait était contrôlé de cette façon, alors, il serait aisé à l’inverse d’épingler tout ce qui ne le serait pas comme altéré.
Bon maintenant, il faut penser à l’aspect Promotionnel (le marqu-et-tinje).
Comment faire la promotion de ce protocole, pour autant qu’il soit utile à d’autres. Avec un nom, un acronyme descriptif qui facilite son évocation. Comme c’est de l’authentification simple, j’ai pensé à des noms en AS, Authentification Simple, Authentification Normale Simple ANS, ANPF pour Authentfication Naturelle Personelle Frugale, ANASA ANANASANSAPMP pour par mot de passe.
Il faut un nom qui en jette, qui claque sa maman, qui roxe du poney, qui,… en fait, je pense toujours à PGP. C’est un acronyme qui a fait un terrible chemin depuis « Pretty Good Protection » (l’inventeur du PGP doit être un demi-dieu). Et c’est là que je pense à PGSA, pour Pretty Good Simple Authentication (oui pour le coup tout est en anglais parce que Pretty Good Authentification Simple m’entorse la langue). Me disant que là je tiens quelque chose, je me dis, PGSA, je me dis… et puis finalement je me dis que ça fait trop NSAou que c’est trop bien pour un protocole aussi « niché ». Il me faut quelque chose de plus réducteur, de moins générique et j’aboutis à **PGSSUA** pour *Pretty Good Simple Self User Authentication*. Ça y est, je l’ai, imprononçable, et incompréhensible (quand on arrive à le prononcer), mais qui en avoine plein les typans ! Là, c’est le *Self* qui est important et qui dit bien que c’est *pour* l’auteur <sourire>.
Voilà, que ça serve à d’autres ou que ça aille dans la poubelle d’Internet, sans passer par la case recyclage, c’est à vous de voir, je vous salue, j’ai une tarte à faire !
∎ - Ce qu’il fallait démontrer
#[
# Fin du fichier LISEZ_MOI.md
#]
#[
# Début du fichier COPYING
#]
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.
Maximum Use License for Everyone (MULE, for those who insist on using silly-sounding, animalistic acronyms)
Version 4
Copyright © 2002-2008 David H. McClamrock <mcclamrock@locl.net> This license may be freely copied and distributed. It may also be modified, but only for use with a program other than the program with which it was originally distributed. If modified, this license must be distributed under a name other than "Maximum Use License for Everyone." Nothing in this permission is intended to modify or contradict the terms of this license as set forth below.
_______________________________
1. This software is "free" or "open source" software. It doesn't matter which of these names you call it. Here is what does matter:
2. You may use this software in any way you wish, subject to all applicable laws and to the provisions of this Maximum Use License for Everyone. You may copy and distribute all or part of this software, without cost, at will.
3. You must distribute a copy of this Maximum Use License for Everyone with each copy of all or part of this software you distribute. You may not alter or remove any part of any copyright notice that appears in the source code for this software or in any file distributed with this software.
4. You may give away, or sell at cost, an aggregate software distribution containing this software and software from other sources, without remunerating the copyright holder. If you give away, or sell at cost, a fully functional and readily available aggregate software distribution containing this software and software from other sources, then you may also include this software in an enhanced version of the same aggregate software distribution which may be sold for profit, without remunerating the copyright holder. However, if you sell copies of all or part of this software under any other circumstances, either alone or together with other works, you must reach an agreement with the copyright holder as to a reasonable rate of remuneration per copy (or a waiver of remuneration).
5. You may modify this software at will, and you may incorporate all or part of it, in modified or unmodified form, into other software. Any software so created or modified must carry this notice or a substantially similar notice: "Portions of this work copyright © [applicable years] [copyright holder], and originally released under Maximum Use License for Everyone."
6. You may copy and distribute other software containing all or part of this software, in modified or unmodified form, without cost under this Maximum Use License for Everyone, or under any other "free" or "open source" software license consistent with the Open Source Definition promoted by the Open Source Initiative <http://opensource.org/ >. However, if you sell any copies of such software (except as part of an aggregate software distribution under the circumstances specified in paragraph 4 of this license), you must reach an agreement with the copyright holder of this software as to a reasonable rate of remuneration per copy (or a waiver of remuneration).
7. You may also copy and distribute other software containing all or part of this software, in modified or unmodified form, under any software license that is not among the "free" or "open source" licenses to which paragraph 6 of this license refers, but only after reaching an agreement with the copyright holder as to a reasonable rate of remuneration per copy (or a waiver of remuneration).
8. You may not prevent anyone else from using, copying, modifying, or distributing this software in any way that anyone else may wish (subject to the provisions of this Maximum Use License for Everyone), except to the extent necessary to enforce any applicable laws that you may be authorized to enforce if you are a governmental agent.
9. You may not claim authorship or ownership of any part of this software, nor may you identify the author of this software as the author of any modifications or additions to this software that were not actually written by the author.
10. This software is distributed without any warranties of any kind, express or implied, including, without limitation, any implied warranties of merchantability or fitness for a particular purpose. This software is not intended to be distributed in any jurisdiction that disallows such total exclusion of express or implied warranties for "free" or "open source" software. If there is any risk involved in using, copying, modifying, or distributing this software, you assume all such risk; if any such risk materializes, you assume the cost of remediation. In short, if you want to be able to sue your software provider in the event that something goes wrong, you should use expensive proprietary software instead of this free software.
11. By using, copying, modifying, or distributing this software in whole or in part, you indicate that you accept this Maximum Use License for Everyone in its entirety. If you do not accept this license in its entirety, you have no right to use, copy, modify, or distribute this software in whole or in part. If you do accept this license in its entirety, go ahead and make maximum use of this software, while allowing everyone else to do the same.
#[
# Fin du fichier COPYING
#]
#[
# Fin de l’archive XCompose
# Description de méthode de contrôle choisie : md5sum
# → 607fde0c7653a07bd2df00371b533cab /usr/bin/md5sum
# → md5sum (GNU coreutils) 8.32
# → uname -a = Linux HOSTNAME 5.10.0-9-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30) x86_64 GNU/Linux
# Note de protocole
# → l’éxactitude des caractères étant critiques,
# → je pose des chevrons pour délimiter les champs '<' et '>'.
# → Ils ne font pas partie des champs
# Ouais, en PGSSUA on peut mettre ce qu’on veut en commentaire
# Mot de passe : ><
# Somme de contrôle : >351d2aa5275ad312a7ec278ed47da00c<
# [Comment ça il met trop de → de qui on parle ?]
#]
Oui : malgré les commentaires et les balises multi-lignes étranges, c’est un fichier XCompose qui marche très bien.
- Stéphane