##// END OF EJS Templates
Added HR, pygments, made HR attach to first n lines.
Jonathan Frederic -
Show More
@@ -8,7 +8,7 b''
8
8
9 ==========================================================================))
9 ==========================================================================))
10
10
11 ((*- extends 'latex_base.tplx' -*))
11 ((*- extends 'display_priority.tplx' -*))
12
12
13 ((* block header *))
13 ((* block header *))
14
14
@@ -38,102 +38,19 b''
38 \usepackage{ucs}
38 \usepackage{ucs}
39 \usepackage{enumerate}
39 \usepackage{enumerate}
40
40
41 % Define a few colors for use in code, links and cell shading
41 % Pygments requirements
42 \usepackage{color}
42 \usepackage{fancyvrb}
43 \definecolor{orange}{cmyk}{0,0.4,0.8,0.2}
43 \usepackage{color}
44 \definecolor{darkorange}{rgb}{.71,0.21,0.01}
44
45 \definecolor{darkgreen}{rgb}{.12,.54,.11}
45 % For formatting output while also word wrapping.
46 \definecolor{myteal}{rgb}{.26, .44, .56}
46 \usepackage{listings}
47 \definecolor{gray}{gray}{0.45}
47 \lstset{breaklines=true}
48 \definecolor{lightgray}{gray}{.95}
48 \lstset{basicstyle=\small\ttfamily}
49 \definecolor{mediumgray}{gray}{.8}
49 %Pygments definitions
50 \definecolor{inputbackground}{rgb}{.95, .95, .85}
50 ((( resources.pygment_definitions )))
51 \definecolor{outputbackground}{rgb}{.95, .95, .95}
51
52 \definecolor{traceback}{rgb}{1, .95, .95}
52 % Prevent overflowing lines due to urls and other hard-to-break entities.
53
53 \sloppy
54 % Framed environments for code cells (inputs, outputs, errors, ...). The
55 % various uses of \unskip (or not) at the end were fine-tuned by hand, so don't
56 % randomly change them unless you're sure of the effect it will have.
57 \usepackage{framed}
58
59 % remove extraneous vertical space in boxes
60 \setlength\fboxsep{0pt}
61
62 % codecell is the whole input+output set of blocks that a Code cell can
63 % generate.
64
65 % TODO: unfortunately, it seems that using a framed codecell environment breaks
66 % the ability of the frames inside of it to be broken across pages. This
67 % causes at least the problem of having lots of empty space at the bottom of
68 % pages as new frames are moved to the next page, and if a single frame is too
69 % long to fit on a page, will completely stop latex from compiling the
70 % document. So unless we figure out a solution to this, we'll have to instead
71 % leave the codecell env. as empty. I'm keeping the original codecell
72 % definition here (a thin vertical bar) for reference, in case we find a
73 % solution to the page break issue.
74
75 %% \newenvironment{codecell}{%
76 %% \def\FrameCommand{\color{mediumgray} \vrule width 1pt \hspace{5pt}}%
77 %% \MakeFramed{\vspace{-0.5em}}}
78 %% {\unskip\endMakeFramed}
79
80 % For now, make this a no-op...
81 \newenvironment{codecell}{}
82
83 \newenvironment{codeinput}{%
84 \def\FrameCommand{\colorbox{inputbackground}}%
85 \MakeFramed{\advance\hsize-\width \FrameRestore}}
86 {\unskip\endMakeFramed}
87
88 \newenvironment{codeoutput}{%
89 \def\FrameCommand{\colorbox{outputbackground}}%
90 \vspace{-1.4em}
91 \MakeFramed{\advance\hsize-\width \FrameRestore}}
92 {\unskip\medskip\endMakeFramed}
93
94 \newenvironment{traceback}{%
95 \def\FrameCommand{\colorbox{traceback}}%
96 \MakeFramed{\advance\hsize-\width \FrameRestore}}
97 {\endMakeFramed}
98
99 % Use and configure listings package for nicely formatted code
100 \usepackage{listingsutf8}
101 \lstset{
102 language=python,
103 inputencoding=utf8x,
104 extendedchars=\true,
105 aboveskip=\smallskipamount,
106 belowskip=\smallskipamount,
107 xleftmargin=2mm,
108 breaklines=true,
109 basicstyle=\small \ttfamily,
110 showstringspaces=false,
111 keywordstyle=\color{blue}\bfseries,
112 commentstyle=\color{myteal},
113 stringstyle=\color{darkgreen},
114 identifierstyle=\color{darkorange},
115 columns=fullflexible, % tighter character kerning, like verb
116 }
117
118 % The hyperref package gives us a pdf with properly built
119 % internal navigation ('pdf bookmarks' for the table of contents,
120 % internal cross-reference links, web links for URLs, etc.)
121 \usepackage{hyperref}
122 \hypersetup{
123 breaklinks=true, % so long urls are correctly broken across lines
124 colorlinks=true,
125 urlcolor=blue,
126 linkcolor=darkorange,
127 citecolor=darkgreen,
128 }
129
130 % hardcode size of all verbatim environments to be a bit smaller
131 \makeatletter
132 \g@addto@macro\@verbatim\small\topsep=0.5em\partopsep=0pt
133 \makeatother
134
135 % Prevent overflowing lines due to urls and other hard-to-break entities.
136 \sloppy
137
54
138 % Document level variables
55 % Document level variables
139 \title{((( filterOutLatex(nb.metadata.name) )))}
56 \title{((( filterOutLatex(nb.metadata.name) )))}
@@ -149,6 +66,7 b''
149
66
150 ((* endblock header *))
67 ((* endblock header *))
151
68
69 ((* block body *))
152 ((* block bodyBegin *))
70 ((* block bodyBegin *))
153 % Body
71 % Body
154
72
@@ -157,7 +75,7 b''
157 \maketitle
75 \maketitle
158 \tableofcontents
76 \tableofcontents
159
77
160 ((* endblock bodyBegin *))((* block bodyEnd *))
78 ((* endblock bodyBegin *))((( super() )))((* block bodyEnd *))
161
79
162 \renewcommand{\indexname}{Index}
80 \renewcommand{\indexname}{Index}
163 \printindex
81 \printindex
@@ -165,6 +83,7 b''
165 % End of document
83 % End of document
166 \end{document}
84 \end{document}
167 ((* endblock bodyEnd *))
85 ((* endblock bodyEnd *))
86 ((* endblock body *))
168
87
169 % Footer
88 % Footer
170 ((* block footer *))
89 ((* block footer *))
@@ -184,7 +103,7 b''
184 ((* block h5 -*))subsubsection((* endblock h5 -*))
103 ((* block h5 -*))subsubsection((* endblock h5 -*))
185 ((*- elif cell.level == 6 -*))
104 ((*- elif cell.level == 6 -*))
186 ((* block h6 -*))paragraph((* endblock h6 -*))
105 ((* block h6 -*))paragraph((* endblock h6 -*))
187 ((*- endif -*)){((( filterOutLatex(cell.source) )))} ((= | markdown2latex =))
106 ((*- endif -*)){((( escapeUnderscores(cell.source | markdown2latex ) )))}
188 ((*- endblock headingcell *))
107 ((*- endblock headingcell *))
189
108
190 ((* block unknowncell scoped*))
109 ((* block unknowncell scoped*))
@@ -194,7 +113,7 b''
194 ((* endblock unknowncell *))
113 ((* endblock unknowncell *))
195
114
196 ((*- block markdowncell scoped-*))
115 ((*- block markdowncell scoped-*))
197 ((( super() )))
116 ((( cell.source | markdown2latex )))
198 ((*- endblock markdowncell -*))
117 ((*- endblock markdowncell -*))
199
118
200 ((= Raw text cells allow the user to manually inject document code that will
119 ((= Raw text cells allow the user to manually inject document code that will
@@ -203,6 +122,96 b' not get touched by the templating system. =))'
203 ((( cell.source )))
122 ((( cell.source )))
204 ((* endblock rawcell -*))
123 ((* endblock rawcell -*))
205
124
125 ((* block input *))
126 \vspace{10pt}
127 \begin{minipage}{\textwidth}
128 {\scriptsize Input}\\*
129 \rule[10pt]{\linewidth}{0.5pt}
130 \vspace{-25pt}
131 ((( cell.input | get_lines(end=3) | highlight2latex )))
132 \end{minipage}
133 ((( cell.input | get_lines(start=3) | highlight2latex )))
134 ((* endblock input *))
135
136 ((* block pyerr *))
137 \vspace{10pt}
138 \begin{minipage}{\textwidth}
139 {\scriptsize Output}\\*
140 \rule[10pt]{\linewidth}{0.5pt}
141 \vspace{-25pt}
142 \begin{lstlisting}
143 ((( super() | get_lines(end=3) )))
144 \end{lstlisting}
145 \end{minipage}
146 \begin{lstlisting}
147 ((( super() | get_lines(start=3) )))
148 \end{lstlisting}
149 ((* endblock pyerr *))
150
151 ((*- block display_data -*))
152 \vspace{10pt}
153 \begin{minipage}{\textwidth}
154 {\scriptsize Output}\\*
155 \rule[10pt]{\linewidth}{0.5pt}
156 \vspace{-20pt}
157 ((( super() )))
158 \end{minipage} \\
159 ((*- endblock display_data -*))
160
161 ((* block stream *))
162 \vspace{10pt}
163 \begin{minipage}{\textwidth}
164 {\scriptsize Output}\\*
165 \rule[10pt]{\linewidth}{0.5pt}
166 \vspace{-25pt}
167 \begin{lstlisting}
168 ((( output.text | get_lines(end=3) )))
169 \end{lstlisting}
170 \end{minipage}
171 \begin{lstlisting}
172 ((( output.text | get_lines(start=3) )))
173 \end{lstlisting}
174 ((* endblock stream *))
175
176 ((* block pyout *))
177 \vspace{10pt}
178 \begin{minipage}{\textwidth}
179 {\scriptsize Output}\\*
180 \rule[10pt]{\linewidth}{0.5pt}
181 \vspace{-25pt}
182 \begin{lstlisting}
183 ((( output.text | get_lines(end=3) )))
184 \end{lstlisting}
185 \end{minipage}
186 \begin{lstlisting}
187 ((( output.text | get_lines(start=3) )))
188 \end{lstlisting}
189 ((* endblock pyout *))
190
191 ((* block traceback_line *))
192 ((( line |indent| rm_ansi )))((* endblock traceback_line *))
193 ((= .... =))
194
195 ((* block data_text *))
196 \begin{lstlisting}
197 ((( output.text )))
198 \end{lstlisting}
199 ((* endblock *))
200
201 ((*- block data_png -*))
202 \begin{center}
203 \includegraphics[width=0.7\textwidth]{(((output.key_png)))}
204 \par
205 \end{center}
206 ((*- endblock -*))
207
208 ((*- block data_svg -*))
209 \begin{center}
210 \includegraphics[width=0.7\textwidth]{(((output.key_svg)))}
211 \par
212 \end{center}
213 ((*- endblock -*))
214
206 ((* macro filterOutLatex(text) -*))
215 ((* macro filterOutLatex(text) -*))
207 ((*- set text = text|replace("\\","\\backslash") -*))
216 ((*- set text = text|replace("\\","\\backslash") -*))
208 ((*- set text = text|replace("_","\\_") -*))
217 ((*- set text = text|replace("_","\\_") -*))
@@ -212,57 +221,8 b' not get touched by the templating system. =))'
212 ((( text )))
221 ((( text )))
213 ((*- endmacro *))
222 ((*- endmacro *))
214
223
215 % Useful to block TODO: Remove/move this block below
224 ((* macro escapeUnderscores(text) -*))
216
225 ((*- set text = text|replace("_","\\_") -*))
217 \setbox0\vbox{
226 ((( text )))
218 \begin{minipage}{0.95\linewidth}
227 ((*- endmacro *))
219
220 \end{minipage}}
221 \begin{center}\setlength{\fboxsep}{5pt}
222 \shadowbox{\box0}\end{center}
223
224 ((========================================================================
225 EVERYTHING BELOW HERE STILL NEEDS TO BE FILLED IN!
226 ========================================================================))
227 ((=
228 ((*- block codecell scoped -*))
229 ((*- block input_group -*))
230 ((*- block in_prompt -*))((*- endblock in_prompt -*))
231 ((*- block input -*))((*- endblock input -*))
232 ((*- endblock input_group -*))
233 ((*- if cell.outputs -*))
234 ((*- block output_group -*))
235 ((*- block output_prompt -*))((*- endblock output_prompt -*))
236 ((*- block outputs -*))
237 ((*- for output in cell.outputs -*))
238 ((*- if output.output_type in ['pyout'] -*))
239 ((*- block pyout scoped -*))((*- endblock pyout -*))
240 ((*- elif output.output_type in ['stream'] -*))
241 ((*- block stream scoped -*))
242 ((*- if output.stream in ['stdout'] -*))
243 ((*- block stream_stdout scoped -*))
244 ((*- endblock stream_stdout -*))
245 ((*- elif output.stream in ['stderr'] -*))
246 ((*- block stream_stderr scoped -*))
247 ((*- endblock stream_stderr -*))
248 ((*- endif -*))
249 ((*- endblock stream -*))
250 ((*- elif output.output_type in ['display_data'] -*))
251 ((*- block display_data scoped -*))
252 ((*- block data_priority scoped -*))
253 ((*- endblock data_priority -*))
254 ((*- endblock display_data -*))
255 ((*- elif output.output_type in ['pyerr'] -*))
256 ((*- block pyerr scoped -*))
257 ((*- for line in output.traceback -*))
258 ((*- block traceback_line scoped -*))((*- endblock traceback_line -*))
259 ((*- endfor -*))
260 ((*- endblock pyerr -*))
261 ((*- endif -*))
262 ((*- endfor -*))
263 ((*- endblock outputs -*))
264 ((*- endblock output_group -*))
265 ((*- endif -*))
266 ((*- endblock codecell -*))
267 =))
268
228
General Comments 0
You need to be logged in to leave comments. Login now