LaTeX

MetaPost hjælp

08. september 2005 af Rasmus.p (Slettet)
Hey.
Er der nogen, der har erfaring med metapost der kan fortælle mig hvordan jeg får det ind i mit dokument.

Jeg vil gerne kombinerer disse to figurer

beginfig(30)
pair A, B, C;
A:=(0,0); B:=(1cm,0); C:=(0,1cm);
draw A--B--C--cycle;
dotlabel.llft(btex $A$ etex, A);
dotlabel.lrt(btex $B$ etex, B);
dotlabel.top(btex $C$ etex, C);
endfig;

beginfig(31)
pair A, B, C;
A:=(0,0); B:=(1cm,0); C:=(0,1cm);
draw A--B--C--cycle;
label.bot(btex $3$ etex, 1/2[A,B]);
label.lft(btex $2$ etex, 1/2[A,C]);
label.urt(btex $\\sqrt 2$ etex, 1/2[B,C]);
endfig;

Fra http://zoonek.free.fr/LaTeX/Metapost/metapost.html

Jeg kunne derfor forstille mig, at min figur , fig.mp, skulle være:

beginfig(1)
pair A, B, C;
A:=(0,0); B:=(3cm,0); C:=(0,2cm);
draw A--B--C--cycle;
label.bot(btex $3$ etex, 1/2[A,B]);
label.lft(btex $2$ etex, 1/2[A,C]);
label.urt(btex $\\sqrt 13$ etex, 1/2[B,C]);
dotlabel.llft(btex $A$ etex, A);
dotlabel.lrt(btex $B$ etex, B);
dotlabel.top(btex $C$ etex, C);
endfig;
end

Når jeg skriver mp fig i cmd får jeg en fejl. Log-filen lyder

