
TikZ を使用して次の数直線をどのように構築できるか疑問に思いました。
https://i.stack.imgur.com/oQtaD.jpg
ここで他の質問を読んでみましたが、私が抱えている主な課題は、(1) 数直線の真ん中に 3 つの点「...」を作成すること、(2) 中括弧を 2 つの部分に分けること、(3) いくつかの中括弧の上下にテキストを配置することです。
ありがとう!
答え1
- あなたの質問では、必要な画像のスケッチは示されておらず、アクセスできないリンクのみが表示されています。
- @Tom の回答にあるイメージが、あなたが求めているものに十分近いものであることを願っています。
- 私はこの絵を少し違った形で描きます。
- 私は、できるだけ簡潔で明確に構造化された MWE を書くように努めています。
\documentclass[border=3.141592]{standalone}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,
decorations.pathreplacing,%
calligraphy,% had to be after decorations.pathreplacing
calc}
\begin{document}
\begin{tikzpicture}[
> = Straight Barb,
BC/.style args = {#1/#2}{
decorate,
decoration={calligraphic brace, amplitude=6pt,
pre =moveto, pre length=1pt,
post=moveto, post length=1pt,
raise=#1,
#2,% for mirroring of brace
},
ultra thick},
]
\draw [ultra thick,->] (-7.5,0) -- (7.5,0);
\foreach \i [count=\x from -6] in {-23,-22,-21,-20,-19,\dotsm,1,2,...,6}
\draw[thick] (\x,3mm) -- ++ (0,-6mm) node (n\x) [below] {$\i$};
%
\draw[BC=4mm/] (-6,0) -- node[above=6mm] {other text} (-2,0);
\draw[BC=8mm/mirror] ( 0,0) -- coordinate[below=11mm] (aux) (5,0);
\draw[<->, semithick, densely dashed, rounded corners]
(n-6) -- node[fill=white] {some text} ++ (0,-1.3) -| (aux);
\end{tikzpicture}
\end{document}
答え2
ここに解決策があります。コードをもっと簡潔にする方法はありますか? 何かアドバイスはありますか?
\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta, decorations.pathreplacing,calc}
\begin{document}
\begin{tikzpicture}
\draw [line width=5pt,-{Triangle[length=0.5cm,width=0.5cm]}] (-7.5,0) -- (7.5,0);
\foreach \x in {-6,...,-2} {
\draw [line width=2pt] (\x,-0.5) node (bx\x) [font=\Large,xshift=-6pt,below=0.5cm] {\pgfmathparse{\x-17}$\mathbf{\pgfmathprintnumber{\pgfmathresult}}$} -- (\x,0.5) coordinate (tx\x);}
\draw [line width=2pt] (-1,-0.5) node (bx-1) [font=\bfseries\Large,below=0.75cm] {\dots} -- (-1,0.5) coordinate (tx-1);
\foreach \x in {0,...,6} {
\draw [line width=2pt] (\x,-0.5) node (bx\x) [font=\Large,below=0.5cm] {\pgfmathparse{\x+1}$\mathbf{\pgfmathprintnumber{\pgfmathresult}}$} -- (\x,0.5) coordinate (tx\x);}
\draw [decorate,decoration={brace,raise=10pt,amplitude=20pt}] (tx-6) -- (tx-1) node (TB) [midway,above=1.2cm,font=\large] {\textbf{Other Text}};
\draw [decorate,decoration={brace,raise=10pt,amplitude=20pt,mirror}] (bx0.south) -- (bx6.south) node (BB) [midway,below=1cm] {};
\draw [{[scale=2]Triangle}-] ($(bx-6)+(6pt,-10pt)$) -- ++(0,-0.7) node (ST) [below=4pt,font=\large] {\textbf{Some Text}};
\draw [shorten <=6pt,shorten >=6pt,-{[scale=2]Triangle}] (ST.south) .. controls +(-80:1.5cm) and +(200:1.5cm) .. (BB.south west);
\end{tikzpicture}
\end{document}