« Utilisateur:A2/dk » : différence entre les versions

De Disposition de clavier bépo
Ligne 286 : Ligne 286 :


==Macron==
==Macron==
<pre>
{{fait}} : + ? caractères
DEADKEY 00af // macron
DEADTRANS( 0x00c6 , 0x00af , 0x01e2 , 0x0000),// Æ* -> Ǣ
/0226 01e0 // Ȧ -> Ǡ
DEADTRANS( 0x00e6 , 0x00af , 0x01e3 , 0x0000),// æ* -> ǣ
/00c4 01de // Ä -> Ǟ
DEADTRANS( 0x00c9 , 0x00af , 0x1e16 , 0x0000),// É*-> Ḗ
0041 0100 // A -> Ā
DEADTRANS( 0x00e9 , 0x00af , 0x1e17 , 0x0000),// é*->
/0227 01e1 // ȧ -> ǡ
DEADTRANS( 0x00c8 , 0x00af , 0x1e14 , 0x0000),// È*->
/00e4 01df // ä -> ǟ
DEADTRANS( 0x00e8 , 0x00af , 0x1e15 , 0x0000),// è*-> ḕ
0061 0101 // a -> ā
// À supprimer (ancienne définition temporaire pour le pinyin)
00c6 01e2 // Æ -> Ǣ
DEADTRANS( L'V'  , 0x00af , 0x01d5 , 0x0000),// V -> Ǖ
00e6 01e3 // æ -> ǣ
DEADTRANS( L'v'  , 0x00af , 0x01d6 , 0x0000),// v -> ǖ
00c9 1e16 // É -> Ḗ
// Macron + autre touche morte (ec00)
00c8 1e14 // È ->
DEADTRANS( 0x02d9 , 0x00af , 0xe700 , 0x0001), // macron+point en chef=point en chef+macron (0xe700) (ǠǡȰȱ)
0045 0112 // E -> Ē
DEADTRANS( 0x00a8 , 0x00af , 0xec00 , 0x0001), // macron+tréma (presque = tréma+macron (0xe601) (ǞǟȪȫ) mais Ṻṻ différents donc besoin d'une autre touche morte ec00
00e9 1e17 // é -> ḗ
DEADTRANS( 0x00c4 , 0xec00 , 0x01de , 0x0000),// Ä -> Ǟ
00e8 1e15 // è -> ḕ
DEADTRANS( 0x00e4 , 0xec00 , 0x01df , 0x0000),// ä -> ǟ
0065 0113 // e -> ē
DEADTRANS( 0x00d6 , 0xec00 , 0x022a , 0x0000),// Ö -> Ȫ
0047 1e20 // G ->
DEADTRANS( 0x00f6 , 0xec00 , 0x022b , 0x0000),// ö -> ȫ (et non Ǖ)
0067 1e21 // g ->
DEADTRANS( 0x00fc , 0xec00 , 0x1e7b , 0x0000),// ü -> ṻ (en non ṻ)
0049 012a // I -> Ī
DEADTRANS( 0x00b4 , 0x00af , 0xe008 , 0x0001), //macron+aigu=aigu+macron (0xe008)
0069 012b // i -> ī
DEADTRANS( 0x00c9 , 0x00af , 0x1e16 , 0x0000),// É ->
//1e36 1e38 // Ḷ -> Ḹ
DEADTRANS( 0x00e9 , 0x00af , 0x1e17 , 0x0000),// é ->
//1e37 1e39 // ḷ ->
DEADTRANS( 0x00d3 , 0x00af , 0x1e52 , 0x0000),// Ó ->
/022e 0230 // Ȯ -> Ȱ
DEADTRANS( 0x00f3 , 0x00af , 0x1e53 , 0x0000),// ó ->
/00d3 1e52 // Ó -> Ṓ
DEADTRANS( 0x0060f , 0x00af , 0xe202 , 0x0001),//macron+grave =grave+macron (0xe202) (ḔḕṐṑ)
/00d6 022a // Ö -> Ȫ
DEADTRANS( 0x0323 , 0x00af , 0xeb00 , 0x0001), // macron+point souscrit=point souscrit+macron (0xeb00) (ḸḹṜṝ)
/00d2 1e50 // Ò -> Ṑ
DEADTRANS( 0x007e , 0x00af , 0xea00 , 0x0001), //macron+tilde=tilde+macron (0xea00) (Ȭȭ)
004f 014c // O -> Ō
DEADTRANS( 0x02db , 0x00af , 0xe800 , 0x0001), // macron+ogonek=ogenek+macron (0xe800) (Ǭǭ)
/01ea 01ec // Ǫ -> Ǭ
/00d5 022c // Õ -> Ȭ
/022f 0231 // ȯ -> ȱ
/00f3 1e53 // ó -> ṓ
/00f6 022b // ö -> ȫ
/00f2 1e51 // ò -> ṑ
006f 014d // o -> ō
/01eb 01ed // ǫ -> ǭ
/00f5 022d // õ -> ȭ
//1e5a 1e5c // Ṛ -> Ṝ
//1e5b 1e5d // ṛ -> ṝ
/00dc 01d5 // Ü -> Ǖ
0055 016a // U -> Ū
/00fc 01d6 // ü -> ǖ
0075 016b // u -> ū
0059 0232 // Y -> Ȳ
0079 0233 // y -> ȳ
00af 00af // ¯ -> ¯
00a0 0304 //   -> ̄
0020 00af //  -> ¯
</pre>
*18 / : macron + point en chef aAoO / tréma aAoOuU / accent aigu oO / accent grave oO / ogonek oO / tilde oO
*4 // : macron + point souscrit lLrR
 
