|
|
|
import os
|
|
|
|
import subprocess
|
|
|
|
|
|
|
|
|
|
|
|
DO_NOT_MODIFY_PATTERN = '%DO_NOT_MODIFY{INFO}'
|
|
|
|
HEADER_PATTERN = '%HEADER{INFO}'
|
|
|
|
|
|
|
|
|
|
|
|
def format_for_latex(text):
|
|
|
|
text = text.replace('_', '\_')
|
|
|
|
return text
|
|
|
|
|
|
|
|
from .autofill_tools import replace_pattern
|
|
|
|
|
|
|
|
|
|
|
|
def extract_note(text):
|
|
|
|
text = replace_pattern(text, DO_NOT_MODIFY_PATTERN, 'INFO')
|
|
|
|
text = text.replace(DO_NOT_MODIFY_PATTERN, '')
|
|
|
|
text = replace_pattern(text, HEADER_PATTERN, 'INFO')
|
|
|
|
text = text.replace(HEADER_PATTERN, '')
|
|
|
|
return remove_empty_lines(text)
|
|
|
|
|
|
|
|
|
|
|
|
def remove_empty_lines(text):
|
|
|
|
cleaned_text = ''
|
|
|
|
for line in text.split('\n'):
|
|
|
|
if line.strip():
|
|
|
|
cleaned_text += line + '\n'
|
|
|
|
return cleaned_text[:-1]
|
|
|
|
|
|
|
|
|
|
|
|
def full_compile(full_path_to_file, verbose=False):
|
|
|
|
FNULL = None
|
|
|
|
if not verbose:
|
|
|
|
FNULL = open(os.devnull, 'w')
|
|
|
|
filename, extension = os.path.splitext(full_path_to_file)
|
|
|
|
run_pdflatex(filename, stdout=FNULL)
|
|
|
|
run_bibtex(filename, stdout=FNULL)
|
|
|
|
run_makeglossaries(filename, stdout=FNULL)
|
|
|
|
run_pdflatex(filename, stdout=FNULL, nb_time=3)
|
|
|
|
|
|
|
|
|
|
|
|
def run_command(command, full_path_to_file, stdout=None, nb_time=1):
|
|
|
|
origWD = os.getcwd() # remember our original working directory
|
|
|
|
folder, filename = os.path.split(full_path_to_file)
|
|
|
|
os.chdir(folder)
|
|
|
|
for _ in xrange(nb_time):
|
|
|
|
cmd = command.split()
|
|
|
|
cmd.append(filename)
|
|
|
|
subprocess.call(cmd, stdout=stdout)
|
|
|
|
os.chdir(origWD) # get back to our original working directory
|
|
|
|
|
|
|
|
|
|
|
|
def run_pdflatex(full_path_to_file, stdout=None, nb_time=1):
|
|
|
|
run_command('pdflatex', full_path_to_file, stdout, nb_time)
|
|
|
|
|
|
|
|
|
|
|
|
def run_bibtex(full_path_to_file, stdout=None, nb_time=1):
|
|
|
|
run_command('bibtex', full_path_to_file, stdout, nb_time)
|
|
|
|
|
|
|
|
|
|
|
|
def run_makeglossaries(full_path_to_file, stdout=None, nb_time=1):
|
|
|
|
run_command('makeglossaries', full_path_to_file, stdout, nb_time)
|