드래프트 모드를 위한 벡터를 래스터 그래픽으로 변환

드래프트 모드를 위한 벡터를 래스터 그래픽으로 변환

저는 상당히 많은 데이터 포인트가 포함된 플롯이 많은 문서를 작성하고 있습니다. 이러한 플롯은 벡터 이미지로 저장되며 .pdf렌더링에는 많은 시간이 걸립니다. 그래서 그 중 하나가 포함된 페이지를 우연히 발견할 때마다 편집자는 잠시 동안 멈춥니다.

나는 graphicx에 초안 옵션이 있다는 것을 알고 있지만 그 옵션은 이미지를 숨기므로 파일 이름만으로는 이미지를 구분할 수 없기 때문에 그다지 좋은 솔루션이 아닙니다. 이는 매우 일반적인 이름을 사용한 실험 결과입니다.

초안 모드에서 이미지를 래스터화(예: 로)하고 최종 모드에서 .png원본을 사용할 수 있는 방법이 있습니까 ? ImageMagick이나 다른 외부 도구를 사용하여 변환을 수행할 수 있다는 것을 알고 있지만 모든 이미지를 makefile에 추가하고 초안과 최종용 .pdf으로 복제해야 하기 때문에 추가 작업이 많이 필요한 것 같습니다 .\includegraphics

문서에 설명되어 있지 않은 type그래픽 x의 일부 매개변수가 있습니다 . command아마도 그 중 하나를 사용하여 달성할 수 있을까요? 을 연결 \includegraphics하고 외부 명령을 호출할 수 있을까요? 명령 작성을 관리하고 싶지만 LaTeX에서 후크가 어떻게 작동하는지 전혀 모릅니다.

그렇지 않으면 품질에 관한 한 래스터 그래픽이 벡터 그래픽보다 열등하다는 사실을 잘 알고 있습니다. 최종 버전에서는 벡터 그래픽을 사용할 예정입니다. 이는 빠른 초안 미리보기용으로만 사용됩니다.

답변1

이미지 검색 경로는 다음과 같이 변경할 수 있습니다.

  • \graphicspathPDF 이미지용 디렉토리 또는 이에 상응하는 PNG 이미지용 디렉토리가 있습니다.
  • \DeclareGraphicsExtensions이미지 파일이 확장자 없이 제공되었을 때 어떤 확장자가 먼저 사용되는지 순서를 변경하는 데 사용할 수 있습니다. 패키지는 grfext설정 변경을 위한 인터페이스를 제공합니다.

epstopdfpdfTeX 또는 luaTeX가 사용되고 쉘 이스케이프 기능이 활성화된 경우 패키지를 사용하여 PDF에서 PNG로 자동 변환을 호출할 수 있습니다.

예:

가 ( ) \mydraft로 정의된 경우 ImageMagick의 를 통해 로 변환하도록 확장 규칙을 덮어씁니다 . 그렇지 않으면 확장이 선호됩니다.Y\let\mydraft=Y.pdf.pngconvert.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

관련 정보