16

Я пытаюсь использовать разметку с pandoc для преобразования одного документа в HTML, PDF и DOCX. Это чрезвычайно простой документ, содержащий только текст без математики и несколько изображений. Изображения в формате PNG. Я включаю изображение, используя это в источнике уценки:

<div style="float:center" markdown="1">

![my caption](./figures/myimage.png)

</div>

и скомпилируйте это как:

# html
pandoc myarticle.md -c mystyle.css -o myarticle.html
# pdf
pandoc myarticle.md -V geometry:margin=1in -o myarticle.pdf
# docx
pandoc myarticle.md -o myarticle.docx

Я заметил, что некоторые изображения в формате PNG, имеющие одинаковые размеры , имеют разный размер в форматах HTML и PDF. PNG размером 250x256 px с низким разрешением (72 px/in) будет отображаться в PDF как правильный размер примерно на странице, и будет иметь разумный размер в формате html, но PNG с такими же размерами (250x256 px), но с высоким разрешением (300 пикселей на дюйм) изменяются, чтобы быть крошечными на странице в выводе PDF. Я хочу сохранить набор изображений PNG в указанном мной размере, чтобы они отображались в этом размере в обоих форматах HTML/PDF/DOCX.

Я готов отказаться от автоматической поддержки docx (или иметь дело с большим количеством ручного форматирования после) только для того, чтобы иметь PDF/HTML.

Как я могу сказать pandoc не изменять размеры PNG для PDF или изображений и отображать их в правильных изображениях? Благодарю.

1 ответ1

8

Размеры преобразуются в пиксели для вывода в HTML-подобных форматах. Используйте параметр --dpi, чтобы указать количество пикселей на дюйм. Значение по умолчанию составляет 96 точек на дюйм.

Найдите наиболее распространенный элемент в ваших фотографиях и используйте его. Изменяйте только исключения.


Примеры: dpi, ширина, высота.

Если вы дадите ему информацию dpi:

Добавьте параметр --dpi, как указано, чтобы переопределить значение по умолчанию.


Если большинство ваших фотографий имеют общую высоту или ширину, это должно быть легко исправлено.

Например, вы изменили строку на:

![my caption](./figures/myimage.png){ width=250px }

или же

![my caption](./figures/myimage.png){ height=256px }

Или сделайте это в прямой разметке HTML:

<img src="./figures/myimage.png" alt="my caption" style="width: 250px;"/>

или же

<img src="./figures/myimage.png" alt="my caption" style="height: 256px;"/>

и соотношение будет правильным.


Ссылка: Pandoc Readme

Для HTML и EPUB все атрибуты, кроме ширины и высоты (но включая srcset и размеры), передаются как есть. Другие авторы игнорируют атрибуты, которые не поддерживаются их выходным форматом.

Атрибуты ширины и высоты на изображениях обрабатываются специально. При использовании без единицы измерения предполагается, что это пиксели. Однако можно использовать любой из следующих идентификаторов единиц: px, cm, mm, in, inch и%.

Размеры преобразуются в дюймы для вывода в форматах на основе страниц, таких как LaTeX. Размеры преобразуются в пиксели для вывода в HTML-подобных форматах. Используйте параметр --dpi, чтобы указать количество пикселей на дюйм. Значение по умолчанию составляет 96 точек на дюйм.

Единица%, как правило, относится к некоторому доступному пространству. Например, приведенный выше пример будет отображаться в <img href="file.jpg" style="width: 50%;" /> (HTML), \includegraphics[width=0.5\textwidth]{file.jpg} (LaTeX), or \externalfigure[file.jpg][width=0.5\textwidth] (ConTeXt).

В некоторых выходных форматах есть понятие класса (ConTeXt) или уникального идентификатора (LaTeX \caption) или обоих (HTML).

Если атрибуты width или height не указаны, запасной вариант заключается в проверке разрешения изображения и метаданных dpi, встроенных в файл изображения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .