Исполнитель: Лещев Артем Олегович, группа ИУ5-24М, 2018–2019 учебный год.
Каждая работа расположена в своей папке и содержит как все необходимые материалы, так и отчёт по данной работе. Отчёты формируются из Jupyter-ноутбуков с помощью nbconvert, команда приведена в README.md каждой работы.
- Лабораторная работа №1 (отчёт).
- Лабораторная работа №2 (отчёт).
- Лабораторная работа №3 (отчёт).
- Лабораторная работа №4 (отчёт).
- Лабораторная работа №5 (отчёт).
- Лабораторная работа №6 (отчёт).
- Домашняя работа (отчёт).
Чтобы превратить Jupyter-ноутбук в красивый отчёт, следует сделать следующее:
- Добавить следующие метаданные в ноутбук (Edit -> Edit Notebook Metadata в классическом интерфейсе, через плагин
jupyterlab_nbmetadataв Jupyter Lab, или просто открыв ноутбук в текстовом редакторе):{ "authors": [ { "name": "Лещев Артем Олегович" } ], "group": "ИУ5-24М", "lab_number": 1, "title": "Разведочный анализ данных. Исследование и визуализация данных" } - Если хочется библиографию:
- Сделать символическую ссылку в папке с ноутбуком на
common/bib.bib. - Расставить в ноутбуке в Markdown-ячейках ссылки вида:
<cite data-cite="ue:lab1"></cite>
- Сделать символическую ссылку в папке с ноутбуком на
После этого можно превратить данный Jupyter-ноутбук в отчёт командой вида:
jupyter nbconvert --to pdf --template=../common/template.tplx eda_visualization.ipynbВместо pdf можно использовать ключевое слово latex, чтобы получить готовый для редактирования .tex-файл. После редактирования следует использовать команду xelatex для компиляции этого файла в PDF.
При необходимости, естественно, можно подправить common/template.tplx. Например, в нём вшито название предмета на титульном листе.
Под Windows может быть очень неочевидная ошибка такого вида:
! Undefined control sequence.
<*> .\notebook
.tex
?
! Emergency stop.
<*> .\notebook
.tex
Для её исправления придётся поправить исходный код nbconvert: с помощью команды pip show nbconvert найдите папку, в которой установлен nbconvert, в ней откройте для исправления файл exporters/pdf.py и в классе PDFExporter найдите свойство writer. У конструктора этого свойства уберите аргумент kw={'build_directory': '.'}, именно в нём и заключается проблема. Данная проблема отслеживается в соответствующем проекте: jupyter/nbconvert#974.