diff options
Diffstat (limited to 'macros/latex/exptl/mem/Tools/mtp2ocp.py')
-rwxr-xr-x | macros/latex/exptl/mem/Tools/mtp2ocp.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/macros/latex/exptl/mem/Tools/mtp2ocp.py b/macros/latex/exptl/mem/Tools/mtp2ocp.py new file mode 100755 index 0000000000..7a6a9457a5 --- /dev/null +++ b/macros/latex/exptl/mem/Tools/mtp2ocp.py @@ -0,0 +1,53 @@ +# This file es votp2ocp.py +# +# (c) 2004. Javier Bezos. License: LPPL. +# +# This file creates otp/ocp files with special +# characters like \, {, }, replaced by characters +# in the PUA area with fixed catcodes. This +# way, verbatim can be used. +# +# The implemtentation is somewhat naive, but it +# works with the Mem otp files. + +import unicodedata, re, sys, os + +name = sys.argv[1] + +def namechar(m): + result = '@"%04X' % ord(unicodedata.lookup(m.group(1))) + return result +#end + +def repl(m): # ^ must be the first + s = m.group(2).replace('^', '" @"E007 "')\ + .replace('\\', '" @"E000 "')\ + .replace('{', '" @"E001 "')\ + .replace('}', '" @"E002 "')\ + .replace('$', '" @"E003 "')\ + .replace('&', '" @"E004 "')\ + .replace('#', '" @"E006 "')\ + .replace('_', '" @"E008 "') + s = '%s"%s"' % (m.group(1), s) + s = s.replace(' ""', ' ') + return s +#end + +txt = open(name + '.mtp').read() + +res = re.sub('([^@`])"([^"]+)"', repl, txt) +res = re.sub('\[([A-Z][\dA-Z \-]*)\]', namechar, res) + +# Hacer una abrevitura de LATIN LETTER, ARABIC LETTER, para +# que se anadan si no esta definido. + +open(name + '.otp', 'w').write(res) + +os.system('otp2ocp ' + name) + +try: + os.remove('%s.otp' % name) +except: + pass + + |