summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tkz/pgfornament/latex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/tkz/pgfornament/latex')
-rw-r--r--macros/latex/contrib/tkz/pgfornament/latex/pgflibraryam.code.tex42
-rw-r--r--macros/latex/contrib/tkz/pgfornament/latex/pgflibrarypgfhan.code.tex110
-rw-r--r--macros/latex/contrib/tkz/pgfornament/latex/pgflibraryvectorian.code.tex220
-rw-r--r--macros/latex/contrib/tkz/pgfornament/latex/pgfornament.sty229
-rw-r--r--macros/latex/contrib/tkz/pgfornament/latex/tikzrput.sty113
5 files changed, 714 insertions, 0 deletions
diff --git a/macros/latex/contrib/tkz/pgfornament/latex/pgflibraryam.code.tex b/macros/latex/contrib/tkz/pgfornament/latex/pgflibraryam.code.tex
new file mode 100644
index 0000000000..ee4fa06d32
--- /dev/null
+++ b/macros/latex/contrib/tkz/pgfornament/latex/pgflibraryam.code.tex
@@ -0,0 +1,42 @@
+% pgflibraryam.code.tex (utf8 encoding)
+% Copyright 2020 Alain Matthes
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status “maintained”.
+%
+% The Current Maintainer of this work is Alain Matthes.
+% Original idea of F Fradin and H Voss
+\typeout{2020/04/06 1.1 pgflibraryam.code.tex}
+\makeatletter
+
+% dimensions des motifs
+\def\@pgfornamentDim#1{% dim en bp
+\ifcase#1\relax%
+\or\def\@pgfornamentX{136}\def\@pgfornamentY{107}% 1
+\or\def\@pgfornamentX{133}\def\@pgfornamentY{48}% 2
+\or\def\@pgfornamentX{133}\def\@pgfornamentY{48}% 2
+\fi%
+}%
+% appels des motifs
+\def\pgf@@ornament#1{%
+\begingroup
+\def\i{\pgfusepath{clip}}
+\let\o\pgfpathclose
+\let\s\pgfusepathqfillstroke
+\def\p ##1##2{\pgfqpoint{##1bp}{##2bp}}
+\def\m ##1 ##2 {\pgfpathmoveto{\p{##1}{##2}}}
+\def\l ##1 ##2 {\pgfpathlineto{\p{##1}{##2}}}
+\def\r ##1 ##2 ##3 ##4 {\pgfpathrectangle{\p{##1}{##2}}{\p{##3}{##4}}}
+\def\c ##1 ##2 ##3 ##4 ##5 ##6 {%
+\pgfpathcurveto{\p{##1}{##2}}{\p{##3}{##4}}{\p{##5}{##6}}}%
+\@@input am#1.pgf
+%\@nameuse{pgf@@am@#1}%
+\endgroup}%
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/pgfornament/latex/pgflibrarypgfhan.code.tex b/macros/latex/contrib/tkz/pgfornament/latex/pgflibrarypgfhan.code.tex
new file mode 100644
index 0000000000..45e05ffee2
--- /dev/null
+++ b/macros/latex/contrib/tkz/pgfornament/latex/pgflibrarypgfhan.code.tex
@@ -0,0 +1,110 @@
+% pgflibraryhan.code.tex (utf8 encoding)
+% Copyright 2020 LIM LianTze,ZHANG Chennan and Alain Matthes
+% Based on the original file pgflibraryhan.code.tex v0.33 2019/08/10
+% pgflibraryhan.code.tex v0.33 2019/08/10
+% Authors: pgf and LaTeX code by LIM LianTze
+% based on CAD drawing by ZHANG Chennan
+%---------%---------%---------%---------%---------%---------%---------%---------
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status “maintained”.
+%
+% The Current Maintainer of this work is Alain Matthes.
+%---------%---------%---------%---------%---------%---------%---------%---------
+% Original idea of F Fradin and H Voss
+\typeout{2020/04/03 1.0 pgflibraryhan.code.tex}
+%---------%---------%---------%---------%---------%---------%---------%---------
+% modification am \@pgfornamentDim#1 instead of pgfornamenthanDim#1
+%---------%---------%---------%---------%---------%---------%---------%---------
+\makeatletter
+\def\@pgfornamentDim#1{% dim in bp
+\ifcase#1\relax%
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 1
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 2
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 3
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 4
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 5
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 6
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 7
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 8
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 9
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 10
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 11
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 12
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 13
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 14
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 15
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 16
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 17
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 18
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 19
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 20
+\or\def\@pgfornamentX{260}\def\@pgfornamentY{260}% 21
+\or\def\@pgfornamentX{260}\def\@pgfornamentY{260}% 22
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 23
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 24
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 25
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 26
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 27
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 28
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{10}% 29
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{10}% 30
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{40}% 31
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{40}% 32
+\or\def\@pgfornamentX{75}\def\@pgfornamentY{60}% 33
+\or\def\@pgfornamentX{75}\def\@pgfornamentY{60}% 34
+\or\def\@pgfornamentX{100}\def\@pgfornamentY{60}% 35
+\or\def\@pgfornamentX{100}\def\@pgfornamentY{60}% 36
+\or\def\@pgfornamentX{125}\def\@pgfornamentY{110}% 37
+\or\def\@pgfornamentX{125}\def\@pgfornamentY{110}% 38
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{110}% 39
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{110}% 40
+\or\def\@pgfornamentX{115}\def\@pgfornamentY{60}% 41
+\or\def\@pgfornamentX{115}\def\@pgfornamentY{60}% 42
+\or\def\@pgfornamentX{140}\def\@pgfornamentY{60}% 43
+\or\def\@pgfornamentX{140}\def\@pgfornamentY{60}% 44
+\or\def\@pgfornamentX{130}\def\@pgfornamentY{60}% 45
+\or\def\@pgfornamentX{130}\def\@pgfornamentY{60}% 46
+\or\def\@pgfornamentX{155}\def\@pgfornamentY{60}% 47
+\or\def\@pgfornamentX{155}\def\@pgfornamentY{60}% 48
+\or\def\@pgfornamentX{360}\def\@pgfornamentY{360}% 49
+\or\def\@pgfornamentX{360}\def\@pgfornamentY{360}% 50
+\or\def\@pgfornamentX{360}\def\@pgfornamentY{360}% 51
+\or\def\@pgfornamentX{360}\def\@pgfornamentY{360}% 52
+\or\def\@pgfornamentX{360}\def\@pgfornamentY{360}% 53
+\or\def\@pgfornamentX{360}\def\@pgfornamentY{360}% 54
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 55
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 56
+\or\def\@pgfornamentX{200}\def\@pgfornamentY{200}% 57
+\or\def\@pgfornamentX{810}\def\@pgfornamentY{270}% 58
+\or\def\@pgfornamentX{810}\def\@pgfornamentY{270}% 59
+\or\def\@pgfornamentX{450}\def\@pgfornamentY{120}% 60
+\or\def\@pgfornamentX{450}\def\@pgfornamentY{120}% 61
+\or\def\@pgfornamentX{400}\def\@pgfornamentY{180}% 62
+\or\def\@pgfornamentX{400}\def\@pgfornamentY{180}% 63
+\or\def\@pgfornamentX{350}\def\@pgfornamentY{210}% 64
+\or\def\@pgfornamentX{350}\def\@pgfornamentY{210}% 65
+\or\def\@pgfornamentX{400}\def\@pgfornamentY{180}% 66
+\or\def\@pgfornamentX{400}\def\@pgfornamentY{180}% 67
+\or\def\@pgfornamentX{400}\def\@pgfornamentY{170}% 68
+\or\def\@pgfornamentX{400}\def\@pgfornamentY{170}% 69
+\or\def\@pgfornamentX{400}\def\@pgfornamentY{140}% 70
+\or\def\@pgfornamentX{400}\def\@pgfornamentY{140}% 71
+\or\def\@pgfornamentX{300}\def\@pgfornamentY{300}% 72
+\or\def\@pgfornamentX{300}\def\@pgfornamentY{300}% 73
+\or\def\@pgfornamentX{300}\def\@pgfornamentY{300}% 74
+\or\def\@pgfornamentX{300}\def\@pgfornamentY{300}% 75
+\or\def\@pgfornamentX{120}\def\@pgfornamentY{122.5}% 76
+\or\def\@pgfornamentX{120}\def\@pgfornamentY{122.5}% 77
+\or\def\@pgfornamentX{123}\def\@pgfornamentY{69}% 78
+\fi%
+}%
+\makeatother
+\endinput
+
diff --git a/macros/latex/contrib/tkz/pgfornament/latex/pgflibraryvectorian.code.tex b/macros/latex/contrib/tkz/pgfornament/latex/pgflibraryvectorian.code.tex
new file mode 100644
index 0000000000..3f7a138281
--- /dev/null
+++ b/macros/latex/contrib/tkz/pgfornament/latex/pgflibraryvectorian.code.tex
@@ -0,0 +1,220 @@
+% pgflibraryvectorian.code.tex (utf8 encoding)
+% Copyright 2020 Alain Matthes
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status “maintained”.
+%
+% The Current Maintainer of this work is Alain Matthes.
+% Original idea of F Fradin and H Voss
+\typeout{2020/04/06 1.1 pgflibraryvectorian.code.tex}
+\makeatletter
+% dimensions des motifs
+\def\@pgfornamentDim#1{% dim en bp
+\ifcase#1\relax%
+\or\def\@pgfornamentX{136}\def\@pgfornamentY{107}% 1
+\or\def\@pgfornamentX{134}\def\@pgfornamentY{48}% 2
+\or\def\@pgfornamentX{130}\def\@pgfornamentY{65}% 3
+\or\def\@pgfornamentX{133}\def\@pgfornamentY{133}% 4
+\or\def\@pgfornamentX{129}\def\@pgfornamentY{146}% 5
+\or\def\@pgfornamentX{134}\def\@pgfornamentY{148}% 6
+\or\def\@pgfornamentX{136}\def\@pgfornamentY{135}% 7
+\or\def\@pgfornamentX{134}\def\@pgfornamentY{134}% 8
+\or\def\@pgfornamentX{79}\def\@pgfornamentY{105}% 9
+\or\def\@pgfornamentX{80}\def\@pgfornamentY{99}% 10
+\or\def\@pgfornamentX{123}\def\@pgfornamentY{67}% 11
+\or\def\@pgfornamentX{136}\def\@pgfornamentY{136}% 12
+\or\def\@pgfornamentX{136}\def\@pgfornamentY{236}% 13
+\or\def\@pgfornamentX{123}\def\@pgfornamentY{67}% 14
+\or\def\@pgfornamentX{103}\def\@pgfornamentY{52}% 15
+\or\def\@pgfornamentX{103}\def\@pgfornamentY{52}% 16
+\or\def\@pgfornamentX{74}\def\@pgfornamentY{59}% 17
+\or\def\@pgfornamentX{74}\def\@pgfornamentY{59}% 18
+\or\def\@pgfornamentX{81}\def\@pgfornamentY{81}% 19
+\or\def\@pgfornamentX{81}\def\@pgfornamentY{81}% 20
+\or\def\@pgfornamentX{70}\def\@pgfornamentY{58}% 21
+\or\def\@pgfornamentX{34}\def\@pgfornamentY{61}% 22
+\or\def\@pgfornamentX{68}\def\@pgfornamentY{55}% 23
+\or\def\@pgfornamentX{79}\def\@pgfornamentY{76}% 24
+\or\def\@pgfornamentX{80}\def\@pgfornamentY{88}% 25
+\or\def\@pgfornamentX{59}\def\@pgfornamentY{120}% 26
+\or\def\@pgfornamentX{101}\def\@pgfornamentY{98}% 27
+\or\def\@pgfornamentX{52}\def\@pgfornamentY{102}% 28
+\or\def\@pgfornamentX{65}\def\@pgfornamentY{65}% 29
+\or\def\@pgfornamentX{63}\def\@pgfornamentY{64}% 30
+\or\def\@pgfornamentX{48}\def\@pgfornamentY{48}% 31
+\or\def\@pgfornamentX{48}\def\@pgfornamentY{48}% 32
+\or\def\@pgfornamentX{85}\def\@pgfornamentY{85}% 33
+\or\def\@pgfornamentX{85}\def\@pgfornamentY{85}% 34
+\or\def\@pgfornamentX{97}\def\@pgfornamentY{97}% 35
+\or\def\@pgfornamentX{97}\def\@pgfornamentY{97}% 36
+\or\def\@pgfornamentX{105}\def\@pgfornamentY{104}% 37
+\or\def\@pgfornamentX{105}\def\@pgfornamentY{104}% 38
+\or\def\@pgfornamentX{112}\def\@pgfornamentY{112}% 39
+\or\def\@pgfornamentX{112}\def\@pgfornamentY{112}% 40
+\or\def\@pgfornamentX{111}\def\@pgfornamentY{113}% 41
+\or\def\@pgfornamentX{111}\def\@pgfornamentY{113}% 42
+\or\def\@pgfornamentX{123}\def\@pgfornamentY{63}% 43
+\or\def\@pgfornamentX{123}\def\@pgfornamentY{63}% 44
+\or\def\@pgfornamentX{385}\def\@pgfornamentY{64}% 45
+\or\def\@pgfornamentX{453}\def\@pgfornamentY{97}% 46
+\or\def\@pgfornamentX{114}\def\@pgfornamentY{32}% 47
+\or\def\@pgfornamentX{114}\def\@pgfornamentY{32}% 48
+\or\def\@pgfornamentX{163}\def\@pgfornamentY{61}% 49
+\or\def\@pgfornamentX{164}\def\@pgfornamentY{125}% 50
+\or\def\@pgfornamentX{164}\def\@pgfornamentY{125}% 51
+\or\def\@pgfornamentX{248}\def\@pgfornamentY{197}% 52
+\or\def\@pgfornamentX{134}\def\@pgfornamentY{134}% 53
+\or\def\@pgfornamentX{134}\def\@pgfornamentY{134}% 54
+\or\def\@pgfornamentX{269}\def\@pgfornamentY{116}% 55
+\or\def\@pgfornamentX{269}\def\@pgfornamentY{116}% 56
+\or\def\@pgfornamentX{207}\def\@pgfornamentY{103}% 57
+\or\def\@pgfornamentX{228}\def\@pgfornamentY{116}% 58
+\or\def\@pgfornamentX{204}\def\@pgfornamentY{102}% 59
+\or\def\@pgfornamentX{451}\def\@pgfornamentY{189}% 60
+\or\def\@pgfornamentX{205}\def\@pgfornamentY{205}% 61
+\or\def\@pgfornamentX{205}\def\@pgfornamentY{205}% 62
+\or\def\@pgfornamentX{212}\def\@pgfornamentY{212}% 63
+\or\def\@pgfornamentX{212}\def\@pgfornamentY{212}% 64
+\or\def\@pgfornamentX{132}\def\@pgfornamentY{166}% 65
+\or\def\@pgfornamentX{177}\def\@pgfornamentY{175}% 66
+\or\def\@pgfornamentX{80}\def\@pgfornamentY{155}% 67
+\or\def\@pgfornamentX{361}\def\@pgfornamentY{154}% 68
+\or\def\@pgfornamentX{448}\def\@pgfornamentY{227}% 69
+\or\def\@pgfornamentX{226}\def\@pgfornamentY{79}% 70
+\or\def\@pgfornamentX{443}\def\@pgfornamentY{81}% 71
+\or\def\@pgfornamentX{216}\def\@pgfornamentY{58}% 72
+\or\def\@pgfornamentX{216}\def\@pgfornamentY{58}% 73
+\or\def\@pgfornamentX{308}\def\@pgfornamentY{93}% 74
+\or\def\@pgfornamentX{373}\def\@pgfornamentY{120}% 75
+\or\def\@pgfornamentX{308}\def\@pgfornamentY{93}% 76
+\or\def\@pgfornamentX{207}\def\@pgfornamentY{89}% 77
+\or\def\@pgfornamentX{207}\def\@pgfornamentY{132}% 78
+\or\def\@pgfornamentX{249}\def\@pgfornamentY{122}% 79
+\or\def\@pgfornamentX{454}\def\@pgfornamentY{31}% 80
+\or\def\@pgfornamentX{176}\def\@pgfornamentY{45}% 81
+\or\def\@pgfornamentX{454}\def\@pgfornamentY{24}% 82
+\or\def\@pgfornamentX{449}\def\@pgfornamentY{20}% 83
+\or\def\@pgfornamentX{290}\def\@pgfornamentY{57}% 84
+\or\def\@pgfornamentX{453}\def\@pgfornamentY{22}% 85
+\or\def\@pgfornamentX{454}\def\@pgfornamentY{17}% 86
+\or\def\@pgfornamentX{360}\def\@pgfornamentY{44}% 87
+\or\def\@pgfornamentX{454}\def\@pgfornamentY{15}% 88
+\or\def\@pgfornamentX{454}\def\@pgfornamentY{10}% 89
+\or\def\@pgfornamentX{30}\def\@pgfornamentY{30}% 90
+\or\def\@pgfornamentX{44}\def\@pgfornamentY{29}% 91
+\or\def\@pgfornamentX{43}\def\@pgfornamentY{29}% 92
+\or\def\@pgfornamentX{59}\def\@pgfornamentY{29}% 93
+\or\def\@pgfornamentX{59}\def\@pgfornamentY{29}% 94
+\or\def\@pgfornamentX{43}\def\@pgfornamentY{29}% 95
+\or\def\@pgfornamentX{30}\def\@pgfornamentY{15}% 96
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{14}% 97
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{14}% 98
+\or\def\@pgfornamentX{45}\def\@pgfornamentY{15}% 99
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{30}% 100
+\or\def\@pgfornamentX{132}\def\@pgfornamentY{30}% 101
+\or\def\@pgfornamentX{43}\def\@pgfornamentY{29}%102
+\or\def\@pgfornamentX{42}\def\@pgfornamentY{30}%103
+\or\def\@pgfornamentX{44}\def\@pgfornamentY{29}%104
+\or\def\@pgfornamentX{45}\def\@pgfornamentY{30}%105
+\or\def\@pgfornamentX{44}\def\@pgfornamentY{30}%106
+\or\def\@pgfornamentX{44}\def\@pgfornamentY{29}%107
+\or\def\@pgfornamentX{59}\def\@pgfornamentY{29}%108
+\or\def\@pgfornamentX{72}\def\@pgfornamentY{29}%109
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{15}%110
+\or\def\@pgfornamentX{43}\def\@pgfornamentY{28}%111
+\or\def\@pgfornamentX{15}\def\@pgfornamentY{59}%112
+\or\def\@pgfornamentX{57}\def\@pgfornamentY{28}%113
+\or\def\@pgfornamentX{44}\def\@pgfornamentY{29}%114
+\or\def\@pgfornamentX{43}\def\@pgfornamentY{29}%115
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{29}%116
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{29}%117
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{29}%118
+\or\def\@pgfornamentX{44}\def\@pgfornamentY{29}%119
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{44}%120
+\or\def\@pgfornamentX{30}\def\@pgfornamentY{44}%121
+\or\def\@pgfornamentX{44}\def\@pgfornamentY{29}%122
+\or\def\@pgfornamentX{59}\def\@pgfornamentY{29}%123
+\or\def\@pgfornamentX{58}\def\@pgfornamentY{59}%124
+\or\def\@pgfornamentX{30}\def\@pgfornamentY{44}%125
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{43}%126
+\or\def\@pgfornamentX{44}\def\@pgfornamentY{28}%127
+\or\def\@pgfornamentX{45}\def\@pgfornamentY{29}%128
+\or\def\@pgfornamentX{44}\def\@pgfornamentY{29}%129
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{29}%130
+\or\def\@pgfornamentX{45}\def\@pgfornamentY{44}%131
+\or\def\@pgfornamentX{45}\def\@pgfornamentY{44}%132
+\or\def\@pgfornamentX{15}\def\@pgfornamentY{15}%133
+\or\def\@pgfornamentX{15}\def\@pgfornamentY{15}%134
+\or\def\@pgfornamentX{15}\def\@pgfornamentY{14}%135
+\or\def\@pgfornamentX{72}\def\@pgfornamentY{44}%136
+\or\def\@pgfornamentX{149}\def\@pgfornamentY{74}%137
+\or\def\@pgfornamentX{15}\def\@pgfornamentY{7}%138
+\or\def\@pgfornamentX{73}\def\@pgfornamentY{37}%139
+\or\def\@pgfornamentX{15}\def\@pgfornamentY{15}%140
+\or\def\@pgfornamentX{15}\def\@pgfornamentY{15}%141
+\or\def\@pgfornamentX{30}\def\@pgfornamentY{30}%142
+\or\def\@pgfornamentX{30}\def\@pgfornamentY{30}%143
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{30}%144
+\or\def\@pgfornamentX{15}\def\@pgfornamentY{15}%145
+\or\def\@pgfornamentX{15}\def\@pgfornamentY{15}%146
+\or\def\@pgfornamentX{31}\def\@pgfornamentY{29}%147
+\or\def\@pgfornamentX{30}\def\@pgfornamentY{44}%148
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{28}%149
+\or\def\@pgfornamentX{30}\def\@pgfornamentY{44}%150
+\or\def\@pgfornamentX{43}\def\@pgfornamentY{29}%151
+\or\def\@pgfornamentX{57}\def\@pgfornamentY{28}%152
+\or\def\@pgfornamentX{57}\def\@pgfornamentY{28}%153
+\or\def\@pgfornamentX{34}\def\@pgfornamentY{17}%154
+\or\def\@pgfornamentX{34}\def\@pgfornamentY{17}%155
+\or\def\@pgfornamentX{45}\def\@pgfornamentY{28}%156
+\or\def\@pgfornamentX{44}\def\@pgfornamentY{29}%157
+\or\def\@pgfornamentX{58}\def\@pgfornamentY{29}%158
+\or\def\@pgfornamentX{43}\def\@pgfornamentY{29}%159
+\or\def\@pgfornamentX{43}\def\@pgfornamentY{30}%160
+\or\def\@pgfornamentX{44}\def\@pgfornamentY{29}%161
+\or\def\@pgfornamentX{30}\def\@pgfornamentY{44}%162
+\or\def\@pgfornamentX{46}\def\@pgfornamentY{29}%163
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{44}%164
+\or\def\@pgfornamentX{45}\def\@pgfornamentY{26}%165
+\or\def\@pgfornamentX{44}\def\@pgfornamentY{29}%166
+\or\def\@pgfornamentX{44}\def\@pgfornamentY{29}%167
+\or\def\@pgfornamentX{59}\def\@pgfornamentY{30}%168
+\or\def\@pgfornamentX{58}\def\@pgfornamentY{29}%169
+\or\def\@pgfornamentX{59}\def\@pgfornamentY{30}%170
+\or\def\@pgfornamentX{30}\def\@pgfornamentY{29}%171
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{15}%172
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{44}%173
+\or\def\@pgfornamentX{28}\def\@pgfornamentY{44}%174
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{42}%175
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{43}%176
+\or\def\@pgfornamentX{31}\def\@pgfornamentY{44}%177
+\or\def\@pgfornamentX{28}\def\@pgfornamentY{44}%178
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{44}%179
+\or\def\@pgfornamentX{30}\def\@pgfornamentY{45}%180
+\or\def\@pgfornamentX{43}\def\@pgfornamentY{30}%181
+\or\def\@pgfornamentX{45}\def\@pgfornamentY{29}%182
+\or\def\@pgfornamentX{44}\def\@pgfornamentY{27}%183
+\or\def\@pgfornamentX{42}\def\@pgfornamentY{29}%184
+\or\def\@pgfornamentX{45}\def\@pgfornamentY{29}%185
+\or\def\@pgfornamentX{43}\def\@pgfornamentY{14}%186
+\or\def\@pgfornamentX{28}\def\@pgfornamentY{29}%187
+\or\def\@pgfornamentX{30}\def\@pgfornamentY{30}%188
+\or\def\@pgfornamentX{44}\def\@pgfornamentY{29}%189
+\or\def\@pgfornamentX{44}\def\@pgfornamentY{29}%190
+\or\def\@pgfornamentX{73}\def\@pgfornamentY{58}%191
+\or\def\@pgfornamentX{29}\def\@pgfornamentY{44}%192
+\or\def\@pgfornamentX{44}\def\@pgfornamentY{14}%193
+\or\def\@pgfornamentX{90}\def\@pgfornamentY{90}%194
+\or\def\@pgfornamentX{90}\def\@pgfornamentY{90}%195
+\or\def\@pgfornamentX{148}\def\@pgfornamentY{30}%196
+
+\fi%
+}%
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/pgfornament/latex/pgfornament.sty b/macros/latex/contrib/tkz/pgfornament/latex/pgfornament.sty
new file mode 100644
index 0000000000..ec023d4306
--- /dev/null
+++ b/macros/latex/contrib/tkz/pgfornament/latex/pgfornament.sty
@@ -0,0 +1,229 @@
+% pgfornament.sty (utf8 encoding)
+% Copyright 2020 Alain Matthes
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status “maintained”.
+%
+% The Current Maintainer of this work is Alain Matthes.
+%---------%---------%---------%---------%---------%---------%---------%---------
+% First version created by Alain Matthes le 2012-02-22.
+%---------%---------%---------%---------%---------%---------%---------%---------
+% Inspired from psvectorian P Fradin H Voss
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{tikz,pgfopts}
+\ProvidesPackage{pgfornament}[2020/04/06 v1.1 vector ornaments]
+\gdef\pgfOrnamentsObject{pgflibraryvectorian.code.tex}
+\gdef\OrnamentsFamily{vectorian}
+\pgfkeys{%
+ /pgfOrnaments/object/.cd,
+ /pgfOrnaments/object/.code = \gdef\pgfOrnamentsObject{pgflibrary#1.code.tex}
+ \gdef\OrnamentsFamily{#1}%
+}
+\ProcessPgfOptions{/pgfOrnaments}
+\input{\pgfOrnamentsObject}%
+%---------%---------%---------%---------%---------%---------%---------%--------
+% tools
+%---------%---------%---------%---------%---------%---------%---------%--------
+\makeatletter
+\newenvironment{newfamily}[1][vectorian]{%
+ \global\let\SavedOrnamentsFamily\OrnamentsFamily
+ \newpgfornamentfamily{#1}
+ }{\newpgfornamentfamily{\SavedOrnamentsFamily}}%
+
+\def\pgf@@ornament#1{%
+\begingroup
+\def\ubb{\pgfusepath{use as bounding box}}
+\def\i{\pgfusepath{clip}}%
+\def\k{\pgfusepath{stroke}}%
+\let\o\pgfpathclose
+\let\s\pgfusepathqfillstroke
+\def\p ##1##2{\pgfqpoint{##1bp}{##2bp}}%
+\def\m ##1 ##2 {\pgfpathmoveto{\p{##1}{##2}}}%
+\def\l ##1 ##2 {\pgfpathlineto{\p{##1}{##2}}}%
+\def\r ##1 ##2 ##3 ##4 {\pgfpathrectangle{\p{##1}{##2}}{\p{##3}{##4}}}%
+\def\c ##1 ##2 ##3 ##4 ##5 ##6 {%
+\pgfpathcurveto{\p{##1}{##2}}{\p{##3}{##4}}{\p{##5}{##6}}}%
+\@@input \OrnamentsFamily#1.pgf%
+\endgroup}%
+
+\newcommand{\callornament}[1]{%
+\begingroup
+\def\ubb{\pgfusepath{use as bounding box}}
+\def\i{\pgfusepath{clip}}%
+\let\o\pgfpathclose
+\let\s\pgfusepathqfillstroke
+\def\p ##1##2{\pgfqpoint{##1bp}{##2bp}}%
+\def\m ##1 ##2 {\pgfpathmoveto{\p{##1}{##2}}}%
+\def\l ##1 ##2 {\pgfpathlineto{\p{##1}{##2}}}%
+\def\r ##1 ##2 ##3 ##4 {\pgfpathrectangle{\p{##1}{##2}}{%
+ \p{##3}{##4}}}%
+\def\c ##1 ##2 ##3 ##4 ##5 ##6 {%
+\pgfpathcurveto{\p{##1}{##2}}{\p{##3}{##4}}{\p{##5}{##6}}}%
+\@@input #1\relax
+\endgroup}
+%---------%---------%---------%---------%---------%---------%---------%---------
+% Les options de \pgfornament sont:
+%
+% scale : nombre (échelle, 1 par défaut)
+% width : nombre + unité (largeur, naturelle par défaut)
+% height : nombre + unité (hauteur, naturelle par défaut)
+% color : couleur ( par défaut couleur courante )
+% symmetry=h : true/false (symétrie horizontale, false par défaut)
+% symmetry=v : true/false (symétrie verticale, false par défaut)
+% symmetry=c : true/false (symétrie centrale h+v,false par défaut)
+%---------%---------%---------%---------%---------%---------%---------%--------
+\tikzset{pgfornamentstyle/.style={}}%
+\pgfkeys{%
+ /ornament/.cd,
+ scale/.code = {\def\pgfornamentscale{#1}},
+ width/.code = {\def\pgfornamentwidth{#1}},
+ height/.code = {\def\pgfornamentheight{#1}},
+ color/.code = {\def\pgfornamentcolor{#1}},
+ opacity/.code = {\def\pgfornamentopacity{#1}},
+ anchor/.code = {\def\pgfornamentanchor{#1}},
+ ydelta/.code = {\def\pgfornamentydelta{#1}},
+ symmetry/.is choice,
+ symmetry/v/.code = {\tikzset{pgfornamentstyle/.append
+ style={cm={-1,0,0,1,(0,0)}}}},
+ symmetry/c/.code = {\tikzset{pgfornamentstyle/.append
+ style={cm={-1,0,0,-1,(0,0)}}}},
+ symmetry/h/.code = {\tikzset{pgfornamentstyle/.append
+ style={cm={1,0,0,-1,(0,0)}}}},
+ symmetry/none/.code = {\tikzset{pgfornamentstyle/.append style={cm={1,0,0,1,(0,0)}}}}%
+}%
+%---------%---------%---------%---------%---------%---------%---------%---------
+\def\pgfornament{\pgfutil@ifnextchar[{\pgf@ornament}{\pgf@ornament[]}}%
+\def\pgf@ornament[#1]#2{%
+\pgfkeys{%
+ /ornament/.cd,
+ scale = 1,
+ opacity = {},
+ width = {},
+ height = {},
+ color = {},
+ ydelta = 0 pt,
+ symmetry = none ,
+ anchor = center
+ }%
+\pgfqkeys{/ornament}{#1}%
+\ifx\pgfornamentcolor\empty
+ \tikzset{pgfornamentstyle/.append style={}}%
+\else
+ \tikzset{pgfornamentstyle/.append style={color=\pgfornamentcolor}}%
+\fi
+\ifx\pgfornamentopacity\empty
+ \tikzset{pgfornamentstyle/.append style={}}%
+\else
+ \tikzset{pgfornamentstyle/.append style={opacity=\pgfornamentopacity}}%
+\fi
+\ifx\pgfornamentwidth\empty
+ \else
+ \@pgfornamentDim{#2}
+ \pgfmathsetmacro{\pgfornamentscale}{\pgfornamentwidth/\@pgfornamentX bp}%
+\fi
+\ifx\pgfornamentheight\empty
+ \else
+ \@pgfornamentDim{#2}
+ \pgfmathsetmacro{\pgfornamentscale}{\pgfornamentheight/\@pgfornamentY bp}%
+\fi
+\begin{tikzpicture}[%
+baseline={([yshift=\pgfornamentydelta]current bounding box.\pgfornamentanchor)},
+ pgfornamentstyle]
+ \pgftransformscale{\pgfornamentscale}%
+ \pgf@@ornament{#2}%
+\end{tikzpicture}%
+\tikzset{pgfornamentstyle/.style={cm={1,0,0,1,(0,0)}}}
+}% end pgfornament
+
+\gdef\ornamenttopos{.5}
+\gdef\ornamenttoanchor{center}
+\gdef\ornamenttosymmetry{none}
+\tikzset{options default/.style={anchor=center,
+ sloped,
+ allow upside down,
+ inner sep=0pt}}
+\tikzset{ornament/at/.code={\def\ornamenttopos{#1}},
+ options/.style={options default,#1},
+ ornament symmetry/.code={\def\ornamenttosymmetry{#1}},
+ node anchor/.code={\def\ornamenttoanchor{#1}},
+ ornament/.style={%
+ to path={%
+\pgfextra{%
+ \tikz@scan@one@point\pgfutil@firstofone(\tikztostart)\relax
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \tikz@scan@one@point\pgfutil@firstofone(\tikztotarget)\relax
+ \pgf@xb=\pgf@x
+ \pgf@yb=\pgf@y
+ \advance\pgf@xa by-\pgf@xb
+ \advance\pgf@ya by-\pgf@yb
+ \pgfmathveclen{\pgf@xa}{\pgf@ya}%
+ \global\let\ornamentlen\pgfmathresult}
+ -- node [pos=\ornamenttopos,options,
+ anchor=\ornamenttoanchor]{%
+ \pgfornament[width = \ornamentlen,
+ symmetry=\ornamenttosymmetry]{#1}}
+ (\tikztotarget)\tikztonodes %end pgfextra
+ }% end to path
+ }% end style
+}% end \tikzset
+
+\def\pgfornamenthline#1#2#3#4{%
+ \pgfextractx{\pgf@x}{\pgfpointanchor{#1}{#3 east}}
+ \pgf@xa=\pgf@x
+ \pgfextractx{\pgf@x}{\pgfpointanchor{#2}{#3 west}}
+ \pgf@xb=\pgf@x
+ \advance\pgf@xb by -\pgf@xa
+\node[inner sep=0pt] at ($(#1.#3 east)!.5!(#2.#3 west)$) {\pgfornament[width=\pgf@xb]{#4}} ;
+}
+\def\pgfornamentvline#1#2#3#4{%
+ \pgfextracty{\pgf@y}{\pgfpointanchor{#1}{south #3}}
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@y}{\pgfpointanchor{#2}{north #3}}
+ \pgf@yb=\pgf@y
+ \advance\pgf@yb by -\pgf@ya
+\node[inner sep=0pt,rotate=90] at ($(#1.south #3)!.5!(#2.north #3)$) {\pgfornament[width=\pgf@yb]{#4}} ;
+}%
+\def\getornamentlength#1#2#3#4{%
+ \pgfpointdiff{\pgfpointanchor{#1}{#2}}%
+ {\pgfpointanchor{#3}{#4}}%
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfmathveclen{\pgf@xa}{\pgf@ya}%
+ \global\let\ornamentlen\pgfmathresult
+}%
+\def\getornamentangle#1#2#3{%
+ \pgfpointdiff{\pgfpointanchor{#2}{center}}{\pgfpointanchor{#3}{center}}%
+ \pgfmathsetmacro{#1}{atan2(\pgf@x,\pgf@y)}%
+}%
+\makeatother
+\newcommand{\resetpgfornamentstyle}{\tikzset{pgfornamentstyle/.style={}}}
+
+% 2020 Changing vector objects
+\def\newpgfornamentfamily#1{%
+ \edef\OrnamentsFamily{#1}
+ \gdef\pgfOrnamentsObject{pgflibrary\OrnamentsFamily.code.tex}
+ \input{\pgfOrnamentsObject}%
+ }%
+
+\makeatletter
+\pgfkeys{/ornamentline/.cd,
+ color/.store in = \ornamentcolor,
+ color = black,
+ /ornamentline/.search also={/tikz}}
+\def\pgfornamentline{\pgfutil@ifnextchar[{\pgf@ornamentline}{\pgf@ornamentline[]}}%
+\def\pgf@ornamentline[#1]#2#3#4#5{%
+
+\pgfqkeys{/ornamentline}{#1}%
+\pgfmathsetmacro\nbo{#4}
+\path (#2) -- (#3) foreach \i in {0,...,\nbo} {coordinate[pos=\i/\nbo] (p\i)}
+ [color=\ornamentcolor] foreach \i [count=\j] in {0,...,\number\numexpr\nbo-1} { (p\i) to [ornament=#5] (p\j)};
+}
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/pgfornament/latex/tikzrput.sty b/macros/latex/contrib/tkz/pgfornament/latex/tikzrput.sty
new file mode 100644
index 0000000000..b3cb0165a2
--- /dev/null
+++ b/macros/latex/contrib/tkz/pgfornament/latex/tikzrput.sty
@@ -0,0 +1,113 @@
+% pgflibraryam.code.tex (utf8 encoding)
+% Copyright 2020 Alain Matthes
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status “maintained”.
+%
+% The Current Maintainer of this work is Alain Matthes.
+
+\typeout{2020/04/06 1.1 pgflibraryam.code.tex}
+\NeedsTeXFormat{LaTeX2e}%
+\RequirePackage{tikz,iftex}%
+\ProvidesPackage{tikzrput}[2020/04/04 v1.1 rput for tikz]%
+\edef\tikzrputPtVirCode{\the\catcode`\;}
+\edef\tikzrputAtCode{\the\catcode`\@}
+\edef\tikzrputTwoPtCode{\the\catcode`\:}
+\catcode`\;=12\relax
+\catcode`\:=12\relax
+\catcode`\@=11\relax
+
+\newif\ifrput@polar\rput@polarfalse
+\def\rput@empty{}
+
+\def\rput@parsecoordinate#1{%
+\rput@getseparator#1,\@nil
+\ifrput@polar
+ \rput@getfrompolar#1\@nil
+\fi
+}%
+\def\rput@getseparator#1,#2\@nil{%
+\ifx\rput@empty#2\rput@empty%
+ \rput@polartrue
+\else
+ \rput@polarfalse
+\fi
+}%
+\def\rput@getfrompolar#1;#2\@nil{%
+ \def\pos@rput{#1:#2}%
+}%
+
+\def\rput@pos@ {\def\rput@anchor{center}}
+\def\rput@pos@B {\def\rput@anchor{base}}
+\def\rput@pos@Br {\def\rput@anchor{base east}}
+\def\rput@pos@Bl {\def\rput@anchor{base west}}
+\def\rput@pos@tr {\def\rput@anchor{north east}}
+\def\rput@pos@tl {\def\rput@anchor{north west}}
+\def\rput@pos@br {\def\rput@anchor{south east}}
+\def\rput@pos@bl {\def\rput@anchor{south west}}
+\def\rput@pos@t {\def\rput@anchor{north}}
+\def\rput@pos@b {\def\rput@anchor{south}}
+\def\rput@pos@r {\def\rput@anchor{east}}
+\def\rput@pos@l {\def\rput@anchor{west}}
+\let\rput@pos@mc\rput@pos@
+\let\rput@pos@rB\rput@pos@Br
+\let\rput@pos@lB\rput@pos@Bl
+\let\rput@pos@rt\rput@pos@tr
+\let\rput@pos@lt\rput@pos@tl
+\let\rput@pos@rb\rput@pos@br
+\let\rput@pos@lb\rput@pos@bl
+\newbox\mybox
+\ifpdf% Pablo 04/2020
+\pgfutil@ifundefined{rput}{%
+ \tikzset{rput style/.style={}}
+ \def\rput{\pgfutil@ifnextchar[{\rput@i}{%
+ \global\edef\opt@rput{}\rput@ii}}%
+ \def\rput@i[#1]{\global\edef\opt@rput{#1}\rput@ii}%
+ \def\rput@ii{\pgfutil@ifnextchar({%
+ \def\angle@rput{0}\rput@iv}{\rput@iii}}%
+ \def\rput@iii#1{%
+ \ifx\rput@empty#1\rput@empty\def\angle@rput{0}\else%
+ \def\angle@rput{#1}\fi%
+ \pgfutil@ifnextchar({\rput@iv}{\rput@iv(0,0)}}%,
+ \def\rput@iv(#1){\def\pos@rput{#1}%
+ \rput@parsecoordinate{#1}%
+ \rput@v}%
+ \def\rput@v#1{%
+ \sbox\mybox{%
+ \pgfinterruptpicture#1\endpgfinterruptpicture}%
+ \begingroup
+ \tikzifinpicture{%
+ \let\begin@my@tikz@env\scope
+ \let\end@my@tikz@env\endscope
+ }{%
+ \let\begin@my@tikz@env\tikzpicture
+ \let\end@my@tikz@env\endtikzpicture
+ }%
+ \@nameuse{rput@pos@\opt@rput}%
+ \begin{pgfinterruptboundingbox}%
+ \begin@my@tikz@env[overlay]
+ \path (0,0)--(\pos@rput);
+ \protected@edef\rput@temp{%
+ \noexpand\node[inner sep = 0pt,
+ anchor = \rput@anchor,
+ rotate = \angle@rput,
+ rput style]}%
+ \rput@temp at (\pos@rput){\box\mybox};
+ \end@my@tikz@env
+ \end{pgfinterruptboundingbox}%
+ \endgroup
+ \ignorespaces
+ }%
+ }{%
+ }%
+\fi
+\catcode`\;=\tikzrputPtVirCode\relax
+\catcode`\@=\tikzrputAtCode\relax
+\catcode`\:=\tikzrputTwoPtCode\relax
+\endinput