summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/makeshape
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-01-28 22:55:48 +0000
committerKarl Berry <karl@freefriends.org>2013-01-28 22:55:48 +0000
commit639ea304450fded74d7d5483729877cebd382a38 (patch)
tree6724dacbf36f193990fa84f9dcdfff6d2ddf80e5 /Master/texmf-dist/tex/latex/makeshape
parentb408bb5e71abeaab64eb560f06d2e2eb562403f1 (diff)
makeshape 2.1 (25jan13)
git-svn-id: svn://tug.org/texlive/trunk@28973 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/makeshape')
-rw-r--r--Master/texmf-dist/tex/latex/makeshape/makeshape.sty162
1 files changed, 162 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/makeshape/makeshape.sty b/Master/texmf-dist/tex/latex/makeshape/makeshape.sty
new file mode 100644
index 00000000000..1e875325418
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/makeshape/makeshape.sty
@@ -0,0 +1,162 @@
+%%
+%% This is file `makeshape.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% makeshape.dtx (with options: `package')
+%%
+%% Copyright (C) 2013 by Adrian P Robson
+%% adrian.robson@nepsweb.co.uk
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3c 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
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Adrian Robson.
+%%
+%% This work consists of the files makeshape.ins
+%% makeshape.dtx and
+%% ontesting.dtx
+%% and the derived files makeshape.sty
+%% makeshape.pdf
+%% sampleshape.tex
+%% ontesting.pdf
+%% testsample.tex and
+%% testsample.pdf
+%%
+\NeedsTeXFormat{LaTeX2e}[2011/06/27]
+\ProvidesPackage{makeshape}
+ [2013/01/25 2.1 Making custom shapes for PGF/TikZ]
+\RequirePackage{tikz}
+\usepgflibrary{intersections}
+\def\setpaths#1#2{
+ \savedmacro\ctbnex{
+ \pgf@x=.5\wd\pgfnodeparttextbox
+ \pgfmathsetlength\pgf@xa{\pgfshapeinnerxsep}
+ \advance\pgf@x\pgf@xa
+ \edef\temp@x{\the\pgf@x}
+ \let\ctbnex\temp@x
+ }
+ \savedmacro\ctbney{
+ \pgf@y=.5\ht\pgfnodeparttextbox
+ \advance\pgf@y.5\dp\pgfnodeparttextbox
+ \pgfmathsetlength\pgf@ya{\pgfshapeinnerysep}
+ \advance\pgf@y\pgf@ya
+ \edef\temp@y{\the\pgf@y}
+ \let\ctbney\temp@y
+ }
+ \savedmacro\pgfshapeouterxsep{
+ \pgfkeysgetvalue{/pgf/outer xsep}{\temp@sep}
+ \let\pgfshapeouterxsep\temp@sep
+ }
+ \savedmacro\pgfshapeouterysep{
+ \pgfkeysgetvalue{/pgf/outer ysep}{\temp@sep}
+ \let\pgfshapeouterysep\temp@sep
+ }
+ \savedmacro{\pgfshapeminwidth}{
+ \pgfkeysgetvalue{/pgf/minimum width}{\temp@wd}
+ \let\pgfshapeminwidth\temp@wd
+ }
+ \savedmacro{\pgfshapeminheight}{
+ \pgfkeysgetvalue{/pgf/minimum height}{\temp@ht}
+ \let\pgfshapeminheight\temp@ht
+ }
+ \savedanchor{\centre}{
+ \pgfpointorigin
+ }
+ \savedanchor{\text}{
+ \pgf@y=-0.5\ht\pgfnodeparttextbox
+ \advance\pgf@y by 0.5\dp\pgfnodeparttextbox
+ \pgf@x=-0.5\wd\pgfnodeparttextbox
+ }
+ \savedanchor{\boundbox@ne}{
+ \pgfusepath{}
+ #1
+ \pgf@xb=\pgf@pathmaxx
+ \pgf@yb=\pgf@pathmaxy
+ \pgf@xc=\pgf@pathminx
+ \pgf@yc=\pgf@pathminy
+ \pgfusepath{}
+ \ifdim\pgf@xb<0pt \pgf@xb=-\pgf@xb \fi
+ \ifdim\pgf@xc<0pt \pgf@xc=-\pgf@xc \fi
+ \ifdim\pgf@xb<\pgf@xc
+ \pgf@x=\pgf@xc
+ \else
+ \pgf@x=\pgf@xb
+ \fi
+ \ifdim\pgf@yb<0pt \pgf@yb=-\pgf@yb \fi
+ \ifdim\pgf@yc<0pt \pgf@yc=-\pgf@yc \fi
+ \ifdim\pgf@yb<\pgf@yc
+ \pgf@y=\pgf@yc
+ \else
+ \pgf@y=\pgf@yb
+ \fi
+ }
+ \anchor{center}{\centre}
+ \anchor{text}{\text}
+ \anchorborder{
+ \edef\targpointx{\the\pgf@x}
+ \edef\targpointy{\the\pgf@y}
+ \pgf@relevantforpicturesizefalse
+ \pgftransformreset
+ \boundbox@ne
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfpointborderrectangle{\pgfpoint{\targpointx}{\targpointy}}
+ {\pgfpoint{\pgf@xa}{\pgf@ya}}
+ \edef\corrx{\the\pgf@x}
+ \edef\corry{\the\pgf@y}
+ \pgfintersectionofpaths {
+ #1
+ }{
+ \pgfpathmoveto{\pgfpoint{0}{0}}
+ \pgfpathlineto{\pgfpoint{\corrx}{\corry}}
+ }
+ \pgfpointintersectionsolution{1}
+ }
+ \backgroundpath{
+ #2
+ }
+}
+\newdimen\crct@dim
+\def\mincorrect#1#2{
+ \pgfmathsetlength\crct@dim{#2}
+ \pgfmathsetlength\crct@dim{0.5\crct@dim}
+ \ifdim#1<\crct@dim
+ #1=\crct@dim
+ \fi
+}
+\def\path@textbox{
+ \pgf@xa=.5\wd\pgfnodeparttextbox
+ \pgf@ya=.5\ht\pgfnodeparttextbox
+ \advance\pgf@ya.5\dp\pgfnodeparttextbox
+ \typeout{**** TEST text box (x,y) = (\the\pgf@xa,\the\pgf@ya) }
+ \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{-\pgf@ya}}
+ \pgfpathlineto{\pgfpoint{-\pgf@xa}{-\pgf@ya}}
+ \pgfpathlineto{\pgfpoint{-\pgf@xa}{\pgf@ya}}
+ \pgfpathclose
+}
+\def\path@ctextbox{
+ \pgf@xa=.5\wd\pgfnodeparttextbox
+ \pgfmathsetlength\pgf@xc{\pgfshapeinnerxsep}
+ \advance\pgf@xa\pgf@xc
+ \pgf@ya=.5\ht\pgfnodeparttextbox
+ \advance\pgf@ya.5\dp\pgfnodeparttextbox
+ \pgfmathsetlength\pgf@yc{\pgfshapeinnerysep}
+ \advance\pgf@ya\pgf@yc
+ \typeout{**** TEST corrected text box (x,y) =
+ (\the\pgf@xa,\the\pgf@ya) }
+ \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{-\pgf@ya}}
+ \pgfpathlineto{\pgfpoint{-\pgf@xa}{-\pgf@ya}}
+ \pgfpathlineto{\pgfpoint{-\pgf@xa}{\pgf@ya}}
+ \pgfpathclose
+}
+\endinput
+%%
+%% End of file `makeshape.sty'.