Tyl*_*ler 5 latex pdf-generation jupyter-notebook nbconvert
我正在使用 Jupyter Notebook 编写包含大量代码和 LaTeX 的报告。我想更改它们的标题、日期和格式。准确地说,我希望所有文本的尺寸都较小,最大为 12 到 14 像素。
我花了几天时间尝试为 nbconvert 创建自定义 *.tplx 文件,但没有成功。无论我使用什么文件,标题和日期都保持不变。事实上,当我使用自定义 .tplx 时,似乎没有任何变化。
我发现其他几个人询问了这个问题,我在其中找到了有关模板以及如何在使用 nbconvert 时调用它们的信息。每个完整的解决方案都涉及导出为“.tex”,然后手动进行更改。这是不理想的,因为我经常每天创建多个文档,与一次性解决方案相比,这会大大减慢我的速度。
有什么建议么?
好吧,我编写了一些代码来完成此部分的日期部分。(这个博客给了我很大帮助。)类似的编辑可以更改标题和/或作者。我不确定这有多强大,但它确实起到了作用。
基本上,您需要编辑/nbconvert/templates/latex目录中的 tplx 文件。具体来说,我编辑了base.tplx. 它曾经在哪里
((* block date *))((* endblock date *))
Run Code Online (Sandbox Code Playgroud)
我把这个改为
((* block date *))
((*- if nb.metadata["latex_metadata"]: -*))
((*- if nb.metadata["latex_metadata"]["date"]: -*))
\date{((( nb.metadata["latex_metadata"]["date"] )))}
((*- endif *))
((*- endif *))
((* endblock date *))
Run Code Online (Sandbox Code Playgroud)
然后在笔记本元数据中,我添加了
"latex_metadata": {
"date": "CUSTOM DATE HERE"
},
Run Code Online (Sandbox Code Playgroud)
最后一行,取决于它是否是元数据结构中的最后一行。如果不存在 Latex_metadata 标签,则会将日期保留为空,并且 Latex 会替换当前日期。
我无法解决的唯一问题是,当我通过 LaTeX 运行下载为 -> PDF 时,它并不总是重新运行 LaTeX 生成器(有时它只是给我它创建的最后一个 pdf,而不是新的 pdf。 )我不明白为什么它有时运行而有时不运行。
*编辑* 我在jupyter笔记本中的确切元数据部分现在看起来像这样(我使用日期字段来显示我的学生的截止日期):
{
"anaconda-cloud": {},
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.7.9",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"latex_metadata": {
"date": "Due April 7 at 11:59pm"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5142 次 |
| 最近记录: |