Die picture-Umgebung

Einleitung

Über die picture-Umgebung wurde in LaTeX die Möglichkeit geschaffen, einfache Bilder direkt zu erstellen. Die Möglichkeiten dieser Graphikumgebung sind sehr begrenzt, jedoch für viele einfache Abbildungen ist sie vollkommen ausreichend. Dabei werden die einzelnen Elemente der Abbildungen über Kommandos gesetzt.

Der größte Vorteil ist die Angabe aller Elemente über relative Positionsangaben und Maßeinheiten, wobei der Faktor für die Maßeinheit zentral oder für jede Abbildung einzelnd gesetzt werden kann. Hiermit hat man die Möglichkeit, Graphiken im nachhinein einfach über Änderung des Faktors zu skalieren.

Koordinatensystem

Um die Graphikelemente zu positionieren, wird ein Koordinatensystem verwendet - mit einer waagerechten x-Achse und einer senkrechten y-Achse. Der Bezugspunkt ist der Schnittpunkt dieser beiden Achsen, also der Punkt (0,0). Über dieses Koordinatensystem können alle Graphikelemente eindeutig positioniert werden.

Die angebenen werden können auch als Dezimalzahl geschrieben werden - mit einem Punkt als Dezimaltrennzeichen, also in der angloamerikanischen Schreibweise.

Längeneinheit

Für die Koordinaten muß noch eine Längeneinheit definiert werden. Diese Längeneinheit wird über eine Längenerklärung der Form

\setlength{\unitlength}{Maßangabe}

Die Maßangabe kann in den TeX-üblichen Maßangaben durchgeführt werden, z.B. in cm, mm, pt… Diese Angabe kann im LaTeX-Dokument irgendwo stehen und gilt ab diesem Punkt bis sie überschrieben wird. Somit besteht die Möglichkeit, diese zentral zu setzen (z.B. in der Preämbel) und ggf. für einzelne Abbildungen zu modifizieren.

Definition der picture-Umgebung

Die Abbildungen werden innerhalb der Umgebung

picture-Umgebung

\begin{picture}(x_dimen,y_dimen)
  bildbefehle
\end{picture}
erzeugt. Die Größe wird über das Zahlenpaar (x_dimen,y_dimen) festgelegt - in der gültigen Längeneinheit. Dieser Platz wird von LaTeX für die Abbildung reserviert. Innerhalb der picture-Umgebung sind als bildbefehle nur die Befehle für die Zeichnung von Graphikelementen (s.u.), Schriftstil- und -größenbefehle sowie Angaben über die dicke der Linien vorkommen (s.u.).

Positionierung

Für die Positionierung von Graphikelementen innerhalb der picture-Umgebung stehen die beiden Befehle

\put(x_coord,y_coord){graphikelement}

und

\multiput(x_coord,y_coord)(x_incr,y_incr){num}{graphikelement}

zur Verfügung. Über den \put-Befehl wird das angegebene Graphikelement an die Koordinaten (x_coord,y_coord) gesetzt. Der \multiput-Befehl eignet sich besonders für den Satz von mehreren Elementen des angegebenen Graphikelements an verschiedenen Positionen. Dabei wird das Graphikelement zuerst an (x_coord,y_coord) gesetzt und anschließend die Koordinatenposition um (x_incr,y_incr) geändert und das Graphikelement wiederum gesetzt. Dies erfolgt num mal. Als Verwänderungswerte können sowohl positive wie auch negative Werte verwendet werden.

Graphikelemente

Als Graphikelemente stehen zur Verfügung:

  • Text
    • normaler Text
    • \shortstack[pos]{sp} vertikal aufgestockter Text
    • \makebox(x_dim,y_dim)[pos]{text}: Box ohne Rahmen, wird häufig für die Positionierung von Text verwendet
    • \framebox(x_dim,y_dim)[pos]{text}: Box mit durchgehenden Rahmen
    • \dashbox{d_dim}(x_dim,y_dim)[pos]{text}: Box mit gestricheltem Rahmen
    • \line(dx,dy){länge}: gerade Linien
    • \vector(dx,dy){länge}: gerade Pfeile
    • \circle{durchmesser}: Kreis
    • \circle*{durchmesser}: gefüllter Kreis
    • \oval(x_dim,y_dim)[teil]: Oval oder Teilovale
    • \qbezier[num](xa,ya)(xb,yb)(xc,yc)
  • weiteres
    • \fbox: Rahmen, die an den Text angepaßt sind
    • Strichstärken
      • \thicklines: dicke Strichstärke
      • \thinlines: dünne Strichstärke

