Ich wollte an die Grafik noch ein Untertitel hinzufügen, sowas wie: "Figur 1: Zahlenstrahl". Googeln ergab, dass ich mit "caption" arbeiten sollte. Wenn ich aber an den Code

\centering
\caption{M1} \label{fig:M1}

anfüge, spuckt er mir einen Fehler aus:

 \documentclass{article}
 \usepackage{tikz}
 \usetikzlibrary{decorations.pathreplacing}
 \begin{document}
 \begin{tikzpicture}[decoration=brace]
   % Die Grundlinie:
   \draw(0,0)--(12,0);
   % Striche und Beschriftung in Abständen 0, 2, 4, 6, ...
   \foreach \x/\xtext in {0/0,2/$n_1$,4/$n_2$,6/$n_3$,8/$n_4$,10/$n_5$,12/$n_6$}
     \draw(\x,5pt)--(\x,-5pt) node[below] {\xtext};
  % obere geschweifte Klammer mit Text darüber:
  \draw[decorate, yshift=2ex]  (0,0) -- node[above=0.4ex] {Text oberhalb}  (2,0);
  % untere geschweifte Klammer mit Text darunter:
  \draw[decorate, yshift=-4ex] (2,0) -- node[below=0.4ex] {Text unterhalb} (0,0);
  % z.B. untere geschweifte Klammer unter dem 3. Intervall:
  \draw[decorate, yshift=-4ex] (6,0) -- node[below=0.4ex] {3. Intervall} (4,0);
  % Schleife für die kleinen Striche in Abstand, 10 pro Intervall
  \foreach \x in {0.1,0.2,...,2}  \draw (\x,0) -- (\x,-3pt);
  % noch so ein paar Striche in weiterem Intervall:
  \foreach \x in {8.1,8.2,...,10} \draw (\x,0) -- (\x,-3pt);
  \foreach \x in {4.1,4.2,...,6} \draw (\x,0) -- (\x,-3pt);
  \centering
  \caption{M1} \label{fig:M1}
\end{tikzpicture}
\end{document}

gefragt 09 Jul '13, 19:21

Kuf-plus-x's gravatar image

Kuf-plus-x
39224
Akzeptiert-Rate: 0%

bearbeitet 13 Aug '13, 20:10

cgnieder's gravatar image

cgnieder
22.1k253463


Eine TikZ-Grafik sieht zunächst keine eigene Beschriftung vor. Dafür nimmt man eine Umgebung von Standard-LaTeX und packt die Grafik hinein - TikZ erfindet das Rad hier nicht neu, man nimmt das vorhandene.

Dann kann es mit einer figure-Umgebung beispielsweise so aussehen:

\begin{figure}
  \centering
  \begin{tikzpicture}
    % hier kommt die Grafik
  \end{tikzpicture}
  \caption{M1}
  \label{fig:M1}
\end{figure}

Wie in LaTeX üblich, wird die Grafik samt Beschriftung dann an einem geeigneten Platz ausgegeben, so dass der Seitenumbruch und die Platzierung geeignet ist. Weiterhin kann wie gewohnt mit \ref darauf Bezug genommen werden und ein Eintrag ins Abbildungsverzeichnis passieren.

Es geht auch ohne figure, insbesondere wenn man mit der automatischen Platzierung von LaTeX nicht klarkommt (man kann sie jedoch einstellen), oder wenn der Ort wirklich direkt im Text genau an einer Stelle sein muss. Dafür bietet das caption-Paket Möglichkeiten. Dieses Erweiterungs-Paket ist generell sehr empfehlenswert zum Feintunen von Beschriftungen, auch wenn man figure verwendet.

Permanenter link

beantwortet 09 Jul '13, 20:24

stefan's gravatar image

stefan ♦♦
18.3k163148
Akzeptiert-Rate: 49%

bearbeitet 09 Jul '13, 20:28

Ergänzend zu Stefans Antwort sei hier die Möglichkeit, einer Bildunterschrift ohne Gleitumgebung, also ohne figure-Umgebung gezeigt:

\begin{center}
  \begin{minipage}{\linewidth}
    \centering
    \begin{tikzpicture}
    % hier kommt die Grafik
    \end{tikzpicture}
    \captionof{figure}{M1}
    \label{fig:M1}
  \end{minipage}
\end{center}

Dabei dient die äußere center-Umgebung in erster Linie dazu, die minipage-Umgebung mit der Abildung und der Bildunterschrift ein wenig vom Text abzusetzen und gleichzeitig den Absatzeinzug für die minipage-Umgebung zu verhindern. Dasselbe könnte man auch mit einer flushleft- oder flushright-Umgebung erreichen. Die minipage-Umgebung ihrerseits verhindert, dass zwischen Abbildung und Bildunterschrift ein Seitenumbruch erfolgen kann. Darüber hinaus ist sie nützlich, falls man Fußnoten in der Abbildung oder der Bildunterschrift verwenden möchte. Die \label-Anweisung, die hier unbedingt nach \captionof stehen muss – so wie \label in einer Gleitumgebung nach \caption stehen muss –, dient dazu, die Abbildung mit \ref und \pageref referenzierbar zu machen.

