Contraction Tables ------------------ Files with names of the form *.ctb are contraction tables, and with names of the form *.cti are contraction subtables. They are used by BRLTTY to translate character sequences on the screen into their corresponding contracted braille representations. A contraction table consists of a sequence of entries, one per line, which define how character sequences are to be represented in braille. UTF-8 character encoding must be used. White-space (blanks, tabs) at the beginning of a line, as well as before and/or after any operand, is ignored. Lines containing only white-space are ignored. If the first non-white-space character of a line is "#" then that line is a comment and is ignored. The format of a contraction table entry is: directive operand ... [comment] Each directive has a specific number of operands. Any text beyond the last operand of a directive is interpreted as a comment. The order of the entries within a contraction table is, in general, anything that is convenient for its maintainer(s). An entry which defines an entity, e.g. class, must precede all references to that entity. Entries which match character sequences are automatically rearranged from longest to shortest so that longer matches are always preferred. If more than one entry matches the same character sequence then their original table ordering is maintained. Thus, the same sequence may be translated differently under different circumstances. The Characters Operand ---------------------- The first operand of a character sequence matching directive is the character sequence to be matched. Each character within the sequence may be: * Any single character other than a backslash or a white-space character. * A backslash-prefixed special character. These are: - \b The backspace character. - \f The formfeed character. - \n The newline character. - \o### The three-digit octal representation of a character. - \r The carriage return character. - \s The space character. - \t The horizontal tab character. - \u#### The four-digit hexadecimal representation of a character. - \U######## The eight-digit hexadecimal representation of a character. - \v The vertical tab character. - \x## The two-digit hexadecimal representation of a character. - \X## ... (the case of the X and of the digits isn't significant) - \# A literal number sign. - \<name> The Unicode name of a character (use _ for space). - \\ A literal backslash. The Representation Operand -------------------------- The second operand of those character sequence matching directives which have one is the braille representation of the sequence. Each braille cell is specified as a sequence of one to eight dot numbers. A dot number is a digit within the range 1-8 as defined by the standard braille dot numbering convention (see README-DOTS). The special dot number 0, which may not be used in conjunction with any other dot number, means no dots.