summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tkz/pgfornament/latex/tikzrput.sty
blob: b3cb0165a28a26945397a9d55198d2078e89a0ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
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