latex_base.tplx
197 lines
| 6.9 KiB
| text/plain
|
TextLexer
|
r12660 | ((= Latex base template (must inherit) | ||
This template builds upon the abstract template, adding common latex output | ||||
functions. Figures, data_text, | ||||
This template does not define a docclass, the inheriting class must define this.=)) | ||||
|
r12750 | ((*- extends 'display_priority.tplx' -*)) | ||
|
r12660 | |||
%=============================================================================== | ||||
% Abstract overrides | ||||
%=============================================================================== | ||||
|
r12750 | ((* block header *)) | ||
((* block docclass *))((* endblock docclass *)) | ||||
((* block packages *)) | ||||
|
r12660 | \usepackage{graphicx} % Used to insert images | ||
\usepackage{adjustbox} % Used to constrain images to a maximum size | ||||
\usepackage{color} % Allow colors to be defined | ||||
\usepackage{enumerate} % Needed for markdown enumerations to work | ||||
\usepackage{geometry} % Used to adjust the document margins | ||||
\usepackage{amsmath} % Equations | ||||
\usepackage{amssymb} % Equations | ||||
\usepackage[utf8]{inputenc} % Allow utf-8 characters in the tex document | ||||
\usepackage{ucs} % Extended unicode (utf-8) support | ||||
|
r12692 | \usepackage{fancyvrb} % verbatim replacement that allows latex | ||
|
r12660 | \usepackage{grffile} % extends the file name processing of package graphics | ||
|
r12750 | % to support a larger range | ||
|
r12660 | % The hyperref package gives us a pdf with properly built | ||
% internal navigation ('pdf bookmarks' for the table of contents, | ||||
% internal cross-reference links, web links for URLs, etc.) | ||||
\usepackage{hyperref} | ||||
|
r12750 | ((* endblock packages *)) | ||
|
r12699 | |||
|
r12750 | ((* block definitions *)) | ||
|
r12660 | \definecolor{orange}{cmyk}{0,0.4,0.8,0.2} | ||
\definecolor{darkorange}{rgb}{.71,0.21,0.01} | ||||
\definecolor{darkgreen}{rgb}{.12,.54,.11} | ||||
\definecolor{myteal}{rgb}{.26, .44, .56} | ||||
\definecolor{gray}{gray}{0.45} | ||||
\definecolor{lightgray}{gray}{.95} | ||||
\definecolor{mediumgray}{gray}{.8} | ||||
\definecolor{inputbackground}{rgb}{.95, .95, .85} | ||||
\definecolor{outputbackground}{rgb}{.95, .95, .95} | ||||
\definecolor{traceback}{rgb}{1, .95, .95} | ||||
% new ansi colors | ||||
\definecolor{brown}{rgb}{0.54,0.27,0.07} | ||||
\definecolor{purple}{rgb}{0.5,0.0,0.5} | ||||
\definecolor{darkgray}{gray}{0.25} | ||||
\definecolor{lightred}{rgb}{1.0,0.39,0.28} | ||||
\definecolor{lightgreen}{rgb}{0.48,0.99,0.0} | ||||
\definecolor{lightblue}{rgb}{0.53,0.81,0.92} | ||||
\definecolor{lightpurple}{rgb}{0.87,0.63,0.87} | ||||
\definecolor{lightcyan}{rgb}{0.5,1.0,0.83} | ||||
|
r12672 | % Define a nice break command that doesn't care if a line doesn't already | ||
% exist. | ||||
\def\br{\hspace*{\fill} \\* } | ||||
|
r12747 | % Math Jax compatability definitions | ||
|
r12749 | \def\gt{>} | ||
|
r12747 | \def\lt{<} | ||
|
r12691 | % Document parameters | ||
((* block title *))\title{((( resources.metadata.name | escape_latex )))}((* endblock title *)) | ||||
((* block date *))((* endblock date *)) | ||||
((* block author *))((* endblock author *)) | ||||
|
r12750 | ((* endblock definitions *)) | ||
|
r12660 | |||
|
r12750 | ((* block commands *)) | ||
% Prevent overflowing lines due to hard-to-break entities | ||||
\sloppy | ||||
|
r12660 | % Setup hyperref package | ||
\hypersetup{ | ||||
breaklinks=true, % so long urls are correctly broken across lines | ||||
colorlinks=true, | ||||
urlcolor=blue, | ||||
linkcolor=darkorange, | ||||
citecolor=darkgreen, | ||||
} | ||||
% Slightly bigger margins than the latex defaults | ||||
|
r12698 | ((* block margins *)) | ||
\geometry{verbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in} | ||||
((* endblock margins *)) | ||||
|
r12750 | ((* endblock commands *)) | ||
((* endblock header *)) | ||||
|
r12660 | |||
|
r12750 | ((* block body *)) | ||
\begin{document} | ||||
((* block predoc *)) | ||||
|
r12681 | ((* block maketitle *))\maketitle((* endblock maketitle *)) | ||
|
r12734 | ((* block abstract *))((* endblock abstract *)) | ||
|
r12750 | ((* endblock predoc *)) | ||
((( super() ))) | ||||
% Add a bibliography block to the postdoc | ||||
((* block postdoc *)) | ||||
((* block bibliography *))((* endblock bibliography *)) | ||||
((* endblock postdoc *)) | ||||
\end{document} | ||||
((* endblock body *)) | ||||
|
r12681 | |||
|
r12660 | %=============================================================================== | ||
% Support blocks | ||||
%=============================================================================== | ||||
% Displaying simple data text | ||||
((* block data_text *)) | ||||
|
r12696 | \begin{verbatim} | ||
((( output.text ))) | ||||
\end{verbatim} | ||||
|
r12660 | ((* endblock data_text *)) | ||
% Display python error text as-is | ||||
((* block pyerr *)) | ||||
|
r12696 | \begin{Verbatim}[commandchars=\\\{\}] | ||
|
r12672 | ((( super() ))) | ||
\end{Verbatim} | ||||
|
r12660 | ((* endblock pyerr *)) | ||
((* block traceback_line *)) | ||||
((( line | indent | strip_ansi | escape_latex ))) | ||||
((* endblock traceback_line *)) | ||||
% Display stream ouput with coloring | ||||
((* block stream *)) | ||||
\begin{Verbatim}[commandchars=\\\{\}] | ||||
|
r12743 | ((( output.text | escape_latex | ansi2latex ))) | ||
|
r12660 | \end{Verbatim} | ||
((* endblock stream *)) | ||||
% Display latex | ||||
((* block data_latex -*)) | ||||
((*- if output.latex.startswith('$'): -*)) | ||||
((= Replace $ symbols with more explicit, equation block. =)) | ||||
\begin{equation*} | ||||
((( output.latex | strip_dollars ))) | ||||
\end{equation*} | ||||
((*- else -*)) | ||||
((( output.latex ))) | ||||
((*- endif *)) | ||||
((* endblock data_latex *)) | ||||
% Default mechanism for rendering figures | ||||
((*- block data_png -*))((( draw_figure(output.png_filename) )))((*- endblock -*)) | ||||
((*- block data_jpg -*))((( draw_figure(output.jpeg_filename) )))((*- endblock -*)) | ||||
((*- block data_svg -*))((( draw_figure(output.svg_filename) )))((*- endblock -*)) | ||||
((*- block data_pdf -*))((( draw_figure(output.pdf_filename) )))((*- endblock -*)) | ||||
% Draw a figure using the graphicx package. | ||||
((* macro draw_figure(filename) -*)) | ||||
((* set filename = filename | posix_path *)) | ||||
((*- block figure scoped -*)) | ||||
\begin{center} | ||||
|
r12672 | \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{((( filename )))} | ||
|
r12660 | \end{center} | ||
|
r12672 | { \hspace*{\fill} \\} | ||
|
r12660 | ((*- endblock figure -*)) | ||
((*- endmacro *)) | ||||
% Draw heading cell. Explicitly map different cell levels. | ||||
|
r12710 | ((* block headingcell scoped *)) | ||
((* if cell.level == 1 -*)) | ||||
|
r12660 | ((* block h1 -*))\section((* endblock h1 -*)) | ||
|
r12710 | ((* elif cell.level == 2 -*)) | ||
|
r12660 | ((* block h2 -*))\subsection((* endblock h2 -*)) | ||
|
r12710 | ((* elif cell.level == 3 -*)) | ||
|
r12660 | ((* block h3 -*))\subsubsection((* endblock h3 -*)) | ||
|
r12710 | ((* elif cell.level == 4 -*)) | ||
|
r12660 | ((* block h4 -*))\paragraph((* endblock h4 -*)) | ||
|
r12710 | ((* elif cell.level == 5 -*)) | ||
|
r12660 | ((* block h5 -*))\subparagraph((* endblock h5 -*)) | ||
|
r12710 | ((* elif cell.level == 6 -*)) | ||
|
r12660 | ((* block h6 -*))\\*\textit((* endblock h6 -*)) | ||
((*- endif -*)) | ||||
|
r12748 | {((( cell.source | replace('\n', ' ') | citation2latex | markdown2latex )))} | ||
|
r12710 | |||
((* endblock headingcell *)) | ||||
|
r12660 | |||
% Redirect pyout to display data priority. | ||||
((* block pyout scoped *)) | ||||
((* block data_priority scoped *)) | ||||
((( super() ))) | ||||
((* endblock *)) | ||||
((* endblock pyout *)) | ||||
% Render markdown | ||||
((* block markdowncell scoped *)) | ||||
|
r12739 | ((( cell.source | citation2latex | markdown2latex ))) | ||
|
r12660 | ((* endblock markdowncell *)) | ||
% Spit out the contents of raw cells unmodified | ||||
((* block rawcell scoped *)) | ||||
((( cell.source ))) | ||||
((* endblock rawcell *)) | ||||
% Don't display unknown types | ||||
((* block unknowncell scoped *)) | ||||
((* endblock unknowncell *)) | ||||