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

1

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

Вот результат латекса:

Изображение 174551

Мне хотелось бы что-то вроде этого:

Изображение 174551

Теги:
jupyter-notebook
nbconvert
latex

2 ответа

0
Лучший ответ

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

Без латекса:
Изображение 174551
С латексом:
Изображение 174551

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


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

Начните здесь, чтобы получить общую информацию о шаблонах. Вы можете создать файл .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, поэтому я добавил следующее в 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 является null->display_priority->document_contents->base->style_*->article.

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

  • 0
    Большой! Где я должен оставить шаблон? Каков формат шаблона, текстового файла? Любой образец? @butterwagon
  • 0
    Смотрите мои правки на мой ответ.
0

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

Изображение 174551

Ещё вопросы

Сообщество Overcoder
Наверх
Меню