Metapost 그림 안에 이미지를 삽입하는 방법(가능한 경우)은 무엇입니까? (일반 LaTeX 환경에서)

Metapost 그림 안에 이미지를 삽입하는 방법(가능한 경우)은 무엇입니까? (일반 LaTeX 환경에서)

Metapost 그림에 이미지를 삽입하고 싶습니다. (저는 Metafun이 아닌 MikTeX/LaTeX를 사용하고 있습니다.) 나는 다음 Metapost 코드(옵션으로 컴파일)를 시도했습니다(Aditya의 제안 덕분에) -tex=pdftex.

verbatimtex
%&latex
\documentclass{minimal}
\usepackage{graphicx}
\begin{document}
etex

beginfig(1);
picture pct;
pct:=btex \includegraphics{myimage.jpg} etex;
%pct:=btex \includegraphics{myimage.eps} etex;
draw pct;
endfig;
end

하지만 작동하지 않습니다. 형식을 ! Unable to make mpx file.사용하면 오류가 발생하고 형식을 jpg사용하면 오류가 없지만 이미지가 표시되지 않습니다 eps. 어떤 단서가 있나요?

업데이트: ConTeXt 없이 Metafun 방식 시도

Metapost의 컴파일 옵션을 사용하여 Metafun의 명령을 사용할 수 있다는 말을 들었습니다 externalfigure(저는 LaTeX를 사용하므로 Metafun을 다루지 않습니다. 이해한다면 ConTeXt 전용입니다). mpost -mem=metafun시스템(Windows 7, MikTeX/LaTeX)은 Metafun을 인식하지 못하는 것 같아서 Sorry, I can't find the 'metafun' preload file; will try 'plain'.실제 오류가 ! Isolated expression.참조 되고 있다고 알려줍니다 externalfigure. MikTeX에 Metafun을 어떻게 설치하나요?

-mem=metafun다음은 옵션 으로 컴파일된 Metapost 코드입니다 -tex=pdftex.

verbatimtex
\documentclass{minimal}
\begin{document}
etex

beginfig(1);
externalfigure "myimage.jpg";
endfig;
end

답변1

정답

메모이것이 작동하는 솔루션이기 때문에 이전 답변을 삭제했습니다.

다음 MP 파일을 사용하세요

beginfig(1);
externalfigure "hacker.jpg" scaled 3cm;
endfig;
end;

그리고 그것을 사용하여 컴파일

mptopdf --metafun filename

그러면 다음 filename.1파일이 생성됩니다.

%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 86 86 
%%HiResBoundingBox: 0 0 85.03935 85.03935 
%%Creator: MetaPost 1.504
%%CreationDate: 2013.04.14:1210
%%Pages: 1
%%BeginProlog
%%BeginResource: procset mpost
/bd{bind def}bind def
/hlw{0 dtransform exch truncate exch idtransform pop setlinewidth}bd
/vlw{0 exch dtransform truncate idtransform setlinewidth pop}bd
/l{lineto}bd/r{rlineto}bd/c{curveto}bd/m{moveto}bd/p{closepath}bd/n{newpath}bd
/C{setcmykcolor}bd/G{setgray}bd/R{setrgbcolor}bd/lj{setlinejoin}bd/ml{setmiterlimit}bd
/lc{setlinecap}bd/S{stroke}bd/F{fill}bd/q{gsave}bd/Q{grestore}bd/s{scale}bd/t{concat}bd
/sd{setdash}bd/rd{[] 0 setdash}bd/P{showpage}bd/B{q F Q}bd/W{clip}bd
%%EndResource
%%EndProlog
%%Page: 1 1
%%MetaPostSpecials: 2.0 123 1000
%%MetaPostSpecial: 9 85.03935 0 0 85.03935 0 0 hacker.jpg 1 10
 0.123 0.012 0.001 R
n 0 0 m
0 0 l
0 0 l
0 0 l
 p F
P
%%EOF

그리고 filename-1.pdf이미지가 포함된 파일입니다.

답변2

현대적인 답변

나는 이것이 오래되었다는 것을 알고 있지만 luamplib이제는 lualatexMetapost 도면에 외부 이미지를 포함하는 훨씬 더 간단하고 유용한 방법이 있습니다.

\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\usepackage{graphicx}
\mplibtextextlabel{enable}
\begin{document}
\begin{mplibcode}
beginfig(1);

    picture A; 
    A = TEX("\includegraphics[width=200pt]{example-image-a}");

    % alternative, if you like btex ... etex 
    % A = btex \includegraphics[width=200pt]{example-image-a} etex;
    
    draw A;
    
    % add a grid (to help you measure the coordinates)
    numeric wd, ht; 
    (wd, ht) = urcorner A;
    for x=0 step 10 until wd:
        draw (x, -6) -- (x, ht + 6)
            withcolor if x mod 100 = 0: red else: 7/8 fi;
    endfor
    for y=0 step 10 until ht:
        draw (-6, y) -- (wd + 6, y)
            withcolor if y mod 100 = 0: red else: 7/8 fi;
    endfor
    
    % add a label (or whatever)
    dotlabel.urt("Label here", (125, 133));
endfig;
\end{mplibcode}
\end{document}

이것을 컴파일하여 lualatex다음과 같은 PDF 파일을 생성합니다.

여기에 이미지 설명을 입력하세요

물론 라벨이나 기타 주석의 위치가 만족스러우면 그리드를 제거할 수 있습니다. 매크로 로 생성된 그림 TEX()(또는 btex ... etex일반 MP <picture>개체이므로 필요에 따라 크기 조정, 회전, 이동 등을 수행할 수 있음)

관련 정보