From c191669089061a5082dba997ca43d1db233c1b72 Mon Sep 17 00:00:00 2001 From: jwansek Date: Wed, 30 Mar 2022 17:53:21 +0100 Subject: added python latex escaping --- templates/tex.jinja2 | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 73 insertions(+), 2 deletions(-) (limited to 'templates/tex.jinja2') diff --git a/templates/tex.jinja2 b/templates/tex.jinja2 index 6aa366c..998ba37 100644 --- a/templates/tex.jinja2 +++ b/templates/tex.jinja2 @@ -1,6 +1,18 @@ +((* macro expand_function(function_name, function_contents, x = "Function") *)) + \texttt{((( tex_escape(function_name) )))}: + + ((* if function_contents["present"] *)) + Arguments: \texttt{((( tex_escape(function_contents["arguments"]) )))} + ((* else *)) + \errortext(Function \texttt{((( tex_escape(function_name) )))} not present.) + ((* endif *)) +((* endmacro *)) + \documentclass{article} \usepackage[margin=1in]{geometry} % margins +\usepackage{multicol} % columns +\usepackage{float} % layout \usepackage{forest} % for the class tree \usepackage{pdfpages} % for importing the test results pdf \usepackage{xcolor} % colours @@ -18,10 +30,12 @@ breaklines=true \begin{document} +\begin{multicols}{((( tex_columns )))} + \maketitle \section{Class Tree} -\begin{figure}[h] +\begin{figure}[H] \centering \begin{forest} ((( recurse_class_tree_forest(class_tree)|indent(8, False) ))) @@ -50,7 +64,7 @@ breaklines=true ((( files_contents["exception"]["traceback"] ))) \end{lstlisting} ((* else *)) - \subsubsection{Documentation:} + \textbf{Documentation:} ((( len_documentation(files_contents["documentation"]["comments"], files_contents["documentation"]["doc"]) ))) characters long ((* if tex_show_full_docs == "True" *)) @@ -77,6 +91,61 @@ breaklines=true ((* if "classes" in files_contents.keys() *)) \subsubsection{Classes} + ((* set flat_classes = flatten_struct(files_contents["classes"]) *)) + ((* for class_name, class_contents in flat_classes.items() *)) + + + \texttt{((( class_name )))}: + + ((* if class_contents["present"] *)) + \textbf{Documentation:} + + ((( len_documentation(class_contents["documentation"]["comments"], class_contents["documentation"]["doc"]) ))) characters long + ((* if tex_show_full_docs == "True" *)) + + + \textbf{Comments:} + + ((* if class_contents["documentation"]["comments"] == "None" *)) + \errortext{No comments present.} + ((* else *)) + \begin{lstlisting} +((( class_contents["documentation"]["comments"] ))) + \end{lstlisting} + ((* endif *)) + + + \textbf{Docstring:} + + ((* if class_contents["documentation"]["doc"] == "None" *)) + \errortext{No docstring present.} + ((* else *)) + \begin{lstlisting} +((( class_contents["documentation"]["doc"] ))) + \end{lstlisting} + ((* endif *)) + + ((* if "methods" in class_contents.keys() *)) + \textbf{Methods:} + ((* set flat_methods = flatten_struct(class_contents["methods"]) *)) + ((* for method_name, method_contents in flat_methods.items() *)) + ((( expand_function(method_name, method_contents, x = "Method") ))) + ((* endfor *)) + + + ((* endif *)) + + ((* endif *)) + + ((* else *)) + + \errortext{Class not present.} + + ((* endif *)) + + + ((* endfor *)) + ((* endif *)) @@ -93,4 +162,6 @@ breaklines=true \includepdf[pages={1-},scale=1.0]{((( junit_xml_to_html(test_results["junitxml"], student_no) )))} ((* endif *)) +\end{multicols} + \end{document} \ No newline at end of file -- cgit v1.2.3