diff options
author | Norbert Preining <norbert@preining.info> | 2021-03-14 03:01:35 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2021-03-14 03:01:35 +0000 |
commit | 954d393d844eacce4354b6174613f467bcd7a257 (patch) | |
tree | f7cae8636ddfa09730349432deb4eb6cf3833863 /graphics | |
parent | 2a899339df4bb55e3aa0d5b7a4975b1743341e17 (diff) |
CTAN sync 202103140301
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/pgf/contrib/nl-interval/README.txt | 30 | ||||
-rw-r--r-- | graphics/pgf/contrib/nl-interval/nl-interval.pdf | bin | 0 -> 82402 bytes | |||
-rw-r--r-- | graphics/pgf/contrib/nl-interval/nl-interval.sty | 1242 | ||||
-rw-r--r-- | graphics/pgf/contrib/nl-interval/nl-interval.tex | 200 |
4 files changed, 1472 insertions, 0 deletions
diff --git a/graphics/pgf/contrib/nl-interval/README.txt b/graphics/pgf/contrib/nl-interval/README.txt new file mode 100644 index 0000000000..75ff6bd48f --- /dev/null +++ b/graphics/pgf/contrib/nl-interval/README.txt @@ -0,0 +1,30 @@ +The nl-interval package +======================= + +Author: Antero Neves + +Introdution: + +The nl-interval package provides macros to simplify and agilize the process of representing intervals in the number line. + +The macros are dependent of packages tkz-fct, ifthen and xparse and should be used inside a tikzpicture environment. + +Files : 1) README.txt + 2) nl-interval.tex + 3) nl-interval.sty + 4) nl-interval.pdf + + +License: + +This work may be distributed and/or modified +under the conditions of the LaTeX Project Public License, +either version 1.3c of this license or any later version. +The latest version of this license is in +http://www.latex-project.org/lppl.txt. + + +Contact: + +You may contact the author to report any erros or sugestions at +< anteroneves.reg at gmail.com >.
\ No newline at end of file diff --git a/graphics/pgf/contrib/nl-interval/nl-interval.pdf b/graphics/pgf/contrib/nl-interval/nl-interval.pdf Binary files differnew file mode 100644 index 0000000000..24a16783f9 --- /dev/null +++ b/graphics/pgf/contrib/nl-interval/nl-interval.pdf diff --git a/graphics/pgf/contrib/nl-interval/nl-interval.sty b/graphics/pgf/contrib/nl-interval/nl-interval.sty new file mode 100644 index 0000000000..1fb18a42f5 --- /dev/null +++ b/graphics/pgf/contrib/nl-interval/nl-interval.sty @@ -0,0 +1,1242 @@ +%% TITLE: nl-interval v1.0 +%% +%% Copyright 2021 Antero Neves +%% +%% This work may be distributed and/or modified +%% under the conditions of the LaTeX Project Public License, +%% either version 1.3c of this license or any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt. + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{nl-interval} % Version 1.0 + +\RequirePackage{xparse,tkz-fct,ifthen} + +\definecolor{MyBlueAN}{RGB}{59,89,152} +%\definecolor{MyGreenAN}{HTML}{7e8464} +%\definecolor{MyRedAN}{HTML}{90030c} + + +%--------- Defines Axes ---------% +\NewDocumentCommand{\nlAxisX}{m m}{ + \def\xmin{#1} + \def\xmax{#2} + \tkzInit[xmin=#1,xmax=#2] + \tkzDrawX[noticks]} + + +%--------- Defines command to draw interval from number to +infinity ---------% +\NewDocumentCommand{\nlnuminf}{o m o m o}{ + \IfNoValueTF{#1} + { + \IfNoValueTF{#3} + { + \IfNoValueTF{#5} + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#2\)} + \fill[MyBlueAN!30, path fading=east,opacity=.5] (#2,0) rectangle (\xmax,.5); + \draw[->,>=stealth] (#2,0)--(#2,.5)--(\xmax,.5); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,.5) circle[radius=1.5pt]; + } + {} + } + } + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#2\)} + \fill[MyBlueAN!30, path fading=east,opacity=.5] (#2,0) rectangle (\xmax,#5); + \draw[->,>=stealth] (#2,0)--(#2,#5)--(\xmax,#5); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,#5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,#5) circle[radius=1.5pt]; + } + {} + } + } + } + { + \IfNoValueTF{#5} + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#3\)} + \fill[MyBlueAN!30, path fading=east,opacity=.5] (#2,0) rectangle (\xmax,.5); + \draw[->,>=stealth] (#2,0)--(#2,.5)--(\xmax,.5); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,.5) circle[radius=1.5pt]; + } + {} + } + } + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#3\)} + \fill[MyBlueAN!30, path fading=east,opacity=.5] (#2,0) rectangle (\xmax,#5); + \draw[->,>=stealth] (#2,0)--(#2,#5)--(\xmax,#5); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,#5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,#5) circle[radius=1.5pt]; + } + {} + } + } + } + } + { + \IfNoValueTF{#3} + { + \IfNoValueTF{#5} + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#2\)} + \fill[MyBlueAN!30, path fading=east,opacity=.5,#1] (#2,0) rectangle (\xmax,.5); + \draw[->,>=stealth] (#2,0)--(#2,.5)--(\xmax,.5); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,.5) circle[radius=1.5pt]; + } + {} + } + } + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#2\)} + \fill[MyBlueAN!30, path fading=east,opacity=.5,#1] (#2,0) rectangle (\xmax,#5); + \draw[->,>=stealth] (#2,0)--(#2,#5)--(\xmax,#5); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,#5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,#5) circle[radius=1.5pt]; + } + {} + } + } + } + { + \IfNoValueTF{#5} + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#3\)} + \fill[MyBlueAN!30, path fading=east,opacity=.5,#1] (#2,0) rectangle (\xmax,.5); + \draw[->,>=stealth] (#2,0)--(#2,.5)--(\xmax,.5); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,.5) circle[radius=1.5pt]; + } + {} + } + } + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#3\)} + \fill[MyBlueAN!30, path fading=east,opacity=.5,#1] (#2,0) rectangle (\xmax,#5); + \draw[->,>=stealth] (#2,0)--(#2,#5)--(\xmax,#5); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,#5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,#5) circle[radius=1.5pt]; + } + {} + } + } + } + } +} + +%--------- Defines command to draw interval from -infinity to a number ---------% +\NewDocumentCommand{\nlinfnum}{o m o m o}{ + \IfNoValueTF{#1} + { + \IfNoValueTF{#3} + { + \IfNoValueTF{#5} + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#2\)} + \fill[MyBlueAN!30, path fading=west,opacity=.5] (#2,0) rectangle (\xmin,.5); + \draw[->,>=stealth] (#2,0)--(#2,.5)--(\xmin,.5); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,.5) circle[radius=1.5pt]; + } + {} + } + } + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#2\)} + \fill[MyBlueAN!30, path fading=west,opacity=.5] (#2,0) rectangle (\xmin,#5); + \draw[->,>=stealth] (#2,0)--(#2,#5)--(\xmin,#5); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,#5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,#5) circle[radius=1.5pt]; + } + {} + } + } + } + { + \IfNoValueTF{#5} + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#3\)} + \fill[MyBlueAN!30, path fading=west,opacity=.5] (#2,0) rectangle (\xmin,.5); + \draw[->,>=stealth] (#2,0)--(#2,.5)--(\xmin,.5); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,.5) circle[radius=1.5pt]; + } + {} + } + } + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#3\)} + \fill[MyBlueAN!30, path fading=west,opacity=.5] (#2,0) rectangle (\xmin,#5); + \draw[->,>=stealth] (#2,0)--(#2,#5)--(\xmin,#5); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,#5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,#5) circle[radius=1.5pt]; + } + {} + } + } + } + } + { + \IfNoValueTF{#3} + { + \IfNoValueTF{#5} + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#2\)} + \fill[MyBlueAN!30, path fading=west,opacity=.5,#1] (#2,0) rectangle (\xmin,.5); + \draw[->,>=stealth] (#2,0)--(#2,.5)--(\xmin,.5); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,.5) circle[radius=1.5pt]; + } + {} + } + } + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#2\)} + \fill[MyBlueAN!30, path fading=west,opacity=.5,#1] (#2,0) rectangle (\xmin,#5); + \draw[->,>=stealth] (#2,0)--(#2,#5)--(\xmin,#5); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,#5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,#5) circle[radius=1.5pt]; + } + {} + } + } + } + { + \IfNoValueTF{#5} + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#3\)} + \fill[MyBlueAN!30, path fading=west,opacity=.5,#1] (#2,0) rectangle (\xmin,.5); + \draw[->,>=stealth] (#2,0)--(#2,.5)--(\xmin,.5); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,.5) circle[radius=1.5pt]; + } + {} + } + } + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#3\)} + \fill[MyBlueAN!30, path fading=west,opacity=.5,#1] (#2,0) rectangle (\xmin,#5); + \draw[->,>=stealth] (#2,0)--(#2,#5)--(\xmin,#5); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,#5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,#5) circle[radius=1.5pt]; + } + {} + } + } + } + } +} + +%--------- Defines command to draw interval from a number to a number ---------% +\NewDocumentCommand{\nlnumnum}{o m o m m o m o}{ + \IfNoValueTF{#1} + { + \IfNoValueTF{#3} + { + \IfNoValueTF{#6} + { + \IfNoValueTF{#8} + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#2\)} + \tkzDefPoint(#5,0){B} + \tkzDrawPoint[shape=cross](B) + \tkzLabelPoint[below](B){\(#5\)} + \fill[MyBlueAN!30,opacity=.5] (#2,0) rectangle (#5,.5); + \draw (#2,0)--(#2,.5)--(#5,.5)-- (#5,0); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,.5) circle [radius=1.5pt]; + + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,.5) circle[radius=1.5pt]; + } + {} + } + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,.5) circle[radius=1.5pt]; + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,.5) circle[radius=1.5pt]; + } + {} + } + } + {} + } + } + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#2\)} + \tkzDefPoint(#5,0){B} + \tkzDrawPoint[shape=cross](B) + \tkzLabelPoint[below](B){\(#5\)} + \fill[MyBlueAN!30,opacity=.5] (#2,0) rectangle (#5,#8); + \draw (#2,0)--(#2,#8)--(#5,#8)-- (#5,0); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,#8) circle [radius=1.5pt]; + + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,#8) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,#8) circle[radius=1.5pt]; + } + {} + } + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,#8) circle[radius=1.5pt]; + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,#8) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,#8) circle[radius=1.5pt]; + } + {} + } + } + {} + } + } + } + { + \IfNoValueTF{#8} + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#2\)} + \tkzDefPoint(#5,0){B} + \tkzDrawPoint[shape=cross](B) + \tkzLabelPoint[below](B){\(#6\)} + \fill[MyBlueAN!30,opacity=.5] (#2,0) rectangle (#5,.5); + \draw (#2,0)--(#2,.5)--(#5,.5)-- (#5,0); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,.5) circle [radius=1.5pt]; + + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,.5) circle[radius=1.5pt]; + } + {} + } + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,.5) circle[radius=1.5pt]; + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,.5) circle[radius=1.5pt]; + } + {} + } + } + {} + } + } + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#2\)} + \tkzDefPoint(#5,0){B} + \tkzDrawPoint[shape=cross](B) + \tkzLabelPoint[below](B){\(#6\)} + \fill[MyBlueAN!30,opacity=.5] (#2,0) rectangle (#5,#8); + \draw (#2,0)--(#2,#8)--(#5,#8)-- (#5,0); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,#8) circle [radius=1.5pt]; + + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,#8) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,#8) circle[radius=1.5pt]; + } + {} + } + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,#8) circle[radius=1.5pt]; + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,#8) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,#8) circle[radius=1.5pt]; + } + {} + } + } + {} + } + } + } + } + { + \IfNoValueTF{#6} + { + \IfNoValueTF{#8} + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#3\)} + \tkzDefPoint(#5,0){B} + \tkzDrawPoint[shape=cross](B) + \tkzLabelPoint[below](B){\(#5\)} + \fill[MyBlueAN!30,opacity=.5] (#2,0) rectangle (#5,.5); + \draw (#2,0)--(#2,.5)--(#5,.5)-- (#5,0); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,.5) circle [radius=1.5pt]; + + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,.5) circle[radius=1.5pt]; + } + {} + } + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,.5) circle[radius=1.5pt]; + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,.5) circle[radius=1.5pt]; + } + {} + } + } + {} + } + } + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#3\)} + \tkzDefPoint(#5,0){B} + \tkzDrawPoint[shape=cross](B) + \tkzLabelPoint[below](B){\(#5\)} + \fill[MyBlueAN!30,opacity=.5] (#2,0) rectangle (#5,#8); + \draw (#2,0)--(#2,#8)--(#5,#8)-- (#5,0); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,#8) circle [radius=1.5pt]; + + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,#8) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,#8) circle[radius=1.5pt]; + } + {} + } + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,#8) circle[radius=1.5pt]; + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,#8) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,#8) circle[radius=1.5pt]; + } + {} + } + } + {} + } + } + } + { + \IfNoValueTF{#8} + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#3\)} + \tkzDefPoint(#5,0){B} + \tkzDrawPoint[shape=cross](B) + \tkzLabelPoint[below](B){\(#6\)} + \fill[MyBlueAN!30,opacity=.5] (#2,0) rectangle (#5,.5); + \draw (#2,0)--(#2,.5)--(#5,.5)-- (#5,0); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,.5) circle [radius=1.5pt]; + + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,.5) circle[radius=1.5pt]; + } + {} + } + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,.5) circle[radius=1.5pt]; + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,.5) circle[radius=1.5pt]; + } + {} + } + } + {} + } + } + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#3\)} + \tkzDefPoint(#5,0){B} + \tkzDrawPoint[shape=cross](B) + \tkzLabelPoint[below](B){\(#6\)} + \fill[MyBlueAN!30,opacity=.5] (#2,0) rectangle (#5,#8); + \draw (#2,0)--(#2,#8)--(#5,#8)-- (#5,0); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,#8) circle [radius=1.5pt]; + + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,#8) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,#8) circle[radius=1.5pt]; + } + {} + } + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,#8) circle[radius=1.5pt]; + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,#8) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,#8) circle[radius=1.5pt]; + } + {} + } + } + {} + } + } + } + } + } + { + \IfNoValueTF{#3} + { + \IfNoValueTF{#6} + { + \IfNoValueTF{#8} + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#2\)} + \tkzDefPoint(#5,0){B} + \tkzDrawPoint[shape=cross](B) + \tkzLabelPoint[below](B){\(#5\)} + \fill[MyBlueAN!30,opacity=.5,#1] (#2,0) rectangle (#5,.5); + \draw (#2,0)--(#2,.5)--(#5,.5)-- (#5,0); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,.5) circle [radius=1.5pt]; + + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,.5) circle[radius=1.5pt]; + } + {} + } + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,.5) circle[radius=1.5pt]; + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,.5) circle[radius=1.5pt]; + } + {} + } + } + {} + } + } + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#2\)} + \tkzDefPoint(#5,0){B} + \tkzDrawPoint[shape=cross](B) + \tkzLabelPoint[below](B){\(#5\)} + \fill[MyBlueAN!30,opacity=.5,#1] (#2,0) rectangle (#5,#8); + \draw (#2,0)--(#2,#8)--(#5,#8)-- (#5,0); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,#8) circle [radius=1.5pt]; + + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,#8) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,#8) circle[radius=1.5pt]; + } + {} + } + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,#8) circle[radius=1.5pt]; + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,#8) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,#8) circle[radius=1.5pt]; + } + {} + } + } + {} + } + } + } + { + \IfNoValueTF{#8} + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#2\)} + \tkzDefPoint(#5,0){B} + \tkzDrawPoint[shape=cross](B) + \tkzLabelPoint[below](B){\(#6\)} + \fill[MyBlueAN!30,opacity=.5,#1] (#2,0) rectangle (#5,.5); + \draw (#2,0)--(#2,.5)--(#5,.5)-- (#5,0); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,.5) circle [radius=1.5pt]; + + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,.5) circle[radius=1.5pt]; + } + {} + } + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,.5) circle[radius=1.5pt]; + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,.5) circle[radius=1.5pt]; + } + {} + } + } + {} + } + } + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#2\)} + \tkzDefPoint(#5,0){B} + \tkzDrawPoint[shape=cross](B) + \tkzLabelPoint[below](B){\(#6\)} + \fill[MyBlueAN!30,opacity=.5,#1] (#2,0) rectangle (#5,#8); + \draw (#2,0)--(#2,#8)--(#5,#8)-- (#5,0); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,#8) circle [radius=1.5pt]; + + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,#8) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,#8) circle[radius=1.5pt]; + } + {} + } + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,#8) circle[radius=1.5pt]; + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,#8) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,#8) circle[radius=1.5pt]; + } + {} + } + } + {} + } + } + } + } + { + \IfNoValueTF{#6} + { + \IfNoValueTF{#8} + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#3\)} + \tkzDefPoint(#5,0){B} + \tkzDrawPoint[shape=cross](B) + \tkzLabelPoint[below](B){\(#5\)} + \fill[MyBlueAN!30,opacity=.5,#1] (#2,0) rectangle (#5,.5); + \draw (#2,0)--(#2,.5)--(#5,.5)-- (#5,0); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,.5) circle [radius=1.5pt]; + + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,.5) circle[radius=1.5pt]; + } + {} + } + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,.5) circle[radius=1.5pt]; + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,.5) circle[radius=1.5pt]; + } + {} + } + } + {} + } + } + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#3\)} + \tkzDefPoint(#5,0){B} + \tkzDrawPoint[shape=cross](B) + \tkzLabelPoint[below](B){\(#5\)} + \fill[MyBlueAN!30,opacity=.5,#1] (#2,0) rectangle (#5,#8); + \draw (#2,0)--(#2,#8)--(#5,#8)-- (#5,0); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,#8) circle [radius=1.5pt]; + + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,#8) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,#8) circle[radius=1.5pt]; + } + {} + } + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,#8) circle[radius=1.5pt]; + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,#8) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,#8) circle[radius=1.5pt]; + } + {} + } + } + {} + } + } + } + { + \IfNoValueTF{#8} + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#3\)} + \tkzDefPoint(#5,0){B} + \tkzDrawPoint[shape=cross](B) + \tkzLabelPoint[below](B){\(#6\)} + \fill[MyBlueAN!30,opacity=.5,#1] (#2,0) rectangle (#5,.5); + \draw (#2,0)--(#2,.5)--(#5,.5)-- (#5,0); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,.5) circle [radius=1.5pt]; + + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,.5) circle[radius=1.5pt]; + } + {} + } + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,.5) circle[radius=1.5pt]; + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,.5) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,.5) circle[radius=1.5pt]; + } + {} + } + } + {} + } + } + { + \tkzDefPoint(#2,0){A} + \tkzDrawPoint[shape=cross](A) + \tkzLabelPoint[below](A){\(#3\)} + \tkzDefPoint(#5,0){B} + \tkzDrawPoint[shape=cross](B) + \tkzLabelPoint[below](B){\(#6\)} + \fill[MyBlueAN!30,opacity=.5,#1] (#2,0) rectangle (#5,#8); + \draw (#2,0)--(#2,#8)--(#5,#8)-- (#5,0); + \ifthenelse + {\equal{#4}{o}} + { + \draw[fill=white] (#2,#8) circle [radius=1.5pt]; + + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,#8) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,#8) circle[radius=1.5pt]; + } + {} + } + } + { + \ifthenelse + {\equal{#4}{c}} + { + \draw[fill=black] (#2,#8) circle[radius=1.5pt]; + \ifthenelse + {\equal{#7}{o}} + { + \draw[fill=white] (#5,#8) circle [radius=1.5pt]; + } + { + \ifthenelse + {\equal{#7}{c}} + { + \draw[fill=black] (#5,#8) circle[radius=1.5pt]; + } + {} + } + } + {} + } + } + } + } + } +} + + diff --git a/graphics/pgf/contrib/nl-interval/nl-interval.tex b/graphics/pgf/contrib/nl-interval/nl-interval.tex new file mode 100644 index 0000000000..d3d01b3703 --- /dev/null +++ b/graphics/pgf/contrib/nl-interval/nl-interval.tex @@ -0,0 +1,200 @@ +\documentclass{article} + +\usepackage{fouriernc} +\usepackage[utf8]{inputenc} +\usepackage{nl-interval} +\usepackage{indentfirst} +\usepackage{fancyvrb} +\usepackage{siunitx} + +\title{The {\bf nl-interval} package} +\author{Antero Neves} +\date{12 March 2021 \quad version 1.0} + +\begin{document} + \maketitle + + \begin{abstract} + This is a \LaTeX\ package that aims to simplify and agilize the process of representing intervals in the real axis. + Four commands are provided: \verb*|\nlAxisX|, \verb*|\nlnuminf|, \verb*|\nlinfnum| and \verb*|\nlnumnum|, they were built around the packages {\bf tkz-fct}, {\bf ifthen} and {\bf xparse} and require being used inside a \verb*|tikzpicture| environment. + \end{abstract} + + + \section{How to use} + + \subsection{How to load the package} + + The package is loaded as usual, through the command + + \medskip + + \verb*|\usepackage{nl-interval}| + + \medskip + + There are, at this time, no options available to include here. + + \subsection{The commands} + + The first command is \verb*|\nlAxisX| and it simply draws the \(x\) axis where the intervals are going to be represented. It has two mandatory inputs: the minimum and maximum of the axis, so, the full instruction is: \Verb*|\nlAxisX{min}{max}|: + + + \begin{Verbatim}[gobble=1,xleftmargin=5mm] + \begin{tikzpicture} + \nlAxisX{-2}{5} + \end{tikzpicture} + \end{Verbatim} + + + would give the output: + + \medskip + + \begin{center} + \begin{tikzpicture} + \nlAxisX{-2}{5} + \end{tikzpicture} + \end{center} + + + After the axis is drawn, one can start placing the intervals. To do this we will consider two kinds of intervals, the ones with infinity, either \(-\infty\) or \(+\infty\) and the ones with two numbers. + + \newpage + + + Let's start with the first group. + + \begin{itemize} + \item \verb*|\nlinfnum| will draw intervals of the kind: \(\left]-\infty, number\right]\) or \(\left]-\infty, number\right[\). + \item \verb*|\nlnuminf| will draw intervals of the kind: \(\left[number, +\infty\right[\) or \(\left]number, +\infty\right[\). + \end{itemize} + + These two commands also have two mandatory inputs: first one is the number ({\it always a decimal representation, so, something like \(\pi\) doesn't work but there is a workaround!}) and the second if it's an \underline{o}pen or \underline{c}losed interval at the number. So, for instance + + \medskip + + \begin{Verbatim}[gobble=1,xleftmargin=5mm] + \begin{tikzpicture} + \nlAxisX{-2}{5} + \nlnuminf{3}{o} + \nlinfnum{1}{c} + \end{tikzpicture} + \end{Verbatim} + + gives us + + \medskip + + + \begin{center} + \begin{tikzpicture} + \nlAxisX{-2}{5} + \nlnuminf{3}{o} + \nlinfnum{1}{c} + \end{tikzpicture} + \end{center} + + This time, there are a few optional inputs, the full commands are like this: + + \begin{Verbatim}[gobble=1,xleftmargin=5mm] + \nlnuminf[1]{number}[2]{o or c}[3] + \nlinfnum[1]{number}[2]{o or c}[3] + \end{Verbatim} + + \begin{itemize} + \item in [1] you can put options like different colours or patters used; + \item in [2] you can substitute the number for a letter or an exact representation of the number, don't put it in math environment!; + \item in [3] you can change the height of the interval, which is \(0.5\si{\centi\meter}\) by default. + \end{itemize} + + + Let's try some of these options: + + \begin{Verbatim}[gobble=1,xleftmargin=5mm] + \begin{tikzpicture} + \nlAxisX{-2}{5} + \nlnuminf[pattern=north west lines]{1.4142}[\sqrt{2}]{c}[.7] + \nlinfnum[red!20]{3.1416}[\pi]{o} + \end{tikzpicture} + \end{Verbatim} + + + \begin{center} + \begin{tikzpicture} + \nlAxisX{-1}{4} + \nlnuminf[pattern=north west lines]{1.4142}[\sqrt{2}]{c}[.7] + \nlinfnum[red!20]{3.1416}[\pi]{o} + \end{tikzpicture} + \end{center} + + +\newpage + +The second group of intervals, works with a single command: + +\begin{itemize} + \item \verb*|\nlnumnum| +\end{itemize} + +and, since it uses two numbers, we have four mandatory inputs: the numbers and the instruction of closed or open. It works like this: + + +\begin{Verbatim}[gobble=1,xleftmargin=5mm] + \begin{tikzpicture} + \nlAxisX{-2}{5} + \nlnumnum{-1}{o}{3}{c} + \end{tikzpicture} +\end{Verbatim} + + \begin{center} + \begin{tikzpicture} + \nlAxisX{-2}{5} + \nlnumnum{-1}{o}{3}{c} + \end{tikzpicture} + \end{center} + +As with the previous commands, there are a few options, this time we have one more which allows us to change what is shown in the second number: + + +\begin{Verbatim}[gobble=1,xleftmargin=5mm] + \begin{tikzpicture} + \nlAxisX{-2}{5} + \nlnumnum[red!20]{-1.4142}[-\sqrt{2}]{o}{3.1416}[\pi]{c} + \end{tikzpicture} +\end{Verbatim} + + +\begin{center} + \begin{tikzpicture} + \nlAxisX{-2}{5} + \nlnumnum[red!20]{-1.4142}[-\sqrt{2}]{o}{3.1416}[\pi]{c} +\end{tikzpicture} +\end{center} + + +\section{Conclusion} + +This is a really simple package (my first attempt at a package) but one that, I hope, can help you draw stuff like: + +\begin{center} + \begin{tikzpicture} + \nlAxisX{-2}{5} + \nlnumnum[red!20]{-1.4142}[-\sqrt{2}]{o}{3.1416}[\pi]{c} + \nlnuminf[pattern=north west lines]{1.4142}[\sqrt{2}]{c}[.7] + \nlinfnum{2}{o}[.3] + \end{tikzpicture} +\end{center} + +somewhat quickly and easily. By the way, the instructions for this are: + +\begin{Verbatim}[gobble=1,xleftmargin=5mm] + \begin{tikzpicture} + \nlAxisX{-2}{5} + \nlnumnum[red!20]{-1.4142}[-\sqrt{2}]{o}{3.1416}[\pi]{c} + \nlnuminf[pattern=north west lines]{1.4142}[\sqrt{2}]{c}[.7] + \nlinfnum{2}{o}[.3] + \end{tikzpicture} +\end{Verbatim} + + +\end{document}
\ No newline at end of file |