Hallo, ich habe eine Frage zu TikZ und wollte von euch wissen, ob meine Wunschvorstellung überhaupt geht. Ich habe hier ein simples Code-Beispiel und möchte wissen, ob es möglich ist, dass ein längerer Text über einer (hier orangefarbenen) Linie mit der Krümmung mitgehen kann. Also nicht wie hier an der Tangente im Mittelpunkt der orangefarbenen Linie entlang läuft, sondern sich ebenfalls gleich krümmt. Open in Online-Editor
\documentclass[12pt,a4paper]{scrartcl} \usepackage[latin1]{inputenc} \usepackage[ngerman, english]{babel} \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{makeidx} \usepackage{graphicx} \usepackage{tikz} \usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry} \author{XXX} \begin{document} \begin{tikzpicture} \path (0,0) node(x) {Hello World!} (3,1) node[circle,draw](y) {$\int_1^2 x \mathrm d x$}; \draw[->,blue] (x) -- (y); \draw[->,red] (x) -| node[near start,below] {label} (y); \draw[->,orange] (x) .. controls +(up:1cm) and +(left:1cm) .. node[above,sloped] {Hier steht langer Text} (y); \end{tikzpicture} \begin{tikzpicture} \path (0,0) node[circle,draw](x) {A} (3,2) node[circle,draw](y) {B}; \draw [->,orange] (x) .. controls +(up:1cm) and +(left:1cm) .. node[above,sloped] {Hier steht langer Text} (y); \draw [->,orange] (y) .. controls +(down:1cm) and +(right:1cm) .. node[below,sloped] {Hier steht auch ein langer Text} (x); \end{tikzpicture} \end{document} |
Die Frage wurde aus folgenden Grund "Duplikat von http://texwelt.de/wissen/fragen/13364" geschlossen Henri 26 Apr '16, 09:03
Das, was du möchtest funktioniert mit Open in Online-Editor
\draw[postaction=decorate,decoration={text along path,...}] ... Das Kapitel »Text Decorations« in der Anleitung beschreibt alle Optionen. In deinem Beispiel sieht das jetzt natürlich sehr komisch aus, weil der Text länger als die Linie ist. Automatischen Zeilenumbruch gibt es nicht (wie auch), wenn mehrere Zeilen gewünscht sind muss man dies von Hand mit mehreren Dekorationen und dem Open in Online-Editor
\documentclass{article} \usepackage{tikz} \usetikzlibrary{decorations.text} \begin{document} \begin{tikzpicture} \path (0,0) node(x) {Hello World!} (3,1) node[circle,draw](y) {$\int_1^2 x \mathrm d x$}; \draw[->,blue] (x) -- (y); \draw[->,red] (x) -| node[near start,below] {label} (y); \draw[->,orange,postaction=decorate,decoration={text along path,text color=orange,text={Hier steht langer Text}}] (x) .. controls +(up:1cm) and +(left:1cm) .. (y); \end{tikzpicture} \begin{tikzpicture} \path (0,0) node[circle,draw](x) {A} (3,2) node[circle,draw](y) {B}; \draw [->,orange,postaction=decorate,decoration={text along path,text color=orange,text={Hier steht langer Text}}] (x) .. controls +(up:1cm) and +(left:1cm) .. (y); \draw [->,orange,postaction=decorate,decoration={text along path,text color=orange,text={Hier steht auch ein langer Text},reverse path}] (y) .. controls +(down:1cm) and +(right:1cm) .. (x); \end{tikzpicture} \end{document} beantwortet 25 Apr '16, 11:23 Henri Oh super!! Vielen, vielen Dank Henri! Eine letzte Frage hätte ich dazu bitte noch: Ist es möglich im zweiten Beispiel den unteren Text um 180 Grad zu drehen, damit der Leser seinen Kopf nicht schief halten muss? Ich hätte da an rotatebox{} gedacht.
(25 Apr '16, 11:31)
Frosi
Danke!! :-)
(25 Apr '16, 11:39)
Frosi
|
Du lädst sehr viele, für das Beispiel unnötige Pakete. Ich denke, dass das in deinem eigentlichen Dokument auch der Fall ist. Du solltest mal durch alle Pakete durchgehen, schauen was sie machen und die unnötigen rauswerfen. Außerdem solltest du deine Datei UTF-8 kodieren und
\usepackage[latin1]{inputenc}
durch\usepackage[utf8]{inputenc}
ersetzen. Dielatin1
-Kodierung ist absolut nicht mehr zeitgemäß.Vermutlich ein Duplikat zu Kreissegment beschriften - Text ebenfalls Kreisförmig. Wir haben das auch für mehrzeilige Texte.