当前使用我的.ipynb file的以下命令:
$ ipython nbconvert --to latex --post PDF Untitled1.ipynb --SphinxTransformer.author="John Doe"
[NbConvertApp] Using existing profile dir: u'/Users/me-macmini/.ipython/profile_default'
[NbConvertApp] Converting notebook Untitled1.ipynb to latex
[NbConvertApp] Support files will be in Untitled1_files/
[NbConvertApp] Loaded template article.tplx
[NbConvertApp] Writing 12876 bytes to Untitled1.tex
[NbConvertApp] Building PDF
[NbConvertApp] Running pdflatex 3 times: [u'pdflatex', u'Untitled1.tex']
[NbConvertApp] Running bibtex 1 time: [u'bibtex', u'Untitled1']
[NbConvertApp] WARNING | bibtex had problems, most likely because there were no citations
[NbConvertApp] Removing temporary LaTeX files
[NbConvertApp] PDF successfully created
使用IPython 2.1,我得到了用标准古典风格格式化的乳胶文件:
我的问题是:
我该怎么做才能从ipython命令获得以下样式?
为什么上面的命令不能让作者出现?
和OP一样,我对
nbconvert
的输出不太满意。由于转换器不再使用Sphinx documentclass或Sphinx预处理系统,因此不能在nbconverter行上使用SphinxTransformer
调用。粗鲁的方式
删除
--post PDF
,这样nbconvert
只创建.tex
文件。然后,编辑.tex
文件,使其更漂亮。然后,对它运行pdflatex
几次。要使自己成为作者,请在he
.tex
文件中的\title
行之后添加一行如下:您可以在
latextemplates.com
找到很好的模板来帮助您使输出看起来像您想要的那样。根用户的方式
另一种方法是滚动一个新模板,从
.../IPython/nbconvert/templates/latex
中的模板开始。作为根用户,在article.tplx
和report.tplx
旁边添加一个article1.tplx
文件。下面的版本创建了一个我个人认为有用的不同输出样式。“margins”块生成乳胶的前页,“predoc”块生成插入文档开头的命令和文本。我把“maketitle”块清空,这样就没有标题页了。如果你想有一个有作者和日期的标题页,请删除我的空“maketitle”块。用法:
nbconvert --to latex yourNotebook.ipynb --template article1 --to PDF
您可能必须选择不同的template,或者构建自己的。尝试将
--template book
参数添加到nbconvert
命令中。由于IPython 2不再有
book
模板,您可能需要自己滚动。解决这个问题真是令人痛心。我也喜欢iPython 0.x和1.x的样式。如果你必须拥有它,这里是你如何做到的。
人们提到你可以创建自己的模板。嗯,iPython 1.x有非常好的模板,所以让我们使用它们。我假设你的机器上有根目录,因为我们要破解iPython的templates/latex目录。
现在,下一步是对sphinx.tplx应用补丁。
剪切并粘贴上述代码以创建修补程序文件。然后您可以将其应用于:
我们还没结束。这些模板需要一些支持。
我们将在你想要转换生命的笔记本所在的目录中执行此操作。我们将创建两个python文件。第一个(我称之为oldschool.py)执行使用旧模板所需的预处理。它主要是从1.x版iPython的nbconvert/transformers/sphinx.py中删除的,并被黑客攻击为一个现代的预处理器:
最后一个文件很简单({config.py})。
现在,在命令行中,您可以执行以下操作:
如果你想使用basic(又称{the old_latex_basic.tplx}文件),你必须破解我们添加到sphinx.tplx的主要代码块(在%MEF NEW MEF注释之间的部分)。
相关问题 更多 >
编程相关推荐