Экспорт из ipynb в PDF с сохранением русского языка. Python nbconvert
из библиотеки nbconvert При экспорте не сохраняются символы русского алфавита. В итоге я должен был бы получить что-то такое:
А получаю это:
Подскажите пожалуйста, как избежать этого? MIKTeX скачан и русский язык там есть, Pandoc тоже.
Отслеживать
задан 19 апр 2020 в 16:44
Antivist Home Antivist Home
85 1 1 золотой знак 4 4 серебряных знака 11 11 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Этому вопросу больше двух лет, но, возможно, ответ кому-то пригодится.
Jupyter использует xelatex для того, чтобы генерировать PDF из тетрадки. xelatex — это LaTeX, сделанный на основе XeTeX — версии TeX, в которой используется Unicode для кодировки символов, а не байтовые кодировки, как в оригинальном TeXе.
Встроенная поддержка Unicode — это хорошо, но нужны ещё шрифты, в которых есть кириллические буквы. К сожалению, стандартный формат xelatex использует шрифты, в которых нет нужных символов.
Для решения проблемы можно воспользоваться тем, что Jupyter генерирует TeX-файл из тетрадки ipynb, используя шаблон Jinja2, который хранится в файле index.tex.j2 . Место расположения этого файла и выбор шрифтов на замену зависит от окружения.
Linux + TeXLive
В Linux Jupyter ищет этот шаблон по списку директорий, первое место в котором занимает директория ~/.local/share/jupyter/nbconvert/templates/latex .
Хорошие шрифты для Linux — это шрифты семейства Droid.
В директорию с шаблонами нужно положить файл примерно такого содержания, который обеспечит подключение шрифтов Droid.
((=- Default to the notebook output style -=)) ((*- if not cell_style is defined -*)) ((* set cell_style = 'style_jupyter.tex.j2' *)) ((*- endif -*)) ((=- Inherit from the specified cell style. -=)) ((* extends cell_style *)) %=============================================================================== % Latex Article %=============================================================================== ((*- block docclass -*)) \documentclass[11pt] ((*- endblock docclass -*)) ((*- block packages -*)) ((( super() ))) \usepackage \usepackage \setdefaultlanguage \setotherlanguage \newfontfamily \newfontfamily \AtBeginDocument < \setmainfont\setsansfont \setmonofont > ((*- endblock packages -*))
После того, как в генерируемый TeX файл будут включены команды из бока packages , в PDF-файле будут отображаться кириллические буквы.

