我想从In [35]:
生成的LaTeX中删除典型的IPython提示jupyter-nbconvert --to latex
。
有一个模板,style_simple.tplx
,几乎完成了我想要的东西,但现在它已被移除,otoh其伴随模板,style_bw_ipython.tplx
等。仍在分发但不再使用新的nbconvert。
我知道我必须使用jinja2
模板语言编写 ad hoc 模板,但jinja2
模板语法及其在nbconvert
中的使用都有尽管我做了多少次尝试,但我的理解还没有实现。
鉴于我无法编写这样的模板,我正在寻求这项任务的帮助。
答案 0 :(得分:5)
出现的两个地方提示是input
和execute_result
阻止。
((* block input scoped *))
((( add_prompt(cell.source | highlight_code(strip_verbatim=True), cell, 'In ', 'incolor') )))
((* endblock input *))
我们可以用一个块来替换它,该块将突出显示的源代码直接放在逐字块中,而不是添加提示:
((* block input scoped *))
\begin{Verbatim}[commandchars=\\\{\}]
((( cell.source | highlight_code(strip_verbatim=True) )))
\end{Verbatim}
((* endblock input *))
对于输出,我们可以使用execute_result输出实际上与display_data输出相同的事实,只添加提示。因此,我们可以告诉我们的模板显示execute_result输出与display_data:
相同((* block execute_result scoped *))
((* block display_data scoped *))
((( super() )))
((* endblock display_data *))
((* endblock execute_result *))
将所有内容放在自定义模板中,扩展默认的article
模板:
% extend the default article template:
((* extends 'article.tplx' *))
% display input without prompts:
((* block input scoped *))
\begin{Verbatim}[commandchars=\\\{\}]
((( cell.source | highlight_code(strip_verbatim=True) )))
\end{Verbatim}
((* endblock input *))
% treat execute_result (output with prompt) as display_data (output without prompt)
((* block execute_result scoped *))
((* block display_data scoped *))
((( super() )))
((* endblock display_data *))
((* endblock execute_result *))
如果我们将此文件称为noprompts.tplx
,那么我们可以将其用于:
jupyter nbconvert --to latex --template noprompts mynotebook.ipynb