pdf - 如何通过 Latex 将 Jupyter 笔记本转换为 PDF?
问题描述
我正在尝试使用 nbconvert 通过 Latex 将 Jupyter 笔记本转换为 pdf ,以便自动包含对单独 .bib 文件中包含的文章的引用。我按照这里的教程/示例工作。此处的 nbconvert 文档中建议了此类教程。
我在运行 Jupyter 笔记本的同一目录中有以下文件:
citations.tplx(用于包含参考书目的模板)
references.bib(包含引文的 .bib 文件,取自 Google Scholar)
在 markdown 单元格中,我使用以下语法来引用一个作品:
<cite data-cite="cortez2009modeling">(Cortez, 2009)</cite>
其中 .bib 文件中的此类工作报告如下:
@article{cortez2009modeling,
title={Modeling wine preferences by data mining from physicochemical properties},
author={Cortez, Paulo and Cerdeira, Ant{\'o}nio and Almeida, Fernando and Matos, Telmo and Reis, Jos{\'e}},
journal={Decision support systems},
volume={47},
number={4},
pages={547--553},
year={2009},
publisher={Elsevier}
}
在同样保存在同一位置的新笔记本中,我运行以下命令,该命令也是上述教程所采用的:
%%bash
jupyter nbconvert --to latex --template citations.tplx --post pdf my_notebook.ipynb
我得到一个很长的输出,充满了警告,但基本上,错误是:
ModuleNotFoundError: No module named 'pdf'
我也尝试根据网络上的其他教程来执行此操作,但即使确实生成了 PDF 文件(使用略有不同的 nbconvert 命令),我的引文也没有在文本中捕获(而是出现一个问号),并且文件末尾没有参考书目。警告会说 Bibtex 存在“问题”,但仅此而已。
在下文中,我报告了我上面编写的命令的完整输出:
Traceback (most recent call last):
File "/opt/anaconda3/bin/jupyter-nbconvert", line 11, in <module>
sys.exit(main())
File "/opt/anaconda3/lib/python3.8/site-packages/jupyter_core/application.py", line 254, in launch_instance
return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
File "/opt/anaconda3/lib/python3.8/site-packages/traitlets/config/application.py", line 844, in launch_instance
app.initialize(argv)
File "/opt/anaconda3/lib/python3.8/site-packages/traitlets/config/application.py", line 87, in inner
return method(app, *args, **kwargs)
File "/opt/anaconda3/lib/python3.8/site-packages/nbconvert/nbconvertapp.py", line 290, in initialize
super().initialize(argv)
File "/opt/anaconda3/lib/python3.8/site-packages/traitlets/config/application.py", line 87, in inner
return method(app, *args, **kwargs)
File "/opt/anaconda3/lib/python3.8/site-packages/jupyter_core/application.py", line 225, in initialize
self.parse_command_line(argv)
File "/opt/anaconda3/lib/python3.8/site-packages/traitlets/config/application.py", line 87, in inner
return method(app, *args, **kwargs)
File "/opt/anaconda3/lib/python3.8/site-packages/traitlets/config/application.py", line 713, in parse_command_line
self.update_config(self.cli_config)
File "/opt/anaconda3/lib/python3.8/site-packages/traitlets/config/configurable.py", line 220, in update_config
self._load_config(config)
File "/opt/anaconda3/lib/python3.8/site-packages/traitlets/config/configurable.py", line 190, in _load_config
warn(msg)
File "/opt/anaconda3/lib/python3.8/contextlib.py", line 120, in __exit__
next(self.gen)
File "/opt/anaconda3/lib/python3.8/site-packages/traitlets/traitlets.py", line 1214, in hold_trait_notifications
self.notify_change(change)
File "/opt/anaconda3/lib/python3.8/site-packages/traitlets/traitlets.py", line 1227, in notify_change
return self._notify_observers(change)
File "/opt/anaconda3/lib/python3.8/site-packages/traitlets/traitlets.py", line 1264, in _notify_observers
c(event)
File "/opt/anaconda3/lib/python3.8/site-packages/nbconvert/nbconvertapp.py", line 265, in _postprocessor_class_changed
self.postprocessor_factory = import_item(new)
File "/opt/anaconda3/lib/python3.8/site-packages/traitlets/utils/importstring.py", line 38, in import_item
return __import__(parts[0])
ModuleNotFoundError: No module named 'pdf'
---------------------------------------------------------------------------
CalledProcessError Traceback (most recent call last)
<ipython-input-22-c5829f9d50d0> in <module>
----> 1 get_ipython().run_cell_magic('bash', '', 'jupyter nbconvert --to latex --template citations.tplx --post pdf Orlando_Taddeo_CW.ipynb\n')
/opt/anaconda3/envs/tf/lib/python3.7/site-packages/IPython/core/interactiveshell.py in run_cell_magic(self, magic_name, line, cell)
2397 with self.builtin_trap:
2398 args = (magic_arg_s, cell)
-> 2399 result = fn(*args, **kwargs)
2400 return result
2401
/opt/anaconda3/envs/tf/lib/python3.7/site-packages/IPython/core/magics/script.py in named_script_magic(line, cell)
140 else:
141 line = script
--> 142 return self.shebang(line, cell)
143
144 # write a basic docstring:
/opt/anaconda3/envs/tf/lib/python3.7/site-packages/decorator.py in fun(*args, **kw)
230 if not kwsyntax:
231 args, kw = fix(args, kw, sig)
--> 232 return caller(func, *(extras + args), **kw)
233 fun.__name__ = func.__name__
234 fun.__doc__ = func.__doc__
/opt/anaconda3/envs/tf/lib/python3.7/site-packages/IPython/core/magic.py in <lambda>(f, *a, **k)
185 # but it's overkill for just that one bit of state.
186 def magic_deco(arg):
--> 187 call = lambda f, *a, **k: f(*a, **k)
188
189 if callable(arg):
/opt/anaconda3/envs/tf/lib/python3.7/site-packages/IPython/core/magics/script.py in shebang(self, line, cell)
243 sys.stderr.flush()
244 if args.raise_error and p.returncode!=0:
--> 245 raise CalledProcessError(p.returncode, cell, output=out, stderr=err)
246
247 def _run_script(self, p, cell, to_close):
CalledProcessError: Command 'b'jupyter nbconvert --to latex --template citations.tplx --post pdf Orlando_Taddeo_CW.ipynb\n'' returned non-zero exit status 1.
任何人都可以对此有所了解吗?我真的不明白为什么它不起作用。非常感谢您提前。
解决方案
推荐阅读
- java - 将整数数组转换为单个字符串
- typescript - TypeScript 联合函数返回文字编译器错误
- r - 如何在 R 中抓取网页表格
- android - 当用户触摸它时如何在recyclerview中缩放一个项目?
- neural-network - 具有两个收敛到零梯度和恒定输出的分支的模型
- angular - 从角度表单复选框保存布尔真/假并将其保存到 Oracle 等后端数据库的正确方法是什么?
- entity-framework - 必须至少指定一个角色
- javascript - 无法从 Shopify Webhook 中找到数据/有效负载
- python - 无法使用 SPNEGO 服务器上的 requests-gssapi 进行身份验证
- java - 如何调试Java线程死亡