Skip to content

Latest commit

 

History

History
167 lines (148 loc) · 5.05 KB

iso_cei_9995_11.md

File metadata and controls

167 lines (148 loc) · 5.05 KB

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

Disclaimer

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.

Introduction

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.

Combinaisons de touches mortes avec le caractère d’espacement

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'): 'Ⱦ',
    ('◌̸', '='): '≠',
    ('◌̸', '°'): '⌀',
}

References

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.