Linienlängen mit TikZ

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Linienlängen mit TikZ

von ThoRie » Mi 29. Mai 2019, 22:25

Fast hätte ich meine Kollegialität vergessen. Hier mal meine, wie ich finde sehr elegante Lösung. Wobei ich dazu sagen muss, dass das in dieser Form nur Sinn macht, wenn man das öfter nutzt:
\documentclass[tikz, border=5pt]{standalone} 
\usepackage{amsmath} 
\usetikzlibrary{calc}
\newcommand{\nebenrechnung}[2]{
\coordinate (#1nw) at (#1.north west);
\coordinate (#1n) at (#1.north);
\coordinate (#1w) at (#1.west);
\coordinate (#1sw) at (#1.south east);
\coordinate (#1s) at (#1.south);
\coordinate (#1e) at (#1.east);
\coordinate (#1re) at ($ (#1nw)!#2cm!(#1n) $);
\coordinate (#1ru) at ($ (#1nw)!#2cm!(#1w) $);
\coordinate (#1li) at ($ (#1sw)!#2cm!(#1s) $);
\coordinate (#1ho) at ($ (#1sw)!#2cm!(#1e) $);
\draw (#1nw) -- (#1re);
		\draw (#1nw) -- (#1ru);
		\draw (#1sw) -- (#1li);
		\draw (#1sw) -- (#1ho);
		}
\begin{document} 
\begin{tikzpicture} 
\node[inner sep=.5cm] (B) {% 
    \footnotesize% 
    $\begin{aligned} 
    u&=f(0)+\dfrac{f(1)-f(0)}{1-0}\cdot x\\ 
    u'&=f(1)-f(0)=\dfrac{\text{d}u}{\text{d}x}\\ 
    \text{d}x&=\dfrac{1}{f(1)-f(0)}\cdot \text{d}u 
    \end{aligned}$% 
}; 
\nebenrechnung{B}{.5} 
\end{tikzpicture} 
\end{document}
Der springende Punkt, der das ganze bei häufiger Anwendung sinnvoll macht ist der \newcommand. Dadurch kann ich jederzeit diesen "Rahmen" erzeugen, sobald ich eine benannte node hab. Die optionalen Argumente sind jetzt
  • #1...Name der node
    #2...Linienlänge in cm
Vielleicht nützt das ja auch jemandem etwas, der vielleicht nicht unbedingt Nebenrechnungen erzeugen will, sondern dem diese Form von nodes gefällt :)

von Bartman » Mi 29. Mai 2019, 20:01

Auch ohne den Einsatz der erwähnten TikZ-Bibliothek kann das Beispiel noch ein paar Änderungen vertragen:
\documentclass[tikz, border=5pt]{standalone}
\usepackage{amsmath}

\begin{document}
\begin{tikzpicture}
\node[inner sep=.5cm, font=\footnotesize] (B) {%
    $\begin{aligned}
    u&=f(0)+\dfrac{f(1)-f(0)}{1-0}\cdot x\\
    u'&=f(1)-f(0)=\dfrac{\text{d}u}{\text{d}x}\\
    \text{d}x&=\dfrac{1}{f(1)-f(0)}\cdot \text{d}u
    \end{aligned}$%
};
\draw 
    (B.north) -| (B.west)
    (B.south) -| (B.east)
;
\end{tikzpicture}
\end{document}

von ThoRie » Mi 29. Mai 2019, 19:53

Okay, das pgf-Manual hat Aufschluss gegeben.

Linienlängen mit TikZ

von ThoRie » Mi 29. Mai 2019, 19:04

Hallo ich habe mal eine Frage zu einem Code:
\documentclass{article}
\usepackage{tikz}
\usepackage{amsmath}
\begin{document}
\begin{tikzpicture}
\node[inner sep=.5cm] (B) at (0,0){\footnotesize $\begin{array}{rl}
u&=f(0)+\dfrac{f(1)-f(0)}{1-0}\cdot x\\
u'&=f(1)-f(0)=\dfrac{\text{d}u}{\text{d}x}\\
\text{d}x&=\dfrac{1}{f(1)-f(0)}\cdot \text{d}u
\end{array}$};
\draw (B.north west) -- (B.west);
\draw (B.north west) -- (B.north);
\draw (B.south east) -- (B.east);
\draw (B.south east) -- (B.south);
\end{tikzpicture}
\end{document}
Und zwar nutze ich diese Form der Grafiken für Nebenrechnungen. Zu der TikZ-Umgebung habe ich auch keine Alternative, da ich diese mittels overlay gezielt an eine freie Stelle packen kann. Diesen Teil habe ich hier jetzt nur raus genommen, da es mit dem Problem nichts zu tun hat.
Also kommen wir jetzt erstmal zum eigentlichen "Problem":

Es geht dabei um diese Ecken, die ich da drum ziehe. Die sollen in jedem dieser Bilder eben genau diese Positionierung haben. Allerdings möchte ich diese gern relativ frei in ihrer Länge beeinflussen, dass sie dann auch optisch passend sind. Wichtig ist aber vor allem einmal, dass sie alle gleich lang werden.

Eine Möglichkeit, sie zu verlängern ist mir mit der library "calc" zwar durchaus bekannt, aber ich will sie eben nicht nur verlängern können, sondern auch nach belieben verkürzen.

Vielleicht kennt da jemand einen Weg.

Die Lösung, so eine besteht, muss auch nicht unbedingt besonders elegant sein oder möglichst wenig Code haben. Sie soll einfach nur funktionieren :)

Nach oben