考慮下面的 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
我們假設 300dpi 可以產生用於列印的高解析度影像,但實際上 pdftex 的預設影像解析度是 72dpipng 檔案可以儲存其像素的預期大小但大多數系統不使用該提示,即使不使用,也並非所有系統都使用該提示。
所以無論是
\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}
PDF 檢視器 100% 縮放的螢幕上的測量:
網頁測量:
您不能依賴在網頁瀏覽器上看到的 PNG 的大小,因為它們處理圖像的方式不同(看這裡)
1200 dpi 的 JPEG 影像上傳到 Imgur 並透過網頁瀏覽器檢視:
300 dpi 的 PNG 圖像上傳到 Imgur 並透過網頁瀏覽器檢視:
50 dpi 的 JPEG 影像上傳到 Imgur 並透過網頁瀏覽器檢視:
如果您想在網頁瀏覽器上看到正確的尺寸,則需要使用正確的 dpi 來產生 PNG。請參考以下練習:
我的螢幕是 2560x1440。
螢幕水平尺寸為:約23.5英寸
螢幕解析度為 2560 點/23.5 吋 = 每吋 109 點
我產生了一個 dpi 約 110 的 PNG。
我使用網頁瀏覽器測量螢幕上的水平尺寸:
答案3
使用standalone
手冊(v1.2 - 2015/07/15)解釋了為什麼生成的PNG圖像沒有預期的物理尺寸,並且還提供了正確設定這些尺寸的方法。
為什麼 PNG 圖像的物理尺寸錯誤
根據第 4.6.1 頁「轉換設定」一節。 15
使用以下預設設定:[...] 密度為 300dpi
「dpi」是「每吋點數」的縮寫,也稱為「每吋像素數」(“ppi”)。為了在螢幕上顯示時具有正確的尺寸,用於產生 PNG 的 ppi 必須等於螢幕的 ppi。
要了解您螢幕的 ppi,請按照這個簡單的方法維基百科上給出的像素密度頁。此方法包括使用固定在螢幕上的尺來測量已知由一定數量的像素組成的線的長度。
如何確保PNG影像具有正確的物理尺寸
第 1 頁的表 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 讀取這些內容。