# LaTeX/TeX figuren
## Inleiding

Er zijn heel wat pakketten die je toelaten afbeeldingen in te typen in platte code. Hieronder staat een voorbeeldje van wat we bedoelen:
* \setlength{\unitlength}{0.75mm}
* \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}
Het spreekt echter voor zich dat het uitdenken van de coördinaten heel wat werk vraagt, vooral omdat men het iedere keer moet compileren om visuele feedback te krijgen. Je zou je dan kunnen afvragen hoe je dit wel kunt gebruiken. Het antwoord is simpel: alles wat als code kan geschreven worden kan geautomatiseerd worden. Je kunt dus zelf een programma schrijven in gelijk welke programmeertaal. Als dat programma een simpel tekstbestand kan uitvoeren zoals dat hierboven en daarna LaTeX kan aanroepen, heb je met dat programma een afbeelding gemaakt. Omdat zulke technieken echter buiten het bereik van deze cursus liggen gaan we enkel een paar pakketten of omgevingen bespreken die een dergelijk tekenwerk kunnen uitvoeren en zullen we ook programma's bespreken die platte code kunnen opslaan.

## De bekendste omgevingen
### De picture-omgeving

De picture-omgeving heeft geen pakket nodig om gebruikt te worden. Het werkt dus zonder problemen met LaTeX en pdfLaTeX. Als je meer wilt leren over deze omgeving, om een programma te schrijven dat TeX-code als output heeft of om toch zelf figuren te maken, dan raad ik je aan je tot Engelstalige teksten te wenden. Hieronder staat een link, ook op de Engelstalige pagina kun je informatie vinden:
http://www.ursoswald.ch/LaTeXGraphics/picture/picture.html

### TikZ/PGF

Je kunt afbeeldingen die geschreven zijn in het oude (maar nog steeds werkende) TeX-formaat ook invoeren via het tikz-pakket. Importeer dit pakket met de code
Een voorbeeld van zo'n tikz-figuur kan er als volgt uit zien:
* \begin{tikzpicture}
* \draw[thick,rounded corners=8pt]
* (0,0) -- (0,2) -- (1,3.25) -- (2,2) -- (2,0) -- (0,2) -- (2,2) -- (0,0) -- (2,0);
* \end{tikzpicture}
Enkele links:
* Documentatie: http://ftp.dante.de/tex-archive/help/Catalogue/entries/pgf.html
* Voorbeelden: http://www.texample.net/tikz/
* Extra uitbreidingen: http://ftp.dante.de/tex-archive/help/Catalogue/bytopic.html#pgftikzsection

### XY-pic

Het xy-pakket is heel goed om eenvoudige schema's te maken.
XY-pic-diagrammen worden gemaakt in een soort matrixvorm. We geven eerst een eenvoudig voorbeeld:
* \begin{displaymath}
* \xymatrix{A & B \\
* C & D }
* \end{displaymath}
Het \xymatrix moet gebruikt worden in wiskunde-modus. Als we van deze matrix een diagram willen maken moeten we enkel het \ar-commando gebruiken.
* \begin{displaymath}
* \xymatrix{ A \ar[r] & B \ar[d] \\
* D \ar[u] & C \ar[l] }
* \end{displaymath}
De oorsprong van de pijl is de cel waarin hij staat, als argument geef je de richting mee: r, l, d of u.
* \begin{displaymath}
* \xymatrix{
* A \ar[d] \ar[dr] \ar[r] & B \\
* D & C }
* \end{displaymath}
De verschillende richtingen worden opgeteld dus kun je dit zowel voor diagonalen gebruiken als voor langere pijlen.
* \begin{displaymath}
* \xymatrix{
* A \ar[d] \ar[dr] \ar[drr] & & \\
* B & C & D }
* \end{displaymath}
Om labels aan de pijlen toe te voegen gebruik je de superscript- en subscript-commando's die je al kent vanuit de wiskunde-modus.
* \begin{displaymath}
* \xymatrix{
* A \ar[r]^f \ar[d]_g & B \ar[d]^{g’} \\
* D \ar[r]_{f’} & C }
* \end{displaymath}
Naast de superscript- en subscript-operatoren is er ook nog een derde: de rechte streep ( | ) die wordt gebruikt om tekst in een pijl te zetten.
* \begin{displaymath}
* \xymatrix{
* A \ar[r]|f \ar[d]|g & B \ar[d]|{g’} \\
* D \ar[r]|{f’} & C }
* \end{displaymath}
Om van soort pijl te veranderen gebruik je een @{type pijl}-commando zoals hier onder weergegeven:
* \shorthandoff{"}
* \begin{displaymath}
* \xymatrix{
* % bolletje type pijl bolletje
* \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{"}
Als je een meer volledige uitleg wil, lees de XY-pic gebruikers gids.

## Programma's die TeX-code kunnen geven

We bespreken ook enkele programma's die TeX-code kunnen geven als uitvoer maar waarmee je kunt werken als een gewoon grafisch programma.

### Dia

De naam van het programma spreekt voor zich, Dia wordt gebruikt om diagrammen te maken. Dia is een openbron programma waarmee je gemakkelijk alle soorten diagrammen kan tekenen, gaande van elektrische schema's tot UML. Het is een licht programma, ideaal voor iedereen die niet constant bezig is met diagrammen tekenen. Voor mensen die er wel constant mee bezig zijn, zijn er ongetwijfeld professionelere oplossingen.
De diagrammen van Dia kunnen geëxporteerd worden naar Tikz/PGF formaat. Het eenvoudigste is om het diagram in een apart bestand op te slaan en te laden in je document met het \include commando. Let wel op dat je de juiste pakketten geladen hebt.

### GeoGebra

GeoGebra is een meetkundig/algebraïsch programma. Het heeft heel geavanceerde mogelijkheden om meetkundige figuren te maken. Niet enkel vierkanten en cirkels maar ook functies kunnen zonder problemen ingevoegd worden. De code kan opnieuw uitgevoerd worden naar Tikz/PGF formaat maar deze keer creëert het programma een volledig document (met hoofding). Je kunt het dus niet zomaar in je document voegen met een \include-commando. Het eenvoudigste hier is om de code tussen \begin{document} en \end{document} te kopiëren in je eigen document en te zorgen dat dezelfde pakketten geladen zijn in jouw document als in het document dat door GeoGebra is aangemaakt.