Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
17 changed files
with
939 additions
and
33 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
c = get_config() | ||
|
||
#Export all the notebooks in the current directory to the sphinx_howto format. | ||
c.NbConvertApp.notebooks = ['*.ipynb'] | ||
c.NbConvertApp.export_format = 'latex' | ||
c.NbConvertApp.postprocessor_class = 'PDF' | ||
|
||
c.Exporter.template_file = 'my_output.tplx' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
|
||
% Tell the templating engine to use our cell style. | ||
((* set cell_style = 'style_hr.tplx' *)) | ||
|
||
% Tell the templating engine what output template we want to use. | ||
((* extends 'latex_article.tplx' *)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
((= Simple input/output style =)) | ||
|
||
((*- extends 'latex_base.tplx' -*)) | ||
|
||
% Custom packages | ||
((* block packages *)) | ||
((( super() ))) | ||
|
||
\usepackage{needspace} % Make prompts follow contents | ||
((* endblock packages *)) | ||
|
||
% Custom definitions | ||
((* block definitions *)) | ||
((( super() ))) | ||
|
||
% Pygments definitions | ||
((( resources.latex.pygments_definitions ))) | ||
|
||
\newlength{\promptspace} | ||
\setlength{\promptspace}{4\baselineskip} % Space needed to start a new | ||
% input/output | ||
((* endblock definitions *)) | ||
%=============================================================================== | ||
% Input | ||
%=============================================================================== | ||
|
||
((*- block in_prompt scoped -*)) | ||
\par\vspace{-1\baselineskip} | ||
((( draw_prompt('Input') ))) | ||
((*- endblock in_prompt -*)) | ||
|
||
((*- block input_group scoped -*)) | ||
(((- super() ))) | ||
\par\vspace{-2\baselineskip} | ||
((* endblock input_group -*)) | ||
|
||
((* block input scoped *)) | ||
((( cell.input | highlight2latex ))) | ||
((* endblock input *)) | ||
|
||
%=============================================================================== | ||
% Output | ||
%=============================================================================== | ||
|
||
((*- block output_prompt scoped -*)) | ||
((( draw_prompt('Output') ))) | ||
((*- endblock output_prompt -*)) | ||
|
||
((*- block output_group scoped -*)) | ||
(((- super() ))) | ||
\par\vspace{-1\baselineskip} | ||
((* endblock output_group -*)) | ||
|
||
%============================================================================== | ||
% Support Macros | ||
%============================================================================== | ||
|
||
% Name: draw_prompt | ||
% Purpose: Renders an output/input prompt for notebook style pdfs | ||
((* macro draw_prompt(prompt) *)) | ||
% Add a horizantal break, along with break title. | ||
\needspace{\promptspace} | ||
\br\br | ||
{\scriptsize ((( prompt )))} | ||
\br | ||
\rule[10pt]{\linewidth}{0.5pt} | ||
\vspace{-2.5em} | ||
((* endmacro *)) |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
((= This line selects the cell style. =)) | ||
((* set cell_style = 'style_notebook.tplx' *)) | ||
((* set cell_style = 'style_python.tplx' *)) | ||
|
||
((= This line inherits from the built in template that you want to use. =)) | ||
((* extends 'latex_article.tplx' *)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
c = get_config() | ||
|
||
#Export all the notebooks in the current directory to the sphinx_howto format. | ||
c.NbConvertApp.notebooks = ['*.ipynb'] | ||
c.NbConvertApp.export_format = 'latex' | ||
c.NbConvertApp.postprocessor_class = 'PDF' | ||
|
||
c.Exporter.template_file = 'my_output.tplx' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
|
||
% Tell the templating engine to use our cell style. | ||
((* set cell_style = 'style_notebook.tplx' *)) | ||
|
||
% Tell the templating engine what output template we want to use. | ||
((* extends 'latex_article.tplx' *)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,191 @@ | ||
((= Notebook input/output style =)) | ||
|
||
((* extends 'latex_base.tplx' *)) | ||
|
||
% Custom packages | ||
((* block packages *)) | ||
((( super() ))) | ||
|
||
\usepackage{tikz} % Needed to box output/input | ||
\usepackage{scrextend} % Used to indent output | ||
\usepackage{needspace} % Make prompts follow contents | ||
\usepackage{framed} % Used to draw output that spans multiple pages | ||
((* endblock packages *)) | ||
|
||
% Custom definitions | ||
((* block definitions *)) | ||
((( super() ))) | ||
|
||
% Pygments definitions | ||
((( resources.latex.pygments_definitions ))) | ||
|
||
% NB prompt colors | ||
\definecolor{nbframe-border}{rgb}{0.867,0.867,0.867} | ||
\definecolor{nbframe-bg}{rgb}{0.969,0.969,0.969} | ||
\definecolor{nbframe-in-prompt}{rgb}{0.0,0.0,0.502} | ||
\definecolor{nbframe-out-prompt}{rgb}{0.545,0.0,0.0} | ||
|
||
% NB prompt lengths | ||
\newlength{\inputpadding} | ||
\setlength{\inputpadding}{0.5em} | ||
\newlength{\cellleftmargin} | ||
\setlength{\cellleftmargin}{0.15\linewidth} | ||
\newlength{\borderthickness} | ||
\setlength{\borderthickness}{0.4pt} | ||
\newlength{\smallerfontscale} | ||
\setlength{\smallerfontscale}{9.5pt} | ||
|
||
% NB prompt font size | ||
\def\smaller{\fontsize{\smallerfontscale}{\smallerfontscale}\selectfont} | ||
|
||
% Define a background layer, in which the nb prompt shape is drawn | ||
\pgfdeclarelayer{background} | ||
\pgfsetlayers{background,main} | ||
\usetikzlibrary{calc} | ||
|
||
% define styles for the normal border and the torn border | ||
\tikzset{ | ||
normal border/.style={draw=nbframe-border, fill=nbframe-bg, | ||
rectangle, rounded corners=2.5pt, line width=\borderthickness}, | ||
torn border/.style={draw=white, fill=white, line width=\borderthickness}} | ||
|
||
% Macro to draw the shape behind the text, when it fits completly in the | ||
% page | ||
\def\notebookcellframe#1{% | ||
\tikz{% | ||
\node[inner sep=\inputpadding] (A) {#1};% Draw the text of the node | ||
\begin{pgfonlayer}{background}% Draw the shape behind | ||
\fill[normal border]% | ||
(A.south east) -- ($(A.south west)+(\cellleftmargin,0)$) -- | ||
($(A.north west)+(\cellleftmargin,0)$) -- (A.north east) -- cycle; | ||
\end{pgfonlayer}}}% | ||
|
||
% Macro to draw the shape, when the text will continue in next page | ||
\def\notebookcellframetop#1{% | ||
\tikz{% | ||
\node[inner sep=\inputpadding] (A) {#1}; % Draw the text of the node | ||
\begin{pgfonlayer}{background} | ||
\fill[normal border] % Draw the ``complete shape'' behind | ||
(A.south east) -- ($(A.south west)+(\cellleftmargin,0)$) -- | ||
($(A.north west)+(\cellleftmargin,0)$) -- (A.north east) -- cycle; | ||
\fill[torn border] % Add the torn lower border | ||
($(A.south east)-(0,.1)$) -- ($(A.south west)+(\cellleftmargin,-.1)$) -- | ||
($(A.south west)+(\cellleftmargin,.1)$) -- ($(A.south east)+(0,.1)$) -- cycle; | ||
\end{pgfonlayer}}} | ||
|
||
% Macro to draw the shape, when the text continues from previous page | ||
\def\notebookcellframebottom#1{% | ||
\tikz{% | ||
\node[inner sep=\inputpadding] (A) {#1}; % Draw the text of the node | ||
\begin{pgfonlayer}{background} | ||
\fill[normal border] % Draw the ``complete shape'' behind | ||
(A.south east) -- ($(A.south west)+(\cellleftmargin,0)$) -- | ||
($(A.north west)+(\cellleftmargin,0)$) -- (A.north east) -- cycle; | ||
\fill[torn border] % Add the torn upper border | ||
($(A.north east)-(0,.1)$) -- ($(A.north west)+(\cellleftmargin,-.1)$) -- | ||
($(A.north west)+(\cellleftmargin,.1)$) -- ($(A.north east)+(0,.1)$) -- cycle; | ||
\end{pgfonlayer}}} | ||
|
||
% Macro to draw the shape, when both the text continues from previous page | ||
% and it will continue in next page | ||
\def\notebookcellframemiddle#1{% | ||
\tikz{% | ||
\node[inner sep=\inputpadding] (A) {#1}; % Draw the text of the node | ||
\begin{pgfonlayer}{background} | ||
\fill[normal border] % Draw the ``complete shape'' behind | ||
(A.south east) -- ($(A.south west)+(\cellleftmargin,0)$) -- | ||
($(A.north west)+(\cellleftmargin,0)$) -- (A.north east) -- cycle; | ||
\fill[torn border] % Add the torn lower border | ||
($(A.south east)-(0,.1)$) -- ($(A.south west)+(\cellleftmargin,-.1)$) -- | ||
($(A.south west)+(\cellleftmargin,.1)$) -- ($(A.south east)+(0,.1)$) -- cycle; | ||
\fill[torn border] % Add the torn upper border | ||
($(A.north east)-(0,.1)$) -- ($(A.north west)+(\cellleftmargin,-.1)$) -- | ||
($(A.north west)+(\cellleftmargin,.1)$) -- ($(A.north east)+(0,.1)$) -- cycle; | ||
\end{pgfonlayer}}} | ||
|
||
% Define the environment which puts the frame | ||
% In this case, the environment also accepts an argument with an optional | ||
% title (which defaults to ``Example'', which is typeset in a box overlaid | ||
% on the top border | ||
\newenvironment{notebookcell}[1][0]{% | ||
\def\FrameCommand{\notebookcellframe}% | ||
\def\FirstFrameCommand{\notebookcellframetop}% | ||
\def\LastFrameCommand{\notebookcellframebottom}% | ||
\def\MidFrameCommand{\notebookcellframemiddle}% | ||
\par\vspace{1\baselineskip}% | ||
\MakeFramed {\FrameRestore}% | ||
\noindent\tikz\node[inner sep=0em] at ($(A.north west)-(0,0)$) {% | ||
((( draw_prompt("In", "#1", "nbframe-in-prompt", "2pt") )))% | ||
}; \par}% | ||
{\endMakeFramed} | ||
|
||
((* endblock definitions *)) | ||
|
||
%=============================================================================== | ||
% Input | ||
%=============================================================================== | ||
|
||
((* block input scoped *)) | ||
% Add contents below. | ||
|
||
{\par% | ||
\vspace{-1\baselineskip}% | ||
\needspace{4\baselineskip}}% | ||
\begin{notebookcell}[((( cell.prompt_number )))]% | ||
\begin{addmargin}[\cellleftmargin]{0em}% left, right | ||
{\smaller% | ||
\par% | ||
((* block extra_input_spacing *))((* endblock extra_input_spacing *))% | ||
\vspace{-1\smallerfontscale}% | ||
((( cell.input | highlight2latex )))% | ||
\par% | ||
\vspace{-1\smallerfontscale}}% | ||
\end{addmargin} | ||
\end{notebookcell} | ||
|
||
((* endblock input *)) | ||
|
||
%=============================================================================== | ||
% Output | ||
%=============================================================================== | ||
|
||
((* block output -*)) | ||
\par\vspace{1\smallerfontscale}% | ||
\needspace{4\baselineskip}% | ||
% Only render the prompt if the cell is pyout. Note, the outputs prompt | ||
% block isn't used since we need to check each indiviual output and only | ||
% add prompts to the pyout ones. | ||
((* if output.output_type in ['pyout'] *)) | ||
{\par% | ||
\vspace{-1\smallerfontscale}% | ||
\noindent% | ||
((( draw_prompt("Out", cell.prompt_number, "nbframe-out-prompt", "0em") )))% | ||
((* block extra_output_spacing *))((* endblock extra_output_spacing *))}% | ||
((* endif *))% | ||
% | ||
\begin{addmargin}[\cellleftmargin]{0em}% left, right | ||
{\smaller% | ||
\vspace{-1\smallerfontscale}% | ||
((( super() )))}% | ||
\end{addmargin}% | ||
((*- endblock output *)) | ||
|
||
%============================================================================== | ||
% Support Macros | ||
%============================================================================== | ||
|
||
% Name: draw_prompt | ||
% Purpose: Renders an output/input prompt for notebook style pdfs | ||
((* macro draw_prompt(prompt, number, color, space) -*)) | ||
\begin{minipage}{\cellleftmargin}% | ||
\hfill% | ||
{\smaller% | ||
\tt% | ||
\color{(((color)))}% | ||
(((prompt)))[(((number)))]:}% | ||
\hspace{\inputpadding}% | ||
\hspace{(((space)))}% | ||
\hspace{3pt}% | ||
\end{minipage}% | ||
((*- endmacro *)) | ||
|
Oops, something went wrong.