Bildboxen

Für Bildboxen existieren drei verschiedene Varianten:

  • \makebox(x_dim,y_dim)[pos]{text}: Box ohne Rahmen, wird häufig für die Positionierung von Text verwendet
  • \framebox(x_dim,y_dim)[pos]{text}: Box mit durchgehenden Rahmen
  • \dashbox{d_dim}(x_dim,y_dim)[pos]{text}: Box mit gestricheltem Rahmen

Über x_dim und y_dim wird die Größe der Box definiert, der optionale Positionierungsparameter pos legt die Ausrichtung des eingetragenen Textes fest. Hier sind folgende Positionierungsparameter möglich:

  • [t]: der Text wird unterhalb des oberen Kastenrandes horizontal zentriert
  • [b]: der Text wird oberhalb des unteren Kastenrandes horizontal zentriert
  • [l]: der Text beginnt am linken Kastenrand und wird vertikal zentriert
  • [r]: der Text endet am rechten Kastenrand und wird vertikal zentriert
  • [s]: der Text wird auf die Breite der Box verteilt und vertikal zentriert
  • ohne: wird der optionale Positionierungsparameter nicht angegeben, so wird der Text horizontal und vertikal in der Box zentriert

Die Positionierungsparameter können auch zu [tl], [tr], [bl] und [br] kombiniert werden.

Bezugspunkt für die Positionierung der Box über den \put oder \multiput-Befehl ist die linke, untere Ecke der Box.

Gestrichelte Box

Die gestrichelte Box (\dashbox) enthält einen zusätzlichen Parameter {d_dim}, der die Strichelungslänge spezifiziert. Am besten sehen gestrichelte Boxen aus, wenn die Strichelungslänge ein ganzzahliger Teiler der Höhe und Breiter der Box ist.

Linien

Gerade Linien

Linien können beliebig lang in horizontaler und vertikaler Richtung definiert werden, bei den Steigungen stehen nur eine begrenzte Anzahl an Steigungen zur Verfügung. Eine Linie wird in der picture-Umgebung über

\line(dx,dy){länge}

spezifiziert. Dabei spezifiziert das Zahlenpaar (dx,dy) die Neigung der Linie. Bei waagerechten und senkrechten Linien entspricht die angegebene länge die Länge der Linie in der eingestellten Längeneinheit. Horizontale Linien erhält man über das Neigungszahlenpaar (1,0), senkrechte über (0,1).

Allgemein hat das Neigungszahlenpaar (dx,dy) die Bedeutung, das nach Abschreiten von dx in der horizontalen Richtung (x-Achse), man dy in der vertikalen Richtung abschreiten muß, um wieder auf die Linie zu kommen. Hierdurch erhält man zwei Punkte (x,y) und (x+dx,y+dy), durch den die Line gehen muß. Für die Neigungszahlenpaare gibt es einige Voraussetzungen, da nicht alle Zahlenkombinationen erlaubt sind:

  • Zahlenpaare müssen ganzzahlig sein;
  • Für die Zahlenpaare stehen nur die Werte 0,1,…,6 zur Verfügung und die negativen Werte derselben;
  • Die Zahlenpaare dürfen keinen gemeinsamen Teiler enthalten.

Somit gibt es 25 Zahlenpaare (ohne Berücksichtigung des Vorzeichens) für die Neigungsangabe.

Die Längenangabe bei geneigten Linien bezieht sich dabei auf die Länge, die auf der x-Achse verändert wird. Für die Längen von geneigten Linien besteht eine Mindestlänge, die bei etwa 10pt (bzw. 3.6mm) liegt - Linien mit kleinerer Länge werden nicht gezeichnet.

Gerade Pfeile

Pfeile werden über

\vector(dx,dy){länge}

erzeugt und besitzen die selben Einschränkungen wie Gerade Linien. Einzig für die Zahlenpaare stehen nur die Werte 0,1,..,4 zur Verfügung sowie die negativen Werte derselben. Der Pfeil beginnt dabei an der über \put bzw. \multiput spezifizierten Stelle, die Pfeilspitze ist am anderen Ende der Linie.

Kreise