Windows + MikTex
%%% пока не готово
Jupyter – конвертация ноутбуков
Файлы ноутбуков Jupyter имеют расширение .ipynb . Записная книжка отображается в веб-браузере с помощью приложения Записная книжка. Его можно экспортировать в различные форматы файлов, используя параметр загрузки в меню файлов. Jupyter также имеет интерфейс командной строки в виде опции nbconvert . По умолчанию nbconvert экспортирует записную книжку в формат HTML. Вы можете использовать следующую команду для этой цели –
jupyter nbconvert mynotebook.ipynb
Это преобразует mynotebook.ipynb в mynotebook.html . Другой формат экспорта указывается в предложении `–to` .
Обратите внимание, что другие опции включают [‘asciidoc’, ‘custom’, ‘html’, ‘latex’, ‘markdown’, ‘notebook’, ‘pdf’, ‘python’, ‘rst’, ‘script’, ‘slides’]
HTML включает в себя «базовые» и «полные» шаблоны. Вы можете указать это в командной строке, как показано ниже –
jupyter nbconvert --to html --template basic mynotebook.ipynb
LaTex – формат подготовки документов, используемый специально для научного набора текста. Jupyter включает шаблоны «base», «article» и «report».
jupyter nbconvert --to latex –template report mynotebook.ipynb
Чтобы создать PDF через латекс, используйте следующую команду –
jupyter nbconvert mynotebook.ipynb --to pdf
Записную книжку можно экспортировать в слайд-шоу HTML. Преобразование использует Reveal.js в фоновом режиме. Чтобы обслуживать слайды HTTP-сервером, добавьте –postserve в командной строке. Чтобы создавать слайды, не требующие подключения к Интернету, просто поместите библиотеку Reveal.js в тот же каталог, где находится your_talk.slides.html .
jupyter nbconvert myslides.ipynb --to slides --post serve
Опция уценки конвертирует ноутбук в простой вывод уценки. Ячейки уценки не затрагиваются, а ячейки кода с отступом 4 пробела.
--to markdown
Вы можете использовать первую опцию, чтобы преобразовать блокнот в базовый вывод reStructuredText. Это полезно в качестве отправной точки для встраивания записных книжек в документы Sphinx.
--to rst
Это самый простой способ получить скрипт Python (или другой язык, в зависимости от ядра) из блокнота.
Конвертация Jupyter-ноутбуков для запуска в пакетном режиме на суперкомпьютере (запуск через очередь задач)
Jupyter-ноутбуки можно сконвертировать в py-файл для запуска на суперкомпьютере в пакетном режиме. Благодаря такому режиму Вы сможете запускать сразу множество вычислительных задач с различными параметрами, не дожидаясь освобождения ресурсов. Поиск ресурсов для ваших задач будет круглосуточно выполнять планировщик slurm. Задачи начнут работу сразу после появления ресурсов, не дожидаясь вашего подключения к ноутбуку. После окончания работы пакетная задача будет завершена автоматически и ресурсы суперкомпьютера будут переданы следующим задачам без простоя.
Предварительно следует открыть ноутбук в веб-интерфейсе Jupyter и убедиться, что код подготовлен к автоматическому выполнению без участия пользователя.
Конвертация ноутбука в py-файл возможна следующими способами:
- В интерфейсе JupyterHub перейти в меню File -> Save and Export Notebook As. -> Executable script. После чего загрузить полученный файл на суперкомпьютер.

- В классическом интерфейсе Jupyter Notebook выбрать пункт File -> Download as -> Python (.py). После чего загрузить полученный файл на суперкомпьютер.

- В консоли суперкомпьютера загрузить модуль Python: module load Python и выполнить команду конвертации ноутбука: jupyter nbconvert —to python notebook_name.ipynb (сконвертированный py-файл будет сохранён в каталоге с ноутбуком под названием notebook_name.py).