Damit das ganze überhaupt funktioniert, muss man eine der generell empfehlenswerten KOMA-Script-Klassen oder das Paket caption verwenden. Dieses Paket bietet insbesondere für die Standardklassen viele nützliche Erweiterungen. Es kann auch mit anderen Klassen und auch mit den bereits genannten KOMA-Script-Klassen verwendet werden. Allerdings bieten die KOMA-Script-Klassen die meisten Einstellmöglichkeiten von caption bereits über eigene Schnittstellen. Darüber hinaus bieten die KOMA-Script-Klassen mit captionbeside bzw. captionofbeside Umgebungen, um die Beschriftung neben statt unter der Abbildung durchzuführen.

Will man weder das Paket caption noch eine KOMA-Script-Klasse verwenden, so kann man \captionof auch über das Paket capt-of nachrüsten. Dieses sollte aber nicht zusammen mit caption oder KOMA-Script verwendet werden.

In der Regel sind Gleitumgebungen den in dieser Antwort fest platzierten Abbildungen vorzuziehen. Fest platzierte Abbildungen haben nämlich einige Nachteile:

  • Sie stören den Lesefluss. In der Regel liest man Abbildungen nicht mit, sondern betrachtet sie konsultierend, also nur manchmal, wenn auf sie verwiesen wird und auch nicht immer sofort, wenn auf sie verwiesen wird. Daher ist es sehr ungünstig, wenn sie mitten im Absatz stehen, und in der Regel auch eher ungünstig, wenn sie zwischen den Absätzen einer Seite stehen.

  • Sie reißen Löcher. Passt eine fest platzierte Abbildung nicht mehr komplett auf die Seite, so bleibt TeX nur die Wahl, die Seite mit Leerraum aufzufüllen und die Abbildung auf die nächste Seite zu schieben. Je nachdem, ob man mit vertikalem Ausgleich der Seite arbeitet (Stichworte: doppelseitiger Satz und \flushbottom) oder nicht, wird der zusätzliche Leerraum dabei auf die übrigen vertikalen Abstände der Seite verteilt oder am Seitenende eingefügt. Beides ist nicht gerade ideal, erstes meist ausgesprochen ungünstig.

  • Stehen sie mit sehr wenig Text zusammen auf einer Seite, so wird dieser wenige Text leicht übersehen. Die Wahrscheinlichkeit dafür wird durch die vorherigen Punkte sogar noch verstärkt.

Bei Gleitumgebungen besteht hingegen die Möglichkeit, sie automatisch nur am Anfang oder Ende der Seite oder ersatzweise auf einer eigenen Seite zu platzieren. In der Regel ist das die Voreinstellung. Eine Platzierung zwischen den Absätzen oder zwischen den Zeilen eines Absatzes ist ebenfalls möglich, aber weniger empfehlenswert. Darüber hinaus kann ihre Häufung und auch die Mindestmenge an Text, die mit ihnen zusammen gesetzt wird, gesteuert werden. Näheres zu diesen Möglichkeiten kann meiner Antwort zur Ausrichtung und Verteilung von Abbildungen (und Tabellen) entnommen werden.

Die von \caption und \captionof verwendete Standardbezeichnung von Abbildungen lautet auf Deutsch übrigens Abbildung. Will man diese in Figur ändern, so geht dies bei den KOMA-Script-Klassen oder bei Verwendung des KOMA-Script-Pakets scrbase mit einer anderen Klasse mit

\AtBeginDocument{%
  \renewcaptionname{ngerman}\figurename{Figur}%
}

in der Dokumentpräambel unabhängig davon, ob man für die Sprachumschaltung selbst babel, polyglossia oder das veraltete und nicht mehr empfehlenswerte ngerman verwendet. Verwendet man kein KOMA-Script, so ist bei Verwendung von babel

\addto\captionsngerman{%
  \def\figurename{Figure}%
}

nach dem Laden von babel in die Dokumentpräambel einzufügen. Bei Verwendung von polyglossia ist die Übersetzung wird in der zugehörigen Anleitung hingegen die Verwendung von etoolbox empfohlen. Dazu ersetzt man in obigem Code-Ausschnitt nach dem Laden von etoolbox die Anweisung \addto durch \gappto

Alternativ bieten sowohl die KOMA-Script-Klassen bzw. das KOMA-Script-Paket tocbasic als auch das Paket caption Möglichkeiten, eine eigene Umgebung zu definieren. Dabei sind auch nicht gleitende Umgebungen möglich, innerhalb derer \caption verwendet werden kann. Um diese Antwort nichts endlos ausufern zu lassen, sei an dieser Stelle lediglich auf die Anleitungen der genannten Pakete verwiesen.

Permanenter link

beantwortet 10 Jul '13, 06:57

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 10 Jul '13, 08:47

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×731
×50
×40
×39

gestellte Frage: 09 Jul '13, 19:21

Frage wurde gesehen: 43,807 Mal

zuletzt geändert: 13 Aug '13, 20:10