1

我正在尝试编写一个Jinja2模板,通过使用将我转换Jupyter notebook为 PDF 。我当前的尝试不显示 Markdown 单元格或图像标题,并且还在我的所有 matplotlib 图表上方显示以下输出:LaTexnbconvert

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

我想显示降价单元格和标题并抑制 matplotlib 对象描述。

我当前的模板改编自 nbconvert github repo 上托管的模板,如下所示:

% 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 *))
4

1 回答 1

0

这看起来不像是一个“答案”,但您是否尝试过在代码单元的最后一行末尾使用分号?Jupyter 的正常行为是显示代码单元返回的最后一个对象。如果您的最后一行与 相关matplotlib,则该行代码通常会返回一个matplotlib您通常不太感兴趣的对象。因此,例如:

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

产生你描述的输出。以下不产生单行打印。唯一的区别是末尾的分号。

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

避免输出的另一种方法是重新排列行。该grid()函数通常返回None,所以如果你把那行放在最后,你也不会得到任何输出。

你问的是这个吗?

于 2018-03-08T22:54:55.600 回答