TikZ ja PGF ohjeita ja esimerkkejä



Samankaltaiset tiedostot
Johdatus L A TEXiin. 7. Taulukot ja kuvat. Dept. of Mathematical Sciences

Johdatus L A TEXiin. 7. Taulukot ja kuvat. Dept. of Mathematical Sciences

Johdatus L A TEXiin. 8. Taulukot ja kuvat. Matemaattisten tieteiden laitos

Sisältö. 1 Ylä- ja alatunnisteet Makropaketti titleps Makropaketti fancyhdr Sivutyylien toteutus L A TEXissa...

Johdatus L A TEXiin. 8. Taulukot ja kuvat. Matemaattisten tieteiden laitos

Racket ohjelmointia osa 1. Tiina Partanen Lielahden koulu 2014

2 Pistejoukko koordinaatistossa

Tasogeometriaa GeoGebran piirtoalue ja työvälineet

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++

TAULUKOINTI. Word Taulukot

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:

4.1 Kaksi pistettä määrää suoran

Flash. Tehtävä 1 Piirtotyökalut, kokeile niitä. Liiketalous syksy 2012

6. Harjoitusjakso II. Vinkkejä ja ohjeita

x 5 15 x 25 10x 40 11x x y 36 y sijoitus jompaankumpaan yhtälöön : b)

Johdatus L A TEXiin. 7. Taulukot ja kuvat Markus Harju. Matemaattiset tieteet

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Ympyrä 1/6 Sisältö ESITIEDOT: käyrä, kulma, piste, suora

Luento 2: Tulostusprimitiivit

plot(f(x), x=-5..5, y= )

Juuri 7 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty c) sin 50 = sin ( ) = sin 130 = 0,77

Suorakulmainen kolmio

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Digitaalisen median tekniikat css tyylimääritykset jatkuu

Digitaalisen median tekniikat css tyylimääritykset jatkuu Harri Laine 1

Aine Määrä % happi hiili vety typpi ,6 kalsium ,4 fosfori 780 1,1

Tekijä Pitkä matematiikka

Mb8 Koe Kuopion Lyseon lukio (KK) sivu 1/2

TYÖPAJA 1: Tasogeometriaa GeoGebran piirtoalue ja työvälineet

9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Muuta pohjan väri [ ffffff ] valkoinen Näytä suuri risti

TAULUKKO, KAAVIO, SMARTART-KUVIOT

Ota tämä paperi mukaan, merkkaa siihen omat vastauksesi ja tarkista oikeat vastaukset klo 11:30 jälkeen osoitteesta

MATEMATIIKKA 5 VIIKKOTUNTIA. PÄIVÄMÄÄRÄ: 8. kesäkuuta 2009

Ulkopuolisen tyylitiedoston käyttö

Datatähti 2019 loppu

linux linux: käyttäjän oikeudet + lisää ja - poistaa oikeuksia

Tämä luku nojaa vahvasti esimerkkeihin. Aloitetaan palauttamalla mieleen, mitä koordinaatistolla tarkoitetaan.

TIEA341 Funktio-ohjelmointi 1, kevät 2008

9. Harjoitusjakso III

Johdatus L A TEXiin. 7. Taulukot ja kuvat Markus Harju. Matemaattiset tieteet

MATEMATIIKKA 5 VIIKKOTUNTIA

A TIETORAKENTEET JA ALGORITMIT

Matemaattisen analyysin tukikurssi

* Trigonometriset funktiot suorakulmaisessa kolmiossa * Trigonometristen funktioiden kuvaajat

7 tapaa mallintaa maasto korkeuskäyristä ja metodien yhdistäminen

2 Raja-arvo ja jatkuvuus

Sangen lyhyt L A T E X-johdatus

Algoritmit 2. Luento 6 To Timo Männikkö

Yhtälön oikealla puolella on säteen neliö, joten r. = 5 eli r = ± 5. Koska säde on positiivinen, niin r = 5.

8. Yhtälöiden ratkaisuja Newtonilla, animaatioita

Aine Määrä % happi hiili vety typpi ,6 kalsium ,4 fosfori 780 1,1

Derivaatan sovellukset (ääriarvotehtävät ym.)

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2018 Insinöörivalinnan matematiikan koe, , Ratkaisut (Sarja A)

sin x cos x cos x = sin x arvoilla x ] π

Vanhoja koetehtäviä. Analyyttinen geometria 2016

y=-3x+2 y=2x-3 y=3x+2 x = = 6

Posterin teko MS Publisherilla

Trigonometriaa ja solve-komento GeoGebralla

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA

Tekijä Pitkä matematiikka Pisteen (x, y) etäisyys pisteestä (0, 2) on ( x 0) Pisteen (x, y) etäisyys x-akselista, eli suorasta y = 0 on y.

