diff options
Diffstat (limited to 'Doc/tools/text2latex.py')
-rw-r--r-- | Doc/tools/text2latex.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/Doc/tools/text2latex.py b/Doc/tools/text2latex.py new file mode 100644 index 0000000..3d28431 --- /dev/null +++ b/Doc/tools/text2latex.py @@ -0,0 +1,49 @@ +import os +import sys +import regex +import string +import getopt + +def main(): + process(sys.stdin, sys.stdout) + +dashes = regex.compile('^-+[ \t]*$') +equals = regex.compile('^=+[ \t]*$') +stars = regex.compile('^\*+[ \t]*$') +blank = regex.compile('^[ \t]*$') +indented = regex.compile('^\( *\t\| \)[ \t]*[^ \t]') + +def process(fi, fo): + inverbatim = 0 + line = '\n' + nextline = fi.readline() + while nextline: + prevline = line + line = nextline + nextline = fi.readline() + fmt = None + if dashes.match(nextline) >= 0: + fmt = '\\subsection{%s}\n' + elif equals.match(nextline) >= 0: + fmt = '\\section{%s}\n' + elif stars.match(nextline) >= 0: + fmt = '\\chapter{%s}\n' + if fmt: + nextline = '\n' + line = fmt % string.strip(line) + elif inverbatim: + if blank.match(line) >= 0 and \ + indented.match(nextline) < 0: + inverbatim = 0 + fo.write('\\end{verbatim}\n') + else: + if indented.match(line) >= 0 and \ + blank.match(prevline) >= 0: + inverbatim = 1 + fo.write('\\begin{verbatim}\n') + if inverbatim: + line = string.expandtabs(line, 4) + fo.write(line) + +#main() +process(open('ext.tex', 'r'), sys.stdout) |