GREEK SMALL LETTER ALPHA WITH MACRON U+1FB1 GREEK SMALL LETTER ALPHA WITH MACRON ᾱ
GREEK CAPITAL LETTER ALPHA WITH MACRON U+1FB9 GREEK CAPITAL LETTER ALPHA WITH MACRON Ᾱ
GREEK SMALL LETTER IOTA WITH MACRON U+1FD1 GREEK SMALL LETTER IOTA WITH MACRON ῑ
GREEK CAPITAL LETTER IOTA WITH MACRON U+1FD9 GREEK CAPITAL LETTER IOTA WITH MACRON Ῑ
GREEK SMALL LETTER UPSILON WITH MACRON U+1FE1 GREEK SMALL LETTER UPSILON WITH MACRON ῡ
GREEK CAPITAL LETTER UPSILON WITH MACRON U+1FE9 GREEK CAPITAL LETTER UPSILON WITH MACRON Ῡ


==Ogonek (e800) ==
==Ogonek (e800) ==

Version du 17 août 2010 à 03:48

Attention

Projet « enchainement de diacritiques » pour le pilote Windows bépo

Une centaine de caractères ne sont pas accessibles actuellement avec le pilote Windows pour bépo : les lignes qui les définissent peuvent être retirées du fichier klc sans effets sur les pilotes. Il est possible de définir ces combinaisons en utilisant les sources du pilote en C.

Tableau récapitulatif des combinaisons deu deux touches mortes :

0xex0y  x\y 0  1   2   3   4   5   6   7   8   9   a   b   c   d   e   f   ?
Point en chef 0 · ṥṤ ṧṦ ǡǠ
ȱȰ
ɟ ṩṨ
Accent aigu 1 ṥṤ ·  ắẮ ḉḈ ấẤ
ếẾ
ốỐ
ḯḮ
ǘǗ
ḗḖ
ṓṒ
ǻǺ ǿǾ ṍṌ
ṹṸ
ớỚ
ứỨ
Brève 2 ắẮ ·  ḝḜ ằẰ ẵẴ ẳẲ ặẶ
Caron 3 ṧṦ · ǚǙ
Cédille 4 ḉḈ ḝḜ ·
Circonflexe 5 ấẤ
ếẾ
ốỐ
· ầẦ
ềỀ
ồỒ
ẫẪ
ễỄ
ỗỖ
ẩẨ
ểỂ
ổỔ
ậẬ
ệỆ
ộỘ
Tréma 6 ḯḮ
ǘǗ
ǚǙ · ǜǛ ǟǞ
ȫȪ
ǖǕ
ṏṎ
Accent grave 7 ằẰ ầẦ
ềỀ
ồỒ
ǜǛ · ḕḔ
ṑṐ
ờỜ
ừỪ
Macron 8 ǡǠ
ȱȰ
ḗḖ
ṓṒ
ǟǞ
ȫȪ
ṻṺ
ḕḔ
ṑṐ
· ǭǬ ȭȬ ḹḸ
ṝṜ
ᾱᾹ
ῑῙ
ῡῩ
Ogonek 9 ǭǬ ·
Rond en chef a ǻǺ ·
Barrés b ɟ ǿǾ · ϼ
Tilde c ṍṌ
ṹṸ
ẵẴ ẫẪ
ễỄ
ỗỖ
ṏṎ ȭȬ · ỡỠ
ữỮ
Cornu d ớỚ
ứỨ
ờỜ
ừỪ
ỡỠ
ữỮ
· ởỞ
ửỬ
ợỢ
ựỰ
Crochet e ẳẲ ẩẨ
ểỂ
ổỔ
ởỞ
ửỬ
· ϒ
Point-souscrit f ṩṨ ặẶ ậẬ
ệỆ
ộỘ
ḹḸ
ṝṜ
ợỢ
ựỰ
 ·
Letrre grecque ? ᾱᾹ
ῑῙ
ῡῩ
ϼ ϒ ·

Légende :

  • en bleu : combinaisons disponibles de manière plus simple (avec à ç é è ê ù) ;
  • en rouge : combinaisons à sens unique dans pkl et linux sans compose ;
  • en vert : combinaison dépendant d'ordre de saisie des diacritiques.

Touches mortes sans combinaisons : double aigu, virgule souscrite, symboles monétaires.

Toutes les combaisons fonctionnent avec le pilote portable (pkl).

Méthode

Pour chaque touche morte, on définit d'abord le comportement avec espace, lors d'une double pression de la touche morte et avec l'espace insécable. Sous Windows : touche morte + entrée donne le caractère utilisé pour la touche morte (ce qui permet d'obtenir le rond en chef par exemple). Viennent ensuite les définitions pour les lettres de l'alphabet latin puis les combinaisons plus compliquées. Les combinaisons simples fonctionnent parfaitement avec le pilote actuel (touche morte + touche).

Pour les combinaisons de plusieurs touches on utilisera la zone à usage privé (e000–f8ff) d'Unicode : ces points de code servent pour les 38 touches mortes « intermédiaires ». En cas d'erreur de combinaison cela produit le caractère «  ». En prenant le tableau croisé des touches mortes précédent comme tel, j'utilise un point de code ex0y avec x et y désignant les deux touches mortes, on décrira seulement la partie inférieure du tableau (la partie supérieure étant identique sauf pour quelques cas). Petit problème, en hexa on a 16 valeurs possibles donc il faudra trouver encore trois points de code pour les combinaisons avec le grec (moins intuitif que le reste du tableau du coup mais bon… pas trop l'choix).

Les combinaisons avec une étoile « * » en commentaire sont accessibles de manière plus simple grâce aux caracatères en accès direct êàùæœçſ.

TODO

  • utiliser des points de code ex0y plus intuitif pour retrouver la combinaison dans le tableau
  • réorganiser les définitions non par touche morte mais par combinaison
  • les définitions des 3 touches mortes : macron, point souscrit, grec
  • vérifier les quelques cas spéciaux
  • vérifier le comportement de tout ça sous linux (pilotes homogènes)
  • compter combien on a « sauvé » de caractère de leur « non-saisissabilité ».

Aigu (e000)

Note : ǽ et Ǽ sont accessibles avec clavier bépo´+clavier bépoæ et clavier bépo´+clavier bépoÆ. Impossible de définir clavier bépo´+clavier bépoa+clavier bépoe et clavier bépo´+clavier bépoA+clavier bépoE à cause des définitions de á et Á.

OK check mark.png fait : + 32 caractères ṥṤ ắẮ ḉḈ ấẤếẾốỐ ḯḮǘǗ ḗḖṓṒ ǻǺ ǿǾ ṍṌṹṸ ớỚứỨ

	DEADTRANS( 0x00c6 , 0x00b4 , 0x01fc , 0x0000),	//Æ *
	DEADTRANS( 0x00e6 , 0x00b4 , 0x01fd , 0x0000),	//æ *
	DEADTRANS( 0x00c7 , 0x00b4 , 0x1e08 , 0x0000),	//Ç *
	DEADTRANS( 0x00e7 , 0x00b4 , 0x1e09 , 0x0000),	//ç *
	DEADTRANS( 0x00ca , 0x00b4 , 0x1ebe , 0x0000),	//Ê *
	DEADTRANS( 0x00ea , 0x00b4 , 0x1ebf , 0x0000),	//ê *
	DEADTRANS( 0x005e , 0x00b4 , 0xe000 , 0x0001),	//aigu+circonflexe (0xe000)
	DEADTRANS( 0x0041 , 0xe000 , 0x1ea4 , 0x0000),	//Â -> Ấ
	DEADTRANS( 0x0061 , 0xe000 , 0x1ea5 , 0x0000),	//â -> ấ
	DEADTRANS( 0x0045 , 0xe000 , 0x1ebe , 0x0000),	//Ê -> Ế
	DEADTRANS( 0x0065 , 0xe000 , 0x1ebf , 0x0000),	//ê -> ế
	DEADTRANS( 0x004f , 0xe000 , 0x1ed0 , 0x0000),	//Ô -> Ố
	DEADTRANS( 0x006f , 0xe000 , 0x1ed1 , 0x0000),	//ô -> ố
	DEADTRANS( 0x02da , 0x00b4 , 0xe001 , 0x0001),	//aigu+rond en chef (0xe001)
	DEADTRANS( 0x0041 , 0xe001 , 0x01fa , 0x0000),	//Å -> Ǻ
	DEADTRANS( 0x0061 , 0xe001 , 0x01fb , 0x0000),	//å -> ǻ
	DEADTRANS( 0x00b8 , 0x00b4 , 0xe003 , 0x0001),	//aigu+cédille (0xe003)
	DEADTRANS( 0x0043 , 0xe003 , 0x1e08 , 0x0000),	//Ç -> Ḉ
	DEADTRANS( 0x0063 , 0xe003 , 0x1e09 , 0x0000),	//ç -> ḉ
	DEADTRANS( 0x00a8 , 0x00b4 , 0xe004 , 0x0001),	//aigu+tréma (0xe004)
	DEADTRANS( 0x0049 , 0xe004 , 0x1e2e , 0x0000),	//Ï -> Ḯ
	DEADTRANS( 0x0069 , 0xe004 , 0x1e2f , 0x0000),	//ï -> ḯ
	DEADTRANS( 0x0055 , 0xe004 , 0x01d7 , 0x0000),	//Ü -> Ǘ
	DEADTRANS( 0x0075 , 0xe004 , 0x01d8 , 0x0000),	//ü -> ǘ
	DEADTRANS( 0x007e , 0x00b4 , 0xe005 , 0x0001),	//aigu+tilde (0xe005)
	DEADTRANS( 0x004f , 0xe005 , 0x1e4c , 0x0000),	//Õ -> Ṍ
	DEADTRANS( 0x006f , 0xe005 , 0x1e4d , 0x0000),	//õ -> ṍ
	DEADTRANS( 0x0055 , 0xe005 , 0x1e78 , 0x0000),	//Ũ -> Ṹ
	DEADTRANS( 0x0075 , 0xe005 , 0x1e79 , 0x0000),	//ũ -> ṹ
	DEADTRANS( 0x002f , 0x00b4 , 0xe006 , 0x0001),	//aigu+barré (0xe006)
	DEADTRANS( 0x004f , 0xe006 , 0x01fe , 0x0000),	//Ø -> Ǿ
	DEADTRANS( 0x006f , 0xe006 , 0x01ff , 0x0000),	//ø -> ǿ
	DEADTRANS( 0x02d8 , 0x00b4 , 0xe007 , 0x0001),	//aigu+breve (0xe007)
	DEADTRANS( 0x0041 , 0xe007 , 0x1eae , 0x0000),	//Ă -> Ắ
	DEADTRANS( 0x0061 , 0xe007 , 0x1eaf , 0x0000),	//ă -> ắ
	DEADTRANS( 0x00af , 0x00b4 , 0xe008 , 0x0001),	//aigu+macro (0xe008)
	DEADTRANS( 0x0045 , 0xe008 , 0x1e16 , 0x0000),	//Ē -> Ḗ
	DEADTRANS( 0x0065 , 0xe008 , 0x1e17 , 0x0000),	//ē -> ḗ
	DEADTRANS( 0x004f , 0xe008 , 0x1e52 , 0x0000),	//Ō -> Ṓ
	DEADTRANS( 0x006f , 0xe008 , 0x1e53 , 0x0000),	//ō -> ṓ
	DEADTRANS( 0x031b , 0x00b4 , 0xe009 , 0x0001),	//aigu+corne (0xe009)
	DEADTRANS( 0x004f , 0xe009 , 0x1eda , 0x0000),	//Ơ -> Ớ
	DEADTRANS( 0x006f , 0xe009 , 0x1edb , 0x0000),	//ơ -> ớ
	DEADTRANS( 0x0055 , 0xe009 , 0x1ee8 , 0x0000),	//Ư -> Ứ
	DEADTRANS( 0x0075 , 0xe009 , 0x1ee9 , 0x0000),	//ư -> ứ
	DEADTRANS( 0x02d9 , 0x00b4 , 0xe00a , 0x0001),	//aigu+point en chef (0xe00a)
	DEADTRANS( 0x0053 , 0xe00a , 0x1e64 , 0x0000),	//Ṡ -> Ṥ
	DEADTRANS( 0x0073 , 0xe00a , 0x1e65 , 0x0000),	//ṡ -> ṥ
