好的,我已经拼凑出一些代码来完成了日期部分。(受到这篇博客的极大帮助。)类似的编辑也可以用来更改标题和/或作者。我不确定这有多健壮,但它确实起到了作用。
基本上,您需要编辑/nbconvert/templates/latex
目录中的tplx文件。具体而言,我编辑了base.tplx
。在它原本的位置:
((* block date *))((* endblock date *))
我将此更改为:
我把这个改成了
。
((* block date *))
((*- if nb.metadata["latex_metadata"]: -*))
((*- if nb.metadata["latex_metadata"]["date"]: -*))
\date{((( nb.metadata["latex_metadata"]["date"] )))}
((*- endif *))
((*- endif *))
((* endblock date *))
然后在笔记本元数据中,我添加了以下内容:
"latex_metadata": {
"date": "CUSTOM DATE HERE"
},
如果它是元数据结构的最后一行,则最后一个,
取决于它是否是。如果没有latex_metadata标签,则将日期留空,latex将替换为当前日期。
我无法解决的唯一问题是,当我通过LaTeX运行Download as -> PDF时,它不总是重新运行LaTeX生成器(有时它只会给我上次创建的LAST 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"
}
}
base.tplx
。现在它使用位于anaconda安装下的share/jupyter/nbconvert/templates/latex
中的base.tex.j2
。尽管如此,与上述相同的解决方案仍然有效。 - Sethbase.tex.j2
而不是已弃用的base.tplx
之后,它完美地工作了。(实际上,我原始帖子中关于不重新运行LaTeX生成器的最后一行不再是问题,因为每次都可以完美地工作。) - Seth.json
语法方面犯了错误,而我对此一窍不通。如果不行,我猜想可能是由于我的设置有些特殊。目前我正在使用Jupyter另存为.tex
,然后手动编辑,这并不理想。 - microhaus