Metauml 설치 및 사용 오류

Metauml 설치 및 사용 오류

이 질문은 좀 광범위하지만 Metauml을 설치하려고 합니다(저는 Mac과 texlive를 사용하고 있습니다). 패키지를 다운로드하고 (예상했던) Metapost 디렉터리 아래에 Metauml 디렉터리를 배치하는 설치 스크립트를 실행했습니다. 그러나 실행할 수 없습니다. 나는 이 코드를 가지고 있습니다 :

\documentclass[a4paper,12pt]{article}
\usepackage{amssymb} % needed for math
\usepackage{amsmath} % needed for math
\usepackage[utf8]{inputenc} % this is needed for german umlauts
\usepackage[ngerman]{babel} % this is needed for german umlauts
\usepackage[T1]{fontenc}    % this is needed for correct output of umlauts in pdf
\usepackage[margin=1.5cm]{geometry} %layout

% this is needed for forms and links within the text
\usepackage{hyperref}  

% The following is needed in order to make the code compatible
% with both latex/dvips and pdflatex.
\ifx\pdftexversion\undefined
\usepackage[dvips]{graphicx}
\else
\usepackage[pdftex]{graphicx}
\DeclareGraphicsRule{*}{mps}{*}{}
\fi

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% THE DOCUMENT BEGINS                                                %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\section{Class diagram}
\includegraphics{metadiagram.mp}
\end{document}

Metadiagram.mp는 동일한 폴더에 있으며 다음과 같이 정의됩니다.

input metauml;
beginfig(1);
Class.World("World")
       ("-age: int",
        "#ressources: List") 
       ("+sayHello(): void");

Class.NoHuman("Human")
       ("-birthday: Date",
        "-nickname: String",
        "-secret: String") 
       ("+code(language: Language): Program");

leftToRight(50)(World, NoHuman);
drawObjects(World, NoHuman);

link(aggregation)(NoHuman.w -- World.e);
item(iAssoc)("1")(obj.n     = .2[World.e,NoHuman.w]);
item(iAssoc)("has >")(obj.n = .5[World.e,NoHuman.w]);
item(iAssoc)("0..*")(obj.n  = .8[World.e,NoHuman.w]);

endfig;
end

오류가 발생합니다. Metadiagram.mp에서 그래픽 크기를 확인할 수 없습니다(BoundingBox 없음).

누구든지 도와줄 수 있나요?

답변1

.mpMetapost에서 미리 처리해야 하는 파일은 포함할 수 없습니다 .

Metapost를 실행하는 방법은 운영 체제 및 TeX 배포판에 따라 다릅니다. 아마도 TeXShop과 TeXworks에는 이에 대한 메뉴 항목이 있을 것입니다. 일반적으로 터미널 창을 열고 cd파일이 포함된 디렉터리로 이동하여 다음을 수행할 수 있습니다.

mpost metadiagram.mp

이렇게 하면 파일이 생성됩니다 metadiagram.1. 왜냐하면 당신이 말하고 있기 때문입니다 beginfig(1).

\includegraphics{metadiagram.1}

할 것입니다.

로딩에 사용하는 것이 graphicx잘못되었습니다. 그것은해야한다

\usepackage{ifpdf}
\usepackage{graphicx}
\ifpdf
  \DeclareGraphicsRule{*}{mps}{*}{}
\fi

패키지 를 사용하여 진행하는 또 다른 방법이 있습니다 gmp. 귀하의 경우 입력은 다음과 같아야합니다

\documentclass[a4paper,12pt]{article}
\usepackage{amssymb} % needed for math
\usepackage{amsmath} % needed for math
\usepackage[utf8]{inputenc} % this is needed for german umlauts
\usepackage[ngerman]{babel} % this is needed for german umlauts
\usepackage[T1]{fontenc}    % this is needed for correct output of umlauts in pdf
\usepackage[margin=1.5cm]{geometry} %layout

\usepackage[shellescape]{gmp}

\usepackage{ifpdf}
\ifpdf
\DeclareGraphicsRule{*}{mps}{*}{}
\fi

% this is needed for forms and links within the text
\usepackage{hyperref}  

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% THE DOCUMENT BEGINS                                                %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\section{Class diagram}

\begin{mpost}[mpsettings={input metauml;},use]
Class.World("World")
       ("-age: int",
        "#ressources: List") 
       ("+sayHello(): void");

Class.NoHuman("Human")
       ("-birthday: Date",
        "-nickname: String",
        "-secret: String") 
       ("+code(language: Language): Program");

leftToRight(50)(World, NoHuman);
drawObjects(World, NoHuman);

link(aggregation)(NoHuman.w -- World.e);
item(iAssoc)("1")(obj.n     = .2[World.e,NoHuman.w]);
item(iAssoc)("has >")(obj.n = .5[World.e,NoHuman.w]);
item(iAssoc)("0..*")(obj.n  = .8[World.e,NoHuman.w]);
\end{mpost}

\end{document}

스위치(TeXShop의 기본 설정을 통해 활성화할 수 있음 )를 사용하여 이 문서를 처리하면(Metapost 소스가 포함되어 있음) -shell-escapeMetapost 실행이 자동으로 수행됩니다.

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

관련 정보