2017-12-29 27 views
1

Ich versuche, eine Jinja2 Vorlage zu schreiben, um meine Jupyter notebook in eine PDF über LaTex mit nbconvert zu konvertieren. Mein aktueller Versuch Markdown-Zellen oder Bildunterschriften nicht angezeigt und zeigt auch die folgende Ausgabe vor allem meiner matplotlib Graphen:Wie schreibe ich Jinja2 Vorlage für Jupyter nbconvert, um Markdown anzuzeigen und Ausgangsnummer zu unterdrücken?

out[1]: <matplotlib.axes._subplots.AxesSubplot at 0x2e62e885cc0> 

Ich mag Abschlag Zellen und Beschriftungen anzuzeigen und matplotlib Objektbeschreibungen zu unterdrücken.

Meine aktuelle Vorlage wird von einem auf der nbconvert GitHub Repo-hosted angepasst und lautet wie folgt:

% Default to the notebook output style 
((* if not cell_style is defined *)) 
    ((* set cell_style = 'style_ipython.tplx' *)) 
((* endif *)) 

% Inherit from the specified cell style. 
((* extends cell_style *)) 


%=============================================================================== 
% Latex Book 
%=============================================================================== 

((* block docclass *)) 
\documentclass{report} 
((* endblock docclass *)) 

% Author and Title from metadata 
((* block maketitle *)) 
((*- if nb.metadata["latex_metadata"]: -*)) 
((*- if nb.metadata["latex_metadata"]["title"]: -*)) 
    \title{(((nb.metadata["latex_metadata"]["title"])))} 
((*- endif *)) 
((*- else -*)) 
    \title{(((resources.metadata.name)))} 
((*- endif *)) 

\date{\today} 
\maketitle 
((* endblock maketitle *)) 

((* block markdowncell scoped *)) 
(((cell.source | citation2latex | strip_files_prefix | convert_pandoc('markdown+tex_math_double_backslash', 'json',extra_args=[]) | resolve_references | convert_pandoc('json','latex', extra_args=["--chapters"])))) 
((* endblock markdowncell *)) 


% Disable input cells 
((* block input_group *)) 
((* endblock input_group *)) 

Antwort

0

Dies kaum wie viel von einem scheint „Antwort“, aber haben Sie versucht, ein Semikolon am Ende mit der letzten Zeile deiner Codezellen? Jupyters normales Verhalten besteht darin, das letzte von der Codezelle zurückgegebene Objekt anzuzeigen. Wenn Ihre letzte Zeile etwas mit matplotlib zu tun war, dass Codezeile gibt typischerweise ein matplotlib Objekt, das Sie in der Regel nicht sehr daran interessiert, also zum Beispiel:.

from matplotlib.pyplot import plot, xlabel, grid 
from numpy import linspace, sin 
x = linspace(-20, 20, 200) 
plot(x, sin(x)) 
grid() 
xlabel('x') 

die Erzeugt eine Ausgabe wie Sie beschreiben, . Folgendes erzeugt nicht den einzeiligen Druck. Der einzige Unterschied ist das Semikolon am Ende.

from matplotlib.pyplot import plot, xlabel, grid 
from numpy import linspace, sin 
x = linspace(-20, 20, 200) 
plot(x, sin(x)) 
grid() 
xlabel('x'); 

Eine weitere Möglichkeit, die Ausgabe zu vermeiden, besteht darin, die Zeilen neu anzuordnen. Die grid() Funktion gibt normalerweise None zurück, wenn Sie also diese Zeile zuletzt eingeben, erhalten Sie auch keine Ausgabe.

Haben Sie gefragt?

Verwandte Themen