This is MetaPost, Version 0.901 (MiKTeX 2.4) (preloaded mem=plain 2005.6.17) 8 SEP 2005 17:04
**198.mp
(198.mp
! Missing `)' has been inserted
! This can't happen (copy).
thelabel->...((EXPR4)+labeloffset*laboff(EXPR5002)
-(labxf(EXPR5002)*lrcorner...
l.5 label.bot(btex $3$ etex, 1/2[A,B])
;
I'm broken. Please show this to someone who can fix can fix (Og det gør jeg jo så, forhåbenlig...)

Er der nogen der lige kan se hvad jeg skal gøre for at få det til at virke. Og også kan fortælle mig hvordan jeg integrer det i LaTeX. Da det skal bruges i morgen har jeg ikke tid til at sætte mig helt vildt ind i MetaPost på nuværende tidspunkt, og de manualer jeg har kigget i (mpman og mpintro), samt mftut fra gav ikke umiddelbart svaret...

På forhånd mange tak!
-Rasmus

Brugbart svar (2)

Svar #1
08. september 2005 af Dominik Hasek (Slettet)

Jeg vil råde dig til at tilmelde dig DK TUG's mailingliste. Der kan du med garanti få svar på hvad end spørgsmål du måtte have i forbindelse med (La)TeX.

Brugbart svar (2)

Svar #2
08. september 2005 af sigmund (Slettet)

#0 Prøv at skrive følgende i starten af din mp-fil (dvs. før den første beginfig):

verbatimtex
\\documentclass[12pt]{article}
\\usepackage[T1]{fontenc}
\\begin{document}
etex

Kør så mp på filen. Det burde virke så. Fejlen kommer sandsynligvis fordi "tex-modulet" (eller hvad vi kalder det) ikke er loadet.

Sig fra, hvorvidt det virkede eller ikke. Jeg er ikke metapost-kender, men har "nørklet" lidt med det.

Brugbart svar (2)

Svar #3
08. september 2005 af sigmund (Slettet)

Rasmus.p: I den mp-fil du har, skal du, før den første beginfig, skrive følgende:
prologues:=2;
verbatimtex;
\\documentclass[12pt]{article}
\\usepackage[T1]{fontenc}
\\begin{document}
etex;

Derefter gemmer du filen og kører kommandoen mp --tex=latex filnavn.mp i kommandovinduet. Nu får du en fil med navnet filnavn.1 (da du har skrevet beginfig(1) i mp-filen). Denne fil omdøber du til filnavn-1.eps og inkluderer i LaTeX ved at tilføje følgende til tex-filen

\\begin{figure}
\\centering
\\includegraphics{filnavn-1.eps}
\\end{figure}

Nu kører du latex på din tex-fil, og får en dvi-fil. Denne kører du så igennem dvi2ps (tror jeg den hedder i windows), og resultatet bliver en ps-fil med den ønskede figur.

Jeg kunne ikke få den til at vise sqrt(13) rigtigt, den sætter kun rodtegn over 1-tallet.

Skriv igen, når du har et resultat, men nu skulle det gerne virke for dig.

Svar #4
08. september 2005 af Rasmus.p (Slettet)

Sigmund,
der kommer stadig en fejl.

Min mp fil:
prologues:=2; %%%Det virker heller ikke hvis denne linje undlades
verbatimtex;
\\documentclass[12pt]{article}
\\usepackage[T1]{fontenc}
\\begin{document}
etex;
beginfig(1)
pair A, B, C;
A:=(0,0); B:=(3cm,0); C:=(0,2cm);
draw A--B--C--cycle;
label.bot(btex $3$ etex, 1/2[A,B]);
label.lft(btex $2$ etex, 1/2[A,C]);
label.urt(btex $\\sqrt{13}$ etex, 1/2[B,C]);
dotlabel.llft(btex $A$ etex, A);
dotlabel.lrt(btex $B$ etex, B);
dotlabel.top(btex $C$ etex, C);
endfig;
end

Jeg skriver "mp --tex=latex fig.mp" i cmd (uden citationstegn)

Log-filen siger:

This is MetaPost, Version 0.901 (MiKTeX 2.4) (preloaded mem=plain 2005.6.17) 8 SEP 2005 20:09
**198.mp
(198.mp
>> 198.mp
>> 198.mpx
! Unable to make mpx file.
l.11 label.bot(btex
$3$ etex, 1/2[A,B]);
The two files given above are one of your source files
and an auxiliary file I need to read to find out what your
btex..etex blocks mean. If you don't know why I had trouble,
try running it manually through MPtoTeX, TeX, and DVItoMP

Det anytyder lidt der er noget galt med label'ne, men jeg tvivler på, at det er det, da der kommer fejl på det første label uanset hvad det er... (lidt uklart, men jeg håber du forstår :-)

Mht. Sqrt tegn. Skal det ikke bare enten være \\sqrt{13} elller \\sqrt {13} istedet for \\sqrt 13. Jeg kunne forstille mig, at mp kun sqrt'er 1.

På forhånd tak,
Rasmus


Brugbart svar (2)

Svar #5
08. september 2005 af sigmund (Slettet)

Okay, jeg har fundet ud af, at der skal ikke stå ";" efter verbatimtex. Ved at fjerne ";" efter verbatimtex i det, du har skrevet, virker det.

Mht. kvadratroden, så bliver det rigtigt hvis jeg har {} uden om tallet.

Skriv igen, hvis alt er i orden nu, hvilket det gerne skulle være.

Svar #6
08. september 2005 af Rasmus.p (Slettet)

Yes, yes det virker nu!
Se forresten denne bug report på SF:
https://sourceforge.net/tracker/index.php?func=detail&aid=1242543&group_id=10783&atid=110783

Mange tak for hjælpen!
-Rasmus

Skriv et svar til: MetaPost hjælp

Du skal være logget ind, for at skrive et svar til dette spørgsmål. Klik her for at logge ind.
Har du ikke en bruger på Studieportalen.dk? Klik her for at oprette en bruger.