Welcome, guest | Sign In | My Account | Store | Cart

This script extracts contents of all verbatim environments from the LaTeX file specified on command line. Modified LaTeX code with \verbatiminput commands instead of verbatim is produced on the standard output.

Python, 26 lines
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26``` ```import re import sys def make_vgetter(): def counter(): i = 0 while True: i += 1 yield i cnt = counter() def get_verbatim(m): i = cnt.next() name = 'verbout%03d.txt' % i f = file(name, 'w') f.write(m.group(1)) f.close() return '\\verbatiminput{%s}' % name return get_verbatim if __name__ == "__main__": verbatim = re.compile(r'\\begin\{verbatim\}\n(.+?)\n\\end\{verbatim\}', re.S) f = file(sys.argv[1]) s = f.read() f.close() print verbatim.sub(make_vgetter(), s) ```

I needed to move all verbatims out of a .tex file and produced this script for the task. A trivial generator, simple function currying, and a deliberate side effect of the function passed to re.sub() are involved.

 Created by Artur de Sousa Rocha on Thu, 15 Jul 2004 (PSF)