python - 通过IPython Notebook转换更改PDF-Latex输出的样式

原文 标签 python pdf latex type-conversion ipython

当前使用的是my.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一样,我不太满意IPython 2的输出。由于转换器不再使用sphinx documentclass或sphinx预处理系统,因此不能在nbconverter行上使用nbconvert调用。
粗暴粗暴的方式
dropSphinxTransformerso--post PDF只创建nbconvert文件。然后,编辑.tex文件使其更漂亮。然后,在上面运行几次。
要使自己成为作者,请在he.tex文件的pdflatex行后添加如下行:

\author{Never Saint}

您可以在\title上找到好的模板来帮助您使输出看起来像您想要的那样。
根用户的方式
另一种方法是滚动一个新模板,从.tex中的模板开始。作为根用户,在latextemplates.com.../IPython/nbconvert/templates/latex旁边添加一个article1.tplx文件。下面的版本创建了一个我个人认为有用的不同的输出样式。“Margins”块为LaTex生成前置内容,“PreDoc”块生成在文档开头插入的命令和文本。我把“maketitle”块清空,这样就没有标题页了。如果你想要一个有作者和日期的标题页,删除我的空白“maketitle”块。
用法:article.tplx
% Default to the notebook output style
((* if not cell_style is defined *))
    ((* set cell_style = 'style_ipython.tplx' *))
((* endif *))

% Inherit from the specified cell style.
((* extends cell_style *))


%===============================================================================
% Latex article1, based on Article 
%===============================================================================

((* block docclass *))
\documentclass{article}
((* endblock docclass *))
((* block margins *))
\usepackage{blindtext}
\usepackage{mathptmx}% Times Roman font
\usepackage[scaled=.90]{helvet}
\usepackage{xcolor}
\usepackage{titlesec}
\titleformat{\title}[display]
  {\normalfont\sffamily\huge\bfseries\color{blue}}
  {\titlename}{20pt}{\Huge}
\titleformat{\section}
  {\normalfont\sffamily\Large\bfseries\color{darkgray}}
  {\subsection}{1em}{} 
\titleformat{\subsection}
  {\normalfont\sffamily\Large\bfseries\color{darkgray}}
  {\thesubsection}{1em}{} 
\parindent=0pt
\parskip=6pt
((* endblock margins *))

((* block predoc *))
\begin{document}

\pagestyle{plain}
\thispagestyle{plain}
\pagenumbering{arabic}
\setcounter{page}{5}
\lfoot{\copyright 2014}

This document is composed as an
\href{http://ipython.org/notebook.html}{IPython} notebook. The printed
version of this document was generated from the \texttt{IPython}
notebook, using the \texttt{ipython nbconvert} utility to generate a
\texttt{Latex} document. 
((* block maketitle *))((* endblock maketitle *))
((* block author *))\author{Put Your Name Here}((* endblock author *))
((* endblock predoc *))

相关文章:

c++ - 将递归Python列表生成器转换为C++

html - 尝试在iframe中打开.pdf文件

javascript - 将PDF保存到带有 protractor 的文件中

loops - 使用Windows PowerShell脚本并行编译LaTeX文件

python - Python搜索字符串并打印其所在的文件

python - Matplotlib:具有三种颜色的自定义颜色图

python - 如何在Google App Engine中检测退回邮件?

python - 在Google App Engine中使用pdfkit生成PDF会引发Popen的AttributeError

latex - 如何在章节的第一页的LaTex中隐藏页码?

python - 如何在Python matplotlib的LaTeXed下标中包含字符串链