> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/fi/kuvat-ja-taulukot/04-picture-environment.md).

# Kaavioiden piirtäminen suoraan LaTeXissa

## Johdanto

LaTeXin sisäänrakennettu `picture` ympäristöä voidaan käyttää kaavioiden/kuvien luomiseen—sinun ei *tarvitse* tarvitse ladata mitään ulkoisia paketteja käyttääksesi sitä, mutta paketit kuten [`pict2e`](https://ctan.org/pkg/pict2e?lang=en) ja [`picture`](https://ctan.org/pkg/picture) on kirjoitettu sen ominaisuuksien laajentamiseksi tai parantamiseksi.

Tämä artikkeli tarjoaa tiiviin johdannon `picture` ympäristöön, ja kaikki esimerkit käyttävät [`pict2e` paketti](https://ctan.org/pkg/pict2e?lang=en). Laajempi dokumentaatio ja joukko hyödyllisiä esimerkkejä ovat helposti saatavilla seuraavista lähteistä:

* [LaTeX2e:n epävirallinen viitemanuaali](https://latexref.xyz/picture.html)
* [The Not So Short Introduction to LaTeX2ε](https://tobi.oetiker.ch/lshort/lshort.pdf) (katso luku 5)
* [Wikikirjat](https://en.wikibooks.org/wiki/LaTeX/Picture)
* [kysymykset, joihin on merkitty `picture-mode` sivustolla tex.stackexchange](https://tex.stackexchange.com/questions/tagged/picture-mode)
* [`pict2e` pakettidokumentaatio](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/pict2e/pict2e.pdf)

Verrattuna tehokkaisiin ja kehittyneisiin grafiikkatyökaluihin, kuten [TikZ/PGF](https://en.wikipedia.org/wiki/PGF/TikZ), [MetaPost](https://tug.org/metapost.html), [PSTricks](https://ctan.org/topic/pstricks?lang=en) tai [Asymptote](https://ctan.org/pkg/asymptote?lang=en) sivustolta `picture` ympäristö voi vaikuttaa varsin rajoittuneelta, mutta toisinaan se voi olla riittävä siihen, mitä sinun tarvitsee tehdä.

## Uuden kuvan luominen

Uuden kuvan luominen sisältää yleensä seuraavat vaiheet:

1. määritä käytettävien piirtoyksiköiden koko;
2. julista `picture` ympäristö, joka määrittää kuvan koon;
3. piirrä yksittäiset graafiset osat käyttämällä `\put`, `\multiput` tai `\qbezier` komentoja.

### Määritä piirtoyksiköiden koko

Kuvan luomiseksi aloitat yleensä asettamalla *piirtoyksiköt* komennolla `\unitlength`, jota on käytettävä ulkopuolella `picture` ympäristöä. Esimerkiksi, jos kirjoitat

```latex
\setlength{\unitlength}{1cm}
```

piirtoyksiköt tulkitaan 1 cm:n kerrannaisina. Oletusyksikkö on 1 pt.

### Määritä kuvasi koko

Ympäristön `picture` yleinen muoto on seuraava

```latex
\begin{picture}(width, height)(Xoffset, Yoffset)
 ...
\end{picture}
```

jossa

* `width` ja `korkeus` ovat arvoja, yksiköissä `\unitlength`, jotka määrittävät kuvan koon. LaTeX käyttää näitä arvoja luodakseen laatikon, jonka mitat ovat
  * laatikon (kuvan) leveys = `width` × `\unitlength`
  * laatikon (kuvan) korkeus = `korkeus` × `\unitlength`
* `(Xoffset, Yoffset)` on valinnainen koordinaatti, joka asettaa kuvan origon (vasen alakulma), ilmaistuna *siirtymänä* oletussijaintiin nähden. `Xoffset` ja `Yoffset` ilmaistaan myös yksiköissä, jotka määräytyvät `\unitlength`.

Huomaa, että `Xoffset` ja `Yoffset` eivät vaikuta LaTeXin varaamaan tilaan; eli laatikon mittoihin.

#### Kuvan mittojen ymmärtäminen

Luomme kaksi kuvaa, joissa molemmissa käytetään `\setlength{\unitlength}{1cm}` ja joissa kummassakin on `width` ja `korkeus` 3 yksikön

Ensimmäinen kuva käyttää oletusorigoa `(0,0)`:

```latex
\begin{picture}(3,3)
...
\end{picture}
```

toinen kuva siirtää origoa `(1,1)`:

```latex
\begin{picture}(3,3)(1,1)
...
\end{picture}
```

### Grafiikan piirtäminen

Grafiikka luodaan käyttämällä sarjaa `\put`, `\multiput`, tai `\qbezier` komentoja, jotka tuottavat yksittäiset “osat” (tai “objektit”), joista kuva tai piirros muodostuu:

* `\put(x, y){*component*}` piirtää `*component*-osan` sijaintiin `(x, y)`.
* `\multiput(x, y)(dx, dy){n}{*component*}` piirtää `*component*-osan` `n` kertaa: alkaen sijainnista `(x, y)` ja siirtäen toistuvasti `(dx, dy)` jotta \*component\*-osa piirretään uudelleen `*component*-osan`.
* `\qbezier[n](x<sub>1</sub>, y<sub>1</sub>)(x, y)(x<sub>2</sub>, y<sub>2</sub>)`: piirtää [neliöllisen Bézier-käyrän](https://en.wikipedia.org/wiki/B%C3%A9zier_curve#Quadratic_B%C3%A9zier_curves) jossa:
  * `n` valinnainen kokonaisluku, joka määrittää pisteiden määrän, jota käytetään käyrän piirtämiseen/tuottamiseen
  * `(x<sub>1</sub>, y<sub>1</sub>)` on käyrän aloituspiste
  * `(x<sub>2</sub>, y<sub>2</sub>)` on käyrän päätepiste
  * `(x, y)` tarkoittaa (neliöllistä) Bézier-käyrän ohjauspistettä

Yksi `*component*-osan` on graafinen elementti, joka tuotetaan yleensä käyttämällä grafiikkaprimiitiivejä kuten `\line`, `\oval`, `\circle`, `\vector` ja niin edelleen—katso [LaTeX2e:n epävirallinen viitemanuaali](https://latexref.xyz/picture.html) tai [The Not So Short Introduction to LaTeX2ε](https://tobi.oetiker.ch/lshort/lshort.pdf) (luku 5) saadaksesi lisätietoja käytettävissä olevista primitiiveistä.

**Huomaa**: Se [`pict2e` paketti](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/pict2e/pict2e.pdf) laajentaa alkuperäistä `picture` ympäristöä tarjoamaan useita komentoja Bézier-käyrien piirtämiseen: `\bezier`, `\qbezier`, `\cbezier` ja `\qbeziermax`.

### Siirtymän ja origon ymmärtäminen

Seuraavissa esimerkeissä `\put` komentoa käytetään värillisten pisteiden piirtämiseen, jotka osoittavat grafiikan avainkoordinaatit (sijainnit). Molemmat esimerkit käyttävät LaTeXin `\fbox` komentoa piirtämään reunuksen laatikon ympärille, jonka LaTeX loi sisältämään kuvamme, näyttäen *rajaava laatikko* grafiikasta.

**Esimerkki 1: oletusorigon käyttäminen**

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\usepackage[dvipsnames]{xcolor}
\begin{document}
\setlength{\unitlength}{1cm}
\setlength{\fboxsep}{0pt}

Tässä on kuvani\fbox{%
\begin{picture}(3,3)
\put(0,0){{\color{blue}\circle*{0.25}}\hbox{\kern3pt \texttt{(0,0)}}}
\put(3,3){{\color{red}\circle*{0.25}}\hbox{\kern3pt \texttt{(3,3)}}}
\end{picture}}
\end{document}
```

[Avaa tämä esimerkki Overleafissa](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=understanding+picture+dimensions+example+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cusepackage%5Bdvipsnames%5D%7Bxcolor%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Csetlength%7B%5Cfboxsep%7D%7B0pt%7D%0A%0AThis+is+my+picture%5Cfbox%7B%25%0A%5Cbegin%7Bpicture%7D%283%2C3%29%0A%5Cput%280%2C0%29%7B%7B%5Ccolor%7Bblue%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt+%5Ctexttt%7B%280%2C0%29%7D%7D%7D%0A%5Cput%283%2C3%29%7B%7B%5Ccolor%7Bred%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt+%5Ctexttt%7B%283%2C3%29%7D%7D%7D%0A%5Cend%7Bpicture%7D%7D%0A%5Cend%7Bdocument%7D)

Tämä esimerkki tuottaa seuraavan tulosteen:

![LaTeXin picture-ympäristön mitat](/files/a746ab05e52461a6e5bd6f115d1fb0d9759d5558)

Se `\fbox` komento piirtää reunuksen grafiikan rajaavan laatikon ympärille ja näyttää LaTeXin varaaman tilan (alueen):

* kuvan leveys = `width` × `\unitlength` = 3 × 1cm = 3cm.
* kuvan korkeus = `korkeus` × `\unitlength` = 3 × 1cm = 3cm.

Ensimmäinen esimerkki osoittaa, että origo `(0,0)`, on siinä pisteessä, jossa `\begin{picture}` komento suoritettiin, heti tekstin “Tässä on kuvani” jälkeen. Lisäksi oikea yläkulma on sijainnissa `(3,3)`, `(width,height)` arvot, jotka annettiin `\begin{picture}(3,3)`.

**Esimerkki 2: origon siirtäminen by (1,1)**

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\usepackage[dvipsnames]{xcolor}
\begin{document}
\setlength{\unitlength}{1cm}
\setlength{\fboxsep}{0pt}

Tässä on kuvani\fbox{%
\begin{picture}(3,3)(1,1)
\put(0,0){{\color{blue}\circle*{0.25}}\hbox{\kern3pt\texttt{(0,0)}}}
\put(1,1){{\color{orange}\circle*{0.25}}\hbox{\kern3pt\texttt{(1,1)}}}
\put(3,3){{\color{red}\circle*{0.25}}\hbox{\kern3pt\texttt{(3,3)}}}
\put(4,4){{\color{black}\circle*{0.25}}\hbox{\kern3pt\texttt{(4,4)}}}
\end{picture}}
\end{document}
```

[Avaa tämä esimerkki Overleafissa](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=understanding+picture+dimensions+example+2\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cusepackage%5Bdvipsnames%5D%7Bxcolor%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Csetlength%7B%5Cfboxsep%7D%7B0pt%7D%0A%0AThis+is+my+picture%5Cfbox%7B%25%0A%5Cbegin%7Bpicture%7D%283%2C3%29%281%2C1%29%0A%5Cput%280%2C0%29%7B%7B%5Ccolor%7Bblue%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%280%2C0%29%7D%7D%7D%0A%5Cput%281%2C1%29%7B%7B%5Ccolor%7Borange%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%281%2C1%29%7D%7D%7D%0A%5Cput%283%2C3%29%7B%7B%5Ccolor%7Bred%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%283%2C3%29%7D%7D%7D%0A%5Cput%284%2C4%29%7B%7B%5Ccolor%7Bblack%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%284%2C4%29%7D%7D%7D%0A%5Cend%7Bpicture%7D%7D%0A%5Cend%7Bdocument%7D)

Tämä esimerkki tuottaa seuraavan tulosteen:

![LaTeXin picture-ympäristön mitat](/files/dd5626dd30ae1778e6d70a19391fd42c3f854cf8)

Toinen esimerkki osoittaa origon siirtämisen vaikutukset ja korostaa joitakin keskeisiä kohtia:

* reunus, jonka luo `\fbox` osoittaa, että grafiikan rajaava laatikko, LaTeXin luoman laatikon leveys ja korkeus, on *muuttumaton* origon siirtämisestä: se määräytyy yhä `(width,height)` arvot, jotka annettiin `\begin{picture}(3,3)(1,1)`
  * kuvan leveys = `width` × `\unitlength` = 3 × 1cm = 3cm
  * kuvan korkeus = `korkeus` × `\unitlength` = 3 × 1cm = 3cm
* piirtoelementit eivät ole rajoitettuja (leikattuja) LaTeXin luomaan alueeseen (rajaavan laatikon mittoihin). Esimerkiksi sininen piste ja `(0,0)` koordinaatti piirretään LaTeXin luoman rajan ulkopuolelle, jonka `\fbox`ilmaisee rajaavan laatikon.
  * Käyttäjän tehtävä on varmistaa, että piirtoelementit pysyvät rajaavan laatikon sisällä eivätkä peitä mitään ympäröivää tekstiä.
* origo, `(0,0)`, on *ei enää* sijaitse heti tekstin “Tässä on kuvani” jälkeen, siinä pisteessä jossa `\begin{picture}` komento suoritettiin: origo on nyt siirretty 1 yksikkö vasemmalle ja 1 yksikkö alaspäin
* oikea yläkulma on nyt sijainnissa `(4,4)`

## Esimerkkejä picture-ympäristöstä

### Esimerkkejä LaTeX2e:n epävirallisesta viitemanuaalista

Se [LaTeX2e:n epävirallinen viitemanuaali](https://latexref.xyz/picture.html) sisältää joukon `picture` ympäristöesimerkkejä, joista osa on tässä toistettu yhdessä linkkien kanssa, jotka avaavat ne Overleafiin, jolloin voit muokata ja tutkia koodia.

#### Esimerkki 1: \vector-komento

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\begin{picture}(6,6)      % kuva-ruutu on 6cm leveä ja 6cm korkea
  \put(0,0){\vector(2,1){4}}  % jokaista 2 vaakasuunnassa kohden tämä vektori menee 1 ylöspäin
    \put(2,1){\makebox(0,0)[l]{\ first leg}}
  \put(4,2){\vector(1,2){2}}
    \put(5,4){\makebox(0,0)[l]{\ second leg}}
  \put(0,0){\vector(1,1){6}}
    \put(3,3){\makebox(0,0)[r]{sum\ }}
\end{picture}
\end{document}
```

[Avaa tämä esimerkki Overleafissa](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cbegin%7Bpicture%7D%286%2C6%29++++++%25+picture+box+will+be+6cm+wide+by+6cm+tall%0A++%5Cput%280%2C0%29%7B%5Cvector%282%2C1%29%7B4%7D%7D++%25+for+every+2+over+this+vector+goes+1+up%0A++++%5Cput%282%2C1%29%7B%5Cmakebox%280%2C0%29%5Bl%5D%7B%5C+first+leg%7D%7D%0A++%5Cput%284%2C2%29%7B%5Cvector%281%2C2%29%7B2%7D%7D%0A++++%5Cput%285%2C4%29%7B%5Cmakebox%280%2C0%29%5Bl%5D%7B%5C+second+leg%7D%7D++%0A++%5Cput%280%2C0%29%7B%5Cvector%281%2C1%29%7B6%7D%7D%0A++++%5Cput%283%2C3%29%7B%5Cmakebox%280%2C0%29%5Br%5D%7Bsum%5C+%7D%7D++%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Tämä esimerkki tuottaa seuraavan tulosteen:

![picture-ympäristön esimerkki](/files/aad423c64c7427fce8274be9270baacd4491b1a5)

#### Esimerkki 2: \qbezier-, \line-, \vector-, \thinlines- ja \thicklines-komennot

Huomaa, miten `\qbezier` komento *ei* käytetä sisällä `\put{...}` kun taas muita primitiivikomentoja, kuten `\line`, `\vector` *olet* käytetä sisällä `\put{...}`.

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\begin{picture}(8,4)
  \thinlines % Aloita ohuilla viivoilla
  \put(0,0){\vector(1,0){8}}  % x-akseli
  \put(0,0){\vector(0,1){4}}  % y-akseli
  \put(2,0){\line(0,1){3}}    % vasen puoli
  \put(4,0){\line(0,1){3.5}}  % oikea puoli
  \thicklines % Käytä paksumpia viivoja \qbezier-komentoja varten
  \qbezier(2,3)(2.5,2.9)(3,3.25)
  \qbezier(3,3.25)(3.5,3.6)(4,3.5)
  \thinlines % Palataan käyttämään ohuita viivoja
  \put(2,3){\line(4,1){2}}
  \put(4.5,2.5){\framebox{Trapetsisääntö}}
\end{picture}
\end{document}
```

[Avaa tämä esimerkki Overleafissa](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=qbezier+picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cbegin%7Bpicture%7D%288%2C4%29%0A++%5Cthinlines+%25+Start+with+thin+lines%0A++%5Cput%280%2C0%29%7B%5Cvector%281%2C0%29%7B8%7D%7D++%25+x+axis%0A++%5Cput%280%2C0%29%7B%5Cvector%280%2C1%29%7B4%7D%7D++%25+y+axis%0A++%5Cput%282%2C0%29%7B%5Cline%280%2C1%29%7B3%7D%7D++++%25+left+side%0A++%5Cput%284%2C0%29%7B%5Cline%280%2C1%29%7B3.5%7D%7D++%25+right+side%0A++%5Cthicklines+%25+Use+thicker+lines+for+the+%5Cqbezier+commands%0A++%5Cqbezier%282%2C3%29%282.5%2C2.9%29%283%2C3.25%29%0A++%5Cqbezier%283%2C3.25%29%283.5%2C3.6%29%284%2C3.5%29%0A++%5Cthinlines+%25+Back+to+using+thin+lines%0A++%5Cput%282%2C3%29%7B%5Cline%284%2C1%29%7B2%7D%7D%0A++%5Cput%284.5%2C2.5%29%7B%5Cframebox%7BTrapezoidal+Rule%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Tämä esimerkki tuottaa seuraavan tulosteen:

![Esimerkki LaTeXin picture-ympäristöstä](/files/e8981639ee4932eac9224eded0767515ed8772ea)

#### Esimerkki 3: \multiput- ja \linethickness-komennot

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\thicklines
\begin{picture}(10,10)
  \linethickness{0.05mm}
  \multiput(0,0)(1,0){10}{\line(0,1){10}}
  \multiput(0,0)(0,1){10}{\line(1,0){10}}
  \linethickness{0.5mm}
  \multiput(0,0)(5,0){3}{\line(0,1){10}}
  \multiput(0,0)(0,5){3}{\line(1,0){10}}
\end{picture}
\end{document}
```

[Avaa tämä esimerkki Overleafissa](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=multiput+command+picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cthicklines%0A%5Cbegin%7Bpicture%7D%2810%2C10%29%0A++%5Clinethickness%7B0.05mm%7D%0A++%5Cmultiput%280%2C0%29%281%2C0%29%7B10%7D%7B%5Cline%280%2C1%29%7B10%7D%7D+%0A++%5Cmultiput%280%2C0%29%280%2C1%29%7B10%7D%7B%5Cline%281%2C0%29%7B10%7D%7D%0A++%5Clinethickness%7B0.5mm%7D%0A++%5Cmultiput%280%2C0%29%285%2C0%29%7B3%7D%7B%5Cline%280%2C1%29%7B10%7D%7D%0A++%5Cmultiput%280%2C0%29%280%2C5%29%7B3%7D%7B%5Cline%281%2C0%29%7B10%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Tämä esimerkki tuottaa seuraavan tulosteen:

![\multiput-komennon LaTeX picture -ympäristön esimerkki](/files/78e101820480bfcdeddbd48691b5fd7e544ec1b2)

### Muita esimerkkejä

#### Perus-Bézier-käyrä

Seuraava esimerkki käyttää `\qbezier` komento Bézier-käyrän piirtämiseen:

```latex
\qbezier(1,1)(5,5)(9,0.5)
```

Huomaa seuraavat asiat:

* sivustolta `\qbezier` komentoa ei käytetä sisällä `\put` komento
* Bézier-käyrän aloituspiste on `(1,1)`
* Bézier-käyrän päätepiste on `(9,0.5)`
* Bézier-käyrän ohjauspiste on `(5,5)`
* emme käytä valinnaista kokonaislukua, joka määrittää pisteiden määrän, jota käytetään Bézier-käyrän piirtämiseen/tuottamiseen

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{0.8cm}
\begin{picture}(10,5)
\thicklines
\qbezier(1,1)(5,5)(9,0.5)
\put(2,1){{Bézier curve}}
\end{picture}
\end{document}
```

[Avaa tämä esimerkki Overleafissa](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=multiput+command+picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B0.8cm%7D%0A%5Cbegin%7Bpicture%7D%2810%2C5%29%0A%5Cthicklines%0A%5Cqbezier%281%2C1%29%285%2C5%29%289%2C0.5%29%0A%5Cput%282%2C1%29%7B%7BB%C3%A9zier+curve%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Tämä esimerkki tuottaa seuraavan tulosteen:

![Bézier-käyrän piirtäminen LaTeXilla](/files/9964a8650463e630038ea7c7abcc7b2095535fcb)

#### Soikiot, viivat ja ympyrät

Seuraava esimerkki havainnollistaa `\line`, `\circle` ja `\oval` komentoja ja—huomaa, miten ne *olet* kaikki käytetään sisällä `\put{...}` komento:

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\thicklines
\begin{picture}(10,6)
\put(2,2.2){\line(1,0){6}}
\put(2,2.2){\circle{2}}
\put(6,2.2){\oval(4,2)[r]}
\end{picture}
\end{document}
```

[Avaa tämä esimerkki Overleafissa](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cthicklines%0A%5Cbegin%7Bpicture%7D%2810%2C6%29%0A%5Cput%282%2C2.2%29%7B%5Cline%281%2C0%29%7B6%7D%7D%0A%5Cput%282%2C2.2%29%7B%5Ccircle%7B2%7D%7D%0A%5Cput%286%2C2.2%29%7B%5Coval%284%2C2%29%5Br%5D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Tämä esimerkki tuottaa seuraavan tulosteen:

![LaTeX picture -ympäristön esimerkki](/files/bd160db3ca39d2c6d9b8dbca75b72f2c640305e0)

Alla on kuvaus komennoista:

* `\put(2,2.2){\line(1,0){6}}`: piirtää viivan `6` yksikköä pitkä käyttäen “suuntavektoria” `(1,0)`
* `\put(6,2.2){\oval(4,2)[r]}`: piirtää soikion, jonka keskipiste on pisteessä `(4,2)`. Parametri `[r]` on valinnainen, voit käyttää `r`, `l`, `t` ja `b` osoittamaan soikion oikean, vasemman, ylä- tai alaosan.
* `\put(2,2.2){\circle{2}}`: piirtää ympyrän, jonka keskipiste on pisteessä `(2,2.2)` ja jonka halkaisija on `2`.

#### Viivojen, ympyröiden ja tekstin yhdistäminen

Eri peruselementtejä voidaan yhdistää monimutkaisempien kuvien luomiseksi. Tässä esimerkissä useita viivoja ja ympyröitä yhdistetään kuvan luomiseksi yhdessä tekstin kanssa pisteiden nimeämiseksi:

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{0.8cm}
\begin{picture}(12,4)
\thicklines
\put(8,3.3){{\footnotesize $3$-simplex}}
\put(9,3){\circle*{0.1}}
\put(8.3,2.9){$a_2$}
\put(8,1){\circle*{0.1}}
\put(7.7,0.5){$a_0$}
\put(10,1){\circle*{0.1}}
\put(9.7,0.5){$a_1$}
\put(11,1.66){\circle*{0.1}}
\put(11.1,1.5){$a_3$}
\put(9,3){\line(3,-2){2}}
\put(10,1){\line(3,2){1}}
\put(8,1){\line(1,0){2}}
\put(8,1){\line(1,2){1}}
\put(10,1){\line(-1,2){1}}
\end{picture}
\end{document}
```

[Avaa tämä esimerkki Overleafissa](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=understanding+picture+dimensions+example+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B0.8cm%7D%0A%5Cbegin%7Bpicture%7D%2812%2C4%29%0A%5Cthicklines%0A%5Cput%288%2C3.3%29%7B%7B%5Cfootnotesize+%243%24-simplex%7D%7D%0A%5Cput%289%2C3%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%288.3%2C2.9%29%7B%24a_2%24%7D%0A%5Cput%288%2C1%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%287.7%2C0.5%29%7B%24a_0%24%7D%0A%5Cput%2810%2C1%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%289.7%2C0.5%29%7B%24a_1%24%7D%0A%5Cput%2811%2C1.66%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%2811.1%2C1.5%29%7B%24a_3%24%7D%0A%5Cput%289%2C3%29%7B%5Cline%283%2C-2%29%7B2%7D%7D%0A%5Cput%2810%2C1%29%7B%5Cline%283%2C2%29%7B1%7D%7D%0A%5Cput%288%2C1%29%7B%5Cline%281%2C0%29%7B2%7D%7D%0A%5Cput%288%2C1%29%7B%5Cline%281%2C2%29%7B1%7D%7D%0A%5Cput%2810%2C1%29%7B%5Cline%28-1%2C2%29%7B1%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Tämä esimerkki tuottaa seuraavan tulosteen:

![LaTeX picture -ympäristön esimerkki](/files/78d3c484b74d59c1b9a934988fea98871671c708)

Tässä on yhteenveto joistakin käytetyistä komennoista:

* `\thicklines`: tämä lisää viivojen paksuutta. Komento `\thinlines` vaikutus on päinvastainen.
* `\put(8,3.3){{\footnotesize $3$-simplex}}`: teksti “3-simplex” lisätään pisteeseen `(8,3.3)`, kirjasinkooksi asetetaan `\footnotesize`. Samaa komentoa käytetään jokaisen pisteen nimeämiseen.
* `\put(9,3){\circle*{0.1}}`: tämä piirtää täytetyn ympyrän, jonka keskipiste on `(9,3)` ja jonka pieni halkaisija on `0.1` (piirtoyksikkö), joten sitä voidaan käyttää pisteenä.
* `\put(10,1){\line(3,2){1}}`: luo suoran viivan, joka alkaa pisteestä `(10,1)` ja piirretään suunnassa `(3,2)` pituudella 1 (piirtoyksikkö).

#### Nuolien käyttäminen

Nuolia voidaan käyttää myös sisällä `picture` ympäristöä, joten tässä on toinen esimerkki:

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{0.20mm}
\begin{picture}(400,250)
\put(75,10){\line(1,0){130}}
\put(75,50){\line(1,0){130}}
\put(75,200){\line(1,0){130}}
\put(120,200){\vector(0,-1){150}}
\put(190,200){\vector(0,-1){190}}
\put(97,120){$\alpha$}
\put(170,120){$\beta$}
\put(220,195){ylempi tila}
\put(220,45){alempi tila 1}
\put(220,5){alempi tila 2}
\end{picture}
\end{document}
```

[Avaa tämä esimerkki Overleafissa](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+arrows+in+LaTeX+picture+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B0.20mm%7D%0A%5Cbegin%7Bpicture%7D%28400%2C250%29%0A%5Cput%2875%2C10%29%7B%5Cline%281%2C0%29%7B130%7D%7D%0A%5Cput%2875%2C50%29%7B%5Cline%281%2C0%29%7B130%7D%7D%0A%5Cput%2875%2C200%29%7B%5Cline%281%2C0%29%7B130%7D%7D%0A%5Cput%28120%2C200%29%7B%5Cvector%280%2C-1%29%7B150%7D%7D%0A%5Cput%28190%2C200%29%7B%5Cvector%280%2C-1%29%7B190%7D%7D%0A%5Cput%2897%2C120%29%7B%24%5Calpha%24%7D%0A%5Cput%28170%2C120%29%7B%24%5Cbeta%24%7D%0A%5Cput%28220%2C195%29%7Bupper+state%7D%0A%5Cput%28220%2C45%29%7Blower+state+1%7D%0A%5Cput%28220%2C5%29%7Blower+state+2%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Tämä esimerkki tuottaa seuraavan tulosteen:

![Nuoliesimerkki LaTeX picture -ympäristössä](/files/c0a14e7bf6e06bf4dd9013e1184cd0d31edffcb1)

Se `\vector` komento käyttää samaa syntaksia kuin `\line`:

* `\put(120,200){\vector(0,-1){150}}`: piirtää vektorin, jonka aloituspiste on `(120,200)`, pituus on `150` ja piirto suunta on `(0,-1)`.

## Lisälukemista

Lisätietoja saat seuraavista lähteistä:

* [LaTeX2e:n epävirallinen viitemanuaali](https://latexref.xyz/picture.html)
* [The Not So Short Introduction to LaTeX2ε](https://tobi.oetiker.ch/lshort/lshort.pdf) (katso luku 5)
* [Wikikirjat](https://en.wikibooks.org/wiki/LaTeX/Picture)
* [kysymykset, joihin on merkitty `picture-mode` sivustolla tex.stackexchange](https://tex.stackexchange.com/questions/tagged/picture-mode)
* [`pict2e` pakettidokumentaatio](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/pict2e/pict2e.pdf)
* [TikZ-paketti](/latex/fi/kuvat-ja-taulukot/05-tikz-package.md)
* [Pgfplots-paketti](/latex/fi/alakohtaiset/08-pgfplots-package.md)
* [Kuvien ja taulukoiden sijoittelu](/latex/fi/kuvat-ja-taulukot/02-positioning-images-and-tables.md)
* [Taulukkojen ja kuvioiden luettelot](/latex/fi/kuvat-ja-taulukot/03-lists-of-tables-and-figures.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/fi/kuvat-ja-taulukot/04-picture-environment.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
