diff --git a/Doc/tools/text2latex.py b/Doc/tools/text2latex.py
deleted file mode 100644
index 93d0587..0000000
--- a/Doc/tools/text2latex.py
+++ /dev/null
@@ -1,55 +0,0 @@
-import os
-import sys
-import regex
-import regsub
-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)
-			if '(' in line:
-				line = regsub.gsub('[a-zA-Z0-9_]+()',
-					  '{\\\\tt \\0}', 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)
-		elif not fmt and '(' in line:
-			line = regsub.gsub('[a-zA-Z0-9_]+()',
-				  '\\\\code{\\0}', line)
-		fo.write(line)
-
-main()
