Gráficos de vetor para raster para modo rascunho

Gráficos de vetor para raster para modo rascunho

Estou escrevendo um documento que contém muitos gráficos com muitos pontos de dados. Esses gráficos são armazenados como .pdfimagens 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 .pdfno 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 \includegraphicsrascunho e o final.

Existem alguns parâmetros de graphicsx como typeou commandque não são explicados na documentação. Isso poderia ser alcançado usando um desses? Eu poderia ligar \includegraphicse 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:

  • \graphicspathcom um diretório para imagens PDF ou suas contrapartes, as imagens PNG.
  • \DeclareGraphicsExtensionspode ser usado para alterar a ordem, qual extensão é usada primeiro, quando o arquivo de imagem foi fornecido sem extensão. O pacote grfextfornece uma interface para alterar a configuração.

O pacote epstopdfpode 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 \mydraftfor definido como Y( \let\mydraft=Y), então a regra da extensão .pdfserá substituída para fazer uma conversão .pngpor meio do ImageMagick convert. Caso contrário, a .pdfextensã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.pdfestá incluído, mesmo que image.pngesteja por perto.

Chave para\includegraphics

O recurso de conversão também pode ser limitado \includegraphicspelo uso de uma chave pdfpng. O código-chave altera a regra gráfica dos .pdfarquivos para convertê-los em PNG. Se \mydraftnã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@keypode ser usado em vez de \csname define@key\endcsname, quando \makeatletterestiver ativo.)

informação relacionada