Задание готово в Jupyter, а система сдачи принимает только PDF. Вы выбираете «Скачать как PDF» или запускаете jupyter nbconvert --to pdf и получаете ошибку: xelatex не найден или не хватает pandoc. nbconvert делает PDF через LaTeX, поэтому, прежде чем что-то экспортировать, ему нужен полностью установленный дистрибутив TeX.
Теперь Look Scanned открывает файлы .ipynb напрямую. Выберите блокнот на странице Jupyter Notebook в отсканированный PDF, и он сверстается прямо в браузере: ячейки Markdown, код и вывод, сохранённый вместе с файлом. Проверьте страницы в предпросмотре и скачайте PDF. Ничего устанавливать не нужно, и блокнот никуда не загружается.
Сразу оговоримся: Look Scanned делает документы похожими на сканы, и PDF выглядит именно так. Это то, что нужно, если блокнот надо сдать как распечатанную и отсканированную копию или он просто должен выглядеть как бумажный документ. Поворот, размытие и шум можно опустить до нуля, чтобы страница выглядела чище, но каждая страница всё равно остаётся изображением, поэтому текст в PDF нельзя выделить или найти поиском.
Как превратить файл .ipynb в отсканированный PDF
- Выполните блокнот и сохраните его в Jupyter, JupyterLab, VS Code или Google Colab, чтобы вывод записался в файл. В Colab используйте «Файл → Скачать → Скачать файл .ipynb».
- Откройте Jupyter Notebook в отсканированный PDF и выберите файл
.ipynb. - Просмотрите предпросмотр страницу за страницей. Проверьте код, таблицы и графики, задайте размер бумаги и поля.
- Настройте эффект сканирования. Держите размытие и шум на низком уровне, чтобы мелкий код оставался читаемым. По умолчанию страницы получаются в оттенках серого; выберите «Цветной», чтобы графики сохранили цвета.
- Создайте отсканированный PDF и скачайте его.
Если вам удобнее изображения, каждую страницу можно экспортировать в JPG или PNG. Когда какой формат лучше, рассказано в нашей статье о PDF, JPG и PNG. А в пакетном сканировании, функции Pro, можно обработать сразу несколько файлов .ipynb.
Что окажется на странице
- Ячейки Markdown: заголовки, списки, таблицы, ссылки и изображения, в том числе вставленные прямо в ячейку.
- Ячейки кода с подсветкой синтаксиса для языка блокнота и подписями
In [1]:. Длинные строки переносятся, а не уходят за край страницы. - Сохранённый вывод под подписями
Out[1]:: напечатанный текст, возвращаемые значения, HTML-таблицы вроде DataFrame из pandas и изображения, так что графики matplotlib или seaborn на месте. - Ошибки вместе с полным трейсбэком.
- Вывод терминала в том виде, в каком его показывает терминал. Цветовые коды убираются, а индикатор прогресса вроде tqdm сохраняет только итоговое состояние, а не каждое обновление.
Что нужно знать заранее
- Ячейки не выполняются. Look Scanned читает то, что сохранено в файле; ядра здесь нет. Ячейка, которую вы ни разу не запускали, или блокнот, сохранённый с очищенным выводом, покажет код, под которым ничего нет. Выполните все ячейки и сохраните файл, прежде чем выбирать его.
- Формулы остаются исходным кодом TeX. Формулы, записанные в ячейках Markdown как
$…$или$$…$$, отображаются ровно так, как набраны, например$\alpha + \beta$, а не свёрстанными формулами. - Интерактивный вывод не отображается. Plotly, Bokeh и ipywidgets рисуют с помощью JavaScript, а он не выполняется. Вы увидите статическую версию, которую блокнот сохранил рядом, часто это всего одна короткая строка текста, а то и вовсе ничего. Графики, сохранённые как изображения, например из matplotlib, отображаются нормально.
- Нужен формат nbformat 4. Именно его записывают современные Jupyter, JupyterLab, VS Code и Colab. Очень старый блокнот в nbformat 3 не откроется; откройте его в актуальном Jupyter и сохраните заново, чтобы обновить формат.
- Широкие таблицы сжимаются. Таблицы подгоняются под ширину страницы, поэтому у DataFrame с множеством столбцов столбцы становятся узкими, а текст в них переносится.
- Сохраните исходный блокнот. Как и настоящий скан, PDF состоит из изображений страниц. Чтобы запускать и редактировать код, оставьте себе файл
.ipynb.
Блокнот читается и верстается на вашем собственном устройстве и не загружается на сервер. Единственное исключение — ячейка Markdown, которая показывает изображение по веб-адресу: браузер загружает это изображение с сайта, где оно размещено, так же как это сделал бы Jupyter.
Когда лучше выбрать nbconvert
Если вам нужен выделяемый текст, свёрстанные формулы или PDF, в точности совпадающий с собственным экспортом Jupyter, nbconvert по-прежнему остаётся правильным инструментом. Установите дистрибутив TeX и запустите jupyter nbconvert --to pdf или воспользуйтесь --to webpdf: он печатает через браузер Chromium без интерфейса и обходится вообще без LaTeX. В обоих случаях к получившемуся PDF потом можно добавить эффект сканирования в Look Scanned.
Ваш отчёт — это файл Markdown или LaTeX, а не блокнот? Их тоже можно открыть: см. Markdown и HTML в отсканированный PDF и LaTeX в отсканированный PDF.
Есть блокнот, который нужно сдать в PDF? Попробуйте прямо сейчас.