TYÖPAJA 1: Tasogeometriaa GeoGebran piirtoalue ja työvälineet

yleisessä muodossa x y ax by c 0. 6p

Ensimmäinen osa: Rautalankamallinnus. Rautalankamallinnus

MATEMATIIKKA 5 VIIKKOTUNTIA

Käyrien välinen dualiteetti (projektiivisessa) tasossa

mlvektori 1. Muista, että Jacobin matriisi koostuu vektori- tai skalaariarvoisen funktion F ensimmäisistä

IIRTÄMINEN. Word Piirtäminen


Kenguru 2015 Student (lukiosarja)

Kartio ja pyramidi

Zeon PDF Driver Trial

Harjoitus 1: Matlab. Harjoitus 1: Matlab. Mat Sovelletun matematiikan tietokonetyöt 1. Syksy 2006

Algoritmit 2. Luento 6 Ke Timo Männikkö

Matematiikan taito 9, RATKAISUT. , jolloin. . Vast. ]0,2] arvot.


3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö

x = π 3 + nπ, x + 1 f (x) = 2x (x + 1) x2 1 (x + 1) 2 = 2x2 + 2x x 2 = x2 + 2x f ( 3) = ( 3)2 + 2 ( 3) ( 3) = = 21 tosi

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

z 1+i (a) f (z) = 3z 4 5z 3 + 2z (b) f (z) = z 4z + 1 f (z) = 12z 3 15z 2 + 2

Lauseen erikoistapaus on ollut kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa seuraavassa muodossa:

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

CSS-kielen avulla määritellään HTML-dokumentin tyyli. CSS avulla voidaan tarkemmin määritellä eri elementtien ominaisuuksia.

MAB3 - Harjoitustehtävien ratkaisut:

Kevään 2011 pitkän matematiikan ylioppilastehtävien ratkaisut Mathematicalla Simo K. Kivelä /

Ulkoasun muokkaus CSS-tiedostossa

Paraabeli suuntaisia suoria.

MS-A0202 Differentiaali- ja integraalilaskenta 2 (SCI) Luento 1: Parametrisoidut käyrät ja kaarenpituus

MAB3 - Harjoitustehtävien ratkaisut:

2016/07/05 08:58 1/12 Shortcut Menut

Aloitusohje versiolle 4.0

SATAKUNNAN AMMATTIKORKEAKOULU. Hakala Toni Varpelaide Heidi TEKSTINKÄSITTELYN OHJEET CASE: OPINNÄYTETYÖN RAPORTOINTI WORDILLA

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus

Vektorit Opiskelijan ohjeet

Matlab- ja Maple- ohjelmointi


dt 2. Nämä voimat siis kumoavat toisensa, jolloin saadaan differentiaaliyhtälö

Transkriptio:

TikZ ja PGF ohjeita ja esimerkkejä Jarmo Niemelä, jarmo.niemela@uta.fi 16. syyskuuta 2014 Sisältö 1 Johdanto 2 2 Janat ja monikulmiot 2 3 Optiot 3 4 Nuolenkärjet 4 5 Ympyrät, ellipsit, kaaret ja käyrät 4 6 Koordinaatit 5 7 Värit 6 8 Teksti: solmut ja niitä yhdistävät kaaret 8 9 Puut 11 10 Toisto 12 11 Funktioiden kuvaajat 13 12 Yleisiä ohjeita 14 13 Esimerkkejä 14 1

1 Johdanto Makropaketilla tikz 1 voidaan piirtää kuvia L A TEX-dokumenttiin erityisillä piirtokomennoilla. Tikz otetaan käyttöön komennolla \usepackage{tikz} Tikz muodostaa käyttöliittymän makropaketille pgf, joka sisältää yksinkertaisempia, alemman tason piirtokomentoja. Pgf on lyhenne sanoista portable graphics format (tai pretty, good, functional ). Mikäli pgf ja tikz on asennettu L A TEX-ohjelmistoon, niiden käyttöohjeet löytyvät L A TEXohjelmiston tiedostosta 2 /doc/generic/pgf/pgfmanual.pdf. Tikz-makropaketin komennoilla tehty grafiikka sijoitetaan joko komennon \tikz argumenttiin tai ympäristöön tikzpicture. Kaikki tikz:n piirtokomennot päätetään puolipisteellä. Esimerkiksi \tikz{\draw circle[radius=2mm];} tekee ympyrän, jonka säde on 2 mm:. Makropaketilla tikz tehdyt kuviot on suositeltavaa sijoittaa dokumenttiin kelluvina eli ympäristön figure sisään, jolloin L A TEX sijoittaa ne ensimmäiseen sopivaan paikkaan. \begin{figure} \centering % piirtokomennot tulevat tähän \end{tikzpicture} \caption{kuvan otsikko.}\label{fig: esimerkkikuva} \end{figure} Tässä ohjeessa näin ei kuitenkaan tehdä, jotta dokumentti pysyisi yksinkertaisempana. 2 Janat ja monikulmiot Viivasegmenteistä koostuvia polkuja voi piirtää seuraavasti: \draw (0,0) -- (1,2); \draw (3,0) -- (6,0) -- (5,2) -- cycle; \end{tikzpicture} 1 TikZ on lyhenne saksankielisestä lauseesta TikZ ist kein Zeichenprogramm. 2 Tai osoitteesta http://mirror.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf 2

