summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-11-30 04:08:34 +0000
committerKarl Berry <karl@freefriends.org>2006-11-30 04:08:34 +0000
commit558c838dbb475d7472aeedbb7d2973c3211ed7cb (patch)
tree68676d888dad7faedab673484edc9cc742fc259a /Master
parentd020974aa866ebf75c1a7136213c03c015c7402d (diff)
ensure pst-text
git-svn-id: svn://tug.org/texlive/trunk@2561 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/generic/pst-text/Changes14
-rw-r--r--Master/texmf-dist/doc/generic/pst-text/README12
-rw-r--r--Master/texmf-dist/doc/generic/pst-text/pst-text-doc.bib78
-rw-r--r--Master/texmf-dist/doc/generic/pst-text/pst-text-doc.pdfbin0 -> 172169 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-text/pst-text-doc.tex508
-rw-r--r--Master/texmf-dist/dvips/pst-text/pst-text.pro110
-rw-r--r--Master/texmf-dist/source/generic/pst-text/Makefile49
-rw-r--r--Master/texmf-dist/tex/generic/pst-text/pst-text.tex156
-rw-r--r--Master/texmf-dist/tex/latex/pst-text/pst-text.sty7
-rw-r--r--Master/texmf-dist/tpm/pst-text.tpm4
10 files changed, 936 insertions, 2 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-text/Changes b/Master/texmf-dist/doc/generic/pst-text/Changes
new file mode 100644
index 00000000000..876042d4703
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-text/Changes
@@ -0,0 +1,14 @@
+pst-text.sty --------
+2006-01-01
+
+pst-text.tex --------
+1.00 2006-11-06 - integrate the pst-char stuff, which is
+ now obsolete. (hv)
+
+
+pst-text.pro --------
+1.00 2006-11-06 - add a patch for japanese text (hv)
+ - first CTAN contrib version (hv)
+
+
+pst-text-doc.tex --------
diff --git a/Master/texmf-dist/doc/generic/pst-text/README b/Master/texmf-dist/doc/generic/pst-text/README
new file mode 100644
index 00000000000..0be87e6a80e
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-text/README
@@ -0,0 +1,12 @@
+pst-text: text along a different path and char manipulations
+
+pst-text.sty - The LaTeX file
+pst-text.tex - The TeX file
+pst-text.pro - The dvips header file
+pst-text-doc.pdf - The documentation
+pst-text-doc.tex - The documentation, source
+pst-text-doc.bib - The documentation, bibfile
+
+
+--
+Herbert Voss 2006-11-05
diff --git a/Master/texmf-dist/doc/generic/pst-text/pst-text-doc.bib b/Master/texmf-dist/doc/generic/pst-text/pst-text-doc.bib
new file mode 100644
index 00000000000..04745cd2ae2
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-text/pst-text-doc.bib
@@ -0,0 +1,78 @@
+%% -*-bibtex-*-
+@STRING{tugboat = {TUGboat} }
+@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} }
+
+@Book{companion,
+ author = {Michel Goosens and Frank Mittelbach and Alexander
+ Samarin},
+ title = {The {\LaTeX} {G}raphics {C}ompanion},
+ publisher = {{Addison-Wesley Publishing Company}},
+ year = {1997},
+ address = {Reading, Mass.}
+}
+
+@Article{girou:01:,
+ author = {Denis Girou},
+ title = {Pr\'esentation de {PST}ricks},
+ journal = {Cahier {GUT}enberg},
+ year = 1994,
+ volume = {16},
+ month = apr,
+ pages = {21-70}
+}
+
+@Article{girou:02:,
+ author = {{Timothy Van} Zandt and Denis Girou},
+ title = {Inside {PST}ricks},
+ journal = TUGboat,
+ year = 1994,
+ volume = {15},
+ month = sep,
+ pages = {239-246}
+}
+
+@Book{PostScript,
+ Author = {Kollock, Nikolai G.},
+ Title = {Post{S}cript richtig eingesetzt: vom {K}onzept zum
+ praktischen {E}insatz},
+ Publisher = {IWT},
+ Address = {Vaterstetten},
+ year = 1989,
+}
+
+@Manual{pstricks,
+ Title = {PSTricks - {\PS} macros for generic {\TeX}},
+ Author = {{Timothy Van} Zandt},
+ Organization = {},
+ Address = {\url{http://www.tug.org/application/PSTricks}},
+ Note = {},
+ year = 1993
+}
+
+@Manual{pst-coil,
+ Title = {\texttt{pst-coil}: Coils and zigzags},
+ Author = {{Timothy Van} Zandt},
+ Organization = {},
+ Address = {\url{CTAN:graphics/pstricks/generic/}},
+ Note = {},
+ year = 1999
+}
+
+@Manual{multido,
+ Title = {\texttt{multido.tex} - a loop macro, that supports fixed-point addition},
+ Author = {{Timothy Van} Zandt},
+ Organization = {},
+ Address = {\url{CTAN:/graphics/pstricks/generic/multido.tex}},
+ Note = {},
+ year = 1997
+}
+
+@Book{PSTricks2,
+ author = {Herbert Vo\ss{}},
+ title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX},
+ edition = {third},
+ publisher = {DANTE -- Lehmanns},
+ year = {2006},
+ address = {Heidelberg/Hamburg}
+}
+
diff --git a/Master/texmf-dist/doc/generic/pst-text/pst-text-doc.pdf b/Master/texmf-dist/doc/generic/pst-text/pst-text-doc.pdf
new file mode 100644
index 00000000000..fe6df784704
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-text/pst-text-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-text/pst-text-doc.tex b/Master/texmf-dist/doc/generic/pst-text/pst-text-doc.tex
new file mode 100644
index 00000000000..8c068aba7b2
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-text/pst-text-doc.tex
@@ -0,0 +1,508 @@
+\documentclass[english]{article}
+%
+\usepackage[T1]{fontenc}
+\usepackage[latin9]{inputenc}
+\listfiles
+\usepackage[scaled]{luximono}
+\usepackage{lmodern}
+\usepackage{xspace}
+\usepackage[bottom]{footmisc}
+\usepackage{tabularx}
+\usepackage{longtable,setspace}
+\usepackage[NewCommands,NewParameters]{ragged2e}
+\usepackage[dvipsnames]{pstricks}
+\usepackage{pst-plot}
+\usepackage{pst-text,pst-grad}
+%
+\def\PST{{\texttt{PSTricks}}\xspace}
+\def\PDF{{\texttt{PDF}}\xspace}
+\def\pst{{\texttt{pstricks}}\xspace}
+\def\PS{PostScript\xspace}
+\newcommand*\CMD[1]{{\UrlFont\texttt{\textbackslash #1}}}
+%
+\def\tIndex#1{\index{#1@{\UrlFont\texttt{#1}}}}
+\def\cIndex#1{\index{#1@\CMD{#1}}}
+\def\pIndex#1{\index{Parameter@\textbf{Parameter}!{\UrlFont\texttt{#1}}}}
+\def\ppIndex#1{\index{Parameter@\textbf{Parameter}!{#1}}}
+\def\sIndex#1{\index{Syntax@\textbf{Syntax}!\CMD{#1}}}
+\def\csIndex#1{\sIndex{#1}\cIndex{#1}}
+\def\PIndex#1{\index{Paket@\textbf{Paket}!\texttt{#1}}}
+\def\mIndex#1{\texttt{#1}\tIndex{#1}\pIndex{#1}}
+%
+\pretolerance=500
+\tolerance=1000
+\hbadness=3000
+\vbadness=3000
+\hyphenpenalty=400
+
+\usepackage{showexpl}% not a real PSTricks package
+\usepackage{babel}
+\usepackage{makeidx}
+\makeindex
+\usepackage[dvips,colorlinks,linktocpage]{hyperref} % PDF-support
+%
+\renewcommand{\ttdefault}{ul9}% Luxi Mono
+\lstset{keywordstyle=\small\fontfamily{ul9}\bfseries}
+\lstset{language=PSTricks,moredelim=**[is][\bf\color{blue}]{§}{§}}% oder andere Begrenzer
+%
+
+\begin{document}
+%
+\title{\texttt{pst-text}: Manipulate text and characters}
+\author{Herbert Voß\thanks{Thanks to Lars Kotthoff and Geoff Mercer for translating this documentation!}}
+\maketitle
+
+\begin{abstract}
+\PS principally does not know lines in the proper meaning of the word, but only
+paths\index{path} and those can have any arbitrary form. Along such paths
+arbitrary text may be arranged. The package
+\verb+pst-text+\tIndex{pst-text} supports the setting of text along a path
+and other character manipulations, where several characters
+naturally result in a text again of course.
+
+It should be noted that the correct result is not guaranteed with every \verb+DVI-PS+\tIndex{DVI-PS} driver.
+This package was written for Rokicki's\index{Rokicki}
+\verb+dvips+\tIndex{dvips} programme, which is practically part of every \TeX{}
+distribution.
+\end{abstract}
+
+\tableofcontents
+
+\clearpage
+
+% ---------------------------------------------------------------------------------------
+\section{Text manipulations}\label{sec:psttext:Textmanipulationen}
+% ---------------------------------------------------------------------------------------
+The package \verb+pst-text+ principally defines only one macro.
+\begin{verbatim}
+\pstextpath[<position>](<x,y>){<graphic object>}{<text>}
+\end{verbatim}
+
+\begin{description}
+\item[<position>] specifies the alignment of the text referring to the path.
+\begin{description}
+\item[\texttt{l}] text starts at the beginning of the path (default).
+\item[\texttt{c}] text is aligned symmetrically to the middle of the path.
+\item[\texttt{r}] text ends at the end of the path.
+\end{description}
+As a basic principle it is to be kept in mind that when the text is longer
+than the path this option has no effect since the path is filled with text
+and any overflowing text disappears.
+\item[<x,y>] is an offset\index{offset} and denotes the values by which the
+ particular characters shall be translated in $x$ and $y$ direction
+ relative to the path.
+ \verb+(<x,y>)+ have to be cartesian coordinates as the support for special
+ coordinates allowed by \PST is not
+ possible here. The dimensions of $x$ and $y$ refer to the current scale. The default is
+ \verb+(0,\TPoffset)+,\cIndex{TPoffset} where \verb+TPoffset+ is set to a
+ length of \verb+-0.7ex+.
+\item[<graphic object>] any arbitrary object which creates a path.
+\item[<text>] the text to set, which may only consist of alphanumeric
+ characters. No macros are possible within the text,
+ but the text may be put into a \verb+\parbox+.
+\end{description}
+
+\PS does not reserve any space for the output, so that the current text
+is overwritten if corresponding white space has not been provided by \TeX.
+This can be achieved with a vertical feed (\verb+\vspace+\cIndex{vspace}) or
+with a \verb+pspicture+ environment\tIndex{pspicture}.
+
+\begin{minipage}{4.5cm}
+\begin{pspicture}(-2,-2.5)(2,2.5)
+\psset{linewidth=0.2pt}
+\pstextpath[c](0,0){\pscircle{2}}%
+ {\Large Now just text is written in a circle.}
+\end{pspicture}
+\end{minipage}\hfill%
+\begin{minipage}{\linewidth-4.5cm-1em}
+\begin{lstlisting}
+\begin{pspicture}(-2,-2.5)(2,2.5)
+\psset{linewidth=0.2pt}
+\pstextpath[c](0,0){\pscircle{2}}%
+ {\Large Now just text is written in a circle.}
+\end{pspicture}
+\end{lstlisting}
+\end{minipage}
+
+This first example shows the relatively easy use of the macro. If the path
+is not required to be drawn the line style\index{line style} can be set to \verb+none+.
+The following example shows the use of the offset option. It is clear that
+every single character is translated, because the beginning and the end of the
+text stayed the same. Since the text was written in a circle, a positive
+specification for \verb+TPoffset+ causes a translation towards the centre of the circle.
+
+\medskip\noindent
+\begin{LTXexample}[width=4.5cm]
+\begin{pspicture}(-2,-2.5)(2,2.5)
+\psset{linewidth=0.2pt}
+\pstextpath[c](0,2ex){\pscircle{2}}%
+ {\Large Now just text is written in a circle.}
+\end{pspicture}
+\end{LTXexample}
+
+% The following example was first published in \cite{girou:01} and represents
+% the original form of the poem ``La colombe poignard� et le jet d'au'' by
+% Guillaume Appolinaire.
+
+% ---------------------------------------------------------------------------------------
+\medskip
+\subsection{Examples}
+% ---------------------------------------------------------------------------------------
+With \verb+\pscustom+ one is offered unlimited
+possibilities for paths. The following example uses the circle again, but
+forms an eight, which is composed of four circle parts to get a continuous path. In
+the second example a square has been appended to a circle. The starting point of the
+path is always the circle at $0$, here marked by $\Rightarrow$.
+
+
+\medskip\noindent
+\begin{LTXexample}[width=4cm]
+\psset{unit=0.75,linestyle=none}
+\begin{pspicture}(-2,-4)(2,4)
+\pstextpath[l](0,0){%
+ \pscustom{
+ \psarcn(0,2){2}{0}{-90}
+ \psarc(0,-2){2}{90}{0}
+ \psarc(0,-2){2}{0}{90}
+ \psarcn(0,2){2}{-90}{0}
+ }%
+}{\large $\Rightarrow$Now we are writing some nonsense text which appears in
+ a large eight in the correct direction.}
+\end{pspicture}
+\end{LTXexample}
+
+\medskip\noindent
+It can be easily seen that in the above example the upper circle is larger than
+the lower. This is because the text is always written on the path, which faces
+towards the inner on the upper circle and towards the outer on the lower circle (or square)
+due to the
+change in direction.
+
+
+\medskip\noindent
+\begin{LTXexample}[width=4cm]
+\begin{pspicture}(-2,-3.25)(2,3.25)
+\psset{linestyle=none}
+\pstextpath[l](0,0){%
+ \pscustom[unit=0.75]{
+ \psarcn(0,2){2}{0}{-90}
+ \pspolygon(0,0)(-1.7,0)(-1.7,-3.4)(1.7,-3.4)(1.7,0)(0,0)
+ \psarcn(0,2){2}{-90}{0}
+ }%
+}{\large $\Rightarrow$Jetzt wollen wir
+ einfach mal einen Text in einer
+ ziemlich gro�n ACHT schreiben,
+ aber richtig rum.}
+\end{pspicture}
+\end{LTXexample}
+
+\medskip\noindent
+The setting of the text along a path is very memory and calculation intensive on the
+\PS side, so that with longer texts some seconds may pass until the desired
+result appears even on faster computers. This is shown in the following example,
+where the text is the beginning of the song ``Into the shining sun''{} by Pink
+Floyd. Note how the text is truncated as the path is too short to fit the entire text in.
+
+\medskip\noindent
+\begin{center}
+\begin{pspicture}(-3,-3)(3,3)
+\psset{linestyle=none}
+\pstextpath[l](0,0){%
+ \parametricplot[plotstyle=curve,%
+ plotpoints=500]{0}{3000}{%
+ /r {t 1000 div} def t sin r mul t cos r mul }
+}{
+Where were you when I was burned and broken -
+While the days slipped by from my window watching -
+Where were you when I was hurt and I was helpless -
+Because the things you say and the things you do surround me -
+While you were hanging yourself on someones else's words -
+Dying to believe in what you heard -
+I was staring straight into the shining sun -
+
+Lost in thought and lost in time -
+While the seeds of life and the seeds of change were planted
+Outside the rain fell dark and slow
+While I pondered on this dangerous but irresistible pastime
+}
+\end{pspicture}
+\end{center}
+
+\begin{lstlisting}
+%\usepackage{pst-plot}
+
+\begin{pspicture}(-3,-3)(3,3)
+\psset{linestyle=none}
+\pstextpath[l](0,0){%
+ \parametricplot[plotstyle=curve,%
+ plotpoints=500]{0}{3000}{%
+ /r {t 1000 div} def t sin r mul t cos r mul }
+}{
+Where were you when I was burned and broken -
+While the days slipped by from my window watching -
+Where were you when I was hurt and I was helpless -
+Because the things you say and the things you do surround me -
+While you were hanging yourself on someones else's words -
+Dying to believe in what you heard -
+I was staring straight into the shining sun -
+
+Lost in thought and lost in time -
+While the seeds of life and the seeds of change were planted
+Outside the rain fell dark and slow
+While I pondered on this dangerous but irresistible pastime
+}
+\end{pspicture}
+\end{lstlisting}
+
+
+\section{Character manipulations}\label{sec:psttext:Zeichenmanipulationen}
+% ---------------------------------------------------------------------------------------
+With character manipulations the same issue with the \verb+DVI-PS+ driver applies, namely that the results are only guaranteed for Rokicki's\index{Rokicki}
+\verb+dvips+\tIndex{dvips} programme.\index{outline font}
+
+% ---------------------------------------------------------------------------------------
+\subsection{\CMD{pscharpath}}\label{sec:psttext:pscharpath}
+% ---------------------------------------------------------------------------------------
+\csIndex{pscharpath}Although this macro has a name similar to
+\verb+\pstextpath+, it has a completely different meaning.
+%
+\begin{verbatim}
+\pscharpath[<parameters>]{<text>}
+\pscharpath*[<parameters>]{<text>}
+\end{verbatim}
+
+\begin{description}
+\item[<parameters>] All \PST parameters, insofar as they make sense, may be
+ specified here.
+\item[<text>] The text to set, which may only consist of alphanumeric
+ characters, therefore no macros are possible within the text.
+\end{description}
+
+Normally, one will define ones own font size, which is best done with
+\verb+\DeclareFixedFont+\cIndex{DeclareFixedFont}, since this macro is very
+fast because it simply sets the size without having to look up any font tables.
+
+\medskip\noindent
+\begin{LTXexample}[width=6.5cm]
+\DeclareFixedFont{\RM}{T1}{ptm}{b}{n}{2cm}
+\pscharpath{\RM TeXnik}\\
+\pscharpath[linecolor=lightgray]{\RM TeXnik}\\
+\psset{fillstyle=gradient,gradbegin=red,gradend=cyan}
+\pscharpath[gradangle=90]{\RM TeXnik}\\
+\pscharpath[linestyle=none,gradangle=-90]{\RM TeXnik}
+\end{LTXexample}
+
+\medskip\noindent
+Normally the path, here the outer line of the characters, is deleted after the
+macro \verb+\pscharpath+ has ended. With the asterisk version it is preserved
+and can be used for other ``baubles''{}, for instance for \verb+\pstextpath+,
+where the saved path can be used as input for the text to set.
+
+
+\medskip\noindent
+\DeclareFixedFont{\SF}{T1}{phv}{b}{n}{2.45cm}
+\begin{center}
+\pstextpath(0,-1ex){\pscharpath*[linestyle=none]{\SF Pink Floyd}}{
+\scriptsize Where were you when I was burned and broken -
+While the days slipped by from my window watching -
+Where were you when I was hurt and I was helpless -
+Because the things you say and the things you do surround me -
+While you were hanging yourself on someones else's words -
+Dying to believe in what you heard -
+I was staring straight into the shining sun -
+
+Lost in thought and lost in time -
+While the seeds of life and the seeds of change were planted
+Outside the rain fell dark and slow
+While I pondered on this dangerous but irresistible pastime
+}
+\end{center}
+
+\begin{lstlisting}
+\DeclareFixedFont{\SF}{T1}{phv}{b}{n}{2.5cm}
+\pstextpath(0,-1ex){%
+ \pscharpath*[linestyle=none]{\SF Pink Floyd}}{
+ \scriptsize < ... Text ... >
+ }
+\end{lstlisting}
+
+% ---------------------------------------------------------------------------------------
+\subsection{\CMD{pscharclip}}\label{sec:psttext:pscharclip}
+% ---------------------------------------------------------------------------------------
+\csIndex{pscharclip}\verb+\pscharclip+ is practically identical to
+\verb+\pscharpath+ with the only difference being that it sets the clipping
+path\index{clipping path} to the current path.
+%
+\begin{verbatim}
+\pscharclip[<parameters>]{<text>} % TeX example
+ ...
+\endpscharclip
+\pscharclip*[<parameters>]{<text>}% TeX example
+ ...
+\endpscharclip
+\begin{pscharclip}[<parameters>]{<text>} % LaTeX example
+ ...
+\end{pscharclip}
+\begin{pscharclip*}[<parameters>]{<text>}% LaTeX example
+ ...
+\end{pscharclip}
+\end{verbatim}
+%
+Using this one can ``write''{} \emph{within} a font, whereas it is not really
+easy to get the ``base''{} congruent. How to deal with this best shall is shown
+in the following worked example.
+
+The base is best formed as a \verb+minipage+\tIndex{minipage},
+thus enabling it to be moved to arbitrary spots. To have clear coordinates on one hand
+and only the interesting area shown on the other hand, one uses a
+\verb+pspicture*+ environment\tIndex{pspicture*}. Let us presume that we use a
+font size of $3$cm and want to use the width of the whole page.
+%
+\begin{verbatim}
+\begin{pspicture*}(\linewidth,3cm)
+...
+\end{pspicture}
+\end{verbatim}
+%
+The text can be set exactly into the centre with a \verb+\rput+
+instruction\cIndex{rput}.
+
+\DeclareFixedFont{\RM}{T1}{ptm}{b}{n}{3cm}
+\begin{pspicture*}(\linewidth,3cm)
+ \psgrid%
+ \begin{pscharclip}[linewidth=0.1pt]{%
+ \rput(0.5\linewidth,1.5){\RM PSTricks}}%
+ \end{pscharclip}
+\end{pspicture*}
+
+\begin{lstlisting}
+\DeclareFixedFont{\RM}{T1}{ptm}{b}{n}{3cm}
+\begin{pspicture*}(\linewidth,3cm)
+ \psgrid%
+ \begin{pscharclip}[linewidth=0.1pt]{%
+ \rput(0.5\linewidth,1.5){\RM PSTricks}}%
+ \end{pscharclip}
+\end{pspicture*}
+\end{lstlisting}
+
+\medskip
+The text ``lying below''{} the font is put into a \verb+minipage+\tIndex{minipage} of the
+width \verb+\linewidth+\cIndex{linewidth}. Since this text underlies the
+clipping path, it does not matter how long it really is, the essential thing is that the
+the whole area is covered. This is especially important when the text is further manipulated such as rotated. So one may view the following example with
+\verb+\begin{minipage}{\linewidth}+.
+
+\medskip
+\DeclareFixedFont{\Rm}{T1}{ptm}{m}{n}{2mm}
+\begin{pspicture*}(\linewidth,3cm)
+ \psgrid%
+ \rput{60}(0.5\linewidth,1.5){%
+ \begin{minipage}{0.6\linewidth}
+ \setstretch{0.5}
+ \color{red}
+ \multido{\i=1+1}{500}{\Rm PSTricks }
+ \end{minipage}%
+ }
+\end{pspicture*}
+
+
+\begin{lstlisting}
+\DeclareFixedFont{\Rm}{T1}{ptm}{m}{n}{2mm}
+\begin{pspicture*}(\linewidth,3cm)
+ \psgrid%
+ \rput{60}(0.5\linewidth,1.5){%
+ \begin{minipage}{0.6\linewidth}
+ \setstretch{0.5}
+ \color{red}
+ \multido{\i=1+1}{500}{\Rm PSTricks }
+ \end{minipage}%
+ }
+\end{pspicture*}
+\end{lstlisting}
+
+\medskip
+Both of these can be overlaid where, because of the clipping
+path,\index{clipping path} only the inner of the large letters seems transparent.
+In the second example the \verb+minipage+ has been additionally rotated, the
+line colour was ignored and the line spacing within the \verb+minipage+ was
+halved (package \verb+setspace+\tIndex{setspace}).
+
+\medskip
+\begin{pspicture*}(\linewidth,3cm)
+ \begin{pscharclip}[linewidth=0.1pt]{%
+ \rput(0.5\linewidth,1.5){\RM PSTricks}}%
+ \rput{60}(0.5\linewidth,1.5){%
+ \begin{minipage}{0.6\linewidth}
+ \setstretch{0.5}
+ \color{red}
+ \multido{\i=1+1}{500}{\Rm PSTricks }
+ \end{minipage}%
+ }
+ \end{pscharclip}
+\end{pspicture*}
+
+\begin{pspicture*}(\linewidth,3cm)
+ \begin{pscharclip}[linewidth=0.1pt,linestyle=none]{%
+ \rput(0.5\linewidth,1.5){\RM PSTricks}}%
+ \rput{-60}(0.5\linewidth,1.5){%
+ \begin{minipage}{0.6\linewidth}
+ \setstretch{0.5}
+ \multido{\i=1+1}{500}{\Rm PSTricks }
+ \end{minipage}%
+ }
+ \end{pscharclip}
+\end{pspicture*}
+
+
+\begin{lstlisting}
+\DeclareFixedFont{\RM}{T1}{ptm}{b}{n}{3cm}
+\DeclareFixedFont{\Rm}{T1}{ptm}{m}{n}{2mm}
+\begin{pspicture*}(\linewidth,3cm)
+ \begin{pscharclip}[linewidth=0.1pt]{%
+ \rput(0.5\linewidth,1.5){\RM PSTricks}}%
+ \rput{60}(0.5\linewidth,1.5){%
+ \begin{minipage}{0.6\linewidth}
+ \setstretch{0.5}
+ \color{red}
+ \multido{\i=1+1}{500}{\Rm PSTricks }
+ \end{minipage}%
+ }
+ \end{pscharclip}
+\end{pspicture*}
+
+\begin{pspicture*}(\linewidth,3cm)
+ \begin{pscharclip}[linewidth=0.1pt,linestyle=none]{%
+ \rput(0.5\linewidth,1.5){\RM PSTricks}}%
+ \rput{-60}(0.5\linewidth,1.5){%
+ \begin{minipage}{0.6\linewidth}
+ \setstretch{0.5}
+ \multido{\i=1+1}{500}{\Rm PSTricks }
+ \end{minipage}%
+ }
+ \end{pscharclip}
+\end{pspicture*}
+\end{lstlisting}
+
+
+\medskip
+Generally it is not of interest what one bases \verb+\pscharclip+ on.
+Using things sucha as a graphic can lead to some interesting possibilities.
+It should be kept in mind
+that alternatively \verb+pscharpath+\cIndex{pscharpath} may be
+used in conjunction with \verb+psboxfill+\cIndex{psboxfill}.
+
+
+
+
+
+\nocite{*}
+\bgroup
+\raggedright
+\bibliographystyle{plain}
+\bibliography{\jobname}
+\egroup
+
+\printindex
+
+
+\end{document}
diff --git a/Master/texmf-dist/dvips/pst-text/pst-text.pro b/Master/texmf-dist/dvips/pst-text/pst-text.pro
new file mode 100644
index 00000000000..99e705b2205
--- /dev/null
+++ b/Master/texmf-dist/dvips/pst-text/pst-text.pro
@@ -0,0 +1,110 @@
+%!
+% PostScript header file pst-text.pro
+% Version 1.0, 2005-11-29 (hv)
+% For distribution, see pstricks.tex.
+
+/tx@TextPathDict 40 dict def
+tx@TextPathDict begin
+
+% Syntax: <dist> PathPosition -
+% Function: Searches for position of currentpath distance <dist> from
+% beginning. Sets (X,Y)=position, and Angle=tangent.
+/PathPosition
+{ /targetdist exch def
+ /pathdist 0 def
+ /continue true def
+ /X { newx } def /Y { newy } def /Angle 0 def
+ gsave
+ flattenpath
+ { movetoproc } { linetoproc } { } { firstx firsty linetoproc }
+ /pathforall load stopped { pop pop pop pop /X 0 def /Y 0 def } if
+ grestore
+} def
+
+/movetoproc { continue { @movetoproc } { pop pop } ifelse } def
+
+/@movetoproc
+{ /newy exch def /newx exch def
+ /firstx newx def /firsty newy def
+} def
+
+/linetoproc { continue { @linetoproc } { pop pop } ifelse } def
+
+/@linetoproc {
+ /oldx newx def /oldy newy def
+ /newy exch def /newx exch def
+ /dx newx oldx sub def
+ /dy newy oldy sub def
+ /dist dx dup mul dy dup mul add sqrt def
+ /pathdist pathdist dist add def
+ pathdist targetdist ge
+ { pathdist targetdist sub dist div dup
+ dy mul neg newy add /Y exch def
+ dx mul neg newx add /X exch def
+ /Angle dy dx atan def
+ /continue false def
+ } if
+} def
+
+/TextPathShow {
+ /String exch def
+ /CharCount 0 def
+% hv begin 2005-11-29 1.00
+% String length
+% { String CharCount 1 getinterval ShowChar
+% /CharCount CharCount 1 add def
+ /CharSize 1 def
+ currentfont /FontType get 0 eq
+ { currentfont /FMapType get dup 2 eq exch dup 5 eq exch 9 eq or or
+ { /CharSize 2 def} if
+ } if
+ String length CharSize idiv
+ { String CharCount CharSize getinterval ShowChar
+ /CharCount CharCount CharSize add def
+% hv end 2005-11-29 1.00
+ } repeat
+} def
+
+% Syntax: <pathlength> <position> InitTextPath -
+/InitTextPath
+{ gsave
+ currentpoint /Y exch def /X exch def
+ exch X Hoffset sub sub mul
+ Voffset Hoffset sub add
+ neg X add /Hoffset exch def
+ /Voffset Y def
+ grestore
+} def
+
+/Transform
+{ PathPosition
+ dup
+ Angle cos mul Y add exch
+ Angle sin mul neg X add exch
+ translate
+ Angle rotate
+} def
+
+/ShowChar {
+ /Char exch def
+ gsave
+ Char end stringwidth
+ tx@TextPathDict begin
+ 2 div /Sy exch def 2 div /Sx exch def
+
+%%% MV 10-09-99 00:36
+ /sc?currentpoint where {pop sc?currentpoint} {currentpoint} ifelse
+% currentpoint
+
+ Voffset sub Sy add exch
+ Hoffset sub Sx add
+ Transform
+ Sx neg Sy neg moveto
+ Char end tx@TextPathSavedShow
+ tx@TextPathDict begin
+ grestore
+ Sx 2 mul Sy 2 mul rmoveto
+} def
+%
+end
+% END pst-text.pro
diff --git a/Master/texmf-dist/source/generic/pst-text/Makefile b/Master/texmf-dist/source/generic/pst-text/Makefile
new file mode 100644
index 00000000000..e9339b26ce4
--- /dev/null
+++ b/Master/texmf-dist/source/generic/pst-text/Makefile
@@ -0,0 +1,49 @@
+
+# `Makefile' for `pst-text.pdf', hv, 2006/08/11
+
+.SUFFIXES : .tex .ltx .dvi .ps .pdf .eps
+
+PACKAGE = pst-text
+
+MAIN = pst-text-doc
+
+LATEX = latex
+
+ARCHNAME = $(MAIN)-$(shell date +%y%m%d)
+
+ARCHFILES = $(PACKAGE).sty $(PACKAGE).tex $(PACKAGE).pro $(MAIN).tex README Changes Makefile
+
+all : doc
+# clean
+doc: $(MAIN).pdf
+
+$(MAIN).pdf : $(MAIN).ps
+ GS_OPTIONS=-dAutoRotatePages=/None ps2pdf $<
+
+$(MAIN).ps : $(MAIN).dvi
+ dvips $<
+
+$(MAIN).dvi : $(MAIN).tex
+ $(LATEX) $<
+ $(LATEX) $<
+ if ! test -f $(basename $<).glo ; then touch $(basename $<).glo; fi
+ if ! test -f $(basename $<).idx ; then touch $(basename $<).idx; fi
+ makeindex -s gglo.ist -t $(basename $<).glg -o $(basename $<).gls \
+ $(basename $<).glo
+ makeindex -t $(basename $<).ilg -o $(basename $<).ind \
+ $(basename $<).idx
+ bibtex $(basename $<)
+ $(LATEX) $<
+ $(LATEX) $<
+
+clean :
+ $(RM) $(addprefix $(MAIN), .log .aux .glg .glo .gls .ilg .idx .ind .tmp .toc .out )
+ $(RM) $(addprefix $(MAIN), .dvi .ps)
+
+veryclean : clean
+ $(RM) $(addprefix $(MAIN), .pdf .bbl .blg)
+
+arch :
+ zip $(ARCHNAME).zip $(ARCHFILES)
+
+# EOF
diff --git a/Master/texmf-dist/tex/generic/pst-text/pst-text.tex b/Master/texmf-dist/tex/generic/pst-text/pst-text.tex
new file mode 100644
index 00000000000..02de2985623
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pst-text/pst-text.tex
@@ -0,0 +1,156 @@
+%% BEGIN pst-text.tex
+%%
+%% Placing text on a path with PSTricks 97.
+%% See the PSTricks User's Guide for description.
+%% This uses the header file `pst-text.pro'.
+%%
+%%
+%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
+%% 2006 Herbert Voss <hvoss@tug.org>
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%
+\csname PSTextPathLoaded\endcsname
+\let\PSTextPathLoaded\endinput
+\ifx\PSTricksLoaded\endinput\else\input pstricks \fi
+%\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey \fi
+%
+\def\fileversion{1.00}
+\def\filedate{2006/11/05}
+\message{ v\fileversion, \filedate (tvz,hv)}
+
+\edef\TheAtCode{\the\catcode`\@}
+\catcode`\@=11
+
+%\pst@addfams{pst-text}
+\pstheader{pst-text.pro}
+%
+\def\pstextpath{\@ifnextchar[{\pstextpath@}{\pstextpath@[l]}}
+\def\pstextpath@[#1]{%
+ \@ifnextchar({\pstextpath@@[#1]}{\pstextpath@@[#1](0,\TPoffset)}}
+\def\pstextpath@@[#1](#2)#3{\pst@makebox{\pstextpath@@@[#1](#2){#3}}}
+\def\pstextpath@@@[#1](#2,#3)#4{%
+ \pst@killglue
+ \begingroup
+ \ifx c#1\relax
+ \def\pst@tempa{.5}%
+ \else
+ \ifx r#1\relax
+ \def\pst@tempa{1}%
+ \else
+ \def\pst@tempa{0}%
+ \fi
+ \fi
+ \def\use@pscode{%
+ \pst@Verb{%
+ /mtrxc CM def
+ \tx@STV
+ CP translate
+ newpath
+ \pst@code\space
+ mtrxc setmatrix
+ 0 setgray}%
+ \gdef\pst@code{}}%
+ \def\psclip#1{\pst@misplaced\psclip}%
+ \let\endpsclip\relax
+ \def\@multips(##1)(##2)##3##4{\pst@misplaced\multips}%
+ \def\nc@object##1##2##3##4{\pst@misplaced{node connection}}%
+ \def\PSTtoEPS@i##1##2{\pst@misplaced\PSTtoEPS}%
+ \pssetlength\pst@dima{#2}%
+ \pssetlength\pst@dimb{#3}%
+ \setbox\pst@hbox\hbox{%
+ \hbox to\z@{%
+ \kern -\wd\pst@hbox
+ % BoxWidth = CurrX - Hoffset.
+ \pstVerb{tx@TextPathDict begin
+ currentpoint pop /Hoffset exch def end}%
+ \kern\pst@dima
+ % XOffset = Voffset - Hoffset (extra horizontal skip)
+ \pstVerb{tx@TextPathDict begin
+ currentpoint pop /Voffset exch def end}%
+ \hss
+ \pstVerb{%
+ /tx@TextPathSavedShow /show load def
+ \pst@dict \tx@PathLength end
+ dup 0 gt
+ { tx@TextPathDict begin \pst@tempa\space InitTextPath end
+ /show { tx@TextPathDict begin TextPathShow end } def
+ }
+ { pop }
+ ifelse}}%
+ \raise\pst@dimb\box\pst@hbox
+ \pstVerb{%
+ currentpoint newpath moveto
+ /show /tx@TextPathSavedShow load def}}%
+ \wd\pst@hbox=\z@ \dp\pst@hbox=\z@ \ht\pst@hbox=\z@
+ \leavevmode
+ \hbox{{#4}\box\pst@hbox}%
+ \endgroup\ignorespaces}
+\def\TPoffset{-.7ex}
+%
+\def\tx@CharPathShow{%
+ /tx@CharPathSavedShow /show load def
+ /show {
+ % These 3 lines check whether charpath yields anything interesting.
+ dup gsave newpath 0 0 moveto
+ true charpath pathbbox grestore
+ 3 -1 roll eq 3 1 roll eq and
+ % If not, just use show.
+ { tx@CharPathSavedShow }
+ % Otherwise, use charpath.
+ { true charpath }
+ ifelse }
+ def }
+%
+\def\pscharpath{\def\pst@par{}\pst@object{pscharpath}}
+\def\pscharpath@i{\pst@makebox\pscharpath@ii}
+\def\pscharpath@ii{%
+ \leavevmode\hbox{%
+ \pstVerb{\tx@CharPathShow}%
+ \box\pst@hbox
+ \pstVerb{/show /tx@CharPathSavedShow load def}%
+% DG/SR modification begin - Nov. 26, 1998 - Patch 2
+% \if@star is true but \solid@star must not be executed in \begin@ClosedObj !
+% \begin@ClosedObj
+ \let\solid@starOLD\solid@star
+ \let\solid@star\relax
+ \begin@ClosedObj
+ \let\solid@star\solid@starOLD
+% DG/SR modification end
+ \def\pst@linetype{1}%
+ \psdashadjustfalse
+ \showpointsfalse
+ \let\pst@newpath\@empty
+ \def\use@pscode{%
+ \pst@Verb{%
+ gsave
+ \tx@STV
+ \pst@code
+ grestore
+% DG/SR modification begin - Jul. 3, 1998 / Mar. 11, 1999 - Patches 1 and 3
+% \if@star\else CP newpath moveto \fi}}%
+ \if@star\else CP newpath moveto \fi}%
+ \gdef\pst@code{}}%
+% DG/SR modification end
+ \end@ClosedObj}}
+%
+\def\pscharclip{\def\pst@par{}\pst@object{pscharclip}}
+\def\pscharclip@i{\pst@makebox\pscharclip@ii}
+\def\pscharclip@ii{%
+ \leavevmode
+ \begingroup
+ \begin@psclip
+ {\@startrue\pscharpath@ii}%
+ \pstVerb{clip \if@star\else currentpoint newpath moveto\fi}%
+ \def\endpscharclip{\end@psclip\endgroup}%
+ \ignorespaces}
+\def\endpscharclip{\pst@misplaced\endpscharclip}
+%
+\catcode`\@=\TheAtCode\relax
+
+\endinput
+%%
+%% END pst-text.tex
diff --git a/Master/texmf-dist/tex/latex/pst-text/pst-text.sty b/Master/texmf-dist/tex/latex/pst-text/pst-text.sty
new file mode 100644
index 00000000000..fed1eb8c59d
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pst-text/pst-text.sty
@@ -0,0 +1,7 @@
+\RequirePackage{pstricks}
+\ProvidesPackage{pst-text}[2006/01/01 package wrapper for pst-text.tex (hv)]
+\input{pst-text.tex}
+\ProvidesFile{pst-text.tex}
+ [\filedate\space \fileversion\space `pst-text' (tvz)]
+\IfFileExists{pst-text.pro}{\@addtofilelist{pst-text.pro}}{}%
+\endinput
diff --git a/Master/texmf-dist/tpm/pst-text.tpm b/Master/texmf-dist/tpm/pst-text.tpm
index 795237a8e27..5f7eeb6e667 100644
--- a/Master/texmf-dist/tpm/pst-text.tpm
+++ b/Master/texmf-dist/tpm/pst-text.tpm
@@ -9,9 +9,9 @@
<TPM:Title>The pst-text package.</TPM:Title>
<TPM:Description></TPM:Description>
<TPM:Author></TPM:Author>
- <TPM:Size>201106</TPM:Size>
+ <TPM:Size>202320</TPM:Size>
<TPM:Build/>
- <TPM:RunFiles size="8714">
+ <TPM:RunFiles size="8745">
texmf-dist/dvips/pst-text/pst-text.pro
texmf-dist/tex/generic/pst-text/pst-text.tex
texmf-dist/tex/latex/pst-text/pst-text.sty