diff --git a/setup_main_tex_file.py b/setup_main_tex_file.py index f1d30df..adbc290 100755 --- a/setup_main_tex_file.py +++ b/setup_main_tex_file.py @@ -11,7 +11,8 @@ from jinja2 import Environment, FileSystemLoader LICENSES = {'CC-by-sa-2.0': 'license-cc-by-sa-2.0', } -LATEX_SUBS = {} +LATEX_SUBS = [(re.compile('_'), '\\_'), + ] def get_unique_name(base): @@ -73,7 +74,12 @@ def main(): license = LICENSES.get(args.license, 'license-cc-by-sa-2.0') + document_class = args.format + content = 'sli' if document_class == 'beamer' else 'rep' + env = {'root': root, + 'class': document_class, + 'content': content, 'title': title, 'author': author, 'client': client, @@ -97,7 +103,7 @@ def main(): re_class = re.compile(r'\\documentclass\{(?P.*)\}') #skbconfig_re = re.compile(r'\\skbconfig\[\s*root\s*=\s*(?P.*),\s*rep\s*=\s*(?P.*),\s*pub\s*=\s*(?P.*),\s*fig\s*=\s*(?P.*),\s*sli\s*=\s*(?P.*),\s*acr\s*=\s*(?P.*),\s*bib\s*=\s*(?P.*),\s*\]\{skblocal.tex\}', re.M) skbconfig_re = re.compile(r'\\skbconfig\[\n\s*root\s*=\s*(?P.*),\n\s*rep\s*=\s*(?P.*),\n\s*pub\s*=\s*(?P.*),\n\s*fig\s*=\s*(?P.*),\n\s*sli\s*=\s*(?P.*),\n\s*acr\s*=\s*(?P.*),\n\s*bib\s*=\s*(?P.*)\n\s*\]\{skblocal.tex\}', re.M) - skbinput_re = re.compile(r'\\skbinput\[from=(?P.*)\]\{(?P.*?)\}') + skbinput_re = re.compile(r'[^%]\\skbinput\[from=(?P.*)\]\{(?P.*?)\}', re.M) with open(args.master, 'r') as master: tex_master = master.read() tex_class = re_class.search(tex_master) @@ -110,10 +116,11 @@ def main(): basename = '{0}.tex'.format(path.basename(skbinput.group('tex'))) dest = path.join(rep, basename) if not path.isfile(dest): + print(dest) if not path.isdir(rep): makedirs(rep) template = jinja_env.get_template('frame.tex') - env = {'title': '', 'subtitle': '', + env = {'title': basename, 'subtitle': '', 'name': dest} rendered_template = template.render(**env) with open(dest, 'w') as rendered_file: @@ -148,6 +155,7 @@ def main(): parser = argparse.ArgumentParser(description="Préparation des fichiers tex") subparsers = parser.add_subparsers(help='Aide des sous-commandes') parser_init = subparsers.add_parser('init', help='Initialisation du fichier maître') + parser_init.add_argument('-f', '--format', help="Format du document", required=True) parser_init.add_argument('-n', '--name', help="Nom du fichier à créer", required=True) parser_init.add_argument('-a', '--author', help="Auteur de la formation") parser_init.add_argument('-c', '--client', help="Client") diff --git a/templates/frame.tex b/templates/frame.tex index abdc096..3cc988a 100644 --- a/templates/frame.tex +++ b/templates/frame.tex @@ -1,5 +1,5 @@ \begin{frame} - \frametitle{(((title)))} - fichier (((name))) à éditer + \frametitle{(((title|escape_tex)))} + fichier (((name|escape_tex))) à éditer % contenu (pas trop long) de la diapositive \end{frame} diff --git a/templates/main.tex b/templates/main.tex index 74271d3..dc2da3c 100644 --- a/templates/main.tex +++ b/templates/main.tex @@ -1,4 +1,4 @@ -\documentclass{beamer} +\documentclass{(((class)))} \usepackage{skb} @@ -12,7 +12,7 @@ bib = database/bib ]{skblocal.tex} -\skbinput[from=rep]{style/preambule_slides} +\skbinput[from=(((content)))]{style/preambule} \title[]{(((title)))} \subtitle{(((client)))} @@ -35,12 +35,12 @@ \begin{document} -\skbinput[from=rep]{style/title} +\skbinput[from=(((content)))]{style/title} % Corps de la formation -%\skbinput[from=slides]{} +%\skbinput[from=(((content)))]{} -\skbinput[from=rep]{licences/(((license)))} +\skbinput[from=(((content)))]{licences/(((license)))} \end{document}