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

Show only specific (tagged) input cells in pdf created with nbconvert from jupyter notebook

在各种 jupyter notebooks 中,我想手动指定要显示的输入单元格,默认情况下在将其转换为 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" 标签的单元格。

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

我想出了下面的代码,现在确实 removes/hides/supresses 所有输入单元格,除了带有 "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 样式...也许有人可以在这里提供帮助?