
我正在編寫一個文檔,其中包含許多帶有大量數據點的圖。這些圖被儲存為.pdf
向量圖像,並且它們的渲染需要大量時間。因此,每次我偶然發現其中一個頁面時,我的編輯都會凍結一分鐘。
我知道 Graphicsx 有一個草稿選項,但它隱藏了圖像,這不是一個很好的解決方案,因為從那時起我無法僅通過文件名來區分圖像。這些是具有相當通用名稱的實驗運行的結果。
是否有一種方法可以在草稿模式下將影像光柵化(例如進入)並在最終模式下.png
使用原始影像?.pdf
我知道我可以使用 ImageMagick 或任何外部工具來進行轉換,但這似乎需要很多額外的工作,因為我需要將每個圖像添加到 makefile 中並複製\includegraphics
草稿和最終版本。
Graphicsx 有一些參數,例如type
或 ,command
在文件中沒有解釋。這也許可以使用其中一個來實現嗎?我可以掛接\includegraphics
並呼叫外部命令嗎?我會設法編寫命令,但我不知道掛鉤在 LaTeX 中如何運作。
否則,我很清楚就品質而言,光柵圖形不如向量圖形。我將在最終版本中使用向量圖形。這僅用於快速預覽草稿。
答案1
可以更改圖像的搜尋路徑:
\graphicspath
包含 PDF 影像或其對應項 PNG 影像的目錄。\DeclareGraphicsExtensions
當影像檔案沒有副檔名時,可用於變更順序,首先使用哪個副檔名。包grfext
提供了一個用於更改設定的介面。
epstopdf
如果使用 pdfTeX 或 luaTeX 並且啟用了 shell 轉義功能,則可以使用套件自動呼叫從 PDF 到 PNG 的轉換。
例子:
如果\mydraft
定義為Y
( \let\mydraft=Y
),則覆寫擴充規則以透過 ImageMagick.pdf
進行轉換。否則,首選擴展名。.png
convert
.pdf
\documentclass{article}
\usepackage{graphicx}
\usepackage{grfext}
\ifx\mydraft Y
\usepackage{epstopdf-base}
\epstopdfDeclareGraphicsRule{.pdf}{png}{.png}{%
convert #1 \OutputFile
}
\epstopdfDeclareGraphicsRule{.PDF}{png}{.png}{%
convert #1 \OutputFile
}
\else
\PrependGraphicsExtension*{.pdf}
\fi
\begin{document}
\includegraphics{image}
\end{document}
特殊草稿模式由 啟用\let\mydraft=Y
,也可以在命令列上給出,例如:
pdflatex --shell-escape "\let\mydraft=Y\input{mydocument}"
然後image.pdf
被轉換並包含為image-pdf-converted-to.png
.
否則,image.pdf
即使image.png
在周圍,也會被包括在內。
鑰匙用於\includegraphics
轉換功能也可以限制為\includegraphics
透過使用按鍵pdfpng
。關鍵程式碼更改.pdf
檔案的圖形規則以將其轉換為 PNG。如果\mydraft
不是Y
,則關鍵是無操作。
\documentclass{article}
\usepackage{graphicx}
\usepackage{grfext}
\ifx\mydraft Y
\usepackage{epstopdf-base}
\csname define@key\endcsname{Gin}{pdfpng}[]{%
\epstopdfDeclareGraphicsRule{.pdf}{png}{.png}{%
convert ##1 \OutputFile
}%
}
\else
\PrependGraphicsExtensions*{.pdf}
\csname define@key\endcsname{Gin}{pdfpng}[]{}
\fi
\begin{document}
\includegraphics{image1}
\includegraphics[pdfpng]{image2-converted-to-png-when-mydraft}
\includegraphics{image3}
\end{document}
(當處於活動狀態時,\define@key
可以使用 來代替, 。)\csname define@key\endcsname
\makeatletter