Matemaatika ja statistika instituut
Logi sisse
  • English
  • Kursused
  • 2021/22 sügis
  • Matemaatilise teksti küljendamine (MTMM.00.328)

Matemaatilise teksti küljendamine 2021/22 sügis

  • Üldandmed
  • Korraldus
  • Praktikumid
  • Viited

Praktikum 8

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 -- lisapaketid geomeetria konstruktsioonide arvutamiseks (lõikepunktid, sise- ja ümberringjooned jms)
labelauto.mp -- lisapekett teksti lisamiseks
Kompileerimine käsureal: mpost joonis.mp või mpost -tex=latex joonis.mp või mpost --tex=latex joonis.mp

MetaPosti käsud

  • beginfig(5); . . . endfig; joonis nr. 5, kompileerimisel tekib joonis.5
  • muutujate tüübid:
    • numeric x; muutuja x tüübiks on reaalarv
    • pair A; muutuja A tüübiks on punkt
    • path p; muutuja p tüübiks on joon
  • x := 5; omistamine
  • A:=0.3[B,C] tähendab punkti lõigul BC, kus B poole jääb 0,3 osa ja C poole 1-0,3 osa
  • joone konstrueerimine
    • (0cm,2cm)--(3cm,4cm)..(-5cm,1cm)--cycle
      • -- määrab ühenduslüliks sirglõigu,
      • .. määrab ühenduslüliks kõverjoone,
      • cycle näitab, et algus- ja lõpp-punkt langevad kokku
    • fullcircle scaled (4cm) ringjoon läbimõõduga 4 cm
    • p shifted (1cm,-3cm) joon p nihutatud vektori (1cm,-3cm) võrra
    • p rotated 45 joon p pööratud 45 kraadi vastupäeva ümber nullpunkti
  • fill p withcolor (1, 0.8, 0.8); täitmisvärv RGB-süsteemis (kanalid skaalal 0-st 1-ni)
  • joone joonistamine
    • draw p; joonistab joone p
    • draw p withpen pencircle scaled 2pt; joonetüüp (circle-ümar, square-kandiline), -paksus
  • tsükkel:
 for i := 0 upto 5:
 draw (i*1cm, 4cm)--(i*1cm,5cm);
 endfor;
  • valiklause:
 if (i > 3):
 draw (i*1cm, 4cm)--(i*1cm,5cm);
 fi;
  • Teksti lisamine
    • label(btex $\frac{1}{2}$ etex, (3cm, 1cm)); tekst 1/2 antud punktis
    • label.top, label.bot, label.rt, label.lft, label.ulft jne teksti asukoht punkti suhtes
    • label.auto tekst pannakse punkti lähedale sinna, kus on tühja ruumi (vajab paketti labelauto)
      • circlabel.auto punkti kohale rõngas
  • input labelauto; paketti lisamine
  • lisaseadistused ja makrod, mõjuvad kõigile tekstidele
 verbatimtex 
 \documentclass{article} 
 \usepackage[T1]{fontenc} 
 \usepackage[estonian]{babel} 
 \usepackage{mathpazo} 
 \begin{document} 
 etex;

Metaposti joonised (PDF)

NB! Metaposti joonised joonis.1, joonis.2 jne on küll PostScript-vormingus vektorgraafika pildid, aga sealt on puudu fontide info. Seetõttu ei saa neid vahetult konverteerida PDF-ks (näiteks Ghostscriptiga).

Metaposti jooniste PDF vormingusse viimiseks on kaks võimalust.

Võimalus 1. 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 (vahetult ENNE endfig; käsku) 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.

Võimalus 2. Arvutisse peab olema paigaldatud Perl. Käsureal tuleb anda käsk
mptopdf fail.mp

Nende käskude tulemusena teostatakse enam-vähem samad operatsioonid, nagu "Võimalus 1" juures märgitud, automaatselt.

NB! Kodutöö lahendamisel tuleb projekti koosseisu paigutada Metaposti lähtekood ning ükskõik millisel ülaltoodud meetodil saadud PDF.

  • Matemaatika ja statistika instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.