Для выполнения данного py-файла на суперкомпьютере в пакетном режиме необходимо подготовить sbatch-файл. Пример sbatch-файла converted_notebook.sbatch для запуска сконвертированного ноутбука:
#!/bin/bash #SBATCH --job-name=converted_notebook # Название задачи #SBATCH --time=01-00 # Максимальное время выполнения
#SBATCH --nodes=1 # Все CPU и GPU будут выделены на одном вычислительном узле #SBATCH --cpus-per-task=4 # Количество CPU на одну задачу #SBATCH --gpus=2 # Требуемое кол-во GPU
#SBATCH --constraint="type_a|type_b|type_c" # Типы вычислительных узлов
#SBATCH --mail-type=END,FAIL # Укажите ваш email для отправки уведомлений
#SBATCH --mail-user=ваша_почта # События, требующие уведомления
module purge # Отключаем все ранее загруженные модули module load Python/PyTorch_GPU_v1.11 # Загрузка модуля Python PyTorch_GPU_v1.11 ipython converted_notebook.py # Выполнение расчёта
Укажите требуемые параметры для запуска задачи, название модуля/окружения, адрес электронной почты и имя файла. Для запуска задачи на суперкомпьютере необходимо выполнить команду sbatch converted_notebook.sbatch
Код из py-файла будет выполнен с использованием ipython точно также, как он выполняется в Jupyter-ноутбуке.
Подробно процесс подготовки sbatch-файлов и запуска задач описан в отдельной инструкции.
Ограчения пакетного режима
- В пакетном режиме запуска задач не будут сформированы графики с использованием модулей типа matplotlib.pyplot. Графики можно сохранять в файл, используя метод pyplot.savefig(‘plot_name.png’)
Нашли опечатку ?
Выделите её, нажмите Ctrl+Enter и отправьте нам уведомление. Спасибо за участие!
Сервис предназначен только для отправки сообщений об орфографических и пунктуационных ошибках.
Национальный исследовательский университет «Высшая школа экономики» → Отдел суперкомпьютерного моделирования → Конвертация Jupyter-ноутбуков для запуска в пакетном режиме на суперкомпьютере (запуск через очередь задач)
- О ВЫШКЕ
- Цифры и факты
- Руководство и структура
- Преподаватели и сотрудники
- Корпуса и общежития
- Закупки
- Обращения граждан в НИУ ВШЭ
- Фонд целевого капитала
- Противодействие коррупции
- Сведения о доходах, расходах, об имуществе и обязательствах имущественного характера
- Сведения об образовательной организации
- Людям с ограниченными возможностями здоровья
- Единая платежная страница
- Работа в Вышке
- ОБРАЗОВАНИЕ
- Лицей
- Довузовская подготовка
- Олимпиады
- Прием в бакалавриат
- Вышка+
- Прием в магистратуру
- Аспирантура
- Дополнительное образование
- Центр развития карьеры
- Бизнес-инкубатор ВШЭ
- НАУКА
- Научные подразделения
- Исследовательские проекты
- Мониторинги
- Диссертационные советы
- Защиты диссертаций
- Академическое развитие
- Конкурсы и гранты
- Научно-образовательный портал IQ.hse.ru
- XXIV Ясинская (Апрельская) международная научная конференция по проблемам развития экономики и общества
- РЕСУРСЫ
- Библиотека
- Издательский дом ВШЭ
- Книжный магазин «БукВышка»
- Типография
- Медиацентр
- Журналы ВШЭ
- Публикации
- Единый архив экономических и социологических данных
- Полезные ссылки
- Министерство науки и высшего образования РФ
- Министерство просвещения РФ
- Федеральный портал «Российское образование»
- Массовые открытые онлайн-курсы
Шрифты HSE Sans и HSE Slab разработаны в Школе дизайна НИУ ВШЭ
Jupyter Учебное пособие по ноутбуку: как установить и использовать Jupyter?
Jupyter ноутбук — это веб-приложение с открытым исходным кодом для написания и обмена живыми кодами, уравнениями и визуализациями с элементами форматированного текста. Он обеспечивает удобный способ написания абзацев, уравнений, заголовков, ссылок и рисунков для анализа данных. Это также полезно для обмена интерактивными алгоритмами с вашей аудиторией в целях обучения или демонстрации.
Введение в Jupyter Приложение для ноутбука
Команда Jupyter Приложение для ноутбука — это интерфейс, в котором вы можете писать сценарии и коды через веб-браузер. Приложение можно использовать локально, то есть вам не нужен доступ в Интернет или удаленный сервер.

Каждое вычисление выполняется через ядро. Новое ядро создается каждый раз при запуске Jupyter Блокнот.
Как это работает? Jupyter ноутбук
На занятии ниже вы узнаете, как использовать Jupyter Блокнот. Вы напишете простую строку кода, чтобы ознакомиться со средой Jupyter.
Шаг 1) Вы добавляете папку внутри рабочего каталога, которая будет содержать все записные книжки, которые вы создадите во время обучения по TensorFlow.
Откройте терминал и напишите
mkdir jupyter_tf jupyter notebook
- MkDir jupyter_tf: создать имена папок jupyter_тф
- jupyter блокнот: Открыть Jupyter Веб-приложение

Шаг 2) Вы можете увидеть новую папку внутри среды. Нажмите на папку jupyter_тф.

Шаг 3) Внутри этой папки вы создадите свой первый блокнот. Нажмите на кнопку Новая и Python 3.

Шаг 4) Вы находитесь внутри Jupyter среда. Пока что ваш блокнот называется Untiltled.ipynb. Это имя по умолчанию, данное Jupyter. Давайте переименуем его, нажав на Файл и Переименовывать