Operaatio cycle yhdistää polun loppupisteen alkupisteeseen. Polun osien ei tarvitse olla yhtenäisiä, joten edellinen jana ja kolmio voidaan piirtää yhdellä \draw-komennolla: \draw (0,0) -- (1,2) (3,0) -- (6,0) -- (5,2) -- cycle; Yllä olevat jana ja kolmio piirrettiin samaan koordinaatistoon. Jos on tarkoitus sijoittaa kaksi täysin erillistä kuviota rinnakkain, niin yleensä parempi vaihtoehto on sijoittaa kumpikin omaan tikzpicture-ympäristöönsä: \draw (0,0) -- (1,2); \end{tikzpicture}\hspace{2cm}% \draw (0,0) -- (3,0) -- (2,2) -- cycle; \end{tikzpicture} Suorakulmioita voi piirtää operaatiolla rectangle \draw (0,0) rectangle (3,2); 3 Optiot Kuvia voi skaalata ja kiertää optioilla scale ja rotate: \draw (0,0) -- (3,0) -- (2,2) -- cycle; \end{tikzpicture}\hspace{4em}% [scale=0.5, rotate=135] \draw (0,0) -- (3,0) -- (2,2) -- cycle; \end{tikzpicture} 3

Tikz:n optiot annetaan muodossa avain=arvo, kuten rotate=135. Joissain tapauksissa avain= voidaan jättää pois. Esimerkiksi blue on sama kuin color=blue. Joissain tapauksissa taas =arvo voidaan jättää pois, jolloin käytetään kyseisen option oletusarvoa. Jos optiot annetaan ympäristölle tikzpicture, niin ne vaikuttavat kaikkiin ympäristössä oleviin tikz:n komentoihin. Yksittäiselle komennolle annetut optiot vaikuttavat vain kyseiseen komentoon. Viivan paksuutta voi säätää optiolla line width= mitta tai optioilla ultra thin, very thin, thin, semithick, thick, very thick ja ultra thick Oletusarvo on thin. Katkoviivoja voi tehdä optioilla dashed, loosely dashed ja densely dashed. Kulmat saa pyöristettyä optiolla rounded corners= pyöristyssäde. Pyöristyssäteen oletusarvo on 4pt. \draw[rounded corners] (0,0) -- (1,1) -- (2,0) -- (3,1); 4 Nuolenkärjet Seuraavat nuolenkärkityypit ovat käytettävissä suoraan: to, to reversed, latex, latex reversed, stealth, stealth reversed ja. Oletusarvo on to. Oletusarvoisen nuolenkärkityypin voi muuttaa optiolla >= nuolenkärjen tyyppi. Esimerkiksi \draw[->] (0,0) -- (1,0); \draw[>- ] (1.5,0) -- (2.5,0); \draw[<<->>] (3,0) -- (4,0); \draw[stealth reversed-latex] (4.5,0) -- (5.5,0); \draw[<-<, >=stealth] (6,0) -- (7,0); Lisää erilaisia nuolenkärkiä on määritelty tikz:n lisäpaketissa arrows. Lisäpaketit otetaan käyttöön dokumentin esittelyosassa annettavalla komennolla \usetikzlibrary: \usetikzlibrary{arrows} 5 Ympyrät, ellipsit, kaaret ja käyrät Ympyrä piirretään operaatiolla circle ja ellipsi operaatiolla ellipse: \draw (0,0) circle[radius=1]; \draw (4,0) ellipse[x radius=1.7, y radius= 1]; 4

