Zeichnen Sie Intervalle mit Overbrace-Beschreibungen

Zeichnen Sie Intervalle mit Overbrace-Beschreibungen

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.

Bildbeschreibung hier eingeben

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:

Bildbeschreibung hier eingeben

Warum ist die zweite Klammer andersherum?

Antwort1

Die Klammern aus decorations.pathreplacingder 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}

Bildbeschreibung hier eingeben

Antwort2

Hier ist eine pstricksLö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}

Bildbeschreibung hier eingeben

verwandte Informationen