Вы можете переименовать его Введение_jupyter

В АВС Jupyter Блокнот, вы пишете коды, аннотации или текст внутри ячеек.

Внутри ячейки вы можете написать одну строку кода.

или несколько строк. Jupyter читает код одну строку за другой.

Например, если вы напишете following код внутри ячейки.

Он выдаст этот результат.

Шаг 5) Вы готовы написать свою первую строку кода. Вы можете заметить, что ячейка имеет два цвета. Зеленый цвет означает, что вы находитесь в режим редактирования.

Однако синий цвет указывает на то, что вы находитесь в режим выполнения.

Первой строкой кода будет вывод Guru99!. Внутри ячейки вы можете написать
print("Guru99!")
Есть два способа запустить код в Jupyter:
Чтобы запустить код, вы можете нажать на Ячейка , а затем Запустите ячейки и выберите ниже

Вы можете видеть, что код напечатан под ячейкой, и сразу после вывода появилась новая ячейка.

Более быстрый способ запустить код — использовать Сочетания клавиш. Чтобы получить доступ к сочетаниям клавиш, перейдите в Документи и Сочетания клавиш

Ниже список сочетаний клавиш для клавиатуры MacOS. Вы можете редактировать ярлыки в редакторе.

Фоллоwing это ярлыки для Windows

Напишите эту строку
print("Hello world!")
и попробуйте использовать сочетания клавиш для запуска кода. Используйте альт+энтер. он выполнит ячейку и вставит новую пустую ячейку ниже, как вы делали раньше.

Шаг 6) Пришло время закрыть Блокнот. Идти к Файл и нажмите на Закрыть и остановиться

Внимание: Jupyter автоматически сохраняет блокнот с контрольной точкой. Если у вас есть подпискаwing сообщение:

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

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

Установите Jupyter Ноутбук с AWS
Ниже приведен пошаговый процесс установки и запуска. Jupyter Ноутбук на AWS:
Если у вас нет учетной записи на AWS, создайте бесплатную учетную запись. здесь.
Мы будем действовать следующим образом
- Часть 1. Настройка пары ключей
- Часть 2. Настройка группы безопасности
- Часть 3. Запуск экземпляра
- Часть 4. Установите Docker
- Часть 5: Установка Jupyter
- Часть 6: Тесное соединение
ЧАСТЬ 1. Настройка пары ключей
Шаг 1) Перейдите на Услуги и найдите EC2

Шаг 2) На панели и нажмите Ключевые пары

Шаг 3) Нажмите «Создать пару ключей».

- Вы можете назвать это ключом Docker
- Нажмите кнопку Создать

Загружается файл с именем Docker_key.pem.

Шаг 4) Скопируйте и вставьте его в ключ папки. Он нам скоро понадобится.
Только для пользователей Mac OS
Этот шаг касается только пользователя Mac OS. Для пользователей Windows или Linux перейдите к ЧАСТИ 2.
Вам необходимо установить рабочий каталог, который будет содержать ключ файла.
Прежде всего создайте папку с именем key. У нас он находится внутри основной папки Docker. Затем вы устанавливаете этот путь в качестве рабочего каталога.
mkdir Docker/key cd Docker/key

ЧАСТЬ 2. Настройка группы безопасности
Шаг 1) Вам необходимо настроить группу безопасности. Вы можете получить к нему доступ с помощью панели

Шаг 2) Нажмите «Создать группу безопасности».

Шаг 3) На следующем экране
- Введите имя группы безопасности «jupyter_docker» и описание группы безопасности для Docker.
- Вам нужно добавить 4 правила поверх
- ssh: диапазон портов 22, источник Anywhere
- http: диапазон портов 80, источник Anywhere
- https: диапазон портов 443, источник Anywhere
- Пользовательский TCP: диапазон портов 8888, источник Anywhere
- Нажмите кнопку Создать

Шаг 4) Вновь созданная группа безопасности будет отображена в списке.