Ympyrän säde annetaan optiolla radius; ellipsin akselien suuntaiset säteet annetaan optioilla x radius ja y radius. Ympyrän ja ellipsin kaaria voi piirtää operaatiolla arc. Kaari määritetään antamalla kaaren alkupiste, alkukulma, loppukulma ja säde tai säteet. \draw (0,0) arc[start angle=0, end angle=120, radius=1]; \draw (4,0) arc[start angle=0, end angle=120, x radius=1.7, y radius=1]; Kahden pisteen välille voi piirtää Bézier-käyrän, kun pisteiden lisäksi annetaan yksi tai kaksi säätöpistettä: \draw (0,0).. controls (1,1) and (2,2).. (2,0); \draw (0,0).. controls (1,1).. (2,0); Vaikka säätöpisteet eivät näy, niin ne kuuluvat kuvaan ja voivat suurentaa sitä tarpeettomasti. Kuva-aluetta voi rajata komennolla \clip tai komennolla \useasboundingbox: \clip (-0.1,0) rectangle (2.1,1.2); \useasboundingbox (0,0) rectangle (2,1.2); Komento \clip leikkaa kaiken rajatun alueen ulkopuolelle jäävän pois, mutta komento \useasboundingbox ei leikkaa, jolloin myös ulkopuolelle jäävät osat tulostuvat. Komennot \clip ja \useasboundingbox vaikuttavat vain niitä seuraaviin piirtokomentoihin. 6 Koordinaatit Kaksiulotteiset suorakulmaiset koordinaatit annetaan muodossa ( x, y ) ja kolmiulotteiset muodossa ( x, y, z ). Tässä x, y ja z voivat sisältää mittayksikön tai olla yksiköttömiä lukuja, jolloin käytetään oletusarvoista yksikköä 1cm. \draw[->] (-1,0,0) -- (1,0,0); \draw[->] (0,-1,0) -- (0,1,0); \draw[->] (0,0,-1) -- (0,0,1); 5

Napakoordinaatit annetaan muodossa ( kulma : säde ). Kulman yksikkönä on oletusarvoisesti aste. Radiaaneja merkitään lisäämällä luvun perään r. Säde voi sisältää mittayksikön tai olla yksikötön, jolloin käytetään oletusarvoista yksikköä 1cm. \draw (0:1) -- (60:1) -- (120:1) -- (180:1) -- (240:1) -- (300:1) -- cycle; Merkintä ++(1,2) tarkoittaa, että siirrytään edellisestä pisteestä 1 pituusyksikkö oikealle ja 2 yksikköä ylöspäin ja että näin saatua pistettä käytetään uutena vertailupisteenä. Merkintä +(1,2) toimii muuten samoin, mutta vertailupiste säilyy edellisessä pisteessä. \draw[->] (3,4) -- ++(1,0) -- ++(0,1) -- ++(-1,0) -- ++(0,-1); \draw[->] (3,4) -- +(1,0) -- +(0,1) -- +(-1,0) -- +(0,-1); Merkintä ( p - q ) tai ( q - p ) tarkoittaa pisteen p kautta kulkevan y-akselin suuntaisen suoran ja pisteen q kautta kulkevan x-akselin suuntaisen suoran leikkauspistettä. \draw (0,0) -- (35:2.5); \draw[dashed] (0,0) -- (35:2.5-0,0); Koordinaatteja voi nimetä komennolla \coordinate ( nimi ) at ( p ). \coordinate (A) at (0,0); \coordinate (B) at (2,0.5); \coordinate (C) at (1,1.5); \draw (A) -- (B) -- (C) -- cycle; Itse asiassa komento \coordinate tekee pisteeseen p nimetyn solmun. 7 Värit Komento \draw piirtää polun, mutta ei sellaisenaan täytä polun rajaamaa aluetta värillä. Komento \fill puolestaan täyttää polun rajaaman alueen värillä, mutta ei sellaisenaan piirrä aluetta rajaavaa polkua. \draw (0,0) rectangle (1,1); \fill (2,0) rectangle (3,1); 6

Piirtovärin voi valita optiolla draw= väri. Tämä vaikuttaa vain viivojen väreihin. Suljettujen alueiden täyttövärin voi valita optiolla fill= väri. Piirtoja täyttövärin voi valita samalla kertaa optiolla color= väri. Pelkkä optio draw tai fill ilman värin nimeä käyttää kulloinkin valittuna olevaa piirtotai täyttöväriä. Pelkkä väri puolestaan tarkoittaa samaa kuin color= väri. \draw[red] (0,0) rectangle (1,1); \fill[red] (2,0) rectangle (3,1); \draw[red,fill=black] (4,0) rectangle (5,1); \fill[red,draw=black] (6,0) rectangle (7,1); Tikz käyttää värien määrittelyyn makropakettia xcolor, jota se kutsuu automaattisesti. Makropaketissa xcolor ja siten myös makropaketissa tikz on suoraan käytettävissä seuraavat nimetyt värit: black blue brown cyan darkgray gray green lightgray lime magenta olive orange pink purple red teal violet white yellow Lisää nimettyjä värejä saa käyttöön lataamalla makropaketin xcolor halutuilla optiolla ennen makropakettia tikz. Esimerkiksi \usepackage[x11names]{xcolor} \usepackage{tikz} Makropaketin xcolor käyttöohjeissa 3 on luettelot kaikista nimetyistä väreistä. Omia värisävyjä voi tehdä esimerkiksi sekoittamalla valmiiksi määriteltyjä värejä muodossa väri! p! väri. Tämä tarkoittaa, että sekoitetaan p % ensimmäistä väriä ja (100 p) % toista väriä. Jos toinen väri jätetään pois, se korvataan valkoisella. \fill [black!20] (0,0) circle; \fill [orange!80!black] (1,0) circle; \fill [cyan!40!green] (2,0) circle; \fill [cyan!40!green!50] (3,0) circle; Makropaketin xcolor käyttöohjeissa on yksityiskohtaisemmat ohjeet värien määrittelyyn. 3 http://mirror.ctan.org/macros/latex/contrib/xcolor/xcolor.pdf 7

