summaryrefslogtreecommitdiff
path: root/graphics/pstricks/contrib/pst-abspos/pst-abspos-doc.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /graphics/pstricks/contrib/pst-abspos/pst-abspos-doc.tex
Initial commit
Diffstat (limited to 'graphics/pstricks/contrib/pst-abspos/pst-abspos-doc.tex')
-rw-r--r--graphics/pstricks/contrib/pst-abspos/pst-abspos-doc.tex290
1 files changed, 290 insertions, 0 deletions
diff --git a/graphics/pstricks/contrib/pst-abspos/pst-abspos-doc.tex b/graphics/pstricks/contrib/pst-abspos/pst-abspos-doc.tex
new file mode 100644
index 0000000000..057e61b95d
--- /dev/null
+++ b/graphics/pstricks/contrib/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}