オーバーブレースの説明付きの音程を描く

オーバーブレースの説明付きの音程を描く

レポートのために次の図が必要であり、これを LaTeX/TikZ で描画したいと考えています。

アイデアとしては、実数直線上に離散的な区間があり、これらの区間の上にどの要素が含まれているかを記述したいということです...

(例えば私が追加した画像のように。)

これを描くのにかなり簡単な方法はありますかtikz?

これまで一度も扱ったことがないtikzので、これを描くのを手伝ってもらえませんか...

そうすれば、自分で他の音程に変更できるようになると思います。

ここに画像の説明を入力してください

編集: インターネットでコードを見つけて修正しました。

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

私が得たものは次のとおりです:

ここに画像の説明を入力してください

2 番目の括弧が逆になっているのはなぜですか?

答え1

ライブラリのブレースにはdecorations.pathreplacing、ブレースの面の方向を反転するオプションがありますmirror。正しい方向にするには、これだけを追加すれば十分です。次のように実行できます。

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

ここに画像の説明を入力してください

答え2

解決策は次のとおりですpstricks:

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

ここに画像の説明を入力してください

関連情報