-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtc-pgf.def
87 lines (87 loc) · 2.91 KB
/
tc-pgf.def
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
% \begin{macrocode}
%<!COPYRIGHT>
\ProvidesFile{tc-pgf.def}[2018/04/08 v2.1 trimclip fall-back clipping driver using PGF]
% \end{macrocode}
%
% \begin{macrocode}
\RequirePackage{pgf}
% \end{macrocode}
%
% \begin{macro}{\@cliptoboxdim}
% Clips to official box dimension.
% \begin{macrocode}
\def\@cliptoboxdim#1{%
\setbox#1\hbox{\begin{pgfpicture}%
\pgfpathmoveto{\pgfqpoint\z@{-\dp#1}}%
\pgfpathlineto{\pgfqpoint\z@{\ht#1}}%
\pgfpathlineto{\pgfqpoint{\wd#1}{\ht#1}}%
\pgfpathlineto{\pgfqpoint{\wd#1}{-\dp#1}}%
\pgfpathclose
\pgfusepathqclip
\pgfset{inner sep=\z@,outer sep=\z@,minimum size=\z@}%
\pgfnode{rectangle}{base west}{\usebox#1}{}{}%
\pgfsetbaselinepointnow{\pgfpoint\z@\z@}%
\end{pgfpicture}}%
}
% \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\@clipcornersofbox}[5]{<box register}{<upper left>}{<upper right>}{<lower left>}{<lower right>}
% Clips round corners off.
% \begin{macrocode}
\def\@clipcornersofbox#1#2#3#4#5{%
\setbox#1\hbox{\begin{pgfpicture}%
\pgfpathmoveto{\pgfpoint{\z@}{\ht#1-#2}}%
\pgfpatharc{180}{90}{#2}%
\pgfpathlineto{\pgfpoint{\wd#1-#3}{\ht#1}}%
\pgfpatharc{90}{0}{#3}%
\pgfpathlineto{\pgfpoint{\wd#1}{#5-\dp#1}}%
\pgfpatharc{0}{-90}{#5}%
\pgfpathlineto{\pgfpoint{#4}{-\dp#1}}%
\pgfpatharc{270}{180}{#4}%
\pgfpathlineto{\pgfpoint{\z@}{\ht#1-#2}}%
\pgfpathclose
\pgfusepathqclip
\pgfset{inner sep=\z@,outer sep=\z@,minimum size=\z@}%
\pgfnode{rectangle}{base west}{\usebox#1}{}{}%
\pgfsetbaselinepointnow{\pgfpoint\z@\z@}%
\end{pgfpicture}}%
}
% \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\@rndframearoundbox}[6]{<box register}{<upper left>}{<upper right>}{<lower left>}{<lower right>}{<clip>}
% Round frame around a box.
% \begin{macrocode}
\def\@rndframearoundbox#1#2#3#4#5#6{%
\setbox#1\hbox{\begin{pgfpicture}%
\adjsetlength\@tempdima{\fboxsep+.5\fboxrule}%
\@marginbox#1\@tempdima\@tempdima\@tempdima\@tempdima%
\edef\@tempa{#6}%
\ifx\@empty\@tempa\else
\@clipcornersofbox{#1}{#2}{#3}{#4}{#5}%
\fi
\pgfset{inner sep=\z@,outer sep=\z@,minimum size=\z@}%
\pgfnode{rectangle}{base west}{\usebox#1}{}{}%
\pgfusepath{}%
\adjbox@rndframe@color
\pgfpathmoveto{\pgfpoint{\z@}{\ht#1-#2}}%
\pgfpatharc{180}{90}{#2}%
\pgfpathlineto{\pgfpoint{\wd#1-#3}{\ht#1}}%
\pgfpatharc{90}{0}{#3}%
\pgfpathlineto{\pgfpoint{\wd#1}{#5-\dp#1}}%
\pgfpatharc{0}{-90}{#5}%
\pgfpathlineto{\pgfpoint{#4}{-\dp#1}}%
\pgfpatharc{270}{180}{#4}%
\pgfpathlineto{\pgfpoint{\z@}{\ht#1-#2}}%
\pgfpathclose
\pgfusepath{stroke}%
\pgfsetbaselinepointnow{\pgfpoint\z@\z@}%
\end{pgfpicture}}%
}
% \end{macrocode}
% \end{macro}
%
%^^A vim: ft=tex