Часть 3. Запуск экземпляра
Наконец, вы готовы создать экземпляр.

Шаг 1) Нажмите «Запустить экземпляр».

Сервера по умолчанию достаточно для ваших нужд. Ты можешь выбрать Amazon Линукс АМИ. Текущий экземпляр — 2018.03.0.
АМИ означает Amazon Изображение машины. Он содержит информацию, необходимую для успешного запуска экземпляра, работающего на виртуальном сервере, хранящемся в облаке.

Обратите внимание, что у AWS есть сервер, предназначенный для глубокого обучения, например:
- AMI глубокого обучения (Ubuntu)
- AMI глубокого обучения
- База глубокого обучения AMI (Ubuntu)
Все они поставляются с новейшими двоичными файлами сред глубокого обучения, предварительно установленными в отдельных виртуальных средах:
Полностью настроен с использованием NVidia CUDA, cuDNN и NCCL, а также Intel MKL-DNN.
Шаг 2) Выберите t2.micro. Это сервер бесплатного уровня. AWS предлагает бесплатно эту виртуальную машину, оснащенную 1 виртуальным ЦП и 1 ГБ памяти. Этот сервер обеспечивает хороший компромисс между вычислениями, памятью и производительностью сети. Подходит для малых и средних баз данных.

Шаг 3) Оставьте настройки по умолчанию на следующем экране и нажмите «Далее: Добавить хранилище».

Шаг 4) Увеличьте объем памяти до 10 ГБ и нажмите «Далее».

Шаг 5) Оставьте настройки по умолчанию и нажмите «Далее: настроить группу безопасности».

Шаг 6) Выберите группу безопасности, которую вы создали ранее, то есть jupyter_докер

Шаг 7) Проверьте свои настройки и нажмите кнопку запуска.

Шаг 8 ) Последний шаг — связать пару ключей с экземпляром.

Шаг 8) Экземпляр будет запущен

Шаг 9) Ниже приведена сводка экземпляров, используемых в настоящее время. Обратите внимание на общедоступный IP-адрес

Шаг 9) Нажмите «Подключиться»

Вы найдете подробности подключения

Запустите свой экземпляр (пользователи Mac OS)
Сначала убедитесь, что внутри терминала ваш рабочий каталог указывает на папку с файлом пары ключей docker.
chmod 400 docker.pem
Откройте соединение с этим кодом.
Есть два кода. в некоторых случаях первый код позволяет избежать Jupyter открыть ноутбук.
В этом случае используйте второй для принудительного подключения. Jupyter Ноутбук на EC2.
# If able to launch Jupyter ssh -i "docker.pem" ec2-user@ec2-18-219-192-34.us-east-2.compute.amazonaws.com # If not able to launch Jupyter ssh -i "docker.pem" ec2-user@ec2-18-219-192-34.us-east-2.compute.amazonaws.com -L 8888:127.0.0.1:8888
В первый раз вам будет предложено принять соединение.

Запустите свой экземпляр (пользователи Windows)
Шаг 1) Перейдите на этот сайт, чтобы загрузить PuTTY и PuTTYgen. PuTTY
Вам нужно скачать
- PuTTY: запустить экземпляр
- PuTTYgen: преобразовать файл pem в ppk

Теперь, когда оба программного обеспечения установлены, вам необходимо преобразовать файл .pem в .ppk. PuTTY может читать только .ppk. Файл pem содержит уникальный ключ, созданный AWS.
Шаг 2) Откройте PuTTYgen и нажмите «Загрузить». Просмотрите папку, в которой находится файл .pem.

Шаг 3)После загрузки файла вы должны получить уведомление о том, что ключ был успешно импортирован. Нажмите ОК

Шаг 4) Затем нажмите «Сохранить закрытый ключ». Вас спросят, хотите ли вы сохранить этот ключ без парольной фразы. Нажмите «Да».

Шаг 5) Сохраните ключ

Шаг 6) Перейдите на AWS и скопируйте общедоступный DNS.

