Jupyter nbconvert Экспортная тема LaTex - PullRequest
       60

Jupyter nbconvert Экспортная тема LaTex

0 голосов
/ 25 сентября 2018

Я использую Jupyter Notebook nbconvert (Сохранить как меню) для экспорта в формате PDF через латекс.Тем не менее, файл PDF не в хорошей форме.Например, некоторые широкие таблицы показаны хорошо.Я бы предпочел иметь поле для таблиц, размер которых будет изменяться по ширине страницы.Есть ли какой-нибудь стиль, шаблон, который я могу использовать для создания хороших отчетов, и как я могу попросить nbconverter использовать этот стиль?

Вот вывод латекса:

enter image description here

Я бы хотел что-то вроде этого:

enter image description here

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Какие-либо настройки, которые изменяют размер таблицы, чтобы она соответствовала ширине страницы?Латексный код выглядит примерно так: \resizebox*{\textwidth}{!}{%

enter image description here

0 голосов
/ 25 сентября 2018

Похоже, Pandas получил метод ._repr_latex_() в версии 0.23.Вам нужно установить pd.options.display.latex.repr=True, чтобы активировать его.

Без латексного репр:
Without latex repr
С латексным репр:
With latex repr

Проверьте параметры , чтобы получить форматирование, близкое к тому, что вы хотите.Чтобы точно соответствовать желаемому результату, вам нужно использовать пользовательский шаблон из латекса.


Отредактировано, чтобы предоставить больше информации о шаблонах:

Начните здесь для общей информации о шаблонах.Вы можете создать файл .tplx по тому же пути, что и блокнот, и указать его в качестве шаблона при запуске nbconvert из командной строки: !jupyter nbconvert --to python 'example.ipynb' --stdout --template=my_custom_template.tplx.Кроме того, вы можете указать шаблон по умолчанию, который будет использоваться при экспорте в виде латекса через меню, изменив файл jupyter_notebook_config.py в каталоге ~.jupyter.Если этот файл еще не существует, вы можете сгенерировать его, запустив команду jupyter notebook --generate-config из командной строки.Мой шаблон также находится в каталоге ~/.jupyter, поэтому я добавил в свой jupyter_notebook_config.py следующее:

# Insert this at the top of the file to allow you to reference
# a template in the ~.jupyter directory
import os.path
import sys
sys.path.insert(0, os.path.expanduser("~") + '/.jupyter')
# Insert this at the bottom of the file:
c.LatexExporter.template_file = 'my_template' # no .tplx extension here
c.LatexExporter.template_path = ['.', os.path.expanduser("~") + '/.jupyter'] # nbconvert will look in ~/.jupyter

Чтобы немного понять, как работают шаблоны, начнем с рассмотрения null.tplx .Линия ((*- for cell in nb.cells -*)) проходит по всем ячейкам в блокноте.Следующие операторы if проверяют тип каждой ячейки и вызывают соответствующий блок.

Другие шаблоны расширяют null.tplx.Каждый шаблон определяет (или переопределяет) некоторые блоки.Иерархия null->display_priority->document_contents->base->style_*->article.

Ваш пользовательский шаблон, вероятно, должен расширить article.tplx и добавить несколько латексных команд в заголовок, который устанавливает таблицы так, как вы хотите.Взгляните на этот пост в блоге для примера настройки пользовательского шаблона.

...