// Manquant ou ajout possible :
// 03D3    GREEK UPSILON WITH ACUTE AND HOOK SYMBOL	// combinaison de 5? touches

Brève (e100)

OK check mark.png fait : +12 caractères ắẮ ḝḜ ằẰ ẵẴ ẳẲ ặẶ

	DEADTRANS( 0x00c0 , 0x02d8 , 0x1eb0 , 0x0000),	// À -> Ằ *
	DEADTRANS( 0x00e0 , 0x02d8 , 0x1eb1 , 0x0000),	// à -> ằ *	
  	DEADTRANS( 0x0060 , 0x02d8 , 0xe100 , 0x0001),	// breve+grave (0xe100)
  	DEADTRANS( 0x0041 , 0xe100 , 0x1eb0 , 0x0000),	// À -> Ằ
  	DEADTRANS( 0x0061 , 0xe100 , 0x1eb1 , 0x0000),	// à -> ằ
  	DEADTRANS( 0x00b4 , 0x02d8 , 0xe007 , 0x0001),	// breve+aigu=aigu+breve (0xe007) (Ắắ)
  	DEADTRANS( 0x007e , 0x02d8 , 0xe102 , 0x0001),	// breve+tilde (0xe102)
  	DEADTRANS( 0x0041 , 0xe102 , 0x1eb4 , 0x0000),	// Ã -> Ẵ
  	DEADTRANS( 0x0061 , 0xe102 , 0x1eb5 , 0x0000),	// ã -> ẵ
  	DEADTRANS( 0x00b8 , 0x02d8 , 0xe103 , 0x0001),	// breve+cédille (0xe103)
  	DEADTRANS( 0x0045 , 0xe103 , 0x1e1c , 0x0000),	// Ȩ -> Ḝ
  	DEADTRANS( 0x0065 , 0xe103 , 0x1e1d , 0x0000),	// ȩ -> ḝ
  	DEADTRANS( 0x0323 , 0x02d8 , 0xe104 , 0x0001),	// breve+point souscrit (0xe104)
  	DEADTRANS( 0x0041 , 0xe104 , 0x1eb6 , 0x0000),	// Ạ -> Ặ
  	DEADTRANS( 0x0061 , 0xe104 , 0x1eb7 , 0x0000),	// ạ -> ặ
  	DEADTRANS( 0x0309 , 0x02d8 , 0xe105 , 0x0001),	// breve+crochet en chef (0xe105)
  	DEADTRANS( 0x0041 , 0xe105 , 0x1eb2 , 0x0000),	// Ả -> Ẳ
  	DEADTRANS( 0x0061 , 0xe105 , 0x1eb3 , 0x0000),	// ả -> ẳ
// POSSIBILITÉ
// 1DCB    COMBINING BREVE-MACRON
// 1DCC    COMBINING MACRON-BREVE
// 035D    COMBINING DOUBLE BREVE 

Point en chef (e700)

OK check mark.png fait : + 11 caractères ṥṤ ṧṦ ǡǠ ȱȰ ṩṨ ɟ

	DEADTRANS( L'/'   , 0x02d9 , 0xe500 , 0x0001),	//point en chef+barré=barré+point en chef (0xe500) (ɟ)
  	DEADTRANS( 0x00af , 0x02d9 , 0xe700 , 0x0001),	// point en chef + macron (0xe700)
  	DEADTRANS( L'A'   , 0xe700 , 0x01e0 , 0x0000),	// Ā -> Ǡ
  	DEADTRANS( L'a'   , 0xe700 , 0x01e1 , 0x0000),	// ā -> ǡ
  	DEADTRANS( L'O'   , 0xe700 , 0x0230 , 0x0000),	// Ō -> Ȱ
  	DEADTRANS( L'o'   , 0xe700 , 0x0231 , 0x0000),	// ō -> ȱ
  	DEADTRANS( 0x00b4 , 0x02d9 , 0xe00a , 0x0001),	// point en chef+aigu=aigu+point en chef (0xe00a) (ṥṤ)
  	DEADTRANS( 0x02c7 , 0x02d9 , 0xe401 , 0x0001),	// point en chef+caron=caron+point en chef (0xe401) (ṧṦ)
  	DEADTRANS( 0x0323 , 0x02d9 , 0xe701 , 0x0001),	// point en chef+point souscrit (0xe701)
  	DEADTRANS( L'S'   , 0xe701 , 0x1e68 , 0x0000),	// Ṣ -> Ṩ
  	DEADTRANS( L's'   , 0xe701 , 0x1e69 , 0x0000),	// ṣ -> ṩ
//Ajouts possibles :
  	DEADTRANS( 0x00d7 , 0x02d9 , 0x2a30 , 0x0000),	// × -> ⨰ MULTIPLICATION SIGN WITH DOT ABOVE 
  	DEADTRANS( 0x007e , 0x02d9 , 0x2e1e , 0x0000),	// ~ -> ⸞ TILDE WITH DOT ABOVE

Caron (e400)

OK check mark.png fait : + 4 caractères ṧṦ ǚǙ

  	DEADTRANS( 0x00a8 , 0x02c7 , 0xe400 , 0x0001),	//caron+tréma (0xe400)
  	DEADTRANS( L'U'   , 0xe400 , 0x01d9 , 0x0000),	//Ü -> Ǚ
  	DEADTRANS( L'u'   , 0xe400 , 0x01da , 0x0000),	//ü -> ǚ
  	DEADTRANS( 0x02d9 , 0x02c7 , 0xe401 , 0x0001),	//caron+point en chef (0xe401)
  	DEADTRANS( L'S'   , 0xe401 , 0x1e66 , 0x0000),	//Ṡ -> Ṧ
  	DEADTRANS( L's'   , 0xe401 , 0x1e67 , 0x0000),	//ṡ -> ṧ
