Information technology — Keyboard layouts for office systems — Part 11: Functionality of dead keys and repertoires of characters entered by dead keys
This document contains notes taken while developing a keyboard driver implementing the NF Z71-300 standard about French keyboard layouts for office systems.
This document is not a reference, it might contain errors and approximations.
The data from this file have been extracted from the French Wikipedia article about ISO/CEI 9995
Data is embedded as python script for easier programatic usage. Combining diacritics are defined after a circle (◌, U+25CC) rather than the usual non-breaking space (U+00A0) for easier reading.
From ISO/CEI 9995-11, § 5.2.
Tableau 1 – Caractères diacritiques dans le Jeu partiel latin multilingue :
spacing_clones = {
"◌̀": ("ˋ", "`"),
"◌́": ("ˊ", "´"),
"◌̂": ("ˆ", "^"),
"◌̃": ("˜", "~"),
"◌̄": ("ˉ", "¯"),
"◌̆": ("˘", None),
"◌̇": ("˙", None),
"◌̈": ("¨", None),
"◌̉": (None, None),
"◌̊": ("˚", None),
"◌̋": ("˝", None),
"◌̌": ("ˇ", None),
"◌̍": ("ˈ", None),
"◌̎": (None, None),
"◌̏": (None, None),
"◌̐": (None, None),
"◌̑": (None, None),
"◌̓": ("ʼ", None),
"◌̕": (None, None),
"◌̛": (None, None),
"◌̣": (None, None),
"◌̤": (None, None),
"◌̥": (None, None),
"◌̦": (None, None),
"◌̧": ("¸", None),
"◌̨": ("˛", None),
"◌̩": ("ˌ", None),
"◌̭": ("ꞈ", None),
"◌̮": (None, None),
"◌̱": ("ˍ", None),
"◌̲": (None, None),
"◌̵": ("−", None),
"◌̸": ("∕", None),
"◌͇": (None, None),
"◌͈": (None, None),
"◌͜": (None, None),
"◌͝": (None, None),
"◌͞": (None, None),
"◌͠": (None, None),
"◌͡": (None, None),
}
def get_spacing_clone(dead_key, prefer_second=True, combine_with='\u00A0'):
clones = spacing_clones[dead_key]
if prefer_second and clones[1] != None:
return clones[1]
elif clones[0] != None:
return clones[0]
else:
return combine_with + dead_key[1]
Tableau 2 : Caractères particuliers entrés par touches mortes Caractère saisi en premier Caractère saisi en second Caractère particulier résultant
# TODO check bar sizes (currently short stroke and long solidus)
# TODO check invalid chars
special_chars_combinations = {
('◌̀', '◌̀'): '◌̏',
('◌̂', '='): '≙',
('◌̂', '◌̂'): '◌᷍',
('◌̃', '◌̃'): '◌͠',
('◌̄', '-'): '⹀',
('◌̄', '='): '≡',
('◌̄', '◌̄'): '◌͞',
('◌̆', '◌̆'): '◌͝',
('◌̇', '◌̆'): '◌̐',
('◌̍', '◌̍'): '◌̎',
('◌̑', '◌̑'): '◌͡',
('◌̓', '◌̓'): '◌̕',
('◌̣', '◌̣'): '◌̤',
('◌̩', '◌̩'): '◌͈',
('◌̮', '◌̮'): '◌͜',
('◌̱', '<'): '≤',
('◌̱', '>'): '≥',
('◌̱', '◌̱'): '◌͇',
('◌̲', '◌̲'): '◌͟',
('◌̵', '-'): '⸺',
('◌̵', ':'): '÷',
('◌̵', 'b'): 'ƀ',
('◌̵', 'B'): 'Ƀ',
('◌̵', 'c'): 'ꞓ',
('◌̵', 'C'): 'Ꞓ',
('◌̵', 'd'): 'đ',
('◌̵', 'D'): 'Đ',
('◌̵', 'e'): 'ꬳ',
('◌̵', 'f'): 'ꞙ',
('◌̵', 'F'): '₣',
('◌̵', 'g'): 'ǥ',
('◌̵', 'G'): 'Ǥ',
('◌̵', 'h'): 'ħ',
('◌̵', 'H'): 'Ħ',
('◌̵', 'i'): 'ɨ',
('◌̵', 'I'): 'Ɨ',
('◌̵', 'j'): 'ɉ',
('◌̵', 'J'): 'Ɉ',
('◌̵', 'k'): 'ꝁ',
('◌̵', 'K'): 'Ꝁ',
('◌̵', 'l'): 'ƚ',
('◌̵', 'L'): 'Ƚ',
('◌̵', 'o'): 'ɵ',
('◌̵', 'O'): 'Ɵ',
('◌̵', 'p'): 'ᵽ',
('◌̵', 'P'): 'Ᵽ',
('◌̵', 'r'): 'ɍ',
('◌̵', 'R'): 'Ɍ',
('◌̵', 't'): 'ŧ',
('◌̵', 'T'): 'Ŧ',
('◌̵', 'u'): 'ʉ',
('◌̵', 'U'): 'Ʉ',
('◌̵', 'y'): 'ɏ',
('◌̵', 'Y'): 'Ɏ',
('◌̵', 'z'): 'ƶ',
('◌̵', 'Z'): 'Ƶ',
('◌̸', 'a'): 'ⱥ',
('◌̸', 'A'): 'Ⱥ',
('◌̸', 'c'): 'ȼ',
('◌̸', 'C'): 'Ȼ',
('◌̸', 'e'): 'ɇ',
('◌̸', 'E'): 'Ɇ',
('◌̸', 'l'): 'ł',
('◌̸', 'L'): 'Ł',
('◌̸', 'm'): '₥',
('◌̸', 'o'): 'ø',
('◌̸', 'O'): 'Ø',
('◌̸', 't'): 'ⱦ',
('◌̸', 'T'): 'Ⱦ',
('◌̸', '='): '≠',
('◌̸', '°'): '⌀',
}
ISO/CEI 9995-11: Information technology — Keyboard layouts for office systems — Part 11: Functionality of dead keys and repertoires of characters entered by dead keys. 2015.
NF Z71-300: Norme AFNOR Z71-300. Interfaces utilisateurs - Dispositions de clavier bureautique français. 2019.