
Estou escrevendo um documento que contém muitos gráficos com muitos pontos de dados. Esses gráficos são armazenados como .pdf
imagens vetoriais e sua renderização leva muito tempo. Então, toda vez que encontro uma página com uma dessas, meu editor congela por um minuto inteiro.
Eu sei que o graphicsx tem uma opção de rascunho, mas isso esconde as imagens, o que não é uma solução muito boa, pois não consigo distinguir as imagens apenas pelo nome do arquivo. Esses são resultados de execuções experimentais com nomes bastante genéricos.
Existe talvez uma maneira de rasterizar as imagens (por exemplo, em .png
) no modo rascunho e usar o original .pdf
no modo final? Eu sei que poderia usar o ImageMagick ou qualquer outra ferramenta externa para fazer a conversão, mas isso parece muito trabalho extra, pois eu precisaria adicionar todas as imagens a um makefile e duplicar o \includegraphics
rascunho e o final.
Existem alguns parâmetros de graphicsx como type
ou command
que não são explicados na documentação. Isso poderia ser alcançado usando um desses? Eu poderia ligar \includegraphics
e chamar um comando externo? Eu conseguiria escrever o comando, mas não tenho ideia de como os ganchos funcionam no LaTeX.
Caso contrário, estou ciente do fato de que os gráficos raster são inferiores aos gráficos vetoriais no que diz respeito à qualidade. Vou usar gráficos vetoriais na versão final. Isso se destina apenas à visualização rápida do rascunho.
Responder1
O caminho de busca das imagens pode ser alterado:
\graphicspath
com um diretório para imagens PDF ou suas contrapartes, as imagens PNG.\DeclareGraphicsExtensions
pode ser usado para alterar a ordem, qual extensão é usada primeiro, quando o arquivo de imagem foi fornecido sem extensão. O pacotegrfext
fornece uma interface para alterar a configuração.
O pacote epstopdf
pode ser usado para chamar a conversão de PDF para PNG automaticamente, se pdfTeX ou luaTeX for usado e o recurso de escape do shell estiver habilitado.
Exemplo:
Se \mydraft
for definido como Y
( \let\mydraft=Y
), então a regra da extensão .pdf
será substituída para fazer uma conversão .png
por meio do ImageMagick convert
. Caso contrário, a .pdf
extensão é preferida.
\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}
O modo de rascunho especial é habilitado por \let\mydraft=Y
, que também pode ser fornecido na linha de comando, por exemplo:
pdflatex --shell-escape "\let\mydraft=Y\input{mydocument}"
Em seguida, image.pdf
é convertido e incluído como image-pdf-converted-to.png
.
Caso contrário, image.pdf
está incluído, mesmo que image.png
esteja por perto.
Chave para\includegraphics
O recurso de conversão também pode ser limitado \includegraphics
pelo uso de uma chave pdfpng
. O código-chave altera a regra gráfica dos .pdf
arquivos para convertê-los em PNG. Se \mydraft
não for Y
, então a chave é autônoma.
\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
pode ser usado em vez de \csname define@key\endcsname
, quando \makeatletter
estiver ativo.)