
Für einen Bericht benötige ich folgendes Bild, welches ich gerne in LaTeX/TikZ zeichnen möchte.
Die Idee ist, dass es auf der reellen Linie diskrete Intervalle gibt und ich über diesen Intervallen schreiben möchte, welche Elemente sich in ihnen befinden ...
(Zum Beispiel wie das Bild, das ich hinzugefügt habe.)
Gibt es eine relativ einfache Möglichkeit, dies zu zeichnen tikz
?
Ich habe noch nie damit gearbeitet tikz
, also können Sie mir vielleicht helfen, dies zu zeichnen ...
Ich denke, dass ich es dann für andere Intervalle selbständig ändern kann.
EDIT: Ich habe Code im Internet gefunden und geändert.
\begin{tikzpicture}[decoration=brace]
% Die Grundlinie:
\draw(0,0)--(10,0);
% Striche und Beschriftung in Abständen 0, 2, 4, 6, ...
\foreach \x/\xtext in {0/$-m-n+1$,2/$-m-1$,4/$-m$,6/$0$,8/$m$,10/$m+n-1$}
\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] {$0$'s} (2,0);
\draw[decorate, yshift=2ex] (10,0) -- node[above=0.4ex] {$l$'s and $0$'s with $l$'s separated by at least two $0$'s} (4,0);
\end{tikzpicture}
Was ich bekomme ist:
Warum ist die zweite Klammer andersherum?
Antwort1
Die Klammern aus decorations.pathreplacing
der Bibliothek verfügen über eine Option mirror
, die die Ausrichtung der Klammer umkehrt. Das ist also alles, was Sie hinzufügen müssen, um sie in die richtige Richtung zu bringen. Sie können es folgendermaßen machen:
\documentclass[tikz,border=1mm]{standalone}
\usetikzlibrary{decorations.pathreplacing}
\begin{document}
\begin{tikzpicture}
% Die Grundlinie:
\draw(0,0)--(10,0);
% Striche und Beschriftung in Abständen 0, 2, 4, 6, ...
\foreach \x/\xtext in {0/$-m-n+1$,2/$-m-1$,4/$-m$,6/$0$,8/$m$,10/$m+n-1$}
\draw(\x,5pt)--(\x,-5pt) node[below] {\xtext};
% obere geschweifte Klammer mit Text darüber:
\draw[decorate, decoration={brace}, yshift=2ex] (0,0) -- node[above=0.4ex] {$0$'s} (2,0);
\draw[decorate, decoration={brace, mirror}, yshift=2ex] (10,0) -- node[above=0.4ex] {$l$'s and $0$'s with $l$'s separated by at least two $0$'s} (4,0);
\end{tikzpicture}
\end{document}
Antwort2
Hier ist eine pstricks
Lösung:
\documentclass[a4paper, pdf, x11names]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{pstricks-add}
\usepackage{stackengine}
\setstackEOL{\\}
\begin{document}
\centering
\psset{braceWidthOuter=4pt, braceWidthInner=4pt, braceWidth=0.8pt, labelsep =2ex}
\begin{pspicture}
\psset{linecolor =IndianRed3}
\psline(-1.2,0)(13.2,0)
\psdots[dotstyle=B|](0,0.02)(3,0.02)(4.2,0.02)(12,0.02)
\pnodes(0,0.6ex){Z1}(3,0.6ex){Z2}(4.2,0.6ex){L1}(12,0.6ex){L2}
\uput[d](Z1){$-m-n + 1$}\uput[d](Z2){$-m-1$\uput[d](L1){$-m$}}\uput[d](L2){$m + n - 1$}
\psset{rot=-90,linecolor=SlateGray4}
\psbrace*(Z2)(Z1){\makebox[0pt]{only $ 0 $’ s}}
\psbrace*(L2)(L1){\makebox[0pt]{\Centerstack{$ 0 $’s and $ l $’s\\$l $’s separated by at least $ 2 $ $ 0 $’s}}}
\end{pspicture}
\end{document}