diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/tex2tok/helper.py |
Initial commit
Diffstat (limited to 'support/tex2tok/helper.py')
-rw-r--r-- | support/tex2tok/helper.py | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/support/tex2tok/helper.py b/support/tex2tok/helper.py new file mode 100644 index 0000000000..83a52ea25c --- /dev/null +++ b/support/tex2tok/helper.py @@ -0,0 +1,97 @@ +#!/usr/bin/env python +# Copyright (c) 2005 Jonathan Fine <jfine@pytex.org> +# License: GPL version 2 or (at your option) any later version. +# $Source: /cvsroot/pytex/pytex/tex2tok/helper.py,v $ + +__version__ = '$Revision: 1.1 $' + + +import sys +import re + +# list of all TeX primitive control sequences +# par, \-, \/ and control space are not in the list + +primitives = ['above', 'abovedisplayshortskip', 'abovedisplayskip', +'abovewithdelims', 'accent', 'adjdemerits', 'advance', +'afterassignment', 'aftergroup', 'atop', 'atopwithdelims', 'badness', +'baselineskip', 'batchmode', 'begingroup', 'belowdisplayshortskip', +'belowdisplayskip', 'binoppenalty', 'botmark', 'box', 'boxmaxdepth', +'brokenpenalty', 'catcode', 'char', 'chardef', 'cleaders', 'closein', +'closeout', 'clubpenalty', 'copy', 'count', 'countdef', 'cr', 'crcr', +'csname', 'day', 'deadcycles', 'def', 'defaulthyphenchar', +'defaultskewchar', 'delcode', 'delimiter', 'delimiterfactor', +'delimitershortfall', 'dimen', 'dimendef', 'discretionary', +'displayindent', 'displaylimits', 'displaystyle', +'displaywidowpenalty', 'displaywidth', 'divide', +'doublehyphendemerits', 'dp', 'dump', 'edef', 'else', +'emergencystretch', 'end', 'endcsname', 'endgroup', 'endinput', +'endlinechar', 'eqno', 'errhelp', 'errmessage', 'errorcontextlines', +'errorstopmode', 'escapechar', 'everycr', 'everydisplay', 'everyhbox', +'everyjob', 'everymath', 'everypar', 'everyvbox', 'exhyphenpenalty', +'expandafter', 'fam', 'fi', 'finalhyphendemerits', 'firstmark', +'floatingpenalty', 'font', 'fontdimen', 'fontname', 'futurelet', +'gdef', 'global', 'globaldefs', 'halign', 'hangafter', 'hangindent', +'hbadness', 'hbox', 'hfil', 'hfill', 'hfilneg', 'hfuzz', 'hoffset', +'holdinginserts', 'hrule', 'hsize', 'hskip', 'hss', 'ht', +'hyphenation', 'hyphenchar', 'hyphenpenalty', 'if', 'ifcase', 'ifcat', +'ifdim', 'ifeof', 'iffalse', 'ifhbox', 'ifhmode', 'ifinner', +'ifmmode', 'ifnum', 'ifodd', 'iftrue', 'ifvbox', 'ifvmode', 'ifvoid', +'ifx', 'ignorespaces', 'immediate', 'indent', 'input', 'inputlineno', +'insert', 'insertpenalties', 'interlinepenalty', 'jobname', 'kern', +'language', 'lastbox', 'lastkern', 'lastpenalty', 'lastskip', +'lccode', 'leaders', 'left', 'lefthyphenmin', 'leftskip', 'leqno', +'let', 'limits', 'linepenalty', 'lineskip', 'lineskiplimit', 'long', +'looseness', 'lower', 'lowercase', 'mag', 'mark', 'mathaccent', +'mathbin', 'mathchar', 'mathchardef', 'mathchoice', 'mathclose', +'mathcode', 'mathinner', 'mathop', 'mathopen', 'mathord', 'mathpunct', +'mathrel', 'mathsurround', 'maxdeadcycles', 'maxdepth', 'meaning', +'medmuskip', 'message', 'mkern', 'month', 'moveleft', 'moveright', +'mskip', 'multiply', 'muskip', 'muskipdef', 'newlinechar', 'noalign', +'noboundary', 'noexpand', 'noindent', 'nolimits', 'nonscript', +'nonstopmode', 'nulldelimiterspace', 'nullfont', 'number', 'omit', +'openin', 'openout', 'or', 'outer', 'output', 'outputpenalty', 'over', +'overfullrule', 'overline', 'overwithdelims', 'pagedepth', +'pagefilllstretch', 'pagefillstretch', 'pagefilstretch', 'pagegoal', +'pageshrink', 'pagestretch', 'pagetotal', 'parfillskip', 'parindent', +'parshape', 'parskip', 'patterns', 'pausing', 'penalty', +'postdisplaypenalty', 'predisplaypenalty', 'predisplaysize', +'pretolerance', 'prevdepth', 'prevgraf', 'radical', 'raise', 'read', +'relax', 'relpenalty', 'right', 'righthyphenmin', 'rightskip', +'romannumeral', 'scriptfont', 'scriptscriptfont', 'scriptscriptstyle', +'scriptspace', 'scriptstyle', 'scrollmode', 'setbox', 'setlanguage', +'sfcode', 'shipout', 'show', 'showbox', 'showboxbreadth', +'showboxdepth', 'showlists', 'showthe', 'skewchar', 'skip', 'skipdef', +'spacefactor', 'spaceskip', 'span', 'special', 'splitbotmark', +'splitfirstmark', 'splitmaxdepth', 'splittopskip', 'string', +'tabskip', 'textfont', 'textstyle', 'the', 'thickmuskip', +'thinmuskip', 'time', 'toks', 'toksdef', 'tolerance', 'topmark', +'topskip', 'tracingcommands', 'tracinglostchars', 'tracingmacros', +'tracingonline', 'tracingoutput', 'tracingpages', 'tracingparagraphs', +'tracingrestores', 'tracingstats', 'uccode', 'uchyph', 'underline', +'unhbox', 'unhcopy', 'unkern', 'unpenalty', 'unskip', 'unvbox', +'unvcopy', 'uppercase', 'vadjust', 'valign', 'vbadness', 'vbox', +'vcenter', 'vfil', 'vfill', 'vfilneg', 'vfuzz', 'voffset', 'vrule', +'vsize', 'vskip', 'vsplit', 'vss', 'vtop', 'wd', 'widowpenalty', +'write', 'xdef', 'xleaders', 'xspaceskip', 'year'] + + + +data = open('_tex2tok.tex').read() +sys.stdout = open('tex2tok.tex', 'wt') + +print '% Automatically generated from _tex2tok.tex by helper.py' +print '\catcode`\!=11' +print '\let\!let\let' +for char in '-/ ': + print r'\!let\%s\undefined' % char +for name in primitives: + print r'\!let\!%s\%s \!let\%s\undefined' % (name, name, name) + + +cs_re = re.compile(r'\\([@a-zA-Z])') +transform = cs_re.sub(r'\\!\1', data) + + + +print transform |