Skip to main content
 首页 » 编程设计

python之在 Jupyter Notebook 演示文稿中隐藏代码

2025年05月04日10飞鱼

我有一个混合了 markdown 和代码的 jupyter notebook。最后我想将其呈现为 pdf 报告并隐藏代码。我仍然想看到代码的输出、图表和表格,我只是不想在最终报告中看到代码。我发现下面的帖子有下面的代码,如果将其添加到笔记本中会创建一个切换按钮,可用于隐藏或显示输入代码。问题是我在报告顶部有一个切换按钮。有谁知道如何做到这一点?

帖子:

http://chris-said.io/2016/02/13/how-to-make-polished-jupyter-presentations-with-optional-code-visibility/

代码:

<script> 
  function code_toggle() { 
    if (code_shown){ 
      $('div.input').hide('500'); 
      $('#toggleButton').val('Show Code') 
    } else { 
      $('div.input').show('500'); 
      $('#toggleButton').val('Hide Code') 
    } 
    code_shown = !code_shown 
  } 
 
  $( document ).ready(function(){ 
    code_shown=false; 
    $('div.input').hide() 
  }); 
</script> 
<form action="javascript:code_toggle()"><input type="submit" id="toggleButton" value="Show Code"></form> 

请您参考如下方法:

您可以通过创建自定义 nbconvert 模板轻松实现您想要的效果。这意味着您的实时笔记本仍然可以看到输入,但当您转换为 pdf 时,它会隐藏输入。

创建一个扩展标准 latex 模板 article.tplx 的模板文件( latex 模板也用于 pdf 转换)

自定义.tplx:

% Inherit from the article.tplx 
((* extends 'article.tplx' *)) 
 
% remove inputs 
((* block input_group *)) 
((* endblock input_group *)) 

然后使用以下命令转换您的笔记本

jupyter nbconvert --template=custom.tplx --to=pdf your_notebook.ipynb

这是关于使用自定义模板的文档:http://nbconvert.readthedocs.io/en/latest/customizing.html#Custom-Templates