python 如何使用nbconvert从ipynb生成的pdf中删除日期

1l5u6lss  于 2022-12-28  发布在  Python
关注(0)|答案(1)|浏览(204)

我正在编程地使用nbconvert将jupyter笔记本文件导出为pdf:

import nbformat
from nbconvert.exporters import PDFExporter
from nbconvert.preprocessors import TagRemovePreprocessor
from traitlets.config import Config

c = Config()
c.TagRemovePreprocessor.remove_cell_tags = ("remove_cell",)
c.PDFExporter.preprocessors = ["nbconvert.preprocessors.TagRemovePreprocessor"]
c.PDFExporter.exclude_input_prompt = True
c.PDFExporter.exclude_output_prompt = True
c.PDFExporter.exclude_input = True

exporter = PDFExporter(config=c)
exporter.register_preprocessor(TagRemovePreprocessor(config=c),True)

with open("example.ipynb") as f:
    nb = nbformat.read(f, as_version=4)

pdf_data, _ = exporter.from_notebook_node(nb)

with open("example.pdf", "wb") as f:
    f.write(pdf_data)

这是可行的,但是今天的日期被插入到文档的标题下。

这个日期在我所制作的内容中是误导性的。
我删除它的尝试涉及到编辑share\jupyter\nbconvert\templates\latex\base.tex.j2

\renewcommand{\TeX}{\textrm{\Oldtex}}
\renewcommand{\LaTeX}{\textrm{\Oldlatex}}
% Document parameters
% Document title
((* block title -*))
((*- set nb_title = nb.metadata.get('title', '') or resources['metadata']['name'] -*))
\title{((( nb_title | escape_latex )))}
((*- endblock title *))
((* block date *))((* endblock date *))
((* block author *))
((* if 'authors' in nb.metadata *))
\author{((( nb.metadata.authors | join(', ', attribute='name') )))}
((* endif *))
((* endblock author *))

并且去除线((* block date *))((* endblock date *)),但是这似乎没有效果。
我知道该文件正在导出过程中使用,因为如果我向其中插入jibberish,则导出失败。
知道日期是从哪来的吗?

vfhzx4xs

vfhzx4xs1#

默认情况下,日期设置为\date{\today},您可以通过将其设置为其他值来覆盖它,例如使用空参数:

\date{}

相关问题