blob: 7796f29f47ccfa81ba54b97209d7a68e99497277 [file] [log] [blame]
# liblouis: Marburg maths Table for mathematics
#
# Based on the Linux screenreader BRLTTY, copyright (C) 1999-2006 by
# The BRLTTY Team
#
# Copyright (C) 2004-2008 ViewPlus Technologies, Inc. www.viewplus.com
# Copyright (C) 2004-2006 JJB Software, Inc. www.jjb-software.com
#
# This file is part of liblouis.
#
# liblouis is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 2.1 of the
# License, or (at your option) any later version.
#
# liblouis is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with liblouis. If not, see
# <http://www.gnu.org/licenses/>.
include marburg_single_cell_defs.cti
include marburg_unicode_defs.cti
# grouping definitions are character-definition rules
grouping mrow \x0001\x0002 1e,2e
grouping mfrac \x0003\x0004 3e,4e
grouping brackets \x0005\x0006 126,345
# Braille indicators
numsign 3456
capsletter 6
begcapsword 6-6
endcapsword 6-3
emphclass italic
emphclass underline
emphclass bold
emphletter italic 4
emphletter bold 4
# litdigit opcodes must be in this table, not the single-cell table.
include litdigits6Dots.uti
# No letsign but endnum for letters a-j.
endnum a 56-1
endnum b 56-12
endnum c 56-14
endnum d 56-145
endnum e 56-15
endnum f 56-124
endnum g 56-1245
endnum h 56-125
endnum i 56-24
endnum j 56-245
# Ordinary translation entries
always = a-56-2356
always + a-56-235
always > a-135-a
always < a-246-a
always % 25-1234
always $ 256
always & 4-12346
always ~ 45-156
always ! 6-236
prepunc " 236
postpunc " 356
postpunc ' 3
always '' 36
always ''' 36-3
midnum , 3
postpunc , 6-2
always , 3
always # 35-2345 print number sign before number
always ( 126
always ) 345
noback pass2 [{mrow]@126/@345}mrow ?
noback pass2 @126[{mrow]/}mrow@345 ?
decpoint . 2
always ... 3-3-3
hyphen - 36
postpunc . 6-256
postpunc ; 6-23
postpunc : 6-25
postpunc ? 6-236
endnum % 4-356
midnum * 4-16
repeated \s 0
repeated \x00a0 a
# swap opcodes for replacement and testing.
swapcd dropped 0123456789 356,2,23,25,456,26,235,2356,236,35
swapdd upnum 245,1,12,14,145,15,124,1245,125,24 0,0,0,0,0,0,0,0,0,0
swapdd lownum 356,2,23,25,256,26,235,2356,236,35 0,0,0,0,0,0,0,0,0,0
# now we start doing the real work
# Correction rules
noback correct {mrow$ld1-20[}mrow] ?
noback correct "\eb"[{mrow]/}mrow"\ee" ?
noback context "\eb"[]$l"\ee" @56
noback context "\eb"[]","$l"\ee" @56
noback context {mfrac$d1-10[]"@456-34"$d1-10}mfrac #1=1
# context []"@456-34"$d1-10}mfrac #1=1
noback context []"@346"$d1-10"@12456" #1=1
noback context []"@16"$d1-10"@12456" #1=1
# context []"@146"$d1-10 #1=1
noback context #1=1$d1-10 #1=0%dropped
# exactdots opcodes for dot patterns in ukmaths.sem
exactdots @126
exactdots @345
exactdots @123456
exactdots @346
exactdots @16
exactdots @23456
exactdots @34
exactdots @456-34
exactdots @12456
exactdots @146
# Function names and abbreviations
word cos 1246-14
word grad 1246-1245
word cosh 1246-125-14
word sinh 1246-125-234
word tanh 1246-125-2345
word cosech 1246-125-126
word coth 1246-125-1256
word sech 1246-125-36
word log 1246-123
word sin 1246-234
word tan 1246-2345
word cosec 1246-126
word curl 1246-146
word div 1246-1456
word cot 1246-1256
word arccosh 1246-236-14
word arcsinh 1246-236-234
word arctanh 1246-236-2345
word arccosech 1246-236-126
word arccoth 1246-236-1256
word arcsech 1246-236-36
word sec 1246-36
word arccos 1246-4-14
word antilog 1246-4-123
word arcsin 1246-4-234
word arctan 1246-4-2345
word arccosec 1246-4-126
word arccot 1246-4-1256
word arcsec 1246-4-25
word colog 1246-45-123
# pass2 processing
noback pass2 [@3456]%lownum1-10 ?
noback pass2 [@456-34-3456]%lownum1-10 ?
# pass3 processing
noback pass3 @346%lownum1-10[@12456] ?
noback pass3 @16[%lownum1-10]@12456 *
noback pass3 {mfrac[@3456%upnum1-10%lownum1-10]}mfrac *