jupyter Notebook Web UI可以与自定义模板一起使用吗?

时间:2018-10-25 20:40:12

标签: python jupyter-notebook

我已经看到许多关于如何从jupyter笔记本渲染LaTeX时使用自定义模板的帖子(例如hide code in jupyter notebook),并且已经成功实现了此处描述的答案(custom template location),例如:

~/dev/notebooks$ jupyter nbconvert --to=latex filename.ipynb --Application.log_level='DEBUG'

工作正常(并应用在我的~/.jupyter/jupyter_nbconvert_config.py中指定的自定义模板)。

但是如何使用以下方法将jupyter Web UI设置为以相同的方式起作用:

  

文件->另存为-> LaTeX(.tex)

谢谢。

1 个答案:

答案 0 :(得分:0)

我找到了解决方法jupyter_notebook_config.py。基本上,jupyter应用程序确定所应用的模板,这就是为什么它可以正常使用的原因:

jupyter nbconvert ...

但无法使用:

  

文件->另存为-> LaTeX(.tex)

因此,通过使用〜/ .jupyter / jupyter_notebook_config.py:

import os

c = get_config()

c.TemplateExporter.template_path = [os.path.expanduser('~/.jupyter/templates'), \
'/usr/local/bin/miniconda3/envs/MyEnv/lib/python3.6/site-\
packages/jupyter_contrib_nbextensions/templates', '.']
c.LatexExporter.template_file = 'custom_latex.tplx'

,然后在基本模板目录中放置“ custom_latex.tplx”。我可以设置一个默认模板(不执行任何操作),然后每个用户可以按自己的选择覆盖该默认模板(这是针对jupyter hub安装的)。如果您不需要这种一般行为(即您不在jupyter集线器上),则可以完全忽略默认模板部分。

为了完整性...

默认模板:

((= Nbconvert custom style for LaTeX export =))

((*- extends 'article.tplx' -*))

%==============================================================================\
=
% Custom definitions
%==============================================================================\
=
((* block definitions *))
    ((( super() )))

    % Pygments definitions
    ((( resources.latex.pygments_definitions )))

    % Exact colors from NB
    \definecolor{incolor}{rgb}{0.0, 0.0, 0.5}
    \definecolor{outcolor}{rgb}{0.545, 0.0, 0.0}

    % Don't number sections
    \renewcommand{\thesection}{\hspace*{-0.5em}}
    \renewcommand{\thesubsection}{\hspace*{-0.5em}}

((* endblock definitions *))

% No title
((* block maketitle *))((* endblock maketitle *))



%==============================================================================\
=
% Latex Article
%==============================================================================\
=
% You can customize your LaTeX document here, e.g. you can
% - use a different documentclass like
%   \documentclass{report}
% - add/remove packages (like ngerman)

((* block docclass *))
% !TeX spellcheck = de_DE
% !TeX encoding = UTF-8
\documentclass{article}
((* endblock docclass *))

个人模板:

((= Nbconvert custom style for LaTeX export =))

((*- extends 'nbextensions.tplx' -*))

%==============================================================================\
=
% Custom definitions
%==============================================================================\
=
((* block definitions *))
    ((( super() )))

    % Pygments definitions
    ((( resources.latex.pygments_definitions )))

    % Exact colors from NB
    \definecolor{incolor}{rgb}{0.0, 0.0, 0.5}
    \definecolor{outcolor}{rgb}{0.545, 0.0, 0.0}

    % Don't number sections
    \renewcommand{\thesection}{\hspace*{-0.5em}}
    \renewcommand{\thesubsection}{\hspace*{-0.5em}}

((* endblock definitions *))

% No title
((* block maketitle *))((* endblock maketitle *))



%==============================================================================\
=
% Latex Article
%==============================================================================\
=
% You can customize your LaTeX document here, e.g. you can
% - use a different documentclass like
%   \documentclass{report}
% - add/remove packages (like ngerman)

((* block docclass *))
% !TeX spellcheck = de_DE
% !TeX encoding = UTF-8
\documentclass{article}
% this is all unnecessary when extending nbextensions.tplx + hide_input_all
\usepackage{verbatim} %for {comment}
\usepackage{fancyvrb}
\renewenvironment{Verbatim}{\comment}{\endcomment}
((* endblock docclass *))

希望这对其他人有帮助-我认为目前为止文档尚不清楚。