Откройте PuTTY и вставьте общедоступный DNS в имя хоста.

Шаг 7)
- На левой панели разверните SSH и откройте Auth.
- Просмотрите закрытый ключ. Вам следует выбрать .ppk
- Щелкните «Открыть».

Шаг 8)
Когда этот шаг будет выполнен, откроется новое окно. Нажмите «Да», если вы видите это всплывающее окно.

Шаг 9)
Вам необходимо войти в систему как: ec2-user

Шаг 10)
Вы подключены к Amazon Линукс АМИ.

Часть 4. Установите Docker
Пока вы подключены к серверу через Putty/Terminal, вы можете установить Docker контейнер.
Выполните следующееwing Коды
sudo yum update -y sudo yum install -y docker sudo service docker start sudo user-mod -a -G docker ec2-user exit
Запустите снова соединение
ssh -i "docker.pem" ec2-user@ec2-18-219-192-34.us-east-2.compute.amazonaws.com -L 8888:127.0.0.1:8888
Пользователи Windows используют SSH, как указано выше.
Часть 5: Установка Jupyter
Шаг 1) Создавай Jupyter с,
заранее созданное изображение.
## Tensorflow docker run -v ~/work:/home/jovyan/work -d -p 8888:8888 jupyter/tensorflow-notebook ## Sparkdocker run -v ~/work:/home/jovyan/work -d -p 8888:8888 jupyter/pyspark-notebook
- docker run: запустить образ
- v: прикрепить том
- ~/work:/home/jovyan/work: Объем
- 8888:8888: порт
- jupyter/datascience-notebook: Изображение
Для получения других готовых образов перейдите здесь
Разрешить сохранение Jupyter Блокнот AWS
sudo chown 1000 ~/work
Шаг 2) Установите дерево, чтобы увидеть,
наш рабочий каталог следующий
sudo yum install -y tree

Шаг 3) Проверьте контейнер и его имя
docker ps
docker logs vigilant_easley

Шаг 4) В URL-адресе
Замените (90a3c09282d6 или 127.0.0.1) на общедоступный DNS вашего экземпляра.
http://(90a3c09282d6 or 127.0.0.1):8888/?token=f460f1e79ab74c382b19f90fe3fd55f9f99c5222365eceed

Шаг 5) Новый URL-адрес станет
http://ec2-174-129-135-16.compute-1.amazonaws.com:8888/?token=f460f1e79ab74c382b19f90fe3fd55f9f99c5222365eceed
Шаг 6) Скопируйте и вставьте URL-адрес в свой браузер.

Шаг 7) Вы можете написать новую тетрадь,
в твоей рабочей папке

Часть 6: Тесное соединение
Закройте соединение в терминале
exit
Вернитесь в AWS и остановите сервер.

УСТРАНЕНИЕ НЕПОЛАДОК
Если докер не работает, попробуйте восстановить образ, используя
docker run -v ~/work:/home/jovyan/work -d -p 8888:8888 jupyter/tensorflow-notebook
Итоги
- Jupyter Блокнот — это веб-приложение, в котором вы можете запускать Python и R-коды. Легко делиться и доставлять богатые анализ данных Jupyter.
- Запустить jupyter, напишите в терминале: jupyter ноутбук
- Вы можете сохранить свой блокнот где угодно.
- Ячейка содержит ваш код Python. Ядро будет читать код один за другим.
- Вы можете использовать ярлык для запуска ячейки. По умолчанию: Ctrl+Ввод.
- Гауссово ядро в машинном обучении: методы ядра Python
- Учебное пособие по PyTorch: регрессия, пример классификации изображений
- Учебное пособие по переносу обучения PyTorch с примерами
- Pandas read_csv() с примером
- Учебное пособие по Tensorflow PDF для начинающих (загрузить сейчас)
- TensorFlow против Keras: ключевая разница между ними
- 11 ЛУЧШИХ книг по TensorFlow (обновление 2024 г.)
- Шпаргалка Pandas по науке о данных в Python