summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/zwpagelayout/zwpagelayout.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/zwpagelayout/zwpagelayout.tex')
-rw-r--r--Master/texmf-dist/doc/latex/zwpagelayout/zwpagelayout.tex792
1 files changed, 792 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/zwpagelayout/zwpagelayout.tex b/Master/texmf-dist/doc/latex/zwpagelayout/zwpagelayout.tex
new file mode 100644
index 00000000000..3291d9da76e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/zwpagelayout/zwpagelayout.tex
@@ -0,0 +1,792 @@
+%% $Id: zwpagelayout.tex 290 2008-12-26 17:43:49Z zw $
+\input utf8-t1 % encTeX required
+\documentclass[11pt]{article}
+\usepackage{zwgetfdate}
+\usepackage[footskip=30pt,topmargin=2cm,leftmargin=2cm,rightmargin=5cm,botmargin]{zwpagelayout}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern,array,dcolumn,verbatim,graphicx}
+\usepackage[figuresright]{rotating}
+\usepackage[protrusion=false,expansion=true,stretch=8,shrink=24,step=4]{microtype}
+\makeatletter
+\renewcommand*\l@section{\@dottedtocline{1}{\z@}{1.5em}}
+\makeatother
+\extrarowheight 2pt
+\mubytein 0 % important due to bug in url.sty
+\usepackage[pdftitle=Page\ Layout\ with\ Crop\ Marks, pdfauthor=Zdenek\ Wagner,
+ pdfkeywords={page layout,\ crop marks},
+ bookmarks,bookmarksopen,bookmarksopenlevel=2]{hyperref}
+\mubytein 1 \mubyteout 1 \mubytelog 1
+
+\marginparwidth\UserRightMargin
+\advance\marginparwidth -1cm
+\advance\marginparwidth-\marginparsep
+
+\def\mg#1{\ifvmode\leavevmode\fi\marginpar{\texttt{#1}}\ignorespaces}
+\def\cmg#1{\mg{\char`\\#1}}
+\def\omg#1{\ifvmode\leavevmode\fi\marginpar{\raggedright\hspace{0pt}\opt{#1}}\ignorespaces}
+\def\opt#1{\texorpdfstring{\textmd{\textsc{#1}}}{#1}}
+\let\pkg\textsc
+\DeclareRobustCommand\cmd[1]{\texttt{\char`\\#1}}
+\def\ie.{i.\,e.\@}
+\def\eg.{e.\,g.\@}
+\def\true{\bool{true}}
+\def\false{\bool{false}}
+\def\bool#1{\texorpdfstring{\textit{#1}}{#1}}
+\def\is{\unskip\nobreak\space =\penalty200 \space\ignorespaces}
+
+\makeatletter
+\newcommand*\papdims[2][.]{\bgroup
+ \def\zw@papdim##1,##2\zw@{\sepunit{##1}#1\sepunit{##2}}%
+ \setkeys{zwpl}{#2}%
+ \expandafter\zw@papdim\zwpl@papersize\zw@\egroup}
+
+\newcommand*\sepunit[2][\,]{\def\zw@a{}\def\zw@x{#1}\def\zw@y{}\def\zw@z{}\zw@sepunit#2\zw@}
+\def\zw@sepunit#1{\ifx#1\zw@
+ \let\next\zw@sep@finished
+ \else
+ \edef\zw@a{\zw@a\zw@y}\edef\zw@y{\zw@z}\edef\zw@z{#1}\let\next\zw@sepunit
+ \fi \next}
+\def\zw@sep@finished{\zw@a\zw@x\mbox{\zw@y\zw@z}}
+\makeatother
+
+\def\krat{\,\ensuremath{\times}\,}
+
+\newcolumntype{x}{D{.}{\krat}{-1}}
+\def\xx#{\multicolumn{1}{c|}}
+
+\let\zwcomma\,
+\def\,{\texorpdfstring{\zwcomma}{}}
+
+\begin{document}
+\hyphenation{allow-with-height-switching}
+\title{Page Layout with Crop Marks}
+\author{Zdeněk Wagner\\\url{http://icebearsoft.euweb.cz}}
+\date{Package date: \DateOfPackage{zwpagelayout}}
+\maketitle
+
+\begin{abstract}\noindent
+This package was developed as a typographers toolbox offering the most important features for
+everyday work. First it allows setting the paper size as well as the page layout. The next
+important feature is the ability of printing crop marks both with \TeX~+~dvips or (x)dvipdfm(x) and with pdf\TeX.
+Finally it is possible to reflect pages both horizontally and vertically.
+\end{abstract}
+
+\tableofcontents
+
+\section{Introduction}
+Users will probably ask: ``Why another page layout package? Is not \pkg{geometry} all what we
+need?'' The answer to this question is not easy. The \pkg{geometry} package provides a lot of
+features, maybe even too many features. However, some features are missing. Packages for crop marks
+can also be found but correct positioning of the crop marks requires cooperation with the
+page layout package. It is therefore natural to integrate both these functions into a single
+package.
+
+The package is useful also for preparation of book covers. It places the marks showing the position
+of a spine and optionally flaps. If you want to see whether the spine and the front and back cover
+contents are properly aligned, you can display the frames. Moreover, it is often necessary to
+create a proof of the cover while the book is not yet finished and the thickness of the spine is
+not known and can be only approximated. You can thus leave the paper width empty and the package
+will calculate it from the page width, the flap width and the spine thickness. Whenever the final
+value of the spine thickness is known, you change it in the list of options and the whole layout
+will adapt automatically.
+
+The package is a result of a long-term development inspired by author's everyday needs. It is a
+collection of macros that were manually copied from document to document, later placed into private
+packages and finally it matured into a package prepared for general use.
+
+Being a result of development it may happen that you may be in the same situation in which I was
+myself. The book was finished and the last task was to add the crop marks. Removing layout
+definition from a document and replacing it with a different package may cause errors and one more
+proof-reading is time consuming and expensive. This package therefore allows the page layout logic
+to be switched off and just add the crop marks provided the paper dimensions are correctly
+supplied. The details will be explained later when describing the package options.
+
+\section{Usage}
+The package is loaded simply by:
+
+\vb
+\verb;\usepackage[;$\langle$options$\rangle$\verb;]{zwpagelayout};
+
+\vb
+Remember that the options cannot be given later, all of them must be present either here or as
+options to the \cmd{documentclass} command. The package will set some dimensions based upon
+\cmd{normalsize}. The package that modifies font sizes must therefore be loaded before
+\pkg{zwpagelayout}.
+
+\section{Option values}
+
+Some options accept a value. If the option is not specified, it may have a \textbf{default} value. For ease of use an
+option may be given without a value. It will then have a \textbf{standard} value. The default and standard
+values will be given in the option description.
+
+\section{Paper size and orientation}
+The first task of the package is to define paper size and orientation. Remember that the package is
+intended for use in real life where we cannot be limitted to standard papers sizes. However, the
+standard paper sizes are used quite often and we must be able to use them too. The options were
+tested with pdf\TeX, \pkg{dvips} as well as \pkg{(x)dvipdfm(x)}.
+
+\subsection{Orientation}\label{orientation}
+\omg{AllowWidthHeightSwitching}
+The package usually accepts the dimentsions as they are, \ie. width and height of the page. The
+orientation cannot be changed. If you wish to have the possibility to change the orientation, you
+have to use this option. It is used automatically with all standard paper sizes (see
+section~\ref{standard}). You will rarely specify it yourself.
+
+\omg{Portrait}\omg{Landscape}
+These options sets the paper orientation, \opt{Portrait} is the default. They can be used only if
+\opt{AllowWidthHeightSwitching} was specified, otherwise they are ignored.
+
+\subsection{Paper size}
+The package option defines the trimmed paper size. If the crop marks are added, the real paper size
+will be added. Dimensions \cmd{paperwidth} and \cmd{paperheight} will thus contain the values that
+will subsequently be sent to the driver. If you for any reason wish to know the trimmed dimensions,
+you can calculate them as follows:
+
+\begin{center}
+trimmed width = \cmd{paperwidth} -- 2\cmd{hoffset}
+
+trimmed height = \cmd{paperheight} -- 2\cmd{voffset}
+\end{center}
+
+\subsubsection{Generic paper size}
+\omg{papersize}
+Option \opt{papersize} is used to define arbitrary paper size. You define it as a pair of two
+dimensions, the width and the height. The numbers are separated by a comma, therefore the
+specification must be enclosed within braces, \eg.
+
+\begin{verbatim}
+\usepackage[papersize={200mm,100mm}]{zwpagelayout}
+\end{verbatim}
+
+The above written command sets the paper width to 200\,mm and the paper height to 100\,mm, \ie. the
+paper orientation will be landscape. Now consider the following:
+
+\begin{verbatim}
+\usepackage[papersize={200mm,100mm},
+ AllowWidthHeightSwitching]{zwpagelayout}
+\end{verbatim}
+
+Since the width/height switching is allowed and the default orientation is portrait (option
+\opt{Portrait} is the default), the width will be 100\,mm and the height will be 200\,mm.
+
+You can achieve the same result as the first command by the lengthy code:
+
+\begin{verbatim}
+\usepackage[papersize={200mm,100mm},
+ AllowWidthHeightSwitching,Landscape]{zwpagelayout}
+\end{verbatim}
+
+You see that the command may become confusing. You should better not use
+\opt{AllowWidthHeightSwitching} together with \opt{papersize}.
+
+If the \opt{papersize} option is not used, it defaults to the A4 size, \ie. to paper dimensions \papdims[\krat]{a4}.
+
+If the book cover is being typeset, we want to calculate at least the width. The detailed
+explanation will be given in section~\ref{missing}. Here we put just as an example:
+
+\begin{verbatim}
+\usepackage[papersize={,200mm},spine=15mm,textwidth=14cm,
+ margins]{zwpagelayout}
+\end{verbatim}
+
+It is even possible to calculate both dimensions using \eg.
+
+\begin{verbatim}
+\usepackage[papersize,spine=15mm,textwidth=14cm,textheight=20cm,
+ margins]{zwpagelayout}
+\end{verbatim}
+
+\subsubsection{Standard paper sizes}\label{standard}
+\omg{a0\,\ldots}\omg{\ldots\,c10}\omg{executive}\omg{legal}\omg{letter}
+Options \opt{a0}\ldots\opt{a10}, \opt{b0}\ldots\opt{b10}, \opt{c0}\ldots\opt{c10} are used to
+select paper size according to the A, B or C series where the dimensions are rounded to integers in
+milimeters. For instance, the A6 size is \papdims[\krat]{a6}. The package also supports paper sizes
+\opt{executive} (\papdims[\krat]{executive}), \opt{legal} (\papdims[\krat]{legal}), and
+\opt{letter} (\papdims[\krat]{letter}). If one of these options is used,
+\opt{AllowWidthHeightSwitching} and \opt{Portrait} are assumed. The page orientation may be
+switched by option \opt{Landscape} (see section~\ref{orientation}).
+
+\section{Page layout options}
+These options define the layout of the odd page. The layout of the even page is assumed to be a mirror image.
+The values of \cmd{oddsidemargin} and \cmd{evensidemargin} are calculated from the values of the options.
+
+\subsection{Margins}
+This set of options us used to define margin sizes.
+Remember that all margins are measured from the top left corner of the paper, not from 1in border which is
+the \textsc{dvi} origin!
+
+\subsubsection{Option \opt{margins}, standard 0\,mm}
+\omg{margins}
+This option sets all margins (top, left, right, bottom) to the specified size. You will not be able to change
+some of the margin to another size. If you need different size for any margin, you have to set all of them
+separately and not use this option. Notice that almost everything may be calculated automatically, thus it is
+not necessary to specify all values.
+
+\subsubsection{Option \opt{topmargin}, default 1\,in}
+\omg{topmargin}
+This option sets the value of \cmd{topmargin}.
+
+\subsubsection{Option \opt{botmargin}, standard \opt{topmargin}}
+\omg{botmargin}
+This option specifies the size of the margin below the running footer.
+
+\subsubsection{Option \opt{leftmargin}, default --1\,in}
+\omg{leftmargin}
+This option sets the value of the margin at the left side of an odd page (and the margin at the right side of
+an even page). Negative value means that the value was not given.
+
+\subsubsection{Option \opt{rightmargin}, default --1\,in}
+\omg{rightmargin}
+This is the size of the right side of an odd page. Similarly the negative value means that the option was not
+specified.
+
+\subsection{Text dimensions}
+The following options are used to specify the height and width of the text.
+
+\subsubsection{Option \opt{textwidth}, default --1\,in}
+\omg{textwidth}
+This option specifies the width of the text without marginal notes. Its meaning is different for
+book covers. The option specifies the width of the cover without the extra spine (\opt{xsipne}),
+flap (\opt{flap}) and trimming (\opt{xtrim} or \opt{trim}).
+
+\subsubsection{Option \opt{textheight}, default --1\,in}
+\omg{textheight}
+This option specifies the total height of the text including the header and footer.
+
+\subsubsection{Option \opt{headheight}, default 0\,mm}
+\omg{headheight}
+This option specifies the height of the running head.
+
+\subsubsection{Option \opt{headsep}, default 0\,mm}
+\omg{headsep}
+This is the value of \cmd{headsep}.
+
+\subsubsection{Option \opt{footskip}, default 0\,mm}
+\omg{footskip}
+This option specifies the value of \cmd{footskip}.
+
+\subsubsection{Option \opt{topskip}\texorpdfstring{, default \cmd{topskip}}{}}
+\omg{topskip}
+This option enables changing the value of \cmd{topskip}. It is rarely needed. However, the value of
+\cmd{topskip} is usually less than \cmd{baselineskip} which may cause problems in some page layout schemes.
+Since we have already written that font sizes must be defined before \pkg{zwpagelayout} is loaded, you can
+safely specify \verb;topskip=\baselineskip;.
+
+\subsubsection{Option \opt{strictheight}, default \false, standard \true}
+\omg{strictheight}
+The value of the \LaTeX\ dimension \cmd{textheight} is calculated from the values of the options and later
+adjusted so that together with \cmd{topskip} it represents an integer number of lines. This may not be
+desirable in some cases. This option instructs the package not to perform any adjustment and accept the
+calculated value.
+
+\subsubsection{Option \opt{adjustfootskip}, default \true, standard \true}
+\omg{adjustfootskip}
+If option \opt{strictheight} is not given, the calculated value of \cmd{textheight} is decreased to the nearest
+integer multiple of \cmd{baselineskip}. The difference is then added to \cmd{footskip} in order to preserve to
+total height. If \opt{adjustfootskip} is set to \false, the difference is added to \cmd{headsep} instead.
+
+\begin{figure}[bt]
+\noindent
+\includegraphics{adjustfoot}\hfill
+\includegraphics{adjusthead}
+
+\medskip
+\caption{Compensation of \cmd{textheight} by changing \cmd{footskip} (on the left) and
+\cmd{headsep} (on the right)}\label{adj}
+\end{figure}
+
+The difference betweem these two options is shown in figure~\ref{adj}. Adjustment of \cmd{footskip}
+was achieved by:
+
+\medskip
+\begin{verbatim}
+\usepackage[c8,margins=6mm,headheight=4mm,headsep=4mm,
+ croplength=3mm,cropgap=2mm,
+ cropmarks,cropframe,croptitle=Adjust\ footskip]{zwpagelayout}
+\end{verbatim}
+
+\medskip \noindent
+The sample on te right side of the figure was created by:
+
+\medskip
+\begin{verbatim}
+\usepackage[c8,margins=6mm,headheight=4mm,headsep=4mm,adjustheadsep,
+ croplength=3mm,cropgap=2mm,
+ cropmarks,cropframe,croptitle=Adjust\ headsep]{zwpagelayout}
+\end{verbatim}
+
+\subsubsection{Option \opt{adjustheadsep}, default \true, standard \true}
+\omg{adjustheadsep}
+This is a complementary option to \opt{adjustfootskip}.
+
+\section{Crop marks}\label{cropmarks}
+The crop marks must appear outside the print area. The package assumes that \cmd{paperheight} and
+\cmd{paperwidth} contain the page size after trimming. These dimensions will then be increased and the page
+will be shifted by setting \cmd{hoffset} and \cmd{voffset}. If you wish to print the crop marks using
+\opt{zwpagelayout}, you must not change values of \cmd{hoffset} and \cmd{voffset}.
+
+The values of \cmd{hoffset} and \cmd{voffset} will be set to the sum of \opt{croplength} and \opt{cropgap}, see the following
+text.
+
+\subsection{Basic crop marks options}
+Options described in this section define basic behaviour of the crop marks.
+
+\subsubsection{Option \opt{onlycropmarks}, default \false, standard \true}
+\omg{onlycropmarks}
+It may happen that a document is already finished and proof-read and just the crop marks have to be added.
+By specifying option \opt{onlycropmarks} you instruct the package to ignore all page layout options and
+interpret the crop marks options only. You just have to ensure that \cmd{paperheight} and \cmd{paperwidth} are
+set to the dimensions of the trimmed page before the \pkg{zwpagelayout} package is loaded and \cmd{hoffset} and
+\cmd{voffset} are left at their default values.
+
+\subsubsection{Option \opt{cropmarks}, default \false, standard \true}
+\omg{cropmarks}
+This option asks for creation of the crop marks.
+
+\subsubsection{Option \opt{nocropmarks}, default \true, standard \true}
+\omg{nocropmarks}
+This is a complementary option to \opt{cropmarks}.
+
+\subsubsection{Option \opt{croplength}, default 5\,mm}
+\omg{croplength}
+This option specifies the length of the crop mark.
+
+\subsubsection{Option \opt{cropgap}, default 5\,mm}
+\omg{cropgap}
+This is the space that must be left blank between the crop marks and the trimmed page.
+
+\subsubsection{Option \opt{spine}}
+\omg{spine}
+This option is used for designing book covers. It specifies the width of the book spine. You can
+even request a zero width but negative values will have disastrous results.
+
+\subsubsection{Option \opt{xspine}}
+\omg{xspine}
+This option defines the extra space adjacent to the spine so that the book can be safely opened.
+This space should not be used for printing logos etc., because they will soon be damaged by
+frequent use of the book. The option is ignored unless \opt{spine} is used.
+
+\subsubsection{Option \opt{flap}}
+\omg{flap}
+This is another option for book covers. It specifies the width of the flap. If \opt{spine} is
+given, the book cover is supposed to have flaps of equal sizes on both sides. Sometimes you do not
+have flaps and the back cover remains empty, thus you do not like to prepare the design of it, you
+just wish to design the spine and the front cover. This can be acheved by specifying \opt{flap} as
+the spine thickness and omitting \opt{spine}.
+
+\subsubsection{Options \opt{trim}, \opt{xtrim}, \opt{ytrim}}
+\omg{trim}\omg{xtrim}\omg{ytrim}
+The paper or canvas used for printing the book covers is folded to the inner side yet part of it
+will be visible. Such part is specified by \opt{xtrim} in horizontal direction and \opt{ytrim} in
+vertical direction. You can use \opt{trim} to set both of them to the same value.
+
+\subsubsection{Option \opt{cropframe}, default \false, standard \true}
+\omg{cropframe}
+When designing a book cover we often wish to verify whether all elements are properly aligned.
+Option \opt{cropframe} can be used to print the frames. It is active only if \opt{cropmarks} was
+specified.
+
+\subsubsection{Option \opt{nocropframe}, default \true, standard \true}
+\omg{nocropframe}
+This is a complementary option to \opt{cropframe}.
+
+\subsubsection{Option \opt{cropstyle}}\label{cropstyle}
+\omg{cropstyle}
+This option selects the style of the crop marks. Currently only the \textit{default} style is
+defined, thus the option is only useful if you write your own extension.
+
+\subsubsection{Option \opt{croptitle}}
+\omg{croptitle}
+This option defines the text that should be printed on each page. It may \eg. be the title of the
+document. Remember that all spaces are gobbled when parsing the options. The spaces must therefore
+be specified as \verb*;\ ;.
+
+\subsubsection{Option \opt{cropseparator}}
+\omg{cropseparator}
+This is the separator between the title and the page number. Its default value is \verb;:\quad;.
+
+\subsubsection{Option \opt{pagenumberfirst}, default \false, standard \true}
+\omg{pagenumberfirst}
+Each page contains the title followed by the separator and the page number. If you set this
+option to \true, the order will be reversed.
+
+\subsubsection{Option \opt{pagenumberlast}, default \true, standard \true}
+\omg{pagenumberlast}
+This is a complementary option to \opt{pagenumberfirst}.
+
+\subsubsection{Option \opt{usepagenumbers}, default \true, standard \true}
+\omg{usepagenumbers}
+This option requests printing the page numbers.
+
+\subsubsection{Option \opt{nopagenumbers}, default \false, standard \true}
+\omg{nopagenumbers}
+This is a complementary option to \opt{usepagenumbers}.
+
+\iffalse
+\subsubsection{Option \opt{cropfontsize}}
+\omg{cropfontsize}
+This option defines the font size command issued just before the title and page number are printed.
+The default command is \verb;\fontsize{10}{10};.
+
+\subsubsection{Option \opt{cropfont}}
+\omg{cropfont}
+This option contains the command to select a font for the title and the page number. The default
+command is \cmd{normalfont}.
+\fi
+
+\subsubsection{Option \opt{nobleedclip}, default \false, standard \true}
+\omg{nobleedclip}
+The pages are clipped to the bleed box so that graphics does not collide with the crop marks. Since
+the package must work also with \pkg{dvips}, the PDF operators are not used and the crop marks area
+outside the bleed box is just overpainted with white rectangles. The \pkg{color} package is thus
+required and will be loaded automatically. If you set \opt{nobleedclip} to \true, the pages will
+not be clipped. It may be useful if you know that nothing extends to the crop marks area and the
+\pkg{color} package may clash with other packages required by your document.
+
+
+\subsection{Color support for crop marks}
+The package is able to produce basic color support, namely it prints the names of separations. The
+color support is implemented via a few options. Color printing is performed using the \pkg{color}
+package that is loaded automatically. The package does not use predefined color names.
+
+\omg{color}
+Option \opt{color} asks for the color support. Without setting this option to \true\ all other
+color options are silently ignored.
+
+\omg{colormodel}
+Option \opt{colormodel} defines the color model used. Its default value is \texttt{cmyk}. You will
+rarely need to change it.
+
+\omg{cropcolor}
+Option \opt{cropcolor} specifies the color to be used for the crop marks. Remember that the crop
+marks must be visible on all separations, thus it might not be sufficient to print them in black.
+As default their color is mixed of 100\,\% of all components of the current color model. Since the
+default model is \texttt{cmyk}, the default value of this option is \verb;{1,1,1,1};. Notice that the
+syntax conforms to the requirements of the \pkg{color} package.
+
+\omg{colors}
+Option \opt{colors} assigns names to the color components of the current model. Specification of
+each color must be enclosed in curly brackets. The color name is followed by a colon and comma
+separated values conforming to the syntax of the \pkg{color} package. It will be clear from the
+following examples.
+
+Suppose that for some strange reason you prepare the document in the RGB space. Your specification
+will then be:
+
+\medskip
+
+\begin{verbatim}
+\usepackage[cropmarks,color,colormodel=rgb,cropcolor={1,1,1},
+ colors={{RED:1,0,0},{GREEN:0,1,0},{BLUE:0,0,1}},
+ croptitle=RGB\ example]{zwpagelayout}
+\end{verbatim}
+
+\medskip
+
+Now we show a more realistic example. The document should be printed in custom colors. Since the
+true specification of custom colors requires much work and is rarely worth the trouble, we make use
+of the CMYK model. We will use cyan instead of Pantone 298 (blue), magenta instead of Pantone 213
+(red), black will remain black and the yellow separation will be unused. The crop marks should not
+produce anything on the yellow separation and we should provide proper color names. The
+specification will therefore look as:
+
+\medskip
+
+\begin{verbatim}
+\usepackage[cropmarks,color,cropcolor={1,1,0,1},
+ colors={{Pantone\ 298\ (blue):1,0,0,0},
+ {Pantone\ 213\ (red):0,1,0,0},{Black:0,0,0,1}},
+ croptitle=Example\ with\ custom\ colors]{zwpagelayout}
+\end{verbatim}
+
+\medskip
+
+Notice that the \opt{colormodel} option was not specified. Its default value was used. The
+\opt{cropcolor} option left zero for the yellow separation.
+
+\section{Calculation of missing dimensions}\label{missing}
+The package can either calculate paper size from the page layout dimensions or calculate missing
+page layout dimensions if the paper size and some dimensions are known. It operates separately for
+the height and width. You can \eg. define the paper height and calculate the text height from it
+and the margins but specify all width layout dimensions and calculate the paper width.
+
+When designing simple pages it is better to define the paper size and calculate some page layout
+dimensions. However, for bok covers it is recommended to calculate at least the paper width from
+the layout dimensions of the front cover, the spine and the flap width.
+
+\subsection{Calculation of the paper size}
+Remember that paper size can be calculated only if all page layout dimensions for the corresponding
+orientation (height, width) are specified. There is no diagnostics for warning you if some
+important options are missing, the resukt will just be wrong or the package may even report an
+error. All dimensions are considered \emph{without} the area for the crop marks.
+
+\subsubsection{Paper height}
+Calculation of the paper height is very simple. The formula is:
+
+\medskip
+\cmd{paperheight} = \opt{topmargin} + \opt{textheight} + \opt{botmargin} + 2 \opt{ytrim}
+
+\medskip \noindent
+Remember that \opt{textheight} includes also \cmd{headheight}, \cmd{headsep}, and \cmd{footskip}.
+It is not necessary to specify \opt{ytrim}, the package checks the existence of this option and
+removes it from the formula if not given.
+
+\subsubsection{Paper width}
+Algorithm for calculating the paper width differs for simple pages and book covers. In the simple
+case the paper width is calculated as follows:
+
+\medskip
+\cmd{paperwidth} = \opt{leftmargin} + \opt{textwidth} + \opt{rightmargin}
+
+\medskip \noindent
+The value of \cmd{textwidth} will be equal to \opt{textwidth}. The same value will be stored in
+macro \cmd{UserWidth}, see section~\ref{crop.macros}.
+
+If the book cover is designed, the \opt{textwidth} option refers to the width of the text at the
+front cover but \opt{leftmargin} and \opt{rightmargin} are used to set \cmd{oddsidemargin} and
+\cmd{evensidemargin}. It is therefore better to set these options to zero, or alternatively to the
+same value as \opt{flap} or \opt{xtrim} if the corresponding area will be left empty. The value of
+\cmd{textwidth} will then be calculated from the final paper width by:
+
+\medskip
+\cmd{textwidth} = \cmd{paperwidth} -- \opt{leftmargin} -- \opt{rightmargin}
+
+\medskip
+If the \opt{flap} option is used without the \opt{spine} option in order to emulate the front cover
+and spine with an empty back cover, the paper width is calculated as:
+
+\medskip
+\cmd{paperwidth} = \opt{leftmargin} + \opt{flap} + \opt{textwidth} + \opt{xtrim} +
+\opt{rightmargin}
+
+\medskip \noindent
+The value of \opt{xtrim} may be omitted. The value of \opt{xspine} will be silently ignored. It is
+not allowed to have just the spine, the front cover and the flap while leaqving the back cover
+empty.
+
+The case of a book cover with the spine given is a bit more complicated:
+
+\medskip
+\textit{width} = \opt{xspine} + \opt{textwidth} + \opt{flap} + \opt{xtrim}
+
+\cmd{paperwidth} = \opt{leftmargin} + \opt{spine} + 2 \textit{width} + \opt{rightmargin}
+
+\medskip \noindent
+Options \opt{xspine}, \opt{flap}, and \opt{xtrim} need not be specified if these elements are not
+needed.
+
+\subsection{Calculation of page layout dimensions}\label{calc.pg.layout}
+Algorithm for calculating the page layout dimensions is intended for simple pages, not for book
+covers. Options \opt{xtrim}, \opt{ytrim}, \opt{spine}, \opt{xspine}, and \opt{flap} are silently
+ignored but will be taken into account when producing the crop marks. You can still make use of
+this algorithm if you understand what you are doing and if you wish to do extra calculations
+yourself.
+
+The dimensions may be overdetermined. In such a case the algorithm disregards one of the dimensions
+and calculates it.
+
+\subsubsection{Vertical dimensions}\label{vert.dim}
+The algorithm first looks whether \opt{textheight} was given. If not it is assumed that the user
+wishes to have it calculated from the paper height and the margins. If the \opt{botmargin} option was
+not set, it will be set to the same valu as \opt{topmargin}.
+
+In the second step the package looks whether \opt{botmargin} is defined, either by the user or from
+the previous step. If so, the text height is calculated, otherwise the bottom margin is calculated
+from the top margin and the text height. As a matter of fact, the bottom margin is never used by
+\TeX.
+
+Finally the value of \cmd{textwidth} is reduced by \cmd{headheight}, \cmd{headsep}, and
+\cmd{footskip}. If \opt{strictheight} is \cmd{false}, the values are later adjusted according to
+options \opt{adjustfootskip} and \opt{adjustheadsep} so that \cmd{textheight} -- \cmd{topskip} is
+an integer multiple of \cmd{baselineskip}.
+
+\subsubsection{Horizontal dimensions}
+The sum of the horizontal dimensions must be equal to the paper width according to the relation:
+
+\medskip
+\opt{leftmargin} + \opt{textwidth} + \opt{rightmargin} = \cmd{paperwidth}
+
+\medskip \noindent
+If all three dimensions are specified, \opt{textwidth} is disregarded and calculated from the other
+dimensions. If any two dimensions are given, the missing one is calculated from the above formula.
+If only one dimension is given, it is assumed that both margins have the same size and the above
+formula is applied. It is even possible to omit all dimensions. In such a case the margins are
+assumed to have the same size as \opt{topmargin} and the text width can thus be calculated.
+
+\section{Page reflection}
+\omg{Reflect\-Horizontally}
+\omg{ReflectVertically}
+We sometimes need to print the whole document as a mirror image. Although there are external tools
+that can provide such a job taking PDF or PS as input, it is useful to do everything in a single
+step. The package provides options \opt{ReflectHorizontally} for horizontal reflection and
+\opt{ReflectVertically} for vertical reflection, respectively. If you specify both, some drivers
+may interpret both of them and print rotated 180$^{\circ}$, some interpret only one of them and
+some driver may get totally confused. Remember that these options are intended for printing only.
+The hypertext links made by the \pkg{hyperref} package will be wrong. If you wish to rotate parts
+of texts and preserve hyperlinks, use \pkg{rotating} instead.
+
+\section{Useful macros}\label{macros}
+The package offers two types of useful macros. The macros from the first group help in designing
+the document. However, as mentioned in the Introduction, the package may be deployed in already
+existing document just for adding the crop marks. In order to reduce the risk of conflicts with
+other packages these macros are unavailable if the \opt{onlycropmarks} option is used. The second
+group contains macros that are primarily used in the crop mark generation. They are always visible.
+
+\subsection{Userspace macros}\label{user.macros}
+As written above, macros of this group are available only if the \opt{onlycropmarks} option was not
+used. It is not planned to make any interface for providing them even with the \opt{onlycropmarks}
+option. If the document is already finished, you do not need them. If you write a new document, it
+is preferable to use the whole package for defining the page layout. The macros will than be
+available.
+
+\cmg{topskip}
+\cmg{Vcorr}
+\TeX\ should use integer arithmetic but some implementations, \eg. em\TeX, violate this rule. This
+makes processing the text faster but may have bad results. If you combine text with boxes and fixed
+size glues the height of which is an integer multiple of \cmd{baselineskip}, the round-off errors
+may add a few scaled points, the page overflows and as a result is made one line shorter and
+underfull vbox is reported. For this reason tiny shrink is added to \cmd{topskip}, its
+size is \the\topskip. Yet it may not be sufficient in some cases. We therefore provide vertical
+skip macro \cmd{Vcorr} the size of which is shrinkable zero. The meaning of \cmd{Vcorr} is {\tt
+\meaning\Vcorr}.
+
+\cmg{vb}
+We often need a vertical skip the size of which is a multiple of \cmd{baselineskip}. Macro \cmd{vb}
+serves this very purpose. It accepts an optional argument in square brackets which denotes the
+multiple of \cmd{baselineskip}. The default value is~1. The command also contains compensation
+shrinkage. Some packages activate several characters, even those which could be used in numerical
+and dimension specifications. Hyphens and dots are temporarily deactivated within the optional
+argument of the \cmd{vb} macro. You thus can comfortably specify negative as well as fractional
+dimensions.
+
+\cmg{NewOddPage}
+\LaTeX\ provides \cmd{cleardoublepage} for moving the next text to the beginning of the odd page.
+However, you have no control over the page style of the inserted empty even page. This feature is
+enabled in the \cmd{NewOddPage} macro. Its syntax is:
+
+\medskip
+\verb;\NewOddPage*[;$\langle$style$\rangle$\verb;];
+
+\medskip\noindent
+Optional parameter $\langle$style$\rangle$ defines the style of the empty even page that should be
+fed to the \cmd{thispagestyle} command. The default is \texttt{empty}. The starred version displays
+a warning in the log file if an empty page was inserted.
+
+\cmg{SetOddPageMessage}
+This macro sets the contents of the message that should be displayed as a warning if an empty page
+was inserted as a result of \cmd{NewOddPage*}. The macro acts as \cmd{gdef}. This means that the
+definition is global and you can therefore have only one message unless you redefine it. The body
+of the message may contain macros. They will be expanded when the message is being written. You can
+use \cmd{MessageBreak} in order to split the text into several lines.
+
+\cmg{NewEvenPage}
+Generally speaking, you should not start a chapter on an even page but there are cases when it is
+desirable. Imagine the situation when each chapter starts with a full page illustration on the left
+and with its title page on the right. In such cases you need to start at the even page but \LaTeX\
+does not contain any direct tool for doing it. This package provides the \cmd{NewEvenPage} with the
+same syntaxe as \cmd{NewOddPage}.
+
+\cmg{SetEvenPageMessage}
+Similarly this macro serves for setting the message text that appears if an empty page was inserted
+as a result of the \cmd{NewEvenPage*} macro.
+
+\subsection{Crop mark macros}\label{crop.macros}
+\cmg{clap}
+\TeX\ offers zero-width horizontal boxes with contents overlapping to the right (\cmd{rlap}) or to
+the left (\cmd{llap}). The \pkg{zwpagelayout} package frequently needs a zero-width box with the
+contents centered overlapping evenly to both sides. The package thus provides macro \cmd{clap} and
+makes it available for the user.
+
+\cmg{CropFlap}
+\cmg{CropSpine}
+\cmg{CropXSpine}
+\cmg{CropXtrim}
+\cmg{CropYtrim}
+\cmg{UserWidth}
+\cmg{UserLeftMargin}
+\cmg{UserRightMargin}
+It was written in the Introduction that the package allows to prepare the book cover before the
+exact dimensions are known. Later we just adapt the values of the package options and everything is
+recalculated automatically. As a matter of fact, it could not happen if we did not refer to
+selected dimensions in the document symbolically. Thus the values of some options are available in
+macros: \cmd{CropFlap}\is\opt{flap}, \cmd{CropSpine}\is\opt{spine}, \cmd{CropXSpine}\is\opt{spine},
+\cmd{CropXtrim}\is\opt{xtrim}, \cmd{CropYtrim}\is\opt{ytrim},
+\cmd{UserWidth}\is\opt{textwidth}, \cmd{UserLeftMargin}\is\opt{leftmargin},
+\cmd{UserRightMargin}\is\opt{rightmargin}.
+
+The use of these macros can be shown by an example. The book cover with flaps displayed in
+Figure~\ref{cover} was prepared by the following code:
+
+\medskip
+\verbatiminput{coversample}
+
+\begin{sidewaysfigure}[p]
+\centerline{\includegraphics{coversample}}
+
+\caption{Sample of a book cover with flaps}\label{cover}
+\end{sidewaysfigure}
+
+Remember that these macros contain only the dimensions that were specified in the \cmd{usepackage}
+command, not those that were calculated by the algorithm described in section~\ref{calc.pg.layout}.
+If a shortcut option was used, all real dimensions are defined, \ie. the \opt{margins} option fills
+all four margin options, \opt{topmargin}, \opt{leftmargin}, \opt{rightmargin}, \opt{botmargin}, and
+the \opt{trim} option fills both \opt{xtrim} and \opt{ytrim}. You can take advantage of it to make
+your document more general. You can \eg. define the book cover in two variants, with or without
+flaps, using this trick:
+
+\medskip
+\begin{verbatim}
+\ifcat$\CropFlap$
+ % no flaps
+\else
+ \vbox to \textheight{\hsize\CropFlap
+ Flap text
+ }\hss
+\fi
+\end{verbatim}
+
+\medskip
+
+\cmg{thePageNumber}
+Macro \cmd{thePageNumber} is used to print the page number together with the crop mark text. We have
+already shownd that it may be suppressed by the \opt{nopagenumbers} option. Another possibility is
+to redefine it. We can \eg. define the book title with the \opt{croptitle} option and use the
+text ``Cover'' instead of the page number when typesetting the cover. Usage of this macro is also
+demonstrated in Figure~\ref{cover}.
+
+\section{Customizing crop styles}
+This section is intended for real \TeX perts. The package tries to provide a lot of options that
+enable to customize the default crop style. Try to live with them because here you are touching the
+very guts of the package. If you squeeze them badly, your document will suffer from strange
+problems the source of which will be difficult to trace. However, if you like tough challenges and
+your stomach is strong enough, then read on, but remember, you have been warned.
+
+You ask for a different crop style by the \opt{cropstyle} option as described in
+section~\ref{cropstyle} on page~\pageref{cropstyle}. Assume that you load the package with:
+
+\medskip
+\begin{verbatim}
+\usepackage[cropmarks,cropstyle=special,...]{zwpagelayout}
+\end{verbatim}
+
+\cmg{cropstyle@special}
+You will then have to define macro \cmd{cropstyle@special}. The package first patches the footer in
+all page styles. A zero-width, zero-height, zero-depth box is added to the beginning of the footer.
+The actual point is set to the lower left corner of the paper as defined by \cmd{paperheight} and
+\cmd{paperwidth}. If \opt{nobleedclip} was not used, the area outside the bleed box is erased. The
+current color is set according to \opt{cropcolor} option and the font is selected. Afterwards the
+\cmd{cropstyle@special} macro is called.
+
+As already noted, the intention is to discourage users from writing their own crop styles. We will
+therefore only mention that the package defines a few useful macros that can be used in the crop
+style definition. If your temptation to design your own crop style is really strong, you should
+better study the package internals yourself.
+
+\enlargethispage*{2in}
+
+\section{License}
+The package can be used and distributed according to the \LaTeX\ Project Public License version~1.3 or later the
+text of which can be found at the \texttt{License.txt} file in the \texttt{doc} directory or at
+\url{http://www.latex-project.org/lppl.txt}
+
+\end{document}