Jupiter: nbconvert конвертирует HTML-изображение в LaTex

Мне нравится использовать блокноты Jupyter для документирования тем моего курса физики, поэтому я предлагаю своим ученикам использовать CoCalc и блокноты Markdown или Jupyter для написания своих лабораторных отчетов. У меня проблема.

Например, в блокноте Jupyter способ вставки изображения с помощью Markdown — ![Two slit](twoSlit1.png). Однако вы не можете контролировать размер, расположение и упаковку. У Stack Exchange есть много предложений [здесь] по управлению размером 1.

Однако когда я пытаюсь преобразовать его в pdf, изображения теряются, если они вставлены с использованием HTML. Например

![Two slit](twoSlit1.png)

преобразованный с помощью jupyter nbconvert Example.ipynb --to html работает нормально, но без контроля над размером изображения. Затем я могу распечатать это в pdf, но у него не очень хороший «документ». Но

<img align="right" src="twoSlit1.png" width="200" />

преобразованный с помощью jupyter nbconvert Example.ipynb --to pdf дает рендеринг в формате PDF, но изображения отсутствуют. Я перепробовал множество различных кодировок HTML-изображений, но ни одна из них не работает с nbconvert --to pdf.

CoCalc File -> Download as PDF via LaTex (.pdf)... также не отображает изображения.

Я получаю аналогичные результаты на CoCalc, если я создаю документ Markdown и использую pandoc Example1.md -o Example1.pdf для создания файла PDF.

Кстати, оба идеально отображают уравнения.

Я также получаю те же результаты на своем Mac с локальным запуском jupyter (дистрибутив Anaconda, python 3.7)


person Prof Huster    schedule 22.02.2019    source источник


Ответы (1)


Я получил оперативные ответы Уильяма Штейна и Харальда Шилли из CoCalc, когда отправил запрос в службу поддержки. Вот мой ответ.

  1. Проблема в том, что панель предварительного просмотра Markdown (и, возможно, ячеек Markdown для ноутбука jupyter) отображается во внешнем интерфейсе, а не с использованием pandoc в бэкэнде, поэтому, когда я использовал pandoc из терминала, я получил другой результат.

  2. Я мог бы получить HTML, который выглядит разумно, поместив тег HTML <style> в начало документа Markdown и поместив код CSS в тег <style>. Затем я поместил свое изображение в HTML <div>, который использовал CSS для установки его размера, правильного размещения, добавления подписи и т. д. Я также уменьшил размер шрифтов заголовка, установил семейство шрифтов с засечками и т. д. в CSS файл. Тогда предварительный просмотр выглядел нормально, но все еще были проблемы, когда я распечатывал предварительный просмотр и сохранял его в формате pdf. Так:

  3. Просто используйте Markdown и используйте HTML всего для нескольких вещей: а) <div class="center"> для центрирования заголовка, автора, ... б) <blockquote> для оформления аннотации. c) <div class=figure width="280px"> для вставки плавающих цифр.

  4. Создайте файл style.css и запустите pandoc из командной строки, используя

    pandoc Example.md -s --css="style.css" --mathjax -o Example.html
    
  5. Откройте Example.html в CoCalc, используйте значок печати на панели визуализации и сохраните файл PDF.

Я удовлетворен. Студенты могут получать достойные отчеты без дополнительной работы с LaTeX и с минимумом HTML. Я даю им файл CSS.

person Prof Huster    schedule 01.03.2019