%%
%% This is file `sampleshape.tex',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% makeshape.dtx  (with options: `sample')
%% 
%% 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
%% 
%%--------------------------------------------------
%%
%% This is a sample shape for the makeshape package
%%
%% It can be adapted for other shapes. See
%% makeshape.pdf for instructions.
%%
%% 25 January 2013

\usepackage{makeshape}
\makeatletter

%% Constant for sample shape
\def\gap{4pt}

%% Anchor path <- change and rename as required
\def\sampleanchor{
   % get corrected text box
   \pgf@xa=\ctbnex
   \pgf@ya=\ctbney
   % make room for shape
   \advance\pgf@xa by \gap
   \advance\pgf@ya by \gap
   % correct for minheight and minwidth and
   % for outerxsep or outerysep
   \mincorrect{\pgf@xa}{\pgfshapeminwidth}
   \advance\pgf@xa\pgfshapeouterxsep
   \mincorrect{\pgf@ya}{\pgfshapeminheight}
   \advance\pgf@ya\pgfshapeouterysep
   % draw the path
   \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
}

%% Background path <- change and rename as required
\def\sampleborder{
   % get corrected text box
   \pgf@xa=\ctbnex
   \pgf@ya=\ctbney
   % make room for shape
   \advance\pgf@xa by \gap
   \advance\pgf@ya by \gap
   % correct for minheight and minwidth but
   %    not for outerxsep or outerysep
   \mincorrect{\pgf@xa}{\pgfshapeminwidth}
   \mincorrect{\pgf@ya}{\pgfshapeminheight}
   % draw outer shape
   \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
   % draw inner shape
   \advance\pgf@xa by -\gap
   \advance\pgf@ya by -\gap
   \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
}

%%------------------------------------------------
%% Shape declaration <- Change name as required
\pgfdeclareshape{sample}{

   % Set paths <- change path macros as required
   \setpaths{\sampleanchor}{\sampleborder}

   % Saved anchors <- change as required
   \savedanchor{\northeast}{
      \pgf@x = \ctbnex
      \pgf@y = \ctbney
      \advance\pgf@x by \gap
      \advance\pgf@y by \gap
      \mincorrect{\pgf@x}{\pgfshapeminwidth}
      \mincorrect{\pgf@y}{\pgfshapeminheight}
      \advance\pgf@x\pgfshapeouterxsep
      \advance\pgf@y\pgfshapeouterysep
   }

   % Anchors <- change as required
   \anchor{north}{\northeast \pgf@x=0pt}
   \anchor{north east}{\northeast}
   \anchor{east}{\northeast \pgf@y=0pt}
   \anchor{south east}{\northeast \pgf@y=-\pgf@y}
   \anchor{south}{\northeast \pgf@x=0pt \pgf@y=-\pgf@y}
   \anchor{south west}{\northeast \pgf@x=-\pgf@x \pgf@y=-\pgf@y}
   \anchor{west}{\northeast \pgf@x=-\pgf@x \pgf@y=0pt}
   \anchor{north west}{\northeast \pgf@x=-\pgf@x}

}

\makeatother

\endinput
%%
%% End of file `sampleshape.tex'.