// Ajouts possibles : indices sur neo2 (x possible mais pas a/e déjà définis) :
//	DEADTRANS( L'a'   , 0x02c7 , 0x2090 , 0x0000),
//	DEADTRANS( L'e'   , 0x02c7 , 0x2091 , 0x0000),
//	DEADTRANS( L'x'   , 0x02c7 , 0x2093 , 0x0000),

Cédille

OK check mark.png fait : + 4 caractères ḉḈ ḝḜ

	DEADTRANS( 0x00b4 , 0x00b8 , 0xe003 , 0x0001),	// cédille+aigu=aigu+cédille (0xe003) (ḉḈ)
	DEADTRANS( 0x02d8 , 0x00b8 , 0xe103 , 0x0001),	// cédille+brève=brève+cédille (0xe103) (ḝḜ)
// Ajouts possibles :
// U+0312 COMBINING TURNED COMMA ABOVE ̒
// ¸+Ç = C et ¸+ç=c ?
//
// À supprimer du bépo (pourquoi cette définition ?) :
// /20a1	20b5	// ₡ -> ₵ 
// /00a2	20b5	// ¢ -> ₵

Circonflexe (e300)

OK check mark.png fait : + 30 caractères ấẤếẾốỐ ầẦềỀồỒ ẫẪễỄỗỖ ẩẨểỂổỔ ậẬệỆộỘ

  	DEADTRANS( 0x00c0 , L'^'   , 0x1ea6 , 0x0000),	// À -> Ầ *
  	DEADTRANS( 0x00e0 , L'^'   , 0x1ea7 , 0x0000),	// à -> ầ *
  	DEADTRANS( 0x00c8 , L'^'   , 0x1ec0 , 0x0000),	// È -> Ề *
  	DEADTRANS( 0x00e8 , L'^'   , 0x1ec1 , 0x0000),	// è -> ề *
  	DEADTRANS( 0x00c9 , L'^'   , 0x1ebe , 0x0000),	// É -> Ế *
  	DEADTRANS( 0x00e9 , L'^'   , 0x1ebf , 0x0000),	// é -> ế *
	DEADTRANS( 0x0060 , L'^'   , 0xe200 , 0x0001),	//circonflexe+grave=grave+circonflexe (0xe200) (6x)
  	DEADTRANS( 0x00b4 , L'^'   , 0xe000 , 0x0001),	//circonflexe+aigu=aigu+circonflexe (0xe000) (6x)
  	DEADTRANS( 0x007e , L'^'   , 0xe300 , 0x0001),	//circonflexe+tilde (0xe300)
  	DEADTRANS( L'A'   , 0xe300 , 0x1eaa , 0x0000),	// Ã -> Ẫ
  	DEADTRANS( L'a'   , 0xe300 , 0x1eab , 0x0000),	// ã -> ẫ
  	DEADTRANS( L'E'   , 0xe300 , 0x1ec4 , 0x0000),	// Ẽ -> Ễ
  	DEADTRANS( L'e'   , 0xe300 , 0x1ec5 , 0x0000),	// ẽ -> ễ
  	DEADTRANS( L'O'   , 0xe300 , 0x1ed6 , 0x0000),	// Õ -> Ỗ
  	DEADTRANS( L'o'   , 0xe300 , 0x1ed7 , 0x0000),	// õ -> ỗ
  	DEADTRANS( 0x0323 , L'^'   , 0xe301 , 0x0001),	//circonflexe+point souscrit (0xe301)
  	DEADTRANS( L'A'   , 0xe301 , 0x1eac , 0x0000),	// Ạ -> Ậ
  	DEADTRANS( L'a'   , 0xe301 , 0x1ead , 0x0000),	// ạ -> ậ
  	DEADTRANS( L'E'   , 0xe301 , 0x1ec6 , 0x0000),	// Ẹ -> Ệ
  	DEADTRANS( L'e'   , 0xe301 , 0x1ec7 , 0x0000),	// ẹ -> ệ
  	DEADTRANS( L'O'   , 0xe301 , 0x1ed8 , 0x0000),	// Ọ -> Ộ
  	DEADTRANS( L'o'   , 0xe301 , 0x1ed9 , 0x0000),	// ọ -> ộ
  	DEADTRANS( 0x1ea2 , L'^'   , 0xe302 , 0x0001),	//circonflexe+crochet en chef (0xe302)
  	DEADTRANS( L'A'   , 0xe302 , 0x1ea8 , 0x0000),	// Ả -> Ẩ
  	DEADTRANS( L'a'   , 0xe302 , 0x1ea9 , 0x0000),	// ả -> ẩ
  	DEADTRANS( L'E'   , 0xe302 , 0x1ec2 , 0x0000),	// Ẻ -> Ể
  	DEADTRANS( L'e'   , 0xe302 , 0x1ec3 , 0x0000),	// ẻ -> ể
  	DEADTRANS( L'O'   , 0xe302 , 0x1ed4 , 0x0000),	// Ỏ -> Ổ
  	DEADTRANS( L'o'   , 0xe302 , 0x1ed5 , 0x0000),	// ỏ -> ổ
// Manquant :
// 	DEADTRANS( L'n'   , L'^'   , 0x207f , 0x0000),	// exposant n du Neo2 ?

Tréma (e600)

