This repository has been archived on 2020-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Files
DSem1/presentation/lib/numberLine.tex
2018-06-05 11:29:16 +02:00

61 lines
2.2 KiB
TeX

\RequirePackage{environ}
% ### DEFINE NumberLine ENVIRONMENT ###
% define numberLine/area parameters
\pgfkeys{/numberLine/area/.is family, /numberLine/area,
height/.estore in = \numberLineAreaHeight,
color/.estore in = \numberLineAreaColor,
opacity/.estore in = \numberLineAreaOpacity,
label/.store in = \numberLineAreaLabel,
textcolor/.store in = \numberLineAreaTextcolor,
textabove/.store in = \numberLineAreaTextPosition
}
\pgfkeys{/numberLine/area, default/.style = {height=0.2, color=orange, opacity=1, label=, textcolor=black, textabove=0.2ex}}
% define numberLine/area parameters
\pgfkeys{/numberLine/point/.is family, /numberLine/point,
size/.estore in = \numberLinePointSize,
color/.estore in = \numberLinePointColor,
textcolor/.store in = \numberLinePointTextcolor,
textabove/.store in = \numberLinePointTextPosition
}
\pgfkeys{/numberLine/point, default/.style = {size=0.1, color=orange, textcolor=black, textabove=0.3ex}}
% define environment
\NewEnviron{numberLine}[3][]{
% Draw an xtick at (1: x-position, 2: label to display)
\newcommand{\xtick}[2]{
\draw (##1,0.1) -- + (0,-0.2) node[below] {$##2$}
}
% Draw an area on the number-line (1: from x, 2: to x, 3: color)
\newcommand{\area}[3][]{
\pgfkeys{/numberLine/area, default, ##1}
\begin{pgfonlayer}{areas}
\fill [\numberLineAreaColor,fill opacity=\numberLineAreaOpacity] (##2,-0.1) rectangle (##3,{-0.1 + \numberLineAreaHeight})
node[pos=.5,yshift=\numberLineAreaTextPosition,label={[\numberLineAreaTextcolor]\numberLineAreaLabel}] {};
\end{pgfonlayer}
}
% Draw a point on the number-line (1: x-position, 2: color, 3: size)
\newcommand{\point}[3][]{
\pgfkeys{/numberLine/point, default, ##1}
\begin{pgfonlayer}{points}
\fill[\numberLinePointColor] (##2,0) circle (\numberLinePointSize)
node[above=\numberLinePointTextPosition,text=\numberLinePointTextcolor] {##3};
\end{pgfonlayer}
}
\pgfdeclarelayer{areas}
\pgfdeclarelayer{points}
\pgfsetlayers{areas,main,points}
\begin{tikzpicture}[#1]
\BODY
%draw horizontal line above everything else (except the x-ticks)
\draw (#2,0) -- (#3,0);
%draw xticks above everything else
\foreach \x in {#2,...,#3}
\xtick{\x}{\x};
\end{tikzpicture}
}