Praktikum 10
- Metaposti joonised (Postscript). Võtke fail joonised.tex ja koostage sinna nõutavad MetaPost-keeles joonised. Näidiseks on fail joonised_naidis.pdf.
Lisapaketid:
GeometriePlus.mp
geometry2d.mp
labelauto.mp
Kompileerimine käsureal:mpost joonis.mp
võimpost -tex=latex joonis.mp
MetaPosti käsud:beginfig(5); . . . endfig;joonis nr. 5, kompileerimisel tekibjoonis.5numeric x;muutujaxtüübiks on reaalarvpair A;muutujaAtüübiks on punktpath p;muutujaptüübiks on joonx := 5;omistaminedraw p;joonistab joonep(0cm,2cm)--(3cm,4cm)..(-5cm,1cm)--cyclejoone konstrueerimine,--määrab ühenduslüliks sirglõigu,..määrab ühenduslüliks kõverjoone,cyclenäitab, et algus- ja lõpp-punkt langevad kokkufullcircle scaled 4cmringjoon läbimõõduga 4 cmp shifted (1cm,-3cm)joonpnihutatud vektori (1cm,-3cm) võrrap rotated 45joonppööratud 45 kraadi vastupäeva ümber nullpunktidraw p withpen pencircle scaled 2ptjoonepaksusfill p withcolor (1, 0.8, 0.8)täitmisvärv RGB-süsteemis (kanalid skaalal 0-st 1-ni)label(btex $\frac{1}{2}$ etex, (3cm, 1cm))tekst 1/2 antud punktislabel.top,label.bot,label.rt,label.lft,label.ulftjne teksti asukoht punkti suhtesfor i := 0 upto 5:tsükkel
draw (i*1cm, 4cm)--(i*1cm,5cm);
endfor;if (i > 3):valikulause
draw (i*1cm, 4cm)--(i*1cm,5cm);
fi;input labelauto;lisapakett tekstide panekuks, võimaldab käskucirclabel.auto, kus tekst pannakse punkti lähedale sinna, kus on tühja ruumiinput geometry2d;input GeometriePlus;lisapaketid geomeetria konstruktsioonide arvutamiseks (lõikepunktid, sise- ja ümberringjooned jms)verbatimtexlisaseadistused ja makrod, mõjuvad kõigile tekstidele
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[estonian]{babel}
\usepackage{mathpazo}
\begin{document}
etex;
- Metaposti joonised (PDF). Paigutada joonise lähtekoodi algusse järgmine abifunktsioon:
def genereeri(expr w, h, base) =
begingroup
write "\documentclass{article}" to base&".tex";
write "\usepackage{geometry}" to base&".tex";
write "\usepackage[pdftex]{graphicx}" to base&".tex";
write "\DeclareGraphicsRule{*}{mps}{*}{}" to base&".tex";
write "\geometry{papersize={"& decimal(ceiling(w)) & "bp," &%
decimal(ceiling(h)) & "bp}}" to base&".tex";
write "\geometry{margin={0bp,0bp}}" to base&".tex";
write "\geometry{noheadfoot,nomarginpar}" to base&".tex";
write "\begin{document}" to base&".tex";
write "\thispagestyle{empty}" to base&".tex";
write "\noindent\includegraphics{" & jobname & "." &%
decimal(charcode) & "}" to base&".tex";
write "\end{document}" to base&".tex";
write EOF to base&".tex";
endgroup
enddef;
Iga joonise lõppu paigutage järgmine kood:
numeric w,h;
w := xpart urcorner bbox currentpicture -%
xpart llcorner bbox currentpicture;
h := ypart urcorner bbox currentpicture -%
ypart llcorner bbox currentpicture;
string base;
base:=jobname&"_"&decimal(charcode);
genereeri(w, h, base);
Tulemusena tekib lisaks failidele joonis.1, joonis.2 jne, ka failid joonis_1.tex, joonis_2.tex, mida saab kompileerida käsuga pdflatex. Sellega saadakse joonised PDF-failidena kujul joonis_1.pdf, joonis_2.pdf jne.
NB! Samal moel tuleb joonised genereerida ka kodutöö lahendamisel.