
% Copyright (C) 2002 Rolf Niepraschk -- niepraschk@ptb.de

% Draws visible frames for the text and margin area, and lines
% for the head and foot to check layout in detail. 

% See further instructions and licence after "\endinput".

\ProvidesPackage{showframe}[2002/11/10 v0.1f showframe (new impl., RN)]

\newif\ifSF@frame\SF@frametrue
 
\DeclareOption{noframe}{\SF@framefalse}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{eso-pic}}
\ProcessOptions\relax

\RequirePackage{eso-pic}[2002/10/30]

\newcommand\ShowFramePicture{%
  \begingroup
    \normalcolor\thicklines%
    \AtTextLowerLeft{%
      \framebox(\LenToUnit{\textwidth},\LenToUnit{\textheight}){}}%  
    \AtTextUpperLeft{%
      \put(0,\LenToUnit{\headsep}){%
        \framebox(\LenToUnit{\textwidth},\LenToUnit{\headheight}){}}}%  
    \AtTextLowerLeft{%
      \put(0,\LenToUnit{-\footskip}){%
        \line(1,0){\LenToUnit{\textwidth}}}}%
    \AtTextLowerLeft{%
      \@tempdima=\textwidth\advance\@tempdima\marginparsep%
      \if@twoside%
        \ifodd\c@page\else%
          \@tempdima=-\marginparsep\advance\@tempdima-\marginparwidth% 
        \fi% 
      \fi%
      \put(\LenToUnit{\@tempdima},0)%
        {\framebox(\LenToUnit{\marginparwidth},\LenToUnit{\textheight}){}}%
    }% 
  \endgroup
}

\ifSF@frame\AddToShipoutPicture{\ShowFramePicture}\fi

\endinput

% Using the package option "noframe" you can draw the frames later only 
% for a single page with \AddToShipoutPicture*{\ShowFramePicture}. Other 
% useful options maybe eso-pic's "colorgrid" or "grid".

% This software is released under the terms of the LaTeX Project Public 
% License (ftp://dante.ctan.org/tex-archive/macros/latex/base/lppl.txt).
% (Essentially: Free to use, copy, distribute (sell) and change, but, if
% changed, the name must be changed.)
