diff options
Diffstat (limited to 'Master/texmf-dist/doc/generic/pst-abspos/pst-abspos-doc.tex')
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-abspos/pst-abspos-doc.tex | 290 |
1 files changed, 290 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-abspos/pst-abspos-doc.tex b/Master/texmf-dist/doc/generic/pst-abspos/pst-abspos-doc.tex new file mode 100644 index 00000000000..057e61b95d5 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-abspos/pst-abspos-doc.tex @@ -0,0 +1,290 @@ +%% $Id: pst-abspos-doc.tex 135 2009-09-27 12:33:57Z herbert $ +\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings + headexclude,footexclude,oneside]{pst-doc} +\usepackage[utf8]{inputenc} +\usepackage[absolute]{pst-abspos} + +\let\pstFV\fileversion +\lstset{pos=l,wide=false,language=PSTricks, + morekeywords={multidipole,parallel},basicstyle=\footnotesize\ttfamily} +% +\definecolor{myGray}{rgb}{0.9,0.9,0.9} +\newcommand\x{blah blub laber text nonsense } +\begin{document} + +\title{\texttt{pst-abspos}} +\subtitle{A PSTricks package for using abolute or relative coordinates of a page; v.\pstFV} +\author{Herbert Vo\ss} +\docauthor{} +\date{\today} +\maketitle + +\tableofcontents + +\newpage +\pstSetAbsoluteOrigin +A Nonsense text line with \verb|\noindent|. + +\section{Introduction} +\pstPutAbs[position=rb,unit=1pt](0.95\paperwidth,-10){\texttt{pst-abspos}} +The package \LPack{pst-abspos} allows absolute positioning of objects. In \TeX{} the +actual ''cursor'' position is the \Index{origin} of the \Index{paper plane}. This makes it difficult +to put objects into absolute positions. The only constant position is the +origin of the paper plane, the upper left corner, which is 1 inch right +and 1 inch down. This absolute PostScript origin is not the one for the textarea +of \TeX, because it adds the horizontal margins \Lcs{oddsidemargin} and for the first +line \Lskip{parskip}. In the vertical direction there are added \Lskip{topskip}, +\Ldim{headheight} and \Ldim{headsep}. This is a bit confusing because there are different +origins of the paper plane: +\begin{itemize} +\item the upper left corner of the paper \pstPutAbs[position=lt](0,0){\qdisk(0,0){5pt}% + \raisebox{-2ex}{\red Absolute Paper Origin}} +\item the PostScript origin 1 inch from left and 1 inch from top + \pstPutAbs[unit=1in,position=lC](1,-1){\qdisk(0,0){5pt}\red ~~PostScript Origin} +\item the \TeX{} origin, adding \verb|\oddsidemargin| or \verb|\evensidemargin| to 1 inch and + substract \verb|\topskip|, \verb|\headheight| and \verb|\headsep| from the top + \qdisk(pstTextOrigin){5pt}\rput[rC](pstTextOrigin){\red Text Origin~~} +\item the \TeX{} relative origin, which describes the actual ''cursor'' position, like here: \qdisk(0,0){5pt}\rput[lC](0,0){\red "Cursor" Origin}. +\end{itemize} + +\section{Package Options} + +\begin{tabularx}{\textwidth}{lX} +\Loption{notitlepage} & When there is no titlepage it is easier to run the + initialisation macros. In this case the user has only to set the package option.\\ +\Loption{absolute} & the origin is the upper left paper corner\\ +\Loption{lowerleft} & the origin is mirrored to the lower left of the paper plane\\ +\Loption{PostScript} & the origin is 1inch from the left and 1 inch from the top of the paper\\ +\Loption{relative} & the origin is the upper left text area +\end{tabularx} + +Especially the \Loption{lowerleft} option may be useful. Together with the \Loption{absolute} +option the origin of the paper plane is at the lower left corner (see section~\ref{sec:lowerleft}). + +\section{The Macros} +The package tries to set the origin immediately after a newpage. This is not possible +with a \Index{title} because of an additional \Lcs{newpage} of the \Lenv{titlepage} environment. +In this case the user should controll the setting manually with +the macros + +\noindent +\begin{tabularx}{\linewidth}{@{}lX@{}} +\Lcs{pstSetAbsoluteOrigin} & the new origin is the upper left corner of the paper\\ +\Lcs{pstSetPostScriptOrigin} & the new origin is 1 inch from left and 1 inch from top of the upper left corner of the paper\\ +\Lcs{pstSetRelativeOrigin}\Largr{\CAny} & the new origin is the current point for $(0;0)$. All other values are relative to this one.\\ +\Lcs{pstPutAbs}\OptArgs\Largr{\CAny}\Largb{object} & puts any object depending to the option at $(x;y)$. +\end{tabularx} + +The first two macros have to be used immediately after a newpage. + +\subsection{Optional Parameters} +The \Lcs{pstPutAbs} macro can be called with all vaild \verb|pstricks| options and additionally +with \Lkeyword{position}\verb+=position+, where \Larg{position} can be replaced by the usual placing +values \Lnotation{lt}, \Lnotation{lC}, \Lnotation{lB}, \Lnotation{lb}, \ldots\ of the well known \Lcs{rput} macro. Important is the +setting of the \Lkeyword{unit} parameter, because \LPack{pst-abspos} knows nothing about +the unit. A valid call may be like + +\begin{Xverbatim}{\xLcs{pstPutAbs}} +\pstPutAbs[unit=1in,position=lC](1,-1){% + \qdisk(0,0){5pt}\textcolor{red}{~PostScript Origin}} +\end{Xverbatim} + +\section{Examples} +It is no problem to switch between the different origin settings when calling the +macros immediately aften a \Lcs{newpage}. If you want to set the origin at the ''cursor'' +position, then the macro can be called just on ''cursor'' position. + +\newpage +\pstSetAbsoluteOrigin +\section{Absolute Coordinates} +The point (0,0) is in the upper left corner and is set by the package option \Loption{absolute}. + +\begin{BDef} +\Lcs{usepackage}\Largs{absolute}\Largb{pst-abspos} +\end{BDef} + +\psset{unit=1in}% +\pstPutAbs(0,0){\qdisk(0,0){2pt}\rput(0,0){\red Origin}}Nonsense Text\pstPutAbs(1,-2){\qdisk(0,0){4pt}\red Point(1,-2)}% +\verb|\pstPutAbs(1,-2){\qdisk(0,0){4pt}\red Point(1,-2)}|\\ +Nonsense Text\\ +Nonsense Text\pstPutAbs(0,-2){\qdisk(0,0){4pt}\red Point(0,-2)}% +\verb|\pstPutAbs(0,-2){\qdisk(0,0){4pt}\red Point(0,-2)}|\\ +Nonsense Text\\ +Nonsense Text\pstPutAbs(0,-1){\qdisk(0,0){4pt}\red Point(0,-1)}% +\verb|\pstPutAbs(0,-1){\qdisk(0,0){4pt}\red Point(0,-1)}| +\pstPutAbs(1,-10){\scalebox{8}{\textcolor{myGray}{pst-abspos}}} +\pstPutAbs(1,-10){\qdisk(0,0){4pt}\red Point(1,-10)}% +\verb|\pstPutAbs(1,-10){\scalebox{8}{\textcolor{myGray}{pst-abspos}}}| +\verb|\pstPutAbs(1,-10){\qdisk(0,0){4pt}\red Point(1,-10)}| + +\vspace*{\fill} +\parbox{\textwidth}{% + \x\x\x\x\textcolor{red}{\texttt{\textbackslash pstPutAbs(3,0.5)\{\textbackslash qdisk(0,0)\{4pt\}\textbackslash blue Point(3,0.5)\}}}% + \pstPutAbs(3,0.5){\qdisk(0,0){4pt}\blue Point(3,0.5)}\x\x\x\x% + \texttt{\textcolor{red}{\textbackslash pstPutAbs(3,-5)\{\textbackslash qdisk(0,0)\{4pt\}\textbackslash blue Point(3,-5)\}}}\x\x\x% + \pstPutAbs(3,-5){\qdisk(0,0){4pt}\blue Point(3,-5)}} + +\clearpage +\pstSetRelativeOrigin(0,0)% + +\section{Relative Coordinates} +The point (0,0) is set as the relative origin and is set by the package option +\Loption{relative}. + +\begin{BDef} +\Lcs{usepackage}\Largs{relative}\Largb{pst-abspos} +\end{BDef} + +This relative point is the beginning of the first textline, which depends to all margins. +It allows to place the relative origin elsewhere depending to the relative point \verb|(0,0)|. + +\psset{unit=1in}% +\pstPutAbs(0,0){\qdisk(0,0){2pt}\rput(0,0){\red Origin}} +Nonsense Text\pstPutAbs(1,-2){\qdisk(0,0){4pt}\red Point(1,-2)}% +\verb|\pstPutAbs(1,-2){\qdisk(0,0){4pt}\red Point(1,-2)}|\\ +Nonsense Text\\ +Nonsense Text\pstPutAbs(0,-2){\qdisk(0,0){4pt}\red Point(0,-2)}% +\verb|\pstPutAbs(0,-2){\qdisk(0,0){4pt}\red Point(0,-2)}|\\ +Nonsense Text\\ +Nonsense Text\pstPutAbs(0,-1){\qdisk(0,0){4pt}\red Point(0,-1)}% +\verb|\pstPutAbs(0,-1){\qdisk(0,0){4pt}\red Point(0,-1)}| +\pstPutAbs(1,-10){\scalebox{8}{\textcolor{myGray}{pst-abspos}}} +\pstPutAbs(1,-10){\qdisk(0,0){4pt}\red Point(1,-10)}% +\verb|\pstPutAbs(1,-10){\scalebox{8}{\textcolor{myGray}{pst-abspos}}}| +\verb|\pstPutAbs(1,-10){\qdisk(0,0){4pt}\red Point(1,-10)}| + +\vspace*{\fill} +\parbox{\textwidth}{% + \x\x\x\x\textcolor{red}{\texttt{\textbackslash pstPutAbs(3,0.5)\{\textbackslash qdisk(0,0)\{4pt\}\textbackslash blue Point(3,0.5)\}}}% + \pstPutAbs(3,0.5){\qdisk(0,0){4pt}\blue Point(3,0.5)}\x\x\x\x% + \texttt{\textcolor{red}{\textbackslash pstPutAbs(3,-5)\{\textbackslash qdisk(0,0)\{4pt\}\textbackslash blue Point(3,-5)\}}}\x\x\x% + \pstPutAbs(3,-5){\qdisk(0,0){4pt}\blue Point(3,-5)}} + +\clearpage +\pstSetPostScriptOrigin% +\section{PostScript Origin} +The point (1in,-1in) is set as the absolue PostScript origin and is set by the package option +\Loption{relative}. + +\begin{Xverbatim}{\xLcs{usepackage}\xLoption{absolute}} +\usepackage[PostScript]{pst-abspos} +\end{Xverbatim} + +The coordinates (1in; -1in) have some historical +background and have nowadays no more real sense. If all horizontal and vertical +margins inside \TeX{} are set to zero, then this point +is (0,0). + +\psset{unit=1in}% +\pstPutAbs(0,0){\qdisk(0,0){2pt}\rput(0,0){\red Origin}}% +Nonsense Text\pstPutAbs(1,-2){\qdisk(0,0){4pt}\red Point(1,-2)}% +\verb|\pstPutAbs(1,-2){\qdisk(0,0){4pt}\red Point(1,-2)}|\\ +Nonsense Text\\ +Nonsense Text\pstPutAbs(0,-2){\qdisk(0,0){4pt}\red Point(0,-2)}% +\verb|\pstPutAbs(0,-2){\qdisk(0,0){4pt}\red Point(0,-2)}|\\ +Nonsense Text\\ +Nonsense Text\pstPutAbs(0,-1){\qdisk(0,0){4pt}\red Point(0,-1)}% +\verb|\pstPutAbs(0,-1){\qdisk(0,0){4pt}\red Point(0,-1)}| +\pstPutAbs(1,-10){\scalebox{8}{\textcolor{myGray}{pst-abspos}}} +\pstPutAbs(1,-10){\qdisk(0,0){4pt}\red Point(1,-10)}% +\verb|\pstPutAbs(1,-10){\scalebox{8}{\textcolor{myGray}{pst-abspos}}}| +\verb|\pstPutAbs(1,-10){\qdisk(0,0){4pt}\red Point(1,-10)}|\\ + +\vspace*{\fill} +\parbox{\textwidth}{% + \x\x\x\x\textcolor{red}{\texttt{\textbackslash pstPutAbs(3,0.5)\{\textbackslash qdisk(0,0)\{4pt\}\textbackslash blue Point(3,0.5)\}}}% + \pstPutAbs(3,0.5){\qdisk(0,0){4pt}\blue Point(3,0.5)}\x\x\x\x% + \texttt{\textcolor{red}{\textbackslash pstPutAbs(3,-5)\{\textbackslash qdisk(0,0)\{4pt\}\textbackslash blue Point(3,-5)\}}}\x\x\x% + \pstPutAbs(3,-5){\qdisk(0,0){4pt}\blue Point(3,-5)}} + +\newpage +\makeatletter +\pst@lowerlefttrue +\makeatother +\pstSetAbsoluteOrigin + +\section{Absolute Coordinates with an Origin in the Lower Left}\label{sec:lowerleft} +The point (0,0) is in the lower left corner and is set by the package option +\Loption{lowerLeft}. This is only useful for absolute coordinates. This is the reason why +this option should implie also the option \Loption{absolute}. + + +\begin{Xverbatim}{\xLcs{usepackage}\xLoption{lowerLeft}\xLoption{absolute}} +\Lcs{usepackage}\Largs{lowerLeft,absolute}\Largb{pst-abspos} +\end{BDef} + + +\psset{unit=1in}% +\pstPutAbs(0,0){\qdisk(0,0){4pt}\rput(0,0){\red Origin}}% +Nonsense Text\pstPutAbs(1,2){\qdisk(0,0){4pt}\red Point(1,2)}% +\verb|\pstPutAbs(1,2){\qdisk(0,0){4pt}\red Point(1,2)}|\\ +Nonsense Text\\ +Nonsense Text\pstPutAbs(0,2){\qdisk(0,0){4pt}\red Point(0,2)}% +\verb|\pstPutAbs(0,2){\qdisk(0,0){4pt}\red Point(0,2)}|\\ +Nonsense Text\\ +Nonsense Text\pstPutAbs(0,1){\qdisk(0,0){4pt}\red Point(0,1)}% +\verb|\pstPutAbs(0,1){\qdisk(0,0){4pt}\red Point(0,1)}| +\pstPutAbs(1,10){\scalebox{8}{\textcolor{myGray}{pst-abspos}}} +\pstPutAbs(1,10){\qdisk(0,0){4pt}\red Point(1,10)}% +\verb|\pstPutAbs(1,10){\scalebox{8}{\textcolor{myGray}{pst-abspos}}}|\\ +\verb|\pstPutAbs(1,10){\qdisk(0,0){4pt}\red Point(1,10)}|\\ + +\vspace*{\fill} +\parbox{\textwidth}{% + \x\x\x\x\textcolor{red}{\texttt{\textbackslash pstPutAbs(3,-0.5)\{\textbackslash qdisk(0,0)\{4pt\}\textbackslash blue Point(3,-0.5)\}}}% + \pstPutAbs(3,-0.5){\qdisk(0,0){4pt}\blue Point(3,-0.5)}\x\x\x\x% + \texttt{\textcolor{red}{\textbackslash pstPutAbs(3,5)\{\textbackslash qdisk(0,0)\{4pt\}\textbackslash blue Point(3,5)\}}}\x\x\x% + \pstPutAbs(3,5){\qdisk(0,0){4pt}\blue Point(3,5)}} + +\newpage +\pstSetPostScriptOrigin + +\section{Absolute PostScript Coordinates with an Origin in the Lower Left} +The origin point (0,0) is in the lower left corner with 1in from the left and 1inch +from the bottom and is set by the package option +\Loption{lowerLeft}. This is only useful for \Index{absolute coordinate}s. + +\begin{Xverbatim{\xLcs{usepackage}\xLoption{lowerLeft}\xLoption{PostScript}} +\usepackage[lowerLeft,PostScript]{pst-abspos} +\end{Xverbatim} + + +\psset{unit=1in}% +\pstPutAbs(0,0){\qdisk(0,0){4pt}\rput(0,0){\red Origin}}% +Nonsense Text\pstPutAbs(1,2){\qdisk(0,0){4pt}\red Point(1,2)}% +\verb|\pstPutAbs(1,2){\qdisk(0,0){4pt}\red Point(1,2)}|\\ +Nonsense Text\\ +Nonsense Text\pstPutAbs(0,2){\qdisk(0,0){4pt}\red Point(0,2)}% +\verb|\pstPutAbs(0,2){\qdisk(0,0){4pt}\red Point(0,2)}|\\ +Nonsense Text\\ +Nonsense Text\pstPutAbs(0,1){\qdisk(0,0){4pt}\red Point(0,1)}% +\verb|\pstPutAbs(0,1){\qdisk(0,0){4pt}\red Point(0,1)}| +\pstPutAbs(1,10){\scalebox{8}{\textcolor{myGray}{pst-abspos}}} +\pstPutAbs(1,10){\qdisk(0,0){4pt}\red Point(1,10)}% +\verb|\pstPutAbs(1,10){\scalebox{8}{\textcolor{myGray}{pst-abspos}}}|\\ +\verb|\pstPutAbs(1,10){\qdisk(0,0){4pt}\red Point(1,10)}|\\ + +\vspace*{\fill} +\parbox{\textwidth}{% + \x\x\x\x\textcolor{red}{\texttt{\textbackslash pstPutAbs(3,-0.5)\{\textbackslash qdisk(0,0)\{4pt\}\textbackslash blue Point(3,-0.5)\}}}% + \pstPutAbs(3,-0.5){\qdisk(0,0){4pt}\blue Point(3,-0.5)}\x\x\x\x% + \texttt{\textcolor{red}{\textbackslash pstPutAbs(3,5)\{\textbackslash qdisk(0,0)\{4pt\}\textbackslash blue Point(3,5)\}}}\x\x\x% + \pstPutAbs(3,5){\qdisk(0,0){4pt}\blue Point(3,5)}} + +\section{List of all optional arguments for \texttt{pst-abspos}} + +\xkvview{family=pst-abspos,columns={key,type,default}} + + +\bgroup +\raggedright +\nocite{*} +\bibliographystyle{plain} +\bibliography{\jobname} +\egroup + +\printindex +\end{document} + + +\end{document} |