LaTeX: собрать все файлы в один
Исходный документ LaTeX может содержать команды импорта другого файла \input{filename.tex}
. При активном использовании этой команды для того, чтобы разбить документ на разделы получается один основной документ, импортирующий другие файлы, которые в свою очередь могут импортировать другие и так далее. При необходимости собрать этот набор файлов в один, не содержащий команд импорта можно воспользоваться следующим скриптом.
#!/usr/bin/python
# prepare_tex.py
import sys
import re
def cat(fn):
return open(fn, 'rt').read().replace('\\', '====')
def prepare_tex(fn):
r = cat(fn)
for s in re.findall(r'====input{([-a-zA-Z._0-9/]*)}', r):
cs = prepare_tex(s)
r = re.sub(r'====input{' + s + '}', cs, r)
return r
print prepare_tex(sys.argv[1]).replace('====', '\\')
Скрипт необходимо сохранить под именем prepare_tex.py
в каталог с основным файлом, например main.tex
, после чего запустить:
$ python prepare_tex.py main.tex