OK check mark.png fait : + 16 caractères ḯḮǘǗ ǚǙ ǜǛ ǟǞȫȪǖǕ ṏṎ

  	DEADTRANS( 0x00d9 , 0x00a8 , 0x01db , 0x0000),	//Ù -> Ǜ *
  	DEADTRANS( 0x00f9 , 0x00a8 , 0x01dc , 0x0000),	//ù -> ǜ *
  	DEADTRANS( 0x00b4 , 0x00a8 , 0xe004 , 0x0001),	//tréma+aigu=aigu+tréma (0xe004) (ḯḮǘǗ)
  	DEADTRANS( 0x007e , 0x00a8 , 0xe600 , 0x0001),	//tréma+tidle (0xe600)
  	DEADTRANS( L'O'   , 0xe600 , 0x1e4e , 0x0000),	//Õ -> Ṏ
  	DEADTRANS( L'o'   , 0xe600 , 0x1e4f , 0x0000),	//õ -> ṏ
  	DEADTRANS( 0x0060 , 0x00a8 , 0xe201 , 0x0001),	//tréma+grave=grave+tréma (0xe201) (ǜǛ)
  	DEADTRANS( 0x00af , 0x00a8 , 0xe601 , 0x0001),	//tréma+macron (0xe601)
  	DEADTRANS( L'A'   , 0xe601 , 0x01de , 0x0000),	//Ā -> Ǟ
  	DEADTRANS( L'a'   , 0xe601 , 0x01df , 0x0000),	//ā -> ǟ
  	DEADTRANS( L'O'   , 0xe601 , 0x022a , 0x0000),	//Ō -> Ȫ
  	DEADTRANS( L'o'   , 0xe601 , 0x022b , 0x0000),	//ō -> ȫ
  	DEADTRANS( L'U'   , 0xe601 , 0x01d5 , 0x0000),	//Ū -> Ǖ (<>)
  	DEADTRANS( L'u'   , 0xe601 , 0x01d6 , 0x0000),	//ū -> ǖ (<>)
  	DEADTRANS( 0x02c7 , 0x00a8 , 0xe400 , 0x0001),	//tréma+caron=caron+tréma (0xe400) (ǚǙ)

Accent grave (e200)

OK check mark.png fait : + 18 caractères ằẰ ầẦ ềỀ ồỒ ǜǛ ḕḔ ṑṐ ờỜ ừỪ

	DEADTRANS( 0x00ca , L'`'   , 0x1ec0 , 0x0000),	//Ê -> Ề*
	DEADTRANS( 0x00ea , L'`'   , 0x1ec1 , 0x0000),	//ê -> ề*
  	DEADTRANS( 0x005e , L'`'   , 0xe200 , 0x0001),	//grave+circonflexe (0xe200)
  	DEADTRANS( L'A'   , 0xe200 , 0x1ea6 , 0x0000),	//Â -> Ầ
  	DEADTRANS( L'a'   , 0xe200 , 0x1ea7 , 0x0000),	//â -> ầ
  	DEADTRANS( L'E'   , 0xe200 , 0x1ec0 , 0x0000),	//Ê -> Ề
  	DEADTRANS( L'e'   , 0xe200 , 0x1ec1 , 0x0000),	//ê -> ề
  	DEADTRANS( L'O'   , 0xe200 , 0x1ed2 , 0x0000),	//Ô -> Ồ
  	DEADTRANS( L'o'   , 0xe200 , 0x1ed3 , 0x0000),	//ô -> ồ 
  	DEADTRANS( 0x00a8 , L'`'   , 0xe201 , 0x0001),	//grave+tréma (0xe201)
  	DEADTRANS( L'U'   , 0xe201 , 0x01db , 0x0000),	//Ü -> Ǜ
  	DEADTRANS( L'u'   , 0xe201 , 0x01dc , 0x0000),	//ü -> ǜ
  	DEADTRANS( 0x02d8 , L'`'   , 0xe100 , 0x0001),	//grave+breve=breve+grave (0xe100) (ằẰ)
  	DEADTRANS( 0x00af , L'`'   , 0xe202 , 0x0001),	//grave+macron (0xe202)
  	DEADTRANS( L'E'   , 0xe202 , 0x1e14 , 0x0000),	//Ē -> Ḕ
  	DEADTRANS( L'e'   , 0xe202 , 0x1e15 , 0x0000),	//ē -> ḕ
  	DEADTRANS( L'O'   , 0xe202 , 0x1e50 , 0x0000),	//Ō -> Ṑ
  	DEADTRANS( L'o'   , 0xe202 , 0x1e51 , 0x0000),	//ō -> ṑ
  	DEADTRANS( 0x031b , L'`'   , 0xe203 , 0x0001),	//grave+cornu (0xe203)
  	DEADTRANS( L'O'   , 0xe203 , 0x1edc , 0x0000),	//Ơ -> Ờ
  	DEADTRANS( L'o'   , 0xe203 , 0x1edd , 0x0000),	//ơ -> ờ
  	DEADTRANS( L'U'   , 0xe203 , 0x1eea , 0x0000),	//Ư -> Ừ
  	DEADTRANS( L'u'   , 0xe203 , 0x1eeb , 0x0000),	//ư -> ừ

Macron

