blob: c2f7c8fdd5fcb441f9b7b4e690398bec2efd817a (
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
|
% utf8
% tikzrput.sty 0.2 du 05/03/2012 inspired from rput (pstricks)
% ------------------------------------------------
% Créé par Alain Matthes le 2012-02-22.
% Copyright (c) 2012 __AlterMundus__.
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License , either version 1.3
% of this license or (at your option) any later version and/or
% 2. under the GNU Public License.
% ------------------------------------------------
% Options are the same of /rput in pstricks
%
\NeedsTeXFormat{LaTeX2e}%
\RequirePackage{tikz,ifpdf}%
\ProvidesPackage{tikzrput}[2012/03/02 v0.2 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@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
\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};%{#1};%
\end@my@tikz@env
\end{pgfinterruptboundingbox}%
\endgroup
\ignorespaces
}%
}{%
}%
\fi
\catcode`\;=\tikzrputPtVirCode\relax
\catcode`\@=\tikzrputAtCode\relax
\catcode`\:=\tikzrputTwoPtCode\relax
\endinput
|