8 Teksti: solmut ja niitä yhdistävät kaaret Kuvioihin lisätään tekstiä solmuilla, jotka tehdään komennolla \node tai operaatiolla node. \draw[->] (-0.4,0) -- (2,0); \node[right] at (2,0) {$x$}; \draw[->] (0,-0.4) -- (0,1.5) node[above] {$y$}; y x Komennon \node ja operaation node syntaksi on \node[ optiot ] ( nimi ) at ( p ) { teksti }; Tämä tekee solmun nimi pisteeseen p ja sijoittaa siihen tekstin teksti. Solmuun voidaan viitata sille annetun nimen avulla. Määritystä at( p ) ei voi käyttää silloin, kun operaatio node on annettu polun yhteydessä, kuten node[above]{$y$} yllä olevasssa esimerkissä. Silloin solmu sijoitetaan operaatiota node edeltävään koordinaattiin. Kullakin solmulla on muoto, joka valitaan optiolla shape= muoto. Muoto voi olla rectangle (oletusarvo), circle tai coordinate. Muodon saa näkyviin optioilla draw ja fill. \node[draw, fill=yellow!40] at (0,0) {suorakulmio}; \node[circle, draw, fill=yellow!40] at (3,0) {ympyrä}; suorakulmio ympyrä Muotoa coordinate olevat solmut eivät voi sisältää tekstiä. Niitä käytetään vain nimettyinä pisteinä ja ne voidaan kätevimmin tehdä komennolla \coordinate tai operaatiolla coordinate (katso sivu 6). Muita solmujen muotoja saa käyttöön lisäpaketeilla shapes.geometric, shapes.symbols, shapes.arrows, shapes.multipart, shapes.callouts ja shapes.misc. Solmujen optioita Solmun reunan etäisyys solmussa olevasta tekstistä valitaan optiolla inner sep= mitta. Oletusarvo on 0.3333em. Solmulle voidaan määrittää minimikoko optiolla minimum size= mitta. Solmun minimileveys ja minimikorkeus voidaan asettaa erikseen optioilla minimum width ja minimum height. 8

\node[inner sep=0pt] at (0,0) {A}; \node[minimum size=1cm] at (1.3,0) {B}; \node[minimum width=1cm] at (3.0,0) {C}; \node[minimum height=1cm] at (4.5,0) {D}; A B C D Tekstin muotoilumääritykset voidaan sijoittaa tekstiargumenttiin, mutta ne voidaan antaa myös optiolla font= määritykset. Tekstin värin voi valita muista väreistä riippumatta optiolla text= väri. \node[fill=red, text=white, font=\fontfamily{phv}\large\bfseries] {{\huge+} Switzerland}; Solmujen sijoittelu + Switzerland Oletusarvoisesti solmun keskikohta sijoitetaan annettuun koordinaattiin. Optiolla anchor= ankkuri koordinaattipisteeseen voidaan sijoittaa jokin toinen solmun ankkureista, jotka on esitetty alla olevassa kuviossa. north west north north east west mid west base west xx center base mid east mid east base east south west south south east Optio above= mitta toimii samoin kuin anchor=south, mutta lisäksi solmua siirretään valinnaisen mitan verran pystysuunnassa. Vastaavasti toimivat optiot below, left, right, above left, above right, below left ja below right. Solmujen sijoittelua voi helpottaa lisäpaketilla positioning, joka mm. määrittelee optiot above, below, jne. uudelleen. Tätä on käytetty esimerkissä 1. Solmujen yhdistäminen Nimettyjä solmuja voidaan yhdistää toisiinsa kaarilla, jotka piirretään komennolla \draw tai operaatiolla edge. Kun kaaret piirretään komennolla \draw, viivaoperaatio -- voidaan korvata operaatiolla to, jolloin kaarien muotoa voidaan säätää optioilla. Esimerkiksi kaaren lähtö- ja tulokulmaa voidaan säätää optioilla out= kulma ja in= kulma tai optioilla bend right= kulma ja bend left= kulma. 9

