
Для отчета мне нужна следующая картинка, которую я хотел бы нарисовать в LaTeX/TikZ.
Идея состоит в том, что на действительной прямой есть дискретные интервалы, и над этими интервалами я хочу написать, какие элементы в них находятся...
(Например, как на картинке, которую я добавил.)
Есть ли какой-нибудь достаточно простой способ нарисовать это tikz
?
Я никогда не работал с этим tikz
, поэтому, возможно, вы сможете мне помочь нарисовать это...
Думаю, тогда я смогу самостоятельно изменить его для других интервалов.
EDIT: Я нашел код в интернете и изменил его.
\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}
Вот что я получаю:
Почему вторая скобка стоит наоборот?
решение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}