Kreise werden mit den Befehlen \circle{durchmesser} respektive \circle*{durchmesser} erstellt. Die Positionierung über den \put-Befehl bezieht sich dabei auf den Kreismittelpunkt. Die *-Form erzeugt dabei einen gefüllten Kreis in der aktuellen Druckerfarbe. Für die Kreise gibt es Einschränkungen bezüglich der Größe. Kreise stehen dabei für Durchmesser von 1pt bis 16pt in den Abstufungen von 1pt sowie von 20pt bis 40pt in den Abstufungen von 4pt zur Verfügung. Gefüllte Kreise sind nur für die Durchmesser 1pt bis 15pt in den Abstufungen von 1pt verfügbar.

Beispiel:

\setlength{\unitlength}{1cm}
\begin{picture}(4,2)
   \put(1,1){\circle{0.5}}
   \put(3,1){\circle*{0.5}}
\end{picture}
Beispiel \circle

Ovale

Ein Oval bedeutet in der picture-Umgebung ein Rechteck mit abgerundeten Ecken. D.h. die Ecken sind durch Kreisviertel ersetzt und für die Kreisviertel werden die größtmöglichen Kreisradien verwendet. Das Kommando hierfür lautet

\oval(x_dim,y_dim)[teil]

Der Positionierungsbefehl bezieht sich beim Oval auf den Mittelpunkt desselben.

Der optionale Parameter teil spezifiziert, welcher Teil des Ovals nur gezeichnet werden soll und bietet die Möglichkeit, Halbovale zu erzeugen. Für diesen Parameter stehen die Werte

  • t für das obere Halboval
  • b für das untere Halboval
  • l für das linke Halboval
  • r für das rechte Halboval

zur Verfügung. Durch Kombination der optionalen Parameter können Viertelovale erzeugt werden.

Bei Halbovalen beziehen sich Breiten- und Höhenangaben immer auf das Ganzoval, ebenso der Positionierungsbefehl.

Beispiele

Komplettes Oval
\begin{picture}(5.5,2.5)
  \put(3.0,0.75){\oval(4.0,1.5)}
\end{picture}
Beispiel \oval
Untere Hälfte
\begin{picture}(5.5,2.5)
  \put(3.0,0.75){\oval(4.0,1.5)[b]}
\end{picture}
Beispiel \oval[b]
Obere Hälfte
\begin{picture}(5.5,2.5)
  \put(3.0,0.75){\oval(4.0,1.5)[t]}
\end{picture}
Beispiel \oval[t]
Linke Hälfte
\begin{picture}(5.5,2.5)
  \put(3.0,0.75){\oval(4.0,1.5)[l]}
\end{picture}
Beispiel \oval[l]
Rechte Hälfte
\begin{picture}(5.5,2.5)
  \put(3.0,0.75){\oval(4.0,1.5)[r]}
\end{picture}
Beispiel \oval[r]
Linke untere Hälfte
Rechte obere Hälfte
\begin{picture}(5.5,2.5)
  \put(3.0,0.75){\oval(4.0,1.5)[bl]}
  \put(3.0,0.75){\oval(4.0,1.5)[tr]}
\end{picture}
Beispiel \oval[lb] und \oval[rt]

Bezier-Kurven

Die picture-Umgebung unterstützt quadratische Bezier-Kurven. Die Syntax hierfür ist:

\qbezier[num](xa,ya)(xb,yb)(xc,yc)

Hierbei wird eine Kurve zwischen den anzugebenden Punkten A = (xa,ya) und C = (xc,yc) gezeichnet. Der Punkt B = (xb,yb) ist ein Kontrollpunkt, der die Krümmung der Kurve angibt, indem er die Tangente für die Gerade (AB) und (BC) vorgibt. Der Parameter num gibt die Anzahl der Punkte an, die entlang der Kurve ausgegeben werden. Wird hier kein Wert angegeben, so wird eine durchgezogene Linie gezeichnet, bei einer Angabe, werden num + 1 Punkte entlang der Linie ausgegeben. Die Dicke der Kurvenpunkte kann über

\linethickness{strichdicke}
spezifiziert werden, wobei strichdicke eine Maßangabe (Zahl mit Maßeinheit) ist.

Je nach Wahl der drei Punkte können mit \qbezier auch Kreise angehähert werden (hierfür würde man 4 \qbezier-Kurven benötigen) oder auch Linien mit beliebiger Steigung (im Gegensatz zum \line-Kommando). Dies wird jedoch mit einem höheren Rechenaufwand erkauft.

informatik/latex/picture_umgebung.txt · Zuletzt geändert: 14.11.2010 10:48 (Externe Bearbeitung)
Recent changes RSS feed Kontakt GPG-Schlüssel Get Firefox Driven by DokuWiki Valid CSS Valid XHTML 1.0