\draw[->] (A) -- (B); \draw[->] (B) to (C); \draw[->] (D) to [out=70,in=290] (B); \draw[->] (B) to [bend right=20] (D); \draw[->] (A) to [loop above] (A); A C B D Kun kaaret piirretään operaatiolla edge, yleensä selkein ratkaisu on sijoittaa kaikki edge-operaatiot yhteen \path-komentoon solmujen määrittelyn jälkeen. \path (A) edge[->, loop above] () edge[->] (B) (B) edge[->] (C) edge[->, bend right=20] (D) (D) edge[->, bend right=20] (B); A C B D Toinen vaihtoehto on sijoittaa edge-operaatiot \node-komentojen yhteyteen. \node (A) at (0,0) {$A$} edge[->, loop above] (); \node (B) at (2,0) {$B$} edge[<-] (A); \node (C) at (0,-2) {$C$} edge[<-] (B); \node (D) at (2,-2) {$D$} edge[->, bend right=20] (B) edge[<-, bend left=20] (B); A C B D Tekstin lisääminen solmuihin ja kaariin Solmun oheen voi liittää tekstiä toisella solmulla tai optiolla label={[ optiot ] kulma : teksti }. \node[draw, label={[red]above: Tämä on lisätty label -optiolla}] (X) {Solmu}; \node[blue, below] at (X.south) {Tämä on lisätty toisella solmulla}; Tämä on lisätty label-optiolla Solmu Tämä on lisätty toisella solmulla Kaariin voi liittää tekstiä operaatiolla node. 10

\coordinate[label=above:$a$] (A) at (3,2); \coordinate[label=left:$b$] (B) at (0,0); \coordinate[label=right:$c$] (C) at (3,0); \draw (A) -- node[above left=-2pt]{$c$} (B) -- node[below=1pt]{$a$} (C) -- node[right]{$b$} (A); B c a A b C 9 Puut Puu tehdään lisäämällä solmuun lapsia child-operaatiolla: child[ optiot ] foreach muuttujat in { arvot } { polku } Valinnaisella foreach-operaatiolla voi lisätä useita lapsia kerralla. \node {juuri} child {node {vasen}} child {node {oikea} child foreach \n in {1,2,3} {node {lapsi\n}} }; juuri vasen oikea lapsi1 lapsi2 lapsi3 Puun tasojen välistä etäisyyttä voi säätää optiolla level distance. Oksien välistä etäisyyttä voi säätää optiolla sibling distance. level 1/.style={sibling distance=8em,level distance=8ex}, level 2/.style={sibling distance=2.5em,level distance=7ex} 0 1 2 3 1.1 1.2 1.3 2.1 2.2 2.3 3.1 3.2 3.3 Puun tai sen oksien kasvusuunnan voi valita optiolla grow= suunta. \node {juuri} child {[grow=west] child child child} child {child child child} child [grow=east] {child child child}; juuri Lapsisolmut yhdistetään vanhempiinsa kaarilla edge from parent[ optiot ]. Jos tätä ei merkitä polkuun eksplisiittisesti, niin se lisätään siihen automaattisesti kuten kaikissa edellisissä esimerkeissä. Kaariin voi lisätä tekstiä nodeoperaatiolla. 11

\node {juuri} child {node {vasen} edge from parent node[left] {a}} child {node {oikea} child {node {lapsi} edge from parent node[left] {c}} child {node {lapsi} edge from parent node[right] {d}} edge from parent node[right] {b}}; juuri a vasen c lapsi b oikea d lapsi 10 Toisto Komento \foreach muuttujat [ optiot ] in lista { komennot } toistaa annettuja komentoja listan sisältämillä muuttujien arvoilla. Muista tikz:n komennoista poiketen komentoa \foreach voi käyttää myös ympäristön tikzpicture ulkopuolella. \draw[->] (-2.6,0) -- (2.7,0) node[right] {$x$}; \draw[->] (0,-2.5) -- (0,2.6) node[above] {$y$}; \foreach \x in {-2,-1,1,2}{ \draw (\x,-2pt) -- (\x,2pt) node[below=4pt] {$\x$};} \foreach \y in {-2,-1,1,2}{ \draw (-2pt,\y) -- (2pt,\y) node[left=2pt] {$\y$};} y 2 1 2 1 1 2 1 2 x Komentoa \foreach voi käyttää myös polun sisällä. \draw (0,0) \foreach \x in {1,...,7} { -- (\x,1) -- (\x,0) }; Eri muuttujat ja niiden arvot erotetaan toisistaan vinoviivalla. \foreach \x/\a in {0/A, 1.5/B, 3/C, 4.5/D, 6/E} {\node[circle,draw] at (\x,0) {$\a$};} A B C D E 12