OK check mark.png fait : + ? caractères DEADTRANS( 0x00c6 , 0x00af , 0x01e2 , 0x0000),// Æ* -> Ǣ DEADTRANS( 0x00e6 , 0x00af , 0x01e3 , 0x0000),// æ* -> ǣ DEADTRANS( 0x00c9 , 0x00af , 0x1e16 , 0x0000),// É*-> Ḗ DEADTRANS( 0x00e9 , 0x00af , 0x1e17 , 0x0000),// é*-> ḗ DEADTRANS( 0x00c8 , 0x00af , 0x1e14 , 0x0000),// È*-> Ḕ DEADTRANS( 0x00e8 , 0x00af , 0x1e15 , 0x0000),// è*-> ḕ // À supprimer (ancienne définition temporaire pour le pinyin) DEADTRANS( L'V' , 0x00af , 0x01d5 , 0x0000),// V -> Ǖ DEADTRANS( L'v' , 0x00af , 0x01d6 , 0x0000),// v -> ǖ // Macron + autre touche morte (ec00) DEADTRANS( 0x02d9 , 0x00af , 0xe700 , 0x0001), // macron+point en chef=point en chef+macron (0xe700) (ǠǡȰȱ) DEADTRANS( 0x00a8 , 0x00af , 0xec00 , 0x0001), // macron+tréma (presque = tréma+macron (0xe601) (ǞǟȪȫ) mais Ṻṻ différents donc besoin d'une autre touche morte ec00 DEADTRANS( 0x00c4 , 0xec00 , 0x01de , 0x0000),// Ä -> Ǟ DEADTRANS( 0x00e4 , 0xec00 , 0x01df , 0x0000),// ä -> ǟ DEADTRANS( 0x00d6 , 0xec00 , 0x022a , 0x0000),// Ö -> Ȫ DEADTRANS( 0x00f6 , 0xec00 , 0x022b , 0x0000),// ö -> ȫ (et non Ǖ) DEADTRANS( 0x00fc , 0xec00 , 0x1e7b , 0x0000),// ü -> ṻ (en non ṻ) DEADTRANS( 0x00b4 , 0x00af , 0xe008 , 0x0001), //macron+aigu=aigu+macron (0xe008) DEADTRANS( 0x00c9 , 0x00af , 0x1e16 , 0x0000),// É -> Ḗ DEADTRANS( 0x00e9 , 0x00af , 0x1e17 , 0x0000),// é -> ḗ DEADTRANS( 0x00d3 , 0x00af , 0x1e52 , 0x0000),// Ó -> Ṓ DEADTRANS( 0x00f3 , 0x00af , 0x1e53 , 0x0000),// ó -> ṓ DEADTRANS( 0x0060f , 0x00af , 0xe202 , 0x0001),//macron+grave =grave+macron (0xe202) (ḔḕṐṑ) DEADTRANS( 0x0323 , 0x00af , 0xeb00 , 0x0001), // macron+point souscrit=point souscrit+macron (0xeb00) (ḸḹṜṝ) DEADTRANS( 0x007e , 0x00af , 0xea00 , 0x0001), //macron+tilde=tilde+macron (0xea00) (Ȭȭ) DEADTRANS( 0x02db , 0x00af , 0xe800 , 0x0001), // macron+ogonek=ogenek+macron (0xe800) (Ǭǭ)

Ogonek (e800)

OK check mark.png fait : + 2 caractères

	DEADTRANS( 0x00af , 0x02db , 0xe800 , 0x0001),	// ogenek+macron (0xe800)
	DEADTRANS( 0x014c , 0xe800 , 0x01ec , 0x0000),	// Ō -> Ǭ
	DEADTRANS( 0x014d , 0xe800 , 0x01ed , 0x0000),	// ō -> ǭ

Rond en chef

OK check mark.png fait : + 2 caractères ǻǺ

  	DEADTRANS( 0x00b4 , 0x02da , 0xe001 , 0x0001),	//rond en chef+aigu=aigu+rond en chef (0xe001) (ǻǺ)
//	Manquants ou ajouts possibles :
//  0351    COMBINING LEFT HALF RING ABOVE		(
//  0357    COMBINING RIGHT HALF RING ABOVE		)
//  212B    ANGSTROM SIGN
//  2E1B    TILDE WITH RING ABOVE

Barrés (e500)

OK check mark.png fait : + 3 caractères ɟ ǿǾ

  	DEADTRANS( 0x00b4 , L'/'   , 0xe006 , 0x0001),	//barré+aigu=aigu+barré (0xe006) (ǿǾ)
  	DEADTRANS( 0x02d9 , L'/'   , 0xe500 , 0x0001),	//barré+point en chef (0xe500)
  	DEADTRANS( L'j'   , 0xe500 , 0x025f , 0x0000),	//ȷ -> ɟ
//	MANQUANT :
//	DEADTRANS( 0x0269 , L'/'   , 0x1d7c , 0x0000),	//ɩ small iota ( à tester)
// 	DEADTRANS( 0x0269 , L'/'   , 0xe500 , 0x0001),
// 	DEADTRANS( 0x0269 , 0xe500 , 0x1d7c , 0x0000),

Tilde

OK check mark.png fait : + 20 caractères ṍṌṹṸ ẵẴ ẫẪễỄỗỖ ṏṎ ȭȬ ỡỠữỮ

	DEADTRANS( 0x00ca , 0xe07e , 0x1ec4 , 0x0000),	// Ê* -> Ễ 
	DEADTRANS( 0x00ea , 0xe07e , 0x1ec5 , 0x0000),	// ê* -> ễ
	DEADTRANS( 0x02d8 , 0x007e , 0xe102 , 0x0001),	//tilde+brève=brève+tilde (0xe102) (Ẵẵ)
	DEADTRANS( 0x005e , 0x007e , 0xe300 , 0x0001),	//tilde+circonflexe+circonflexe+brève (0xe300) (ẪẫỄễỖỗ)
	DEADTRANS( 0x00b4 , 0x007e , 0xe005 , 0x0001),	//tilde+aigu+aigu+tilde (ex005) (ṌṍṸṹ)	
	DEADTRANS( 0x00a8 , 0x007e , 0xe600 , 0x0001),	//tidle+tréma=tréma+tilde (0xe600) (Ṏṏ)
	DEADTRANS( 0x00af , 0x007e , 0xea00 , 0x0001),	//tilde+macron=macro+tilde (0xea00)
	DEADTRANS( 0x004f , 0xea00 , 0x022c , 0x0000),	// Ō -> Ȭ
	DEADTRANS( 0x006f , 0xea00 , 0x022d , 0x0000),	// ō -> ȭ	
	DEADTRANS( 0x031b , 0x007e , 0xe902 , 0x0001),	//tilde+cornu=cornu+tilde (0xe902) (ỠỡỮữ)

Cornu

