Considere o seguinte manuscrito LaTeX, que usa a standalone
classe document para gerar imagens PDF
e PNG
imagens de uma TikZ
imagem.
\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}
A imagem resultante PDF
é (esta é uma captura de tela):
A imagem resultante PNG
é:
Por que oPNG
imagem é diferente eerrado, dimensões do que o PDF
arquivo?
Responder1
Conceitualmente, os bitmaps não possuem um tamanho, eles apenas possuem um número de pixels. Conforme documentado no standalone
manual, a classe informaconvert
para assumir 300 dpi, o que resulta em uma imagem de alta resolução para impressão, mas a resolução de imagem padrão para pdftex é 72 dpi, na verdadearquivos png podem armazenar um tamanho pretendido para seus pixelsmas a maioria não o faz e, mesmo que nem todos os sistemas usem a dica.
então qualquer um dos
\fbox{\includegraphics[scale=.24]{file.png}}% 72/300=.24
ou
{\pdfimageresolution=300 \fbox{\includegraphics{file.png}}}
será do mesmo tamanho que
\fbox{\includegraphics{file.pdf}}
Responder2
Não, não tem. Depende de como você mede isso.
Medindo no MS Word:
Três imagens de resolução diferente colocadas no Word:
Quando impresso:
Medindo em LaTeX:
O código:
\documentclass[]{standalone}
\usepackage{graphics}
\begin{document}
\noindent
\includegraphics{aaa.pdf}
\includegraphics{aaa.png}
\end{document}
Medição na tela com zoom de 100% do visualizador de PDF:
Medição na página da web:
Você não pode confiar no tamanho do PNG que vê em um navegador da web, pois eles processam imagens de maneira diferente (Veja aqui)
Imagem JPEG com 1200 dpi carregada no Imgur e vista através de um navegador da web:
Imagem PNG com 300 dpi Carregada no Imgur e vista através de um navegador da web:
Imagem JPEG com 50 dpi carregada no Imgur e vista através de um navegador da web:
Se quiser ver a dimensão correta em seu navegador, você precisa gerar seu PNG com o dpi correto. Veja o seguinte exercício:
Minha tela é 2560x1440.
A dimensão horizontal da tela é: aproximadamente 23,5 polegadas
A resolução da tela é de 2560 pontos/23,5 polegadas = 109 pontos por polegada
Gerei um PNG com dpi de aproximadamente 110.
Eu meço a dimensão horizontal na tela com um navegador da web:
Responder3
O standalone
manual do usuário (v1.2 - 15/07/2015) explica porque a imagem PNG gerada não possui as dimensões físicas esperadas e também fornece métodos para definir essas dimensões corretamente.
Por que a imagem PNG tem dimensões físicas erradas
De acordo com a seção 4.6.1 'Configurações de conversão' na pág. 15
as seguintes configurações padrão são usadas: [...] uma densidade de 300dpi
'dpi' é a abreviação de 'ponto por polegada', também conhecido como 'pixels por polegada' ('ppi'). Para ter as dimensões corretas quando exibido na tela, o ppi usado para gerar o PNG deve ser igual ao ppi da sua tela.
Para descobrir o ppi da sua tela, sigaeste método simplesdado na WikipediaDensidade de pixelspágina. O método consiste em usar uma régua fixada na tela para medir o comprimento de uma linha conhecida por ser composta por um determinado número de pixels.
Como garantir que a imagem PNG tenha as dimensões físicas corretas
Tabela 1 na pág. 17 sugere dois métodos para garantir que a imagem PNG gerada tenha as dimensões físicas desejadas. Ambos os métodos consistem em atribuir um valor à convert
opção de classe do documento, conforme segue:
\documentclass[tikz,convert={...}]{standalone}
Defina
convert={density=<d>}
onde<d>
está o ppi da sua tela.Defina
convert={size=<w>x<h>}
, onde<w>x<h>
estão as dimensões em pixels de uma imagem PNG conhecida por ter as dimensões físicas desejadas quando exibida na tela.No caso em apreço, como afirmou que a captura de tela da imagem PDF tinha as dimensões físicas corretas, utilize as suas dimensões em pixels, nomeadamente 137x50. Se você usa macOS, eles podem ser lidos diretamente no Finder.