Desenhe intervalos com descrições de overbrace

Desenhe intervalos com descrições de overbrace

Para um relatório preciso da seguinte imagem, que gostaria de desenhar em LaTeX/TikZ.

A ideia é que existam intervalos discretos na reta real e acima desses intervalos quero escrever quais elementos estão neles...

(Por exemplo, como a imagem que adicionei.)

Existe uma maneira bastante fácil de desenhar isso tikz?

Nunca trabalhei com isso tikze talvez você possa me ajudar a desenhar isso...

Acho que poderei alterá-lo sozinho para outros intervalos.

insira a descrição da imagem aqui

EDIT: Encontrei o código na internet e modifiquei.

\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}

O que eu recebo é:

insira a descrição da imagem aqui

Por que o segundo colchete está ao contrário?

Responder1

Os contraventamentos, da decorations.pathreplacingbiblioteca, possuem uma opção mirrorque inverte a direção da face do contraventamento. Então, isso é tudo que você deve adicionar para colocá-lo na direção certa. Você pode fazer assim:

\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}

insira a descrição da imagem aqui

Responder2

Aqui está uma pstrickssolução:

\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}

insira a descrição da imagem aqui

informação relacionada