Utilisateur:A2/dk
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 reprenant le tableau croisé des touches mortes précédent, j'utilise un point de code ex0y avec x et y désignant les deux touches mortes. Vu le fonctionnement (ex0y=ey0x), on décrira seulement la partie supérieure du tableau (la partie inférieure étant identique sauf 704/407). 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).
Certaines combinaisons sont accessibles de manière plus simple grâce aux caracatères ÊÉÈêéèÀàÙùÆ挜Ççſ en accès direct sur bépo.
Unicode 0xe... | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | ¡ | |
0 | Accent grave | X | 002 | 004 | 005 | 007 | 00b | |||||||||||
1 | Accent aigu | X | 102 | 103 | 104 | 105 | 106 | 107 | 109 | 10b | 10d | 10f | ||||||
2 | Accent circonflexe | 200 | 201 | X | 203 | 208 | 20c | |||||||||||
3 | Tilde | 301 | 302 | X | 304 | 305 | 307 | 30b | ||||||||||
4 | Macron | 400 | 401 | 403 | X | 406 | 407 | 40c | 40e | 410 | ||||||||
5 | Brève | 500 | 501 | 503 | X | 508 | 50c | 50d | ||||||||||
6 | Point en chef | 601 | 604 | X | 60a | 60c | 60f | |||||||||||
7 | Tréma | 700 | 701 | 703 | 704 | X | 70a | |||||||||||
8 | Crochet en chef | 802 | 805 | X | 80b | 810 | ||||||||||||
9 | Rond en chef | 901 | X | |||||||||||||||
a | Caron | a06 | a07 | X | ||||||||||||||
b | Cornu | b00 | b01 | b03 | b08 | X | b0c | |||||||||||
c | Point souscrit | c02 | c04 | c05 | c06 | c0b | X | |||||||||||
d | Cédille | d01 | d05 | X | ||||||||||||||
e | Ogonek | e04 | X | |||||||||||||||
f | Barré | f01 | f06 | X | f10 | |||||||||||||
¡ | Grec | 014 | 018 | 01f | X |
TODO
- vérifier les quelques cas spéciaux et le comportement sous linux (pilotes homogènes)
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 Á.
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)
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)
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)
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), //ṡ -> ṧ
// À supprimer du bépo :
// DEADTRANS( 0x01f2 , 0x02c7 , 0x01c5 , 0x0000),// Dz -> Dž
// 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
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)
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)
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)
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
fait : + 32 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( 0x0060 , 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) (Ǭǭ)
DEADTRANS( 0x00b5 , 0x00af , 0xec01 , 0x0001), // macron + grec (ec01)
DEADTRANS( 0x0041 , 0xec01 , 0x1fb9 , 0x0000), // Α -> Ᾱ
DEADTRANS( 0x0061 , 0xec01 , 0x1fb1 , 0x0000), // α -> ᾱ
DEADTRANS( 0x0049 , 0xec01 , 0x1fd9 , 0x0000), // Ι -> Ῑ
DEADTRANS( 0x0069 , 0xec01 , 0x1fd1 , 0x0000), // ι -> ῑ
DEADTRANS( 0x0055 , 0xec01 , 0x1fe9 , 0x0000), // Υ -> Ῡ
DEADTRANS( 0x0075 , 0xec01 , 0x1fe1 , 0x0000), // υ -> ῡ
Ogonek (e800)
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
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)
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
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
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
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
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 -> Ṝ