11 Funktioiden kuvaajat Operaatio plot(\x,f(\x)) piirtää funktion f kuvaajan, kun x [ 5, 5]. Muuttujan \x voi vaihtaa toiseksi optiolla variable= muuttuja. Lähtöjoukon voi määritellä optiolla domain= alku : loppu. Laskettavien pisteiden lukumäärää voi säätää optiolla samples= luku ; oletusarvo on 25. Laskettavat pisteet voi ilmoittaa myös yksitellen muodossa samples at={ muuttujan arvot }. Oletusarvoisesti pisteet yhdistetään janoilla, mutta optiolla smooth pisteet yhdistetään epätasaisuuksia tasoittavalla käyrällä. Käyrän sileyttä voi säätää optiolla tension= luku, jonka oletusarvo on 0.55 ja vaiheluväli yleensä [0, 1]. \draw[blue,thick,fill=blue!15] plot[domain=-3.5:3.5, smooth] (\x,{2.5*exp(-0.5*(\x)^2)}) node[above right] {$f(x)=\frac{5}{2}\mathrm{e}^{-x^2/2}$}; \draw[red!85!black,thick] plot[variable=\t, domain=-3.1416:3.1416, samples=85, smooth] ({2*sin(\t r)},{2*cos(3*\t r)}) node[right=2.2, yshift=0.6cm] {$\begin{cases} x=2\sin t\\ y=2\cos 3t \end{cases}$}; f(x) = 5 2 e x2 /2 x = 2 sin t y = 2 cos 3t Monimutkaisempien funktioiden kuvaajia voi piirtää gnuplot-ohjelmalla 4, jota tikz osaa kutsua suoraan. Edellytyksenä tälle on, että gnuplot on asennettu ja että pdflatexin kanssa käytetään optiota -enable-write18. Tämän option voi lisätä TeXworksin asetuksissa: Edit: Preferences: Typesetting: Processing tools: pdflatex: Edit. Tikz käyttää gnuplotia, kun plotoperaatio annetaan muodossa plot[id= tunnus ] function{ funktio } Alla ovat edellisen esimerkin plot-operaatiot gnuplotin syntaksilla: plot[id=gauss, domain=-3.5:3.5, smooth] function{2.5*exp(-0.5*x**2)} plot[id=param, parametric, domain=-3.1416:3.1416, samples=85, smooth] function{2*sin(t),2*cos(3*t)} 4 http://www.gnuplot.info/ 13

Funktion arvot voidaan laskea myös jollain toisella ohjelmalla ja tallentaa tiedostoon. Kuvaaja piirretään tällöin operaatiolla plot file{ tiedosto }. Merkillä % tai # alkavat tiedoston rivit tulkitaan kommenteiksi. Lisäksi kultakin riviltä luetaan vain ensimmäiset kaksi lukua. Kaikki muu jätetään huomiomatta. Vaihtoehtoisesti koordinaatit voidaa sijoittaa operaation plot coordinates{ koordinaatit } argumenttiin: \draw plot[mark=*] coordinates {(0,0) (0.2,1.6) (0.4,1.2) (2.4,1.2) (3.4,0)}; 12 Yleisiä ohjeita Jos kuvio on vähänkään monimutkaisempi, niin se kannattaa hahmotella ensin kynällä paperille. Kukin kuvio kannattaa yleensä sijoittaa omaan tikzpicture-ympäristöönsä. Tällöin kullakin kuviolla on oma koordinaatistonsa, ja kuvioita voidaan muokata toisistaan riippumatta. Kuviolle voi piirtää apuruudukon operaatiolla grid. Tämä helpottaa kuvaelementtien koordinaattien määrittämistä. \draw[step=0.1, red!15, ultra thin] (0,0) grid (4,2); \draw[red!30, thin] (0,0) grid (4,2); Jos dokumentti on iso tai jos se sisältää paljon kuvioita, niin sen kääntäminen voi olla suhteellisen hidasta. Kuvion tekemistä voi nopeuttaa, jos se tehdään pienemmässä, pelkistetyssä L A TEX-tiedostossa, joka sisältää pelkän kuvion. Tähän voidaan käyttää myös erillistä TikzEdt-ohjelmaa 5, joka kääntää kuvion koodia sitä mukaa kuin sitä kirjoitetaan. Tällöin koodin muutokset näkyvät heti kuviossa. Jos dokumentissa on useita kuvioita, niin niiden yhteiset määritykset kannattaa sijoittaa dokumentin esittelyosaan komennon \tikzset argumenttiin. Näin kuvioiden ulkoasu saadaan yhtenäisemmäksi. Kaikissa kuvioissa käytettävät asetukset määritellään tyylillä every picture. Esimerkiksi \tikzset{every picture/.style={semithick}} määrittelee, että kaikissa kuviossa käytetään oletusarvoisesti viivanpaksuutta semithick. 13 Esimerkkejä Esimerkki 1. Kuvio kirjasta Johdatus modaalilogiikkaan, s. 107. Solmut ja kaaret sekä option label käyttö. Tässä on käytetty lisäpakettia positioning, 5 http://www.tikzedt.org/ 14

