From 055c7a343fac6e5836db1738aca74563c003368f Mon Sep 17 00:00:00 2001 From: RunasSudo Date: Tue, 30 Nov 2021 19:38:14 +1100 Subject: [PATCH] Allow customising LaTeX preamble --- legalmd/__main__.py | 1 + legalmd/latex_renderer.py | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/legalmd/__main__.py b/legalmd/__main__.py index b987840..4d06852 100644 --- a/legalmd/__main__.py +++ b/legalmd/__main__.py @@ -42,6 +42,7 @@ with renderer_cls() as renderer: doc.lmarg = rawdoc.get('lmarg', '1cm') doc.contentsmarg = rawdoc.get('contentsmarg', '1cm') + doc.latexpre = rawdoc.get('latexpre', '') doc.full_label_map = {} diff --git a/legalmd/latex_renderer.py b/legalmd/latex_renderer.py index 43305a0..c6204f9 100644 --- a/legalmd/latex_renderer.py +++ b/legalmd/latex_renderer.py @@ -278,6 +278,9 @@ class LaTeXRenderer(mistletoe.latex_renderer.LaTeXRenderer): template = r''' \documentclass[a4paper,12pt]{article} +\def\LegalEndPreamble{} +\def\LegalBeforeContent{} + % Configuration \usepackage[top=1.25cm,bottom=1.13cm,inner=2cm,outer=2cm,headheight=8pt,headsep=0.5cm,footskip=1cm,includehead,includefoot]{geometry} @@ -311,12 +314,14 @@ class LaTeXRenderer(mistletoe.latex_renderer.LaTeXRenderer): \setmathfont[RawFeature=-tlig]{TeX Gyre Termes Math} \newfontfamily{\freeserif}{FreeSerif}[RawFeature=-tlig] \renewcommand{\familydefault}{\sfdefault} +\LegalEndPreamble % Front matter \begin{document} \fancypagestyle{plain}{\fancyhf{}} \pagestyle{fancy}\fancyhf{}\renewcommand{\headrulewidth}{0pt} \lhead{\textsf{\scriptsize }}\rhead{\textsf{\scriptsize <author>}}\lfoot{\textsf{\scriptsize <footer>}}\rfoot{\textsf{\scriptsize\thepage}} \pagenumbering{roman} +\LegalBeforeContent {\bfseries\centering\fontsize{13pt}{15pt}\selectfont\uppercase{<title>}\par INDEX\par} \makeatletter\@starttoc{toc}\makeatother \newpage\pagenumbering{arabic} @@ -326,6 +331,7 @@ class LaTeXRenderer(mistletoe.latex_renderer.LaTeXRenderer): self.footnotes.update(token.footnotes) return format(template, inner=self.render_inner(token), + latexpre=token.latexpre, packages=self.render_packages(), title=self.render_raw_text(mistletoe.span_token.RawText(token.title)), author=self.render_raw_text(mistletoe.span_token.RawText(token.author)),