سلام. این اتفاق طبیعی است چون اینها دو محیط جداگانه هستند و زیر هم قرار میگیرند. شما باید محیط tikzpicture
را در داخل محیط ریاضی قرار بدهید. کد زیر را ببینید.
\documentclass{article}
\usepackage[margin=1cm]{geometry}
\usepackage{tikz, amsmath, amssymb}
\usetikzlibrary{arrows.meta}
\begin{document}
\[ f(x)=
\begin{cases}
0,& -\pi<x\leq 0 \\ x^2,& \phantom{-} 0<x\leq\pi
\end{cases}
\begin{tikzpicture}[axis/.style={gray, thick, -Stealth}, baseline={(current bounding box.center)}]
\draw [axis] (-6,0) -- (6,0) node [right, black] {$x$};
\draw [axis] (0,-0.5) -- (0,2) node [left, black] {$y$};
\draw [gray, thick] (2pt,1) -- (-2pt,1) node [left, black,xshift=3pt, yshift=4pt] {$\pi^2$};
\foreach \x/\label in {-5/-5\pi, -4/-4\pi, -3/-3\pi, -2/-2\pi, -1/-\pi, 1/\pi, 2/2\pi, 3/3\pi, 4/4\pi, 5/5\pi}
\node at (\x,-10pt) {$\label$};
\foreach \T in {-4,-2,0,2,4}
{
\draw [red , very thick, variable=\x, domain=0:1, samples=50, xshift=\T cm] (-1,0) -- plot ({\x},{pow(\x,2)});
}
\foreach \x/\y in {-4/0, -3/1, -2/0,-1/1, 0/0, 1/1, 2/0, 3/1, 4/0, 5/1}
\filldraw [fill=black, draw=black, thick] (\x,\y) circle [radius=2pt];
\foreach \x in {-5,-3,...,5}
\filldraw [fill=white, draw=black, thick] (\x,0) circle [radius=2pt];
\end{tikzpicture}
\]
\end{document}
گزینه
baseline={(current bounding box.center)}
باعث میشود محیط ریاضی و محیط tikzpicture
بهلحاظ عمودی همتراز شوند. شما میتوانید بهجای center
، از جهات جغرافیایی دیگر یعنی east
، west
، north
، south
، north east
، north west
، south east
یا south west
استفاده کنید. در صورتی که با این گزینهها به مطلوبتان نرسیدید، میتوانید از گزینه
baseline={([yshift=2cm]current bounding box.center)}
که مقدار 2cm
بسته به شکل شما تغییر میکند، بهره بگیرید.
ضمناً بهتر است برای اعمال تکراری از حلقه استفاده کرد که باعث کوتاهی کد و خواناتر و زیباتر شدن آن میشود. از همینرو من کد شما را به کمک \foreach
ویراستهام. در ضمن چون من تا به حال محیط Bflushleft
را ندیدهام و استفاده از آن در کد من با خطا همراه بود و نمیدانم به کمک چه بستهای از این محیط استفاده میکنید، این محیط را با \[ \]
جایگزین کردم.