OK check mark.png fait : + 20 caractères ỚớỨứ ỜờỪừ ỢợỰự ỞởỬử ỠỡỮữ

	DEADTRANS( 0x00d9 , 0x031b , 0x1eea , 0x0000),	// Ù* -> Ừ
	DEADTRANS( 0x00f9 , 0x031b , 0x1eeb , 0x0000),	// ù* -> ừ
	DEADTRANS( 0x00b4 , 0x031b , 0xe000 , 0x0001),	// cornu+aigu=aigu+corne (0xe009) (ỚớỨứ)
	DEADTRANS( 0x0060 , 0x031b , 0xe000 , 0x0001),	// cornu+grave=grave+cornu (0xe203) (ỜờỪừ)
	DEADTRANS( 0x0323 , 0x031b , 0xe900 , 0x0001),	// cornu+point souscrit (0xe900)
	DEADTRANS( 0x004f , 0xe900 , 0x1ee2 , 0x0000),	// Ọ -> Ợ
	DEADTRANS( 0x006f , 0xe900 , 0x1ee3 , 0x0000),	// ọ -> ợ
	DEADTRANS( 0x0055 , 0xe900 , 0x1ef0 , 0x0000),	// Ụ -> Ự
	DEADTRANS( 0x0075 , 0xe900 , 0x1ef1 , 0x0000),	// ụ -> ự
	DEADTRANS( 0x0309 , 0x031b , 0xe901 , 0x0001),	// cornu+crochet en chef (0xe901)
	DEADTRANS( 0x004f , 0xe901 , 0x1ede , 0x0000),	// Ỏ -> Ở
	DEADTRANS( 0x006f , 0xe901 , 0x1edf , 0x0000),	// ỏ -> ở
	DEADTRANS( 0x0055 , 0xe901 , 0x1eec , 0x0000),	// Ủ -> Ử
	DEADTRANS( 0x0075 , 0xe901 , 0x1eed , 0x0000),	// ủ -> ử
	DEADTRANS( 0x007e , 0x031b , 0xe902 , 0x0001),	// cornu+tilde (0xe902)
	DEADTRANS( 0x004f , 0xe902 , 0x1ee0 , 0x0000),	// Õ -> Ỡ
	DEADTRANS( 0x006f , 0xe902 , 0x1ee1 , 0x0000),	// õ -> ỡ
	DEADTRANS( 0x0055 , 0xe902 , 0x1eee , 0x0000),	// Ũ -> Ữ
	DEADTRANS( 0x0075 , 0xe902 , 0x1eef , 0x0000),	// ũ -> ữ

Crochet

OK check mark.png fait : + 11 caractères ẳẲ ẩẨểỂổỔ ởỞửỬ ϒ ʄ

	DEADTRANS( 0x0259 , 0x0309 , 0x025a , 0x0000),	// ə* -> ɚ
	DEADTRANS( 0x00ca , 0x0309 , 0x1ec2 , 0x0000),	// Ê* -> Ể
	DEADTRANS( 0x00ea , 0x0309 , 0x1ec3 , 0x0000),	// ê* -> ể
	DEADTRANS( 0x02d8 , 0x0309 , 0xe105 , 0x0001),	//crochet+brève=brève+crochet (0xe105) (Ẳẳ)
	DEADTRANS( 0x005e , 0x0309 , 0xe302 , 0x0001),	//crochet+circonflexe=circonflexe+crochet (0xe302) (ẨẩỂểỔổ)
	DEADTRANS( 0x031b , 0x0309 , 0xe901 , 0x0001),	//crochet+cornu=cornu+crochet (0xe901) (ỞởỬử)
	DEADTRANS( 0x00b5 , 0x0309 , 0x0902 , 0x0001),	// grec+crochet (0xe902)
	DEADTRANS( 0x0055 , 0x0902 , 0x03d2 , 0x0000),	// Υ -> ϒ
//- À supprimer :
//	DEADTRANS( 0x0256 , 0x0309 , 0x1d91 , 0x0000),	// ɖ -> ᶑ > d with tail sur bépo, combinaison à faire supprimer ?
//- Combinaison de 3 touches mortes : J dotless with stroke and hook
//	DEADTRANS( 0x025f , 0x0309 , 0x0284 , 0x0000),	// ɟ -> ʄ > combinaison de 3 touches

Point souscrit

OK check mark.png fait : + 16 caractères ṩṨ ặẶ ậẬệỆộỘ ḹḸṝṜ ợỢựỰ

	DEADTRANS( 0x00ca , 0x0323 , 0x1ec6 , 0x0000),	// Ê* -> Ệ
	DEADTRANS( 0x00ea , 0x0323 , 0x1ec7 , 0x0000),	// ê* -> ệ
// Point souscrit + autre touche morte
	DEADTRANS( 0x005e , 0x0323 , 0xe301 , 0x0001),	// circonflexe+point souscrit=point souscrit+circonflexe (0xe301) (ẬậỆệỘộ)
	DEADTRANS( 0x02d8 , 0x0323 , 0xe104 , 0x0001),	// breve+point souscrit=point souscrit+brève (0xe104) (Ặặ)
	DEADTRANS( 0x02d9 , 0x0323 , 0xe701 , 0x0001),	// point en chef+point souscrit=point souscrit+point en chef (0xe701) (Ṩṩ)
	DEADTRANS( 0x031b , 0x0323 , 0xe900 , 0x0001),	// cornu+point souscrit=point souscrit+cornu (0xe900) (ỢợỰự)
	DEADTRANS( 0x00af , 0x0323 , 0xeb00 , 0x0001),	// macron+point souscrit (0xeb00)
	DEADTRANS( 0x004c , 0xeb00 , 0x1e38 , 0x0000),	// L -> Ḹ
	DEADTRANS( 0x006c , 0xeb00 , 0x1e39 , 0x0000),	// l -> ḹ
	DEADTRANS( 0x0052 , 0xeb00 , 0x1e5c , 0x0000),	// r -> Ṝ
	DEADTRANS( 0x0072 , 0xeb00 , 0x1e5d , 0x0000),	// r -> Ṝ

Lettre grecque