summaryrefslogtreecommitdiffstats
path: root/Doc/text2latex.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1993-11-05 14:45:11 (GMT)
committerGuido van Rossum <guido@python.org>1993-11-05 14:45:11 (GMT)
commit7a2dba2a00cee7e3dff61849e9111073684b6ab7 (patch)
tree0ec359ce267efc71e03a438e8dfbb7e85b9f6afb /Doc/text2latex.py
parentc60041175547df61e67ff167bd5ad18f7967795d (diff)
downloadcpython-7a2dba2a00cee7e3dff61849e9111073684b6ab7.zip
cpython-7a2dba2a00cee7e3dff61849e9111073684b6ab7.tar.gz
cpython-7a2dba2a00cee7e3dff61849e9111073684b6ab7.tar.bz2
* ext.tex: documentation for extending, reference counts, and embedding
(formerly ../misc/{EXTENDING,REFCNT,EMBEDDING}). Also affects Makefile. * text2latex.py: script to do part of the conversion from an plain ASCI text file (in my particular style) to LaTeX. (Chapter/section/subsection headers, and verbatim sections.) * partparse.py, texipre.dat, fix.el, Makefile: Minor cleanup of latex -> info conversion process (at least it works again, and with less debugging output). Removed fix.sh. * lib1.tex (section{Built-in Functions}): adapt description of str() and repr() to new situation. * lib3.tex (Module os): added exec*() variants. * lib3.tex (Module posix): added execve(). * lib2.tex (Module array): documented reality; remove typecode and itemsize, add byteswap, rename read/write to fromfile/tofile, and re-alphabetized. * lib1.tex (Built-in Functions): renamed bagof() to filter().
Diffstat (limited to 'Doc/text2latex.py')
-rw-r--r--Doc/text2latex.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/Doc/text2latex.py b/Doc/text2latex.py
new file mode 100644
index 0000000..3d28431
--- /dev/null
+++ b/Doc/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)