joka mahdollistaa solmujen suhteellisen sijoittamisen ilman koordinaatteja. Ensimmäinen solmu sijoitetaan oletusarvoiseen koordinaattiin (0, 0). [->, semithick, >=stealth, auto, ympyrä/.style={circle, draw, minimum size=2.7em}] \node(boxpa) [ympyrä, label={[inner sep=2.5pt]above left:$w$}, label={[rectangle, xshift=-0.5em, yshift=-0.5ex, align=left]below: $w\vdash\forall x\box P(x)$\\$a\in U(w)$}] {$\Box P(a)$}; \node(pa1) [ympyrä, above right=of boxpa, xshift=2em] {$P(a)$}; \node(pa2) [ympyrä, right=of boxpa, xshift=3.5em, label=right:$w $] {$P(a)$}; \node(pa3) [ympyrä, below right=of boxpa, xshift=2em] {$P(a)$}; \node() [ympyrä, above right=of Pa2] {}; \node() [ympyrä, below right=of Pa2] {}; \path[circle, inner sep=2.5pt] (boxpa) edge node {$R$} (Pa1) edge node {$R$} (Pa2) edge node {$R$} (Pa3); \end{tikzpicture} P (a) w P (a) R R P (a) w w x P (x) a U(w) R P (a) Esimerkki 2. Komennon \foreach käyttö ympäristön tikzpicture ulkopuolella sekä polun sisällä. Huomaa myös laskutoimitusten käyttö koordinaattien määrittämisessä. \foreach \n in {3,...,8}{\hfill \filldraw[rotate={180/\n-90}, semithick, fill=green!20, draw=green!50!black] (0:1) \foreach \i in {1,...,\n}{ -- (\i*360/\n:1)}; \node at (-90:1.3) {$n=\n$}; \end{tikzpicture} } n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 15

\foreach \n in {3,5,...,13}{\hfill \filldraw[rotate=90, semithick, fill=blue!20, draw=blue!50!black] (0:1) \foreach \i in {1,...,\n}{ -- (\i*180-\i*180/\n:1)}; \node at (-90:1.3) {$n=\n$}; \end{tikzpicture} } n = 3 n = 5 n = 7 n = 9 n = 11 n = 13 Esimerkki 3. Venn-diagrammeja 6. Piirrettävän alueen rajaaminen komennolla \clip ja ympäristöllä scope. \newcommand*{\a}{(0,0) ellipse[x radius=1, y radius=0.7] node[above left=0.7cm]{$a$}} \newcommand*{\b}{(1,0) ellipse[x radius=1, y radius=0.7] node[above right=0.7cm]{$b$}} \filldraw[semithick, fill=blue!20] \A \B; \node at (0.5,-1.1) {$A\cup B$}; \end{tikzpicture}\hspace{3em}% \begin{scope} \clip \A; \fill[blue!20] \B; \end{scope} \draw[semithick] \A \B; \node at (0.5,-1.1) {$A\cap B$}; \end{tikzpicture}\hspace{3em}% \begin{scope}[even odd rule] \clip \A \B; \fill[blue!20] \A; \end{scope} \draw[semithick] \A \B; \node at (0.5,-1.1) {$A\setminus B$}; \end{tikzpicture} A B A B A B A B A B A \ B 6 Katso myös http://www.texample.net/tikz/examples/venn-diagram/. 16

Esimerkki 4. Linkkien tekeminen eri kuvien välille käyttämällä optioita remember picture ja overlay. Tässä esimerkkinä nuoli \tikz[remember picture]{\node[inner sep=0pt](teksti){tekstistä};} haluttuun kohtaan alla olevaa yhtälöä. \[ a^2 + b^2 [remember picture] \node[inner sep=0pt](haluttu kohta){${}={}$}; \draw[overlay, -latex, very thick, red, opacity=0.33] (teksti) to[out=-90, in=90] (haluttu kohta); \end{tikzpicture} c^2. \] Tässä esimerkkinä nuoli tekstistä haluttuun kohtaan alla olevaa yhtälöä. Kyseisten kuvien on tietenkin sijaittava samalla sivulla. L A TEX-tiedosto on käännettävä kahteen kertaan, jotta kuvien välinen linkki tulostuu oikein. a 2 + b 2 = c 2. Lisää esimerkkejä löytyy sivulta http://www.texample.net/tikz/examples/. 17