Как стать автором
Обновить

Комментарии 4

Спасибо за статью. В своё время решал задачу получения pdf с кириллическими символами через скрипт, который делал выгрузку в tex-файл, редактировал его и преобразовывал в pdf.

Ещё этот шаблон написан, видимо, для старой версии nbconvert, поэтому в нём нужно будет поменять строчку `((* extends 'latex_base.tplx' *))` на `((* extends 'base.tplx' *))`.

Не думали оформить pull request?

Если мы хотим использовать полученный шаблон не в конкретном проекте, но во всех блокнотах, можно положить его, например, в ~/.jupyter/templates/ и изменить соответствующую строчку в файле настроек:
c.TemplateExporter.template_path = ['.', '~/.jupyter/templates/']

Эксперимент показал, что указание относительных путей не работает. В обсуждении на Github рекомендуют преобразовывать относительные пути в абсолютные:

import os
c.TemplateExporter.template_path = ['.', os.path.expanduser('~/.jupyter/templates/')]

PS
Возможно будет полезным указать, что минимальный набор действий для починки функциональности выгрузки ipynb-файлов с кириллическими символами в pdf из интерфейса Jupyter Notebook состоит из добавления всего двух файлов:
~/.jupyter/templates/mytemplate.tplx

% Default to the notebook output style
((* set cell_style = 'base.tplx' *))
% Inherit from the specified cell style.
((* extends cell_style *))

((* block packages *))
((( super() ))) % load all other packages
% For cyrillic symbols
\usepackage[english, russian]{babel}
((* endblock packages *))

((* block docclass *))
\documentclass{article}
((* endblock docclass *))

~/.jupyter/jupyter_notebook_config.py

import os
c = get_config()
c.NbConvertApp.export_format = 'pdf'
c.TemplateExporter.template_path = ['.', os.path.expanduser('~/.jupyter/templates/')]
c.Exporter.template_file = 'mytemplate'
Pull request — не собиралась, и с точки зрения обратной совместимости это, наверное, спорное решение.
Спасибо за замечание про относительные пути, я столкнулась с этим, когда настраивала у себя, но забыла упомянуть.
Поставила из текста ссылку на комментарий как на кратчайшее решение проблемы.
с точки зрения обратной совместимости это, наверное, спорное решение.

От примеров обычно не требуют обратной совместимости. И, по-хорошему, они должны версионироваться вместе с nbconvert. Но разработчики, как я вижу, больше сосредоточены на разработке основного продукта.

То, что примеры требуется "доточить", чтобы они работали с актуальной версией nbconvert, может быть проблемой для неподготовленных пользователей вроде меня. Так что всё равно спасибо, что указали на несоответствие в примере.

может у кого-то есть решение в 2023 году? :)

предложенное у меня не срабатывает - банально нет base.tplx

При этом без указания путей к доп. шаблона - работает, но без кириллицы.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации