[IPython-dev] Removing "Out[]" prompts in nbconvert PDF output

Maximilian Albert maximilian.albert at gmail.com
Thu Mar 26 07:32:26 EDT 2015


Hi Aaron,

Thanks a lot for your suggestion! This is actually exactly what I tried
before sending my email to the list, and it does indeed work in certain
cases, but some of my notebooks didn't convert correctly with it. I've put
up a minimal example here:

   https://github.com/maxalbert/nbconvert-templating-issue

If you type "make" it will use different templates to generate three pdf
documents from the notebook "minimal_example.ipynb" (more information on
what the templates do is in the README of the repo). You will see that for
the cell containing the image with the musical note, the "Out[]" prompt is
retained. The notebook "sample_notebook.ipynb" has a slightly longer
example, comparing with some other types of output cells for which the
"Out[]" prompt is indeed removed.

I won't have time to dig into this before the weekend, and my jinja-fu is
almost zero, so if anyone has a quick idea what's going on here I'd
appreciate it.

Many thanks!
Max

2015-03-24 11:27 GMT+00:00 Aaron O'Leary <aaron.oleary at gmail.com>:

> Sorry, I misread your question! You only want to remove the output
> prompts, not the whole output.
>
> Try this:
>
> ((*- extends 'article.tplx'
> -*))
>
>
>
> % Disable input
> cells
>
> ((* block input_group
> *))
>
> ((* endblock input_group
> *))
>
>
>
> ((* block execute_result scoped
> *))
>
>     ((*- for type in output.data | filter_data_type
> -*))
>
>         ((*- if type in
> ['text/plain']*))
>
>             ((( output.data['text/plain'] | escape_latex
> )))
>
>         ((* else
> -*))
>
>             ((( super()
> )))
>
>         ((*- endif
> -*))
>
>     ((*- endfor
> -*))
>
> ((* endblock execute_result *))
>
>
> i.e. get rid of both the call to add_prompt and the manual prompt creation.
>
> On 24 March 2015 at 10:35, Aaron O'Leary <aaron.oleary at gmail.com> wrote:
>
>> Hi Max,
>>
>> This is what you need:
>>
>> ((*- extends 'article.tplx' -*))
>>
>> % Disable input cells
>> ((* block input_group *))
>> ((* endblock input_group *))
>>
>> % Disable output cells
>> ((* block output_group *))
>> ((* endblock output_group *))
>>
>>
>> You need to use 'output_group' instead of 'execute_result'. There are
>> quite a number of elements in the output and 'output_group' is the block
>> that covers all of them.
>>
>> You can get an overview of the block hierarchy by looking at
>> 'IPython/nbconvert/templates/latex/skeleton/null.tplx'.
>>
>> aaron
>>
>>
>> On 24 March 2015 at 01:08, Maximilian Albert <maximilian.albert at gmail.com
>> > wrote:
>>
>>> 2015-03-23 19:06 GMT+00:00 Matthias Bussonnier <
>>> bussonniermatthias at gmail.com>:
>>>
>>>>
>>>> I guess you need to inherit the following block :
>>>>
>>>>
>>>> ((* block execute_result scoped *))
>>>>     ((*- for type in output.data | filter_data_type -*))
>>>>         ((*- if type in ['text/plain']*))
>>>>             ((( add_prompt(output.data['text/plain'] | escape_latex,
>>>> cell, 'Out', 'outcolor') )))
>>>>         ((* else -*))
>>>> \texttt{\color{outcolor}Out[{\color{outcolor}((( cell.execution_count
>>>> )))}]:}((( super() )))
>>>>         ((*- endif -*))
>>>>     ((*- endfor -*))
>>>> ((* endblock execute_result *))
>>>>
>>>>
>>>> form IPython/nbconvert/templates/latex/style_ipython.tplx
>>>>
>>>> And replace by what you wish.
>>>>
>>>
>>>
>>> Thanks for the suggestion! That's precisely what I tried, but the
>>> problem seems to be that the call to super() somehow adds an additional
>>> Out[] prompt. I'll try to dig deeper into this when I get the time (and/or
>>> make a minimal example available so that it can easily be reproduced), but
>>> if anyone has any quick ideas I'm happy to hear them.
>>>
>>> Cheers,
>>> Max
>>>
>>> P.S.: I noticed I forgot to include the link to the StackOverflow
>>> question I mentioned in my original email. Here it is:
>>>
>>>
>>> http://stackoverflow.com/questions/19524554/suppress-code-in-nbconvert-ipython
>>>
>>>
>>> _______________________________________________
>>> IPython-dev mailing list
>>> IPython-dev at scipy.org
>>> http://mail.scipy.org/mailman/listinfo/ipython-dev
>>>
>>>
>>
>
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20150326/87619e8b/attachment.html>


More information about the IPython-dev mailing list