%% %% The LaTeX Graphics Companion, 2ed (first printing May 2007) %% %% Example 5-15-6 on page 309. %% %% Copyright (C) 2007 Michel Goossens, Frank Mittelbach, Denis Roegel, Sebastian Rahtz, Herbert Vo\ss %% %% It 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. %% %% See http://www.latex-project.org/lppl.txt for details. %% \documentclass{ttctexa} \pagestyle{empty} \setcounter{page}{6} \setlength\textwidth{159.83385pt} % \makeatletter \newif\ifHRInner \def\psset@HRInner#1{\@nameuse{HRInner#1}} \psset@HRInner{false} % \def\psHexagon{\pst@object{psHexagon}} \def\psHexagon@i{% \@ifnextchar({\psHexagon@ii}{\psHexagon@ii(0,0)}% specify center? ) } \def\psHexagon@ii(#1)#2{% \begin@ClosedObj% closed object \pst@@getcoor{#1}% get center \pssetlength\pst@dimc{#2}% set radius to pt \addto@pscode{% PostScript \pst@coor T % xM yM new origin \psk@dimen CLW mul % set line width /Radius \pst@number\pst@dimc\space % save radius \ifHRInner\space 3 sqrt 2 div div \fi def % inner? /angle \ifHRInner 30 \else 0 \fi def % starting angle Radius angle PtoC moveto % go to first point 6 { % 6 iterations /angle angle 60 add def % alpha = alpha+60 Radius angle PtoC L % line to next point } repeat closepath % closed object }% \def\pst@linetype{3}% set linetype \showpointsfalse% do not show base points \end@ClosedObj% end \ignorespaces% swallow spaces } \makeatother \StartShownPreambleCommands \usepackage{pstricks} % \psHexagon as defined above \definecolor{gray85}{gray}{0.85} \StopShownPreambleCommands \begin{document} \begin{pspicture}(-3,-3)(3,3) \psHexagon[doubleline=true](2,2){1} \psHexagon*[linecolor=gray85,HRInner=true](2,-2){1} \psHexagon[doubleline=true,doublesep=0.5,% linecolor=blue]{2} \psHexagon*(-2.5,2.5){0.5} \psHexagon[border=3pt,HRInner=true](-1,-1){2} \end{pspicture} \end{document}