%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setcounter{chapter}{4}
\newcommand{\graphicscompanion}{\emph{The \LaTeX{} Graphics Companion}~\cite{graphicscompanion}} 
\newcommand{\hobby}{\emph{A User's Manual for MetaPost}~\cite{metapost}}
\newcommand{\hoenig}{\emph{\TeX{} Unbound}~\cite{unbound}}
\newcommand{\graphicsinlatex}{\emph{Graphics in \LaTeXe{}}~\cite{ursoswald}}

\chapter{Grafiikan tuottaminen matematiikan tarpeisiin}

\begin{intro}
Useimmat k�ytt�v�t {\LaTeX}:ia tekstin latomiseen. \LaTeX\ tarjoaa my�s
rajallisen mahdollisuuden tuottaa grafiikkaa k�skyjen avulla.
Rajoittuneita mahdollisuuksia lis��v�t lukuisat {\LaTeX}-lis�ykset. T�ss� osassa opitaan
muutama niist�.
\end{intro}

\section{Yleiskatsaus}

{\LaTeX}:ssa voidaan m��ritell� kuvia \ei{picture}-ymp�rist�ll�.
Yksityiskohtainen kuvaus l�ytyy ohjeesta \manual. Toisaalta menetelm�ss�
on pahoja puutteita. Kulmat, joissa vinoja viivoja voidaan esitt��, sek�
ympyr�iden s�teet on rajattu tiettyihin arvoihin. Toisaalta taas {\LaTeX}:n
\ei{picture}-ymp�rist� sis�lt�� \ci{qbezier}-komennon, jossa ''\texttt{q}''
tarkoittaa neli�t� (quadratic). Monet usein k�ytetyist� k�yrist� eli
ympyr�t, ellipsit tai katenoidik�yr�t voidaan esitt�� l�hestulkoon tyydytt�v�sti
toisen asteen B�zier-k�yrill�, vaikka t�m� voi vaatia hieman matemaattista
vaivann�k��. Mik�li lis�ksi k�ytet��n Javan tapaista ohjelmointikielt�
\ci{qbezier}-blokkien luomiseksi {\LaTeX}-tiedostoista, tulee \ei{picture}-ymp�rist�st�
melko tehokas.

Vaikka kuvien piirt�minen {\LaTeX}:ssa on hyvin rajoittunutta ja usein
hankalaa, on siihen kuitenkin hyv�t syyns�. N�in tuotetut dokumentit
ovat tiedostokooltaan pieni� eik� ylim��r�isiin grafiikkatiedostoihin
ole mit��n tarvetta.

{\LaTeX}:n graafisia ominaisuuksia voidaan parantaa k�ytt�m�ll� pakkauksia
\pai{epic} ja \pai{eepic} (n�m� on kuvattu teoksessa \companion) tai \pai{pstricks},
jotka poistavat alkuper�isen \ei{picture}-ymp�rist�n rajoituksia.

Kaksi ensinmainittua makropakkausta parantavat \ei{picture}-ymp�rist��, mutta
\pai{pstricks} sis�lt�� aivan oman piirustusymp�rist�n \ei{pspicture}.
\pai{pstricks}-pakkauksen voima on siin�, ett� se k�ytt�� hyvin tarkkaan
PostScriptin ominaisuuksia. Lis�ksi on viel� lukuisia erityisiin tarkoituksiin tehtyj�
makropakkauksia. Er�s niist� on \texorpdfstring{\Xy}{Xy}-pic, joka on kuvattu
t�m�n luvun lopussa. Teoksessa \graphicscompanion{} (jota ei pid� sekoittaa
teokseen \companion{}) on kuvattu yksityiskohtaisesti
useita n�it� makropakkauksia.

Ehk� tehokkain {\LaTeX}:iin liittyv� graafinen ty�kalu on \texttt{MetaPost}, joka
on Donald E. Knuthin \texttt{METAFONT}:n kaksoissisar. \texttt{MetaPost} k�ytt��
\texttt{METAFONT}:n hyvin tehokasta ja matemaattisesti sofistikoitua ohjelmointikielt�.
\texttt{METAFONT}:n bittikarttakuvien sijasta \texttt{MetaPost} tuottaa
PostScript-tiedostoja, joita voidaan liitt�� {\LaTeX}-dokumenttiin. Johdantona
voidaan k�ytt�� teosta {\hobby} tai teoksesta \cite{ursoswald} l�ytyv�� oppijaksoa.

Teoksessa on \hoenig{} on hyvin perinpohjainen esitys {\LaTeX}:n ja {\TeX}:n graafisista
ominaisuuksista (sek� kirjasimista).

\section{\texttt{picture}-ymp�rist�}
\secby{Urs Oswald}{osurs@bluewin.ch}

\subsection{Peruskomennot}

\ei{picture}-ymp�rist�\footnote{Kaiken huipuksi t�m� kuvaymp�rist� toimii ilman mit��n
erityisi� makropakkauksia.} otetaan k�ytt��n joko komennolla
\begin{lscommand}
\ci{begin}\verb|{picture}(|$x,y$\verb|)|\ldots\ci{end}\verb|{picture}|
\end{lscommand}
\noindent tai
\begin{lscommand}
\ci{begin}\verb|{picture}(|$x,y$\verb|)(|$x_0,y_0$\verb|)|\ldots\ci{end}\verb|{picture}|
\end{lscommand}
Numerot $x,\,y,\,x_0,\,y_0$ viittaavat \ci{unitlength}-muuttujaan, jolle voidaan asettaa
arvo milloin tahansa (ei kuitenkaan \ei{picture}-ymp�rist�n sis�ll�) esimerkiksi komennolla

\begin{lscommand}
\ci{setlength}\verb|{|\ci{unitlength}\verb|}{1.2cm}|
\end{lscommand}
Muuttujan \ci{unitlength} oletusarvo on \texttt{1pt}. Ensimm�inen pari, $(x,y)$, varaa
kuvalle nelikulmaisen tilan dokumentista. Toista paria, $(x_0,y_0)$, voidaan k�ytt��
tarvittaessa asettamaan mielivaltaiset koordinaatit nelikulmion vasemmasta alakulmasta.

Useimmat piirustuskomennot ovat joko muotoa
\begin{lscommand}
\ci{put}\verb|(|$x,y$\verb|){|\emph{objekti}\verb|}|
\end{lscommand}
\noindent tai
\begin{lscommand}
\ci{multiput}\verb|(|$x,y$\verb|)(|$\Delta x,\Delta y$\verb|){|$n$\verb|}{|\emph{objekti}\verb|}|\end{lscommand}
B�zier-k�yr�t ovat poikkeus. Ne piirret��n komennolla
\begin{lscommand}
\ci{qbezier}\verb|(|$x_1,y_1$\verb|)(|$x_2,y_2$\verb|)(|$x_3,y_3$\verb|)|
\end{lscommand}

\subsection{Suorat viivat}

\begin{example}
\setlength{\unitlength}{5cm}
\begin{picture}(1,1)
  \put(0,0){\line(0,1){1}}
  \put(0,0){\line(1,0){1}}  
  \put(0,0){\line(1,1){1}}  
  \put(0,0){\line(1,2){.5}}
  \put(0,0){\line(1,3){.3333}}
  \put(0,0){\line(1,4){.25}}  
  \put(0,0){\line(1,5){.2}}
  \put(0,0){\line(1,6){.1667}}
  \put(0,0){\line(2,1){1}}
  \put(0,0){\line(2,3){.6667}}
  \put(0,0){\line(2,5){.4}}
  \put(0,0){\line(3,1){1}}  
  \put(0,0){\line(3,2){1}}
  \put(0,0){\line(3,4){.75}}
  \put(0,0){\line(3,5){.6}}
  \put(0,0){\line(4,1){1}}
  \put(0,0){\line(4,3){1}}  
  \put(0,0){\line(4,5){.8}}
  \put(0,0){\line(5,1){1}}
  \put(0,0){\line(5,2){1}}
  \put(0,0){\line(5,3){1}}
  \put(0,0){\line(5,4){1}}
  \put(0,0){\line(5,6){.8333}}
  \put(0,0){\line(6,1){1}}
  \put(0,0){\line(6,5){1}}
\end{picture}
\end{example}
Suorat viivat piirret��n komennolla
\begin{lscommand}
\ci{put}\verb|(|$x,y$\verb|){|\ci{line}\verb|(|$x_1,y_1$\verb|){|$length$\verb|}}|
\end{lscommand}
Komennolla \ci{line} on kaksi parametria:
\begin{enumerate}
  \item suuntavektori,
  \item pituus.
\end{enumerate}
Suuntavektori koostuu kokonaisluvuista
\[
  -6,\,-5,\,\ldots,\,5,\,6,
\]
ja niiden on oltava lis�ksi kesken��n jaottomia (eli ei yhteist� jakajaa ykk�st� lukuunottamatta).
Kuvassa esitet��n kaikki 25 ensimm�isen kvadrantin mahdollista arvoa. Pituus riippuu
\ci{unitlength}-muuttujan arvosta. Pituusparametri on vaakaviivan tapauksessa vaakakoordinaatti,
muussa tapauksessa kyseess� on pystykordinaatti.

\subsection{Nuolet}

\begin{example}
\setlength{\unitlength}{1mm}
\begin{picture}(60,40)
  \put(30,20){\vector(1,0){30}}
  \put(30,20){\vector(4,1){20}}
  \put(30,20){\vector(3,1){25}}
  \put(30,20){\vector(2,1){30}}
  \put(30,20){\vector(1,2){10}}
  \thicklines
  \put(30,20){\vector(-4,1){30}}
  \put(30,20){\vector(-1,4){5}}
  \thinlines
  \put(30,20){\vector(-1,-1){5}}
  \put(30,20){\vector(-1,-4){5}}
\end{picture}
\end{example}
Nuolet piirret��n komennolla
\begin{lscommand}
\ci{put}\verb|(|$x,y$\verb|){|\ci{vector}\verb|(|$x_1,y_1$\verb|){|$length$\verb|}}|
\end{lscommand}
Nuolien suuntavektorit ovat jopa suorien suuntavektoreita rajoitutempia.
Niiden argumentteina voivat olla ainoastaan kokonaisluvut 
\[
  -4,\,-3,\,\ldots,\,3,\,4.
\]
Argumenttien on lis�ksi oltava kesken��n jaottomia (ei yhteist� jakajaa ykk�st� lukuunottamatta). On syyt�
huomata komennon \ci{thicklines} vaikutus kahteen vasempaan yl�kulmaan osoittavaan nuoleen.

\subsection{Ympyr�t}

\begin{example}
\setlength{\unitlength}{1mm}
\begin{picture}(60, 40)
  \put(20,30){\circle{1}}
  \put(20,30){\circle{2}}
  \put(20,30){\circle{4}}
  \put(20,30){\circle{8}}
  \put(20,30){\circle{16}}
  \put(20,30){\circle{32}}
  
  \put(40,30){\circle{1}}
  \put(40,30){\circle{2}}
  \put(40,30){\circle{3}}
  \put(40,30){\circle{4}}
  \put(40,30){\circle{5}}
  \put(40,30){\circle{6}}
  \put(40,30){\circle{7}}
  \put(40,30){\circle{8}}
  \put(40,30){\circle{9}}
  \put(40,30){\circle{10}}
  \put(40,30){\circle{11}}
  \put(40,30){\circle{12}}
  \put(40,30){\circle{13}}
  \put(40,30){\circle{14}}
  
  \put(15,10){\circle*{1}}
  \put(20,10){\circle*{2}}
  \put(25,10){\circle*{3}}
  \put(30,10){\circle*{4}}
  \put(35,10){\circle*{5}}
\end{picture}
\end{example}
Komento
\begin{lscommand}
  \ci{put}\verb|(|$x,y$\verb|){|\ci{circle}\verb|{|\emph{halkaisija}\verb|}}|
\end{lscommand}
\noindent piirt�� ympyr�n, jonka keskipiste on $(x,y)$ ja halkaisija (ei siis s�de)
on \emph{halkaisija}. \ei{picture}-ymp�rist�ss� suurin mahdollinen halkaisija on
noin 14\,mm. Kaikki t�t� pienemm�t halkaisijat eiv�t kuitenkaan ole mahdollisia.
Komennolla \ci{circle*} piirret��n t�ytettyj� ympyr�it�.

Aivan kuten suorien viivojen tapauksessa, voi olla tarpeen k�ytt�� lis�makropakkauksia
\pai{eepic} tai \pai{pstricks}. N�m� on kuvattu perinpohjin teoksessa \graphicscompanion.

Mik�li ylim��r�isten laskelmien tekeminen ei pelota, ympyr�it� ja k�yri� voidaan
kasata my�s toisen asteen B�zier-k�yrien avulla.
Esimerkkej� ja Java-l�hdekoodia l�ytyy teoksesta \graphicsinlatex{}.

\subsection{Teksti� ja kaavoja}

\begin{example}
\setlength{\unitlength}{1cm}
\begin{picture}(6,5)
  \thicklines
  \put(1,0.5){\line(2,1){3}}
  \put(4,2){\line(-2,1){2}}
  \put(2,3){\line(-2,-5){1}}
  \put(0.7,0.3){$A$}
  \put(4.05,1.9){$B$}
  \put(1.7,2.95){$C$}
  \put(3.1,2.5){$a$}
  \put(1.3,1.7){$b$}
  \put(2.5,1.05){$c$}
  \put(0.3,4){$F=
    \sqrt{s(s-a)(s-b)(s-c)}$}  
  \put(3.5,0.4){$\displaystyle
    s:=\frac{a+b+c}{2}$}
\end{picture}
\end{example}
Esimerkin mukaisesti teksti� ja kaavoja voidaan kirjoittaa \ei{picture}-ymp�rist�ss�
\ci{put}-komentoa k�ytt�m�ll�.

\subsection{Komennot \ci{multiput} ja \ci{linethickness}}

\begin{example}
\setlength{\unitlength}{2mm}
\begin{picture}(30,20)
  \linethickness{0.075mm}
  \multiput(0,0)(1,0){31}%
    {\line(0,1){20}}
  \multiput(0,0)(0,1){21}%
    {\line(1,0){30}}
  \linethickness{0.15mm}    
  \multiput(0,0)(5,0){7}%
    {\line(0,1){20}}
  \multiput(0,0)(0,5){5}%
    {\line(1,0){30}}
  \linethickness{0.3mm}    
  \multiput(5,0)(10,0){3}%
    {\line(0,1){20}}
  \multiput(0,5)(0,10){2}%
    {\line(1,0){30}}
\end{picture}
\end{example}
Komennolla
\begin{lscommand}
  \ci{multiput}\verb|(|$x,y$\verb|)(|$\Delta x,\Delta y$\verb|){|$n$\verb|}{|\emph{objekti}\verb|}|
\end{lscommand}
\noindent on 4 parametri�: aloituspiste, siirtym�vektori objektista toiseen, objektien
lukum��r� sek� piirrett�v� objekti. Komento \ci{linethickness} vaikuttaa vaaka- ja pystyviivoihin,
muttei vinoviivoihin eik� ympyr�ihin. Se vaikuttaa kuitenkin toisen asteen B�zier-k�yriin!

\subsection{Ovaalit. Komennot \ci{thinlines} ja \ci{thicklines}}

\begin{example}
\setlength{\unitlength}{1cm}
\begin{picture}(6,4)
  \linethickness{0.075mm}
  \multiput(0,0)(1,0){7}%
    {\line(0,1){4}}
  \multiput(0,0)(0,1){5}%
    {\line(1,0){6}}
  \thicklines
  \put(2,3){\oval(3,1.8)} 
  \thinlines
  \put(3,2){\oval(3,1.8)} 
  \thicklines
  \put(2,1){\oval(3,1.8)[tl]} 
  \put(4,1){\oval(3,1.8)[b]} 
  \put(4,3){\oval(3,1.8)[r]} 
  \put(3,1.5){\oval(1.8,0.4)}     
\end{picture}
\end{example}
Komento
\begin{lscommand}
  \ci{put}\verb|(|$x,y$\verb|){|\ci{oval}\verb|(|$w,h$\verb|)}|
\end{lscommand}
\noindent tai
\begin{lscommand}
  \ci{put}\verb|(|$x,y$\verb|){|\ci{oval}\verb|(|$w,h$\verb|)[|\emph{sijainti}\verb|]}|
\end{lscommand}
\noindent piirt�v�t ovaalin, jonka keskipiste on $(x,y)$, leveys $w$ ja korkeus $h$.
Mahdolliset \emph{sijainti}-parametrit \texttt{b}, \texttt{t}, \texttt{l}, \texttt{r}
tarkoittavat vastaavasti ''alhaalla'', ''ylh��ll�'', ''vasemalla'', ''oikealla''
ja niit� voidaan yhdistell� esimerkin mukaisesti.

Viivan paksuuteen voidaan vaikuttaa komennolla:\\
\ci{linethickness}\verb|{|\emph{mitta}\verb|}|
toisaalta my�s komennoilla \ci{thinlines} and \ci{thicklines}.
Vaakaviivoihin (ja toisen asteen B�zier-k�yriin) vaikuttaa \ci{linethickness}\verb|{|\emph{mitta}\verb|}|,
vinoviivoihin sek� ympyr�ihin ja ovaaleihin vaikuttavat \ci{thinlines} ja \ci{thicklines}.

\subsection{Ennalta m��riteltyjen kuvalaatikoiden k�ytt�}

\begin{example}
\setlength{\unitlength}{0.5mm}
\begin{picture}(120,168)
\newsavebox{\laatikkoa}% uusi laatikko
\savebox{\laatikkoa}
  (40,32)[bl]{% m��ritykset 
  \multiput(0,0)(0,28){2}
    {\line(1,0){40}}
  \multiput(0,0)(40,0){2}
    {\line(0,1){28}}
  \put(1,28){\oval(2,2)[tl]}
  \put(1,29){\line(1,0){5}}
  \put(9,29){\oval(6,6)[tl]}
  \put(9,32){\line(1,0){8}}
  \put(17,29){\oval(6,6)[tr]}
  \put(20,29){\line(1,0){19}}
  \put(39,28){\oval(2,2)[tr]}  
}
\newsavebox{\laatikkob}% uusi laatikko
\savebox{\laatikkob}
  (40,32)[l]{%         m��ritykset 
  \put(0,14){\line(1,0){8}}
  \put(8,0){\usebox{\laatikkoa}}
}
\put(34,26){\line(0,1){102}} 
\put(14,128){\usebox{\laatikkoa}}
\multiput(34,86)(0,-37){3}
  {\usebox{\laatikkob}} 
\end{picture}
\end{example}
Kuvalaatikko voidaan \emph{nimet�} komennolla
\begin{lscommand}
  \ci{newsavebox}\verb|{|\emph{nimi}\verb|}|
\end{lscommand}
\noindent sitten sen ominaisuudet \emph{m��ritell��n} 
\begin{lscommand}
  \ci{savebox}\verb|{|\emph{nimi}\verb|}(|\emph{leveys,korkeus}\verb|)[|\emph{sijainti}\verb|]{|\emph{sis�lt�}\verb|}|
\end{lscommand}
\noindent ja lopuksi se voidaan tarvittaessa piirt��
\begin{lscommand}
  \ci{put}\verb|(|$x,y$\verb|)|\ci{usebox}\verb|{|\emph{nimi}\verb|}|
\end{lscommand}

Mahdollinen \emph{sijainti}-parametri m��rittelee kuvalaatikon
origon. Esimerkiss� sill� on arvo \texttt{bl}, joka
sijoittaa origon laatikon vasempaan yl�kulmaan. Muut mahdolliset arvot
ovat \texttt{t} (yl�s) ja \texttt{r} oikealle.

Parametri \emph{name} viittaa {\LaTeX}:n muuttujiin ja siit� johtuen
se muistuttaa komentoa (t�st� syyst� sen edess� on kenoviiva).
Kuvalaatikot voivat olla toistensa sis�ll�: esimerkiss� \ci{laatikkoa}
on osa \ci{laatikkob}-laatikon m��rityksi�.

T�ss� piti k�ytt�� komentoa \ci{oval}, koska \ci{line} ei toimi, mik�li segmentin pituus on
alle 3\,mm.

\subsection{Toisen asteen B�zier-k�yr�t}

\begin{example}
\setlength{\unitlength}{1cm}
\begin{picture}(6,4)
  \linethickness{0.075mm}
  \multiput(0,0)(1,0){7}
    {\line(0,1){4}}
  \multiput(0,0)(0,1){5}
    {\line(1,0){6}}
  \thicklines
  \put(0.5,0.5){\line(1,5){0.5}}    
  \put(1,3){\line(4,1){2}} 
  \qbezier(0.5,0.5)(1,3)(3,3.5)
  \thinlines   
  \put(2.5,2){\line(2,-1){3}}
  \put(5.5,0.5){\line(-1,5){0.5}}
  \linethickness{1mm}
  \qbezier(2.5,2)(5.5,0.5)(5,3)
  \thinlines
  \qbezier(4,2)(4,3)(3,3)
  \qbezier(3,3)(2,3)(2,2)
  \qbezier(2,2)(2,1)(3,1)
  \qbezier(3,1)(4,1)(4,2)
\end{picture}
\end{example}
Esimerkist� selvi��, ett� ympyr�n jakaminen nelj��n toisen asteen B�zier-k�yr��n
ei tuo tyydytt�v�� tulosta. Tarvitaan ainakin kahdeksan. Kuvasta selvi�� lis�ksi
\ci{linethickness}-komennon vaikutus pysty- tai vaakaviivoihin ja komentojen \ci{thinlines}
sek� \ci{thicklines} vaikutus vinoviivoihin. Siit� n�kyy my�s, ett� kummatkin
komentotyypit vaikuttavat toisen asteen B�zier-k�yriin, jokainen seuraava komento
ohittaa vaikutuksiltaan edellisen.

P��tepisteit� kuvatkoon $P_1=(x_1,\,y_1),\,P_2=(x_2,\,y_2)$ ja vastaavasti $m_1,\,m_2$
toisen asteen B�zier-k�yr�n kaarta. N�iden v�liss� oleva kontrollipiste 
$S=(x,\,y)$ seuraa silloin yht�l�ist�
\begin{equation} \label{zwischenpunkt}
  \left\{
    \begin{array}{rcl}
      x & = & \displaystyle \frac{m_2 x_2-m_1x_1-(y_2-y_1)}{m_2-m_1}, \\
      y & = & y_i+m_i(x-x_i)\qquad (i=1,\,2).
    \end{array}
  \right.
\end{equation}
\noindent Teoksessa \graphicsinlatex\ esitet��n Java-ohjelma, joka
luo tarvittavan \ci{qbezier}-komennon.

\subsection{Katenoidik�yr�}

\begin{example}
\setlength{\unitlength}{1.3cm}
\begin{picture}(4.3,3.6)(-2.5,-0.25)
  \put(-2,0){\vector(1,0){4.4}}
  \put(2.45,-.05){$x$}
  \put(0,0){\vector(0,1){3.2}}
  \put(0,3.35){\makebox(0,0){$y$}}
  \qbezier(0.0,0.0)(1.2384,0.0)
    (2.0,2.7622) 
  \qbezier(0.0,0.0)(-1.2384,0.0)
    (-2.0,2.7622)
  \linethickness{.075mm}
  \multiput(-2,0)(1,0){5}
    {\line(0,1){3}}
  \multiput(-2,0)(0,1){4}
    {\line(1,0){4}}
  \linethickness{.2mm}
  \put( .3,.12763){\line(1,0){.4}}
  \put(.5,-.07237){\line(0,1){.4}}
  \put(-.7,.12763){\line(1,0){.4}}
  \put(-.5,-.07237){\line(0,1){.4}}
  \put(.8,.54308){\line(1,0){.4}}
  \put(1,.34308){\line(0,1){.4}}
  \put(-1.2,.54308){\line(1,0){.4}}
  \put(-1,.34308){\line(0,1){.4}}
  \put(1.3,1.35241){\line(1,0){.4}}
  \put(1.5,1.15241){\line(0,1){.4}}
  \put(-1.7,1.35241){\line(1,0){.4}}
  \put(-1.5,1.15241){\line(0,1){.4}}
  \put(-2.5,-0.25){\circle*{0.2}}
\end{picture}
\end{example}

T�ss� kuvassa kumpikin katenoidik�yr�n $y=\cosh x -1$ symmetrinen puolisko esitet��n toisen
asteen B�zier-k�yr�ll�. K�yr�n oikea puoli p��ttyy pisteeseen \((2,\,2.7622)\), miss�
kaarteella on arvo \(m=3.6269\). K�ytt�m�ll� j�lleen yht�l�� (\ref{zwischenpunkt}) voidaan
laskea keskimm�iset kontrollipisteet. Ne n�ytt�v�t olevan $(1.2384,\,0)$ ja $(-1.2384,\,0)$.
Ristit osoittavat \emph{oikean} katenoidik�yr�n pisteit�. Virhett� tuskin huomaa sen ollessa
alle yhden prosentin.

T�m� esimerkki esitt�� \verb|\begin{picture}|-komennon mahdollisen parametrin k�ytt��.
Kuva m��ritell��n tarkoituksenmukaisilla ''matemaattisilla'' koordinaateilla, kun taas
komennolla
\begin{lscommand} 
  \ci{begin}\verb|{picture}(4.3,3.6)(-2.5,-0.25)|
\end{lscommand}
\noindent sen vasempaan alakulmaan (merkitty mustalla pallolla) on
liitetty koordinaatit $(-2.5,-0.25)$. 

\subsection{Nopeus suhteellisuusteoriassa}

\begin{example}
\setlength{\unitlength}{1cm}
\begin{picture}(6,4)(-3,-2)
  \put(-2.5,0){\vector(1,0){5}}
  \put(2.7,-0.1){$\chi$}
  \put(0,-1.5){\vector(0,1){3}}
  \multiput(-2.5,1)(0.4,0){13}
    {\line(1,0){0.2}}
  \multiput(-2.5,-1)(0.4,0){13}
    {\line(1,0){0.2}}
  \put(0.2,1.4)
    {$\beta=v/c=\tanh\chi$}
  \qbezier(0,0)(0.8853,0.8853)
    (2,0.9640)
  \qbezier(0,0)(-0.8853,-0.8853)
    (-2,-0.9640)
  \put(-3,-2){\circle*{0.2}}
\end{picture}
\end{example}
N�iden kahden B�zier-k�yr�n kiintopisteet laskettiin kaavalla (\ref{zwischenpunkt}).
Positiivisen haaran m��rittelee $P_1=(0,\,0),\,m_1=1$ ja $P_2=(2,\,\tanh 2),\,m_2=1/\cosh^2 2$.
Kuva on j�lleen m��ritelty matemaattisesti sopivin koordinaatein ja vasempaan alakulmaan
sijoittuvat matemaattiset koordinaatit $(-3,-2)$ (musta ympyr�).

\section{\texorpdfstring{\Xy}{Xy}-pic}
\secby{Alberto Manuel Brand\~ao Sim\~oes}{albie@alfarrabio.di.uminho.pt}
\pai{xy} sis�lt�� erityismakroja kaavioiden piirt�miseen.
Sen k�ytt�miseksi riitt�� seuraavan rivin lis��minen dokumentin m��rittelyosaan:
\begin{lscommand}
\verb|\usepackage[|\emph{optiot}\verb|]{xy}|
\end{lscommand}
\emph{optiot} ovat lista \Xy-picin funktioita, jotka halutaan ladata k�ytt��n.
N�it� optioita k�ytet��n l�henn� makrojen virheit� etsitt�ess�. Suosittelen
k�ytt�m��n optiota \verb!all!, joka saa {\LaTeX}:n lataamaan kaikki {\Xy}:n komennot.

\Xy-kaaviot piirret��n matriisiin, jossa kaavion jokainen elementti
on sijoitettu johonkin matriisin kohtaan:
\begin{example}
\begin{displaymath}
\xymatrix{A & B \\
          C & D }
\end{displaymath}
\end{example}
Komentoa \ci{xymatrix} t�ytyy k�ytt�� matematiikkatilassa. T�ss�
m��ritell��n kaksi viivaa ja kaksi saraketta. Jotta matriisista
saadaan kaavio, siihen lis�t��n nuolia \ci{ar}-komentoa k�ytt�m�ll�.

\begin{example}
\begin{displaymath}
\xymatrix{ A \ar[r] & B \ar[d] \\
           D \ar[u] & C \ar[l] }
\end{displaymath}
\end{example}
Nuolikomento sijoitetaan nuolen alkupisteeseen. Parametrit kertovat
nuolen suunnan (\texttt{u} yl�s, \texttt{d} alas, \texttt{r} oikealle ja
\texttt{l} vasemmalle).

\begin{example}
\begin{displaymath}
\xymatrix{
  A \ar[d] \ar[dr] \ar[r] & B \\
  D                       & C }
\end{displaymath}
\end{example}
Vinoviivojen tekemiseen k�ytet��n yht� useampaa suuntaa.
Suuntaparametreja voi itseasiassa toistaa suurempien nuolten
tekemiseksi.
\begin{example}
\begin{displaymath}
\xymatrix{
  A \ar[d] \ar[dr] \ar[drr] & & \\
  B                      & C & D }
\end{displaymath}
\end{example}

Kaavioista saadaan viel� mielenkiintoisempia lis��m�ll�
nuoliin tunnisteita. Niiden tekemiseen k�ytet��n yleisi�
yl�- ja alaindeksioperaattoreita.
\begin{example}
\begin{displaymath}
\xymatrix{
  A \ar[r]^f \ar[d]_g &
             B \ar[d]^{g'} \\
  D \ar[r]_{f'}       & C }
\end{displaymath}
\end{example}

N�it� operaattoreita k�ytet��n kuten normaalisti matematiikkatilassa.
Ainoa ero on merkityksess�: yl�indeksi tarkoittaa ''nuolen p��ll�''
ja alaindeksi tarkoittaa ''nuolen alla''. On my�s olemassa kolmas operaattori:
pystyviiva (\verb+|+). Se sijoittaa tekstin \emph{keskelle} nuolta.

\begin{example}
\begin{displaymath}
\xymatrix{
  A \ar[r]|f \ar[d]|g &
             B \ar[d]|{g'} \\
  D \ar[r]|{f'}       & C }
\end{displaymath}
\end{example}

Nuoli, jossa on reik�, piirret��n \verb!\ar[...]|\hole!.

Joissain tilanteissa on t�rke�� erottaa erityyppiset nuolet toisistaan.
Se voidaan tehd� panemalla niihin tunnisteita tai muuttamalla niiden
ulkoasua:

\begin{example}
\shorthandoff{"}
\begin{displaymath}
\xymatrix{
 \bullet\ar@{->}[rr] && \bullet\\
 \bullet\ar@{.<}[rr] && \bullet\\
 \bullet\ar@{~)}[rr] && \bullet\\
 \bullet\ar@{=(}[rr] && \bullet\\
 \bullet\ar@{~/}[rr]  && \bullet\\
 \bullet\ar@{^{(}->}[rr]  && \bullet\\
 \bullet\ar@2{->}[rr]  && \bullet\\
 \bullet\ar@3{->}[rr]  && \bullet\\
 \bullet\ar@{=+}[rr]   && \bullet
}
\end{displaymath}
\shorthandon{"}
\end{example}

Huomaa ero kahden seuraavan kaavion v�lill�:

\begin{example}
\begin{displaymath}
\xymatrix{
 \bullet \ar[r] 
         \ar@{.>}[r] & 
 \bullet
}
\end{displaymath}
\end{example}

\begin{example}
\begin{displaymath}
\xymatrix{
 \bullet \ar@/^/[r] 
         \ar@/_/@{.>}[r] &
 \bullet
}
\end{displaymath}
\end{example}

Kauttaviivojen v�liss� olevat modifikaattorit m��rittelev�t
miten k�yr�t piirret��n. \Xy-pic tarjoaa useita tapoja
k�yrien piirt�miseksi. Lis�tietoja saa \Xy-picin k�ytt�ohjeista.

% \begin{example}
% \begin{lscommand}
% \ci{dum}
% \end{lscommand}
% \end{example}

