##// END OF EJS Templates
Merge pull request #4466 from minrk/pandoc-preamble...
Merge pull request #4466 from minrk/pandoc-preamble various pandoc latex fixes - add missing declarations to latex_base (required for pandoc-highlighted code in markdown) - fix ansi color in latex, which didn't work in a variety of ways. closes #4245

File last commit:

r13440:325e76d8
r13509:14625dfd merge
Show More
latex_base.tplx
228 lines | 8.4 KiB | text/plain | TextLexer
((= 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.=))
((*- extends 'display_priority.tplx' -*))
%===============================================================================
% Abstract overrides
%===============================================================================
((* block header *))
((* block docclass *))((* endblock docclass *))
((* block packages *))
\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[mathletters]{ucs} % Extended unicode (utf-8) support
\usepackage{fancyvrb} % verbatim replacement that allows latex
\usepackage{grffile} % extends the file name processing of package graphics
% to support a larger range
% 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}
\usepackage{longtable} % longtable support required by pandoc >1.10
((* endblock packages *))
((* block definitions *))
\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}
% ansi colors
\definecolor{red}{rgb}{.6,0,0}
\definecolor{green}{rgb}{0,.65,0}
\definecolor{brown}{rgb}{0.6,0.6,0}
\definecolor{blue}{rgb}{0,.145,.698}
\definecolor{purple}{rgb}{.698,.145,.698}
\definecolor{cyan}{rgb}{0,.698,.698}
\definecolor{lightgray}{gray}{0.5}
% bright ansi colors
\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}
% commands and environments needed by pandoc snippets
% extracted from the output of `pandoc -s`
\DefineShortVerb[commandchars=\\\{\}]{\|}
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
% Add ',fontsize=\small' for more characters per line
\newenvironment{Shaded}{}{}
\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}}
\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{{#1}}}
\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}}
\newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}}
\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}}
\newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}}
\newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}}
\newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{{#1}}}}
\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{{#1}}}
\newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}}
\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{{#1}}}
\newcommand{\RegionMarkerTok}[1]{{#1}}
\newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}}
\newcommand{\NormalTok}[1]{{#1}}
% Define a nice break command that doesn't care if a line doesn't already
% exist.
\def\br{\hspace*{\fill} \\* }
% Math Jax compatability definitions
\def\gt{>}
\def\lt{<}
% Document parameters
((* block title *))\title{((( resources.metadata.name | escape_latex )))}((* endblock title *))
((* block date *))((* endblock date *))
((* block author *))((* endblock author *))
((* endblock definitions *))
((* block commands *))
% Prevent overflowing lines due to hard-to-break entities
\sloppy
% 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
((* block margins *))
\geometry{verbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in}
((* endblock margins *))
((* endblock commands *))
((* endblock header *))
((* block body *))
\begin{document}
((* block predoc *))
((* block maketitle *))\maketitle((* endblock maketitle *))
((* block abstract *))((* endblock abstract *))
((* endblock predoc *))
((( super() )))
% Add a bibliography block to the postdoc
((* block postdoc *))
((* block bibliography *))((* endblock bibliography *))
((* endblock postdoc *))
\end{document}
((* endblock body *))
%===============================================================================
% Support blocks
%===============================================================================
% Displaying simple data text
((* block data_text *))
\begin{verbatim}
((( output.text )))
\end{verbatim}
((* endblock data_text *))
% Display python error text as-is
((* block pyerr *))
\begin{Verbatim}[commandchars=\\\{\}]
((( super() )))
\end{Verbatim}
((* endblock pyerr *))
((* block traceback_line *))
((( line | indent | strip_ansi | escape_latex )))
((* endblock traceback_line *))
% Display stream ouput with coloring
((* block stream *))
\begin{Verbatim}[commandchars=\\\{\}]
((( output.text | escape_latex | ansi2latex )))
\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}
\adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{((( filename )))}
\end{center}
{ \hspace*{\fill} \\}
((*- endblock figure -*))
((*- endmacro *))
% Draw heading cell. Explicitly map different cell levels.
((* block headingcell scoped *))
((* if cell.level == 1 -*))
((* block h1 -*))\section((* endblock h1 -*))
((* elif cell.level == 2 -*))
((* block h2 -*))\subsection((* endblock h2 -*))
((* elif cell.level == 3 -*))
((* block h3 -*))\subsubsection((* endblock h3 -*))
((* elif cell.level == 4 -*))
((* block h4 -*))\paragraph((* endblock h4 -*))
((* elif cell.level == 5 -*))
((* block h5 -*))\subparagraph((* endblock h5 -*))
((* elif cell.level == 6 -*))
((* block h6 -*))\\*\textit((* endblock h6 -*))
((*- endif -*))
{((( cell.source | replace('\n', ' ') | citation2latex | markdown2latex )))}
((* endblock headingcell *))
% Redirect pyout to display data priority.
((* block pyout scoped *))
((* block data_priority scoped *))
((( super() )))
((* endblock *))
((* endblock pyout *))
% Render markdown
((* block markdowncell scoped *))
((( cell.source | citation2latex | markdown2latex )))
((* 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 *))