![Metapost 그림 안에 이미지를 삽입하는 방법(가능한 경우)은 무엇입니까? (일반 LaTeX 환경에서)](https://rvso.com/image/266399/Metapost%20%EA%B7%B8%EB%A6%BC%20%EC%95%88%EC%97%90%20%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%A5%BC%20%EC%82%BD%EC%9E%85%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95(%EA%B0%80%EB%8A%A5%ED%95%9C%20%EA%B2%BD%EC%9A%B0)%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20(%EC%9D%BC%EB%B0%98%20LaTeX%20%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C).png)
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
이제는 lualatex
Metapost 도면에 외부 이미지를 포함하는 훨씬 더 간단하고 유용한 방법이 있습니다.
\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>
개체이므로 필요에 따라 크기 조정, 회전, 이동 등을 수행할 수 있음)