Рассмотрим следующую рукопись LaTeX, в которой standalone
класс документа используется для генерации как изображения, PDF
так и PNG
рисунка TikZ
.
\documentclass[tikz,convert]{standalone}
\begin{document}
\begin{tikzpicture}
\draw (0,0) -- (1,1)
[rounded corners] -- (2,0) -- (3,1)
[sharp corners] -- (3,0) -- (2,1);
\end{tikzpicture}
\end{document}
Получившееся PDF
изображение (это скриншот):
Получившееся PNG
изображение:
Почему PNG
изображение отличается, инеправильный, размеры файла PDF
?
решение1
Концептуально у растровых изображений нет размера, у них просто есть количество пикселей. Как указано в standalone
руководстве, класс говорит, convert
что нужно принять 300 точек на дюйм, что делает изображение с высоким разрешением для печати, но разрешение изображения по умолчанию для pdftex составляет 72 точки на дюйм, на самом делеФайлы png могут хранить предполагаемый размер своих пикселей.но большинство этого не делает, и даже если и не делает, все системы используют подсказку.
так что любой из
\fbox{\includegraphics[scale=.24]{file.png}}% 72/300=.24
или
{\pdfimageresolution=300 \fbox{\includegraphics{file.png}}}
будет того же размера, что и
\fbox{\includegraphics{file.pdf}}
решение2
Нет. Это не так. Это зависит от того, как вы это измеряете.
Измерение в MS Word:
Три изображения с разным разрешением, размещенные в Word:
При печати:
Измерение в LaTeX:
Код:
\documentclass[]{standalone}
\usepackage{graphics}
\begin{document}
\noindent
\includegraphics{aaa.pdf}
\includegraphics{aaa.png}
\end{document}
Измерение на экране при 100% увеличении просмотрщика PDF-файлов:
Измерение на веб-странице:
Вы не можете полагаться на размер PNG, который вы видите в веб-браузере, поскольку они обрабатывают изображения по-разному (глянь сюда)
Изображение JPEG с разрешением 1200 точек на дюйм, загруженное на Imgur и просмотренное через веб-браузер:
Изображение PNG с разрешением 300 точек на дюйм, загруженное на Imgur и просмотренное через веб-браузер:
Изображение JPEG с разрешением 50 точек на дюйм, загруженное на Imgur и просмотренное через веб-браузер:
Если вы хотите увидеть правильное измерение в вашем веб-браузере, вам нужно сгенерировать ваш PNG с правильным dpi. Смотрите следующее упражнение:
Мой экран 2560x1440.
Горизонтальный размер экрана: около 23,5 дюймов
Разрешение экрана 2560 точек/23,5 дюйма = 109 точек на дюйм.
Я создал PNG с разрешением примерно 110 dpi.
Я измеряю горизонтальный размер на экране с помощью веб-браузера:
решение3
В руководстве пользователя standalone
(v1.2 - 2015/07/15) объясняется, почему сгенерированное изображение PNG не имеет ожидаемых физических размеров, а также приводятся методы правильной установки этих размеров.
Почему изображение PNG имеет неправильные физические размеры
Согласно разделу 4.6.1 «Настройки конвертации» на стр. 15
используются следующие настройки по умолчанию: [...] плотность 300 точек на дюйм
«dpi» — это сокращение от «точек на дюйм», также известное как «пиксели на дюйм» («ppi»). Чтобы на экране отображались правильные размеры, ppi, используемые для создания PNG, должны соответствовать ppi вашего экрана.
Чтобы узнать ppi вашего экрана, следуйте инструкциямэтот простой методдано на ВикипедииПлотность пикселейстраница. Метод заключается в использовании линейки, поднесенной к экрану, для измерения длины линии, которая, как известно, состоит из определенного количества пикселей.
Как обеспечить правильные физические размеры изображения PNG
Таблица 1 на стр. 17 предлагает два метода, чтобы гарантировать, что сгенерированное изображение PNG имеет желаемые физические размеры. Оба метода состоят в назначении значения опции convert
класса документа следующим образом:
\documentclass[tikz,convert={...}]{standalone}
Установите
convert={density=<d>}
, где<d>
находится ppi вашего экрана.Установите
convert={size=<w>x<h>}
, где<w>x<h>
— размеры в пикселях изображения PNG, которое, как известно, имеет желаемые физические размеры при отображении на экране.В данном случае, поскольку вы заявили, что скриншот изображения PDF имеет правильные физические размеры, используйте его размеры в пикселях, а именно 137x50. Если вы используете macOS, их можно прочитать непосредственно из Finder.