# Copyright (C) 2016 Swiss Library for the Blind, Visually Impaired and Print Disabled

# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved. This file is offered as-is,
# without any warranty.

# test table to facilitate testing of emphasis handling

include tables/chardefs.cti

emphclass italic

emphletter italic 46-25

begemphword italic 456-46
endemphword italic 3-6

begemphphrase italic 456-46-46
endemphphrase italic before 456-46
lenemphphrase italic 3


