仅显示使用jupyter notebook中的nbconvert创建的pdf中的特定(标记)输入单元格

时间:2017-08-30 11:47:42

标签: python ipython jupyter-notebook jupyter nbconvert

在各种jupyter笔记本中,我想手动指定要显示的输入单元格,默认情况下,在将其转换为pdf或tex文档时不显示任何输入单元格。

我已经通过使用以下乳胶模板显示未显示任何输入单元格:

((*- extends 'article.tplx' -*))
% Disable input cells
((* block input_group *))
((* endblock input_group *))

但是现在,当试图添加单元格标签然后显示它们时,我很困惑。我试过了

% Disable input cells if there is no "show" tag, else show
((*- block input_group -*))
    ((*- if 'show' in cell.metadata.get('tags', []) -*))
        ((*- block in_prompt -*))((*- endblock in_prompt -*))
        ((*- block input -*))((*- endblock input -*))
    ((*- else -*))
    ((*- endif -*))
((*- endblock input_group -*))

但它总是删除所有输入单元格,也就是“show”标签。

1 个答案:

答案 0 :(得分:0)

在写这个问题时,我意识到我从错误的文件中复制了第二个代码块中的第4行和第5行。它来自null.tplx(骨架)模板,我应该使用style_ipython.tplx来自大多数时候继承的地方。

我提出了以下代码,它现在真正删除/隐藏/删除除“show”标记之外的所有输入单元格:

% Disable input cells if there is no "show" tag, else show
((*- block input_group -*))
    ((*- if 'show' in cell.metadata.get('tags', []) -*))
        ((( add_prompt(cell.source | highlight_code(strip_verbatim=True), cell, 'In ', 'incolor') )))
    ((*- else -*))
    ((*- endif -*))
((*- endblock input_group -*))

但是它只适用于ipython风格,而不是python风格......也许有人可以帮忙吗?