def composer_postprocessor(source): """ Adds the necessary boilerplate commands to the LaTeX file if they are not present as well as enables solutions if the option is set. Performs some rough formatting. :param source: The source to transform :return: The transformed source """ if not '\\documentclass' in source: source = '\\documentclass[12pt]{exam}\\usepackage[pdftex]{graphicx}\\begin{document}' + source + '\\end{document}' if options.state.solutions(): source = re.sub(r'\\documentclass\[', r'\documentclass[answers,', source) source = re.sub(r'\\documentclass{', r'\documentclass[answers]{', source) source = re.sub( r'\\includegraphics\[(.*?)\]\{(.*?)\}', lambda m: '\\includegraphics[' + m.group(1) + ']{' + fileutil.find_file(m.group(2)) + '}', source) source = re.sub(r'(\n(((\\%)|[^%\n])*))\\include', r'\1\n\n\\include', source) return source
def composer_postprocessor(source): """ Adds the necessary boilerplate commands to the LaTeX file if they are not present as well as enables solutions if the option is set. Performs some rough formatting. :param source: The source to transform :return: The transformed source """ if not "\\documentclass" in source: source = ( "\\documentclass[12pt]{exam}\\usepackage[pdftex]{graphicx}\\begin{document}" + source + "\\end{document}" ) if options.state.solutions(): source = re.sub(r"\\documentclass\[", r"\documentclass[answers,", source) source = re.sub(r"\\documentclass{", r"\documentclass[answers]{", source) source = re.sub( r"\\includegraphics\[(.*?)\]\{(.*?)\}", lambda m: "\\includegraphics[" + m.group(1) + "]{" + fileutil.find_file(m.group(2)) + "}", source, ) source = re.sub(r"(\n(((\\%)|[^%\n])*))\\include", r"\1\n\n\\include", source) return source
def import_questions(*paths): import fileutil for path in paths: path = fileutil.find_file(path) print(fileutil.read(path))