summaryrefslogtreecommitdiff
path: root/graphics/pgf/contrib/tikzpingus/tikzpingus-signs.lib.tex
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pgf/contrib/tikzpingus/tikzpingus-signs.lib.tex')
-rw-r--r--graphics/pgf/contrib/tikzpingus/tikzpingus-signs.lib.tex53
1 files changed, 53 insertions, 0 deletions
diff --git a/graphics/pgf/contrib/tikzpingus/tikzpingus-signs.lib.tex b/graphics/pgf/contrib/tikzpingus/tikzpingus-signs.lib.tex
new file mode 100644
index 0000000000..f1a42a0556
--- /dev/null
+++ b/graphics/pgf/contrib/tikzpingus/tikzpingus-signs.lib.tex
@@ -0,0 +1,53 @@
+% Florian Sihler, 2022
+% Licensed under GNU General Public License version 3
+% https://opensource.org/licenses/gpl-3.0.html
+\pingu@create@wing@extra{signpost}{%
+ signpost \@lr/.forward to = /pingu/sign post \@lr,
+ sign post \@lr/.code = {\pingu@set@extra{signpost\@lr}{true}\@namedef{pingu@signpost@\@lr}{##1}},
+ sign post \@lr/.default = {},
+ signpost \@lr\space color/.forward to = /pingu/sign post \@lr\space color,
+ sign post \@lr\space color/.code = \pingu@color{signpost\@lr}{##1},
+ signpost \@lr\space fontcolor/.forward to = /pingu/sign post \@lr\space font color,
+ sign post \@lr\space font color/.code = \pingu@color{signpost\@lr @font}{##1},
+}{sign post \@lr\space color=brown!70!black, sign post \@lr\space font color=white!90!brown}
+\def\pingu@draw@wi@signpost#1{%
+ \pingu@setup@wing{signpost}{#1}%
+ \def\@rot{\if@pingu@wing@item@side@left@-5\else+5\fi}%
+\scope[rotate around={\@angle+\@rot:(\pingu@name-wing-#1)}]
+ \pingu@block[thick]{\@col}(\pingu@name-wing-#1)++(\@sidesign*-.225mm,-2mm) -- ++(0,15mm) arc(180:0:\@sidesign*.45mm and .375mm) -- ++(0,-15mm) arc(360:180:\@sidesign*.45mm and .375mm) -- cycle;
+ \path (\pingu@name-wing-#1)++(\@sidesign*.225mm,13mm) node[fill=\@col,rounded corners=2\p@,minimum width=14mm,minimum height=8mm,align=center,rotate=\@angle+\@rot,text=\csname pingu@color@signpost#1@font\endcsname] {\csname pingu@signpost@#1\endcsname};
+\endscope
+}
+
+\pingu@create@extra{banner}{%
+ banner/.code = \pingu@set@extra{banner}{true}\@namedef{pingu@banner}{#1},
+ banner/.default = Bannertext,
+ banner band/.code = \pingu@color{banner@band}{#1},
+ banner text color/.code = \pingu@color{banner@text@color}{#1},
+ banner sticks color/.style={/pingu/banner stick left color=#1,/pingu/banner stick right color=#1},
+ banner stick left color/.code = \pingu@color{banner@stick@left}{#1},
+ banner stick right color/.code = \pingu@color{banner@stick@right}{#1},
+ banner sticks length/.style={/pingu/banner stick left length=#1,/pingu/banner stick right length=#1},
+ banner stick left length/.code = \@namedef{pingu@banner@stick@left@l}{#1},
+ banner stick right length/.code = \@namedef{pingu@banner@stick@right@l}{#1},
+ banner raise/.code = \@namedef{pingu@banner@raise}{#1},
+ banner height/.code = \@namedef{pingu@banner@height}{#1},
+ banner font/.code = \@namedef{pingu@banner@font}{#1},
+ banner bent/.code = \@namedef{pingu@banner@bent}{#1}
+}{banner band=pingu@white!91!pingu@black,banner text color=pingu@black,banner sticks color=pingu@bronze,banner stick left length=20mm, banner stick right length=20mm,banner bent=30,banner raise=-1mm,banner height=4mm,banner font=\bfseries}
+
+\usetikzlibrary{decorations.text}
+\def\pingu@draw@ea@banner{%
+\pingu@setup@wing{staff}{left}% we do not need the staff color, but we will use it
+\scope[rotate around={\@angle:(\pingu@name-wing-left)}]
+ \pingu@block{\pingu@color@banner@stick@left}(\pingu@name-wing-left)++(\@sidesign*-.2mm,-7mm) -- ++(0,\pingu@banner@stick@left@l) arc(180:0:\@sidesign*.4mm and .3mm) coordinate[pos=.5] (\pingu@name-s-left) -- ++(0,-\pingu@banner@stick@left@l) arc(360:180:\@sidesign*.4mm and .3mm) -- cycle;
+ \path (\pingu@name-s-left)++(.5mm,\pingu@banner@height) coordinate (\pingu@name-s-left-top) ++(0,-2*\pingu@banner@height) coordinate (\pingu@name-s-left-bot);
+\endscope
+\pingu@setup@wing{staff}{right}% we do not need the staff color, but we will use it
+\scope[rotate around={\@angle:(\pingu@name-wing-right)}]
+ \pingu@block{\pingu@color@banner@stick@right}(\pingu@name-wing-right)++(\@sidesign*-.2mm,-7mm) -- ++(0,\pingu@banner@stick@right@l) arc(180:0:\@sidesign*.4mm and .3mm) coordinate[pos=.5] (\pingu@name-s-right) -- ++(0,-\pingu@banner@stick@right@l) arc(360:180:\@sidesign*.4mm and .3mm) -- cycle;
+ \path (\pingu@name-s-right)++(-.5mm,\pingu@banner@height) coordinate (\pingu@name-s-right-top) ++(0,-2*\pingu@banner@height) coordinate (\pingu@name-s-right-bot);
+\endscope
+\pingu@block[rounded corners=.3mm]{\pingu@color@banner@band} (\pingu@name-s-left-top) to[bend right=\pingu@banner@bent] (\pingu@name-s-right-top) -- (\pingu@name-s-right-bot) to[bend left=\pingu@banner@bent] (\pingu@name-s-left-bot) -- cycle;
+\path[postaction={decorate},decoration={text color=\pingu@color@banner@text@color,text along path, raise=\pingu@banner@raise, text={|\pingu@banner@font|\pingu@banner},text align={center,left indent=1mm,right indent=1mm}}] (\pingu@name-s-right) to[bend left=\pingu@banner@bent+3] (\pingu@name-s-left);
+} \ No newline at end of file