summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-01-03 22:13:50 +0000
committerKarl Berry <karl@freefriends.org>2017-01-03 22:13:50 +0000
commitd9a936b49a26749b152c047bbbb7ccc20c96db89 (patch)
treeac8f3a98058614c4bcbe9de2f61e13616129b516 /Master/texmf-dist/doc
parent6e027ebbbe30862f8114edaadde91f7d86f2cbde (diff)
pstring (3jan17)
git-svn-id: svn://tug.org/texlive/trunk@42857 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r--Master/texmf-dist/doc/latex/pstring/README.md36
-rw-r--r--Master/texmf-dist/doc/latex/pstring/pgfmanual-en-macros.tex559
-rw-r--r--Master/texmf-dist/doc/latex/pstring/pstring-doc.pdfbin0 -> 132154 bytes
-rw-r--r--Master/texmf-dist/doc/latex/pstring/pstring-doc.pre11
-rw-r--r--Master/texmf-dist/doc/latex/pstring/pstring-doc.tex241
5 files changed, 847 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/pstring/README.md b/Master/texmf-dist/doc/latex/pstring/README.md
new file mode 100644
index 00000000000..17693770869
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pstring/README.md
@@ -0,0 +1,36 @@
+The pstring LaTeX package
+=========================
+
+This package lets you typeset justiļ¬ed sequences, also called pointing strings.
+It's used for instance, in research papers about Game Semantics to represent sequence of game moves
+with their associated justification pointers.
+
+See [http://william.famille-blum.org/software/latex/]() for latest information about this package.
+
+Author
+------
+
+William Blum (william.blum@gmail.com)
+
+Platform
+--------
+
+Tested with MikTeX on Windows. It was reported to work on other platform as well but I have not tested it myself.
+
+Package dependencies
+--------------------
+
+The following packages are required when compiling with `latex` to postscript:
+
+ pstricks
+ pst-node
+
+If compiling to PDF using `pdflatex` then the `PGF`/`tikz` packages are used instead to render
+the pointers:
+
+ pgfcore
+
+License
+-------
+
+This material is released in the Public domain. \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/pstring/pgfmanual-en-macros.tex b/Master/texmf-dist/doc/latex/pstring/pgfmanual-en-macros.tex
new file mode 100644
index 00000000000..79f5d185bbb
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pstring/pgfmanual-en-macros.tex
@@ -0,0 +1,559 @@
+% This is file comes from the documentation of the PGF package by Till Tantau.
+% I have only commented out some code that is unnecessary for my purpose here (I just want to use the
+% codeexample environment) I hope that I do not break PGF license by releasing the file like this. William Blum
+
+
+% Copyright 2006 by Till Tantau
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+% See the file doc/generic/pgf/licenses/LICENSE for more details.
+
+% $Header: /cvsroot/pgf/pgf/doc/generic/pgf/macros/pgfmanual-en-macros.tex,v 1.8 2006/10/11 15:00:27 tantau Exp $
+
+\providecommand\href[2]{\texttt{#1}}
+
+\colorlet{examplefill}{yellow!80!black}
+\definecolor{graphicbackground}{rgb}{0.96,0.96,0.8}
+\definecolor{codebackground}{rgb}{0.8,0.8,1}
+
+\newenvironment{pgfmanualentry}{\list{}{\leftmargin=2em\itemindent-\leftmargin\def\makelabel##1{\hss##1}}}{\endlist}
+\newcommand\pgfmanualentryheadline[1]{\itemsep=0pt\parskip=0pt\item\strut#1\par\topsep=0pt}
+\newcommand\pgfmanualbody{\parskip3pt}
+
+
+
+\newenvironment{pgflayout}[1]{
+ \begin{pgfmanualentry}
+ \pgfmanualentryheadline{\texttt{\string\pgfpagesuselayout\char`\{\declare{#1}\char`\}}\oarg{options}}
+ \index{#1@\protect\texttt{#1} layout}%
+ \index{Page layouts!#1@\protect\texttt{#1}}%
+ \pgfmanualbody
+}
+{
+ \end{pgfmanualentry}
+}
+
+
+\newenvironment{command}[1]{
+ \begin{pgfmanualentry}
+ \extractcommand#1\@@
+ \pgfmanualbody
+}
+{
+ \end{pgfmanualentry}
+}
+
+\def\extractcommand#1#2\@@{%
+ \pgfmanualentryheadline{\declare{\texttt{\string#1}}#2}%
+ \removeats{#1}%
+ \index{\strippedat @\protect\myprintocmmand{\strippedat}}}
+
+
+\newenvironment{environment}[1]{
+ \begin{pgfmanualentry}
+ \extractenvironement#1\@@
+ \pgfmanualbody
+}
+{
+ \end{pgfmanualentry}
+}
+
+\def\extractenvironement#1#2\@@{%
+ \pgfmanualentryheadline{{\ttfamily\char`\\begin\char`\{\declare{#1}\char`\}}#2}%
+ \pgfmanualentryheadline{{\ttfamily\ \ }\meta{environment contents}}%
+ \pgfmanualentryheadline{{\ttfamily\char`\\end\char`\{\declare{#1}\char`\}}}%
+ \index{#1@\protect\texttt{#1} environment}%
+ \index{Environments!#1@\protect\texttt{#1}}}
+
+
+\newenvironment{plainenvironment}[1]{
+ \begin{pgfmanualentry}
+ \extractplainenvironement#1\@@
+ \pgfmanualbody
+}
+{
+ \end{pgfmanualentry}
+}
+
+\def\extractplainenvironement#1#2\@@{%
+ \pgfmanualentryheadline{{\ttfamily\declare{\char`\\#1}}#2}%
+ \pgfmanualentryheadline{{\ttfamily\ \ }\meta{environment contents}}%
+ \pgfmanualentryheadline{{\ttfamily\declare{\char`\\end#1}}}%
+ \index{#1@\protect\texttt{#1} environment}%
+ \index{Environments!#1@\protect\texttt{#1}}}
+
+
+\newenvironment{contextenvironment}[1]{
+ \begin{pgfmanualentry}
+ \extractcontextenvironement#1\@@
+ \pgfmanualbody
+}
+{
+ \end{pgfmanualentry}
+}
+
+\def\extractcontextenvironement#1#2\@@{%
+ \pgfmanualentryheadline{{\ttfamily\declare{\char`\\start#1}}#2}%
+ \pgfmanualentryheadline{{\ttfamily\ \ }\meta{environment contents}}%
+ \pgfmanualentryheadline{{\ttfamily\declare{\char`\\stop#1}}}%
+ \index{#1@\protect\texttt{#1} environment}%
+ \index{Environments!#1@\protect\texttt{#1}}}
+
+
+\newenvironment{shape}[1]{
+ \begin{pgfmanualentry}
+ \pgfmanualentryheadline{Shape {\ttfamily\declare{#1}}}%
+ \index{#1@\protect\texttt{#1} shape}%
+ \index{Shapes!#1@\protect\texttt{#1}}
+ \pgfmanualbody
+}
+{
+ \end{pgfmanualentry}
+}
+
+\newenvironment{predefinednode}[1]{
+ \begin{pgfmanualentry}
+ \pgfmanualentryheadline{Predefined node {\ttfamily\declare{#1}}}%
+ \index{#1@\protect\texttt{#1} node}%
+ \index{Predefined node!#1@\protect\texttt{#1}}
+ \pgfmanualbody
+}
+{
+ \end{pgfmanualentry}
+}
+
+\newenvironment{coordinatesystem}[1]{
+ \begin{pgfmanualentry}
+ \pgfmanualentryheadline{Coordinate system {\ttfamily\declare{#1}}}%
+ \index{#1@\protect\texttt{#1} coordinate system}%
+ \index{Coordinate systems!#1@\protect\texttt{#1}}
+ \pgfmanualbody
+}
+{
+ \end{pgfmanualentry}
+}
+
+\newenvironment{snake}[1]{
+ \begin{pgfmanualentry}
+ \pgfmanualentryheadline{Snake {\ttfamily\declare{#1}}}%
+ \index{#1@\protect\texttt{#1} snake}%
+ \index{Snakes!#1@\protect\texttt{#1}}
+ \pgfmanualbody
+}
+{
+ \end{pgfmanualentry}
+}
+
+\def\pgfmanualbar{\char`\|}
+\makeatletter
+\newenvironment{pathoperation}[3][]{
+ \begin{pgfmanualentry}
+ \pgfmanualentryheadline{\textcolor{gray}{{\ttfamily\char`\\path}\
+ \ \dots}
+ \declare{\texttt{#2}}#3\ \textcolor{gray}{\dots\texttt{;}}}%
+ \def\pgfmanualtest{#1}%
+ \ifx\pgfmanualtest\@empty%
+ \index{#2@\protect\texttt{#2} path operation}%
+ \index{Path operations!#2@\protect\texttt{#2}}%
+ \fi%
+ \pgfmanualbody
+}
+{
+ \end{pgfmanualentry}
+}
+\makeatother
+
+\def\extractcommand#1#2\@@{%
+ \pgfmanualentryheadline{\declare{\texttt{\string#1}}#2}%
+ \removeats{#1}%
+ \index{\strippedat @\protect\myprintocmmand{\strippedat}}}
+
+
+\newenvironment{package}[1]{
+ \begin{pgfmanualentry}
+ \pgfmanualentryheadline{{\ttfamily\char`\\usepackage\char`\{\declare{#1}\char`\}\space\space \char`\%\space\space \LaTeX}}
+ \index{#1@\protect\texttt{#1} package}%
+ \index{Packages and files!#1@\protect\texttt{#1}}%
+ \pgfmanualentryheadline{{\ttfamily\char`\\input \declare{#1}.tex\space\space\space \char`\%\space\space plain \TeX}}
+ \pgfmanualentryheadline{{\ttfamily\char`\\usemodule[\declare{#1}]\space\space \char`\%\space\space Con\TeX t}}
+ \pgfmanualbody
+}
+{
+ \end{pgfmanualentry}
+}
+
+
+\newenvironment{pgflibrary}[1]{
+ \begin{pgfmanualentry}
+ \pgfmanualentryheadline{{\ttfamily\char`\\usepgflibrary\char`\{\declare{#1}\char`\}\space\space\space
+ \char`\%\space\space \LaTeX\space and plain \TeX\space and pure pgf}}
+ \index{#1@\protect\texttt{#1} library}%
+ \index{Libraries!#1@\protect\texttt{#1}}%
+ \pgfmanualentryheadline{{\ttfamily\char`\\usepgflibrary[\declare{#1}]\space\space \char`\%\space\space Con\TeX t\space and pure pgf}}
+ \pgfmanualentryheadline{{\ttfamily\char`\\usetikzlibrary\char`\{\declare{#1}\char`\}\space\space
+ \char`\%\space\space \LaTeX\space and plain \TeX\space when using \tikzname}}
+ \pgfmanualentryheadline{{\ttfamily\char`\\usetikzlibrary[\declare{#1}]\space
+ \char`\%\space\space Con\TeX t\space when using \tikzname}}
+ \pgfmanualbody
+}
+{
+ \end{pgfmanualentry}
+}
+
+\newenvironment{tikzlibrary}[1]{
+ \begin{pgfmanualentry}
+ \pgfmanualentryheadline{{\ttfamily\char`\\usetikzlibrary\char`\{\declare{#1}\char`\}\space\space \char`\%\space\space \LaTeX\space and plain \TeX}}
+ \index{#1@\protect\texttt{#1} library}%
+ \index{Libraries!#1@\protect\texttt{#1}}%
+ \pgfmanualentryheadline{{\ttfamily\char`\\usetikzlibrary[\declare{#1}]\space \char`\%\space\space Con\TeX t}}
+ \pgfmanualbody
+}
+{
+ \end{pgfmanualentry}
+}
+
+
+
+\newenvironment{filedescription}[1]{
+ \begin{pgfmanualentry}
+ \pgfmanualentryheadline{File {\ttfamily\declare{#1}}}%
+ \index{#1@\protect\texttt{#1} file}%
+ \index{Packages and files!#1@\protect\texttt{#1}}%
+ \pgfmanualbody
+}
+{
+ \end{pgfmanualentry}
+}
+
+
+\newenvironment{packageoption}[1]{
+ \begin{pgfmanualentry}
+ \pgfmanualentryheadline{{\ttfamily\char`\\usepackage[\declare{#1}]\char`\{pgf\char`\}}}
+ \index{#1@\protect\texttt{#1} package option}%
+ \index{Package options for \textsc{pgf}!#1@\protect\texttt{#1}}%
+ \pgfmanualbody
+}
+{
+ \end{pgfmanualentry}
+}
+
+
+
+\newcommand\opt[1]{{\color{black!50!green}#1}}
+\newcommand\ooarg[1]{{\ttfamily[}\meta{#1}{\ttfamily]}}
+
+\def\opt{\afterassignment\pgfmanualopt\let\next=}
+\def\pgfmanualopt{\ifx\next\bgroup\bgroup\color{black!50!green}\else{\color{black!50!green}\next}\fi}
+
+
+
+\def\beamer{\textsc{beamer}}
+\def\pdf{\textsc{pdf}}
+\def\pgfname{\textsc{pgf}}
+\def\tikzname{Ti\emph{k}Z}
+\def\pstricks{\textsc{pstricks}}
+\def\prosper{\textsc{prosper}}
+\def\seminar{\textsc{seminar}}
+\def\texpower{\textsc{texpower}}
+\def\foils{\textsc{foils}}
+
+{
+ \makeatletter
+ \global\let\myempty=\@empty
+ \global\let\mygobble=\@gobble
+ \catcode`\@=12
+ \gdef\getridofats#1@#2\relax{%
+ \def\getridtest{#2}%
+ \ifx\getridtest\myempty%
+ \expandafter\def\expandafter\strippedat\expandafter{\strippedat#1}
+ \else%
+ \expandafter\def\expandafter\strippedat\expandafter{\strippedat#1\protect\printanat}
+ \getridofats#2\relax%
+ \fi%
+ }
+
+ \gdef\removeats#1{%
+ \let\strippedat\myempty%
+ \edef\strippedtext{\stripcommand#1}%
+ \expandafter\getridofats\strippedtext @\relax%
+ }
+
+ \gdef\stripcommand#1{\expandafter\mygobble\string#1}
+}
+
+\def\printanat{\char`\@}
+
+\def\declare{\afterassignment\pgfmanualdeclare\let\next=}
+\def\pgfmanualdeclare{\ifx\next\bgroup\bgroup\color{red!75!black}\else{\color{red!75!black}\next}\fi}
+
+
+\let\textoken=\command
+\let\endtextoken=\endcommand
+
+\def\myprintocmmand#1{\texttt{\char`\\#1}}
+
+\def\example{\par\smallskip\noindent\textit{Example: }}
+\def\themeauthor{\par\smallskip\noindent\textit{Theme author: }}
+
+\def\itemoption#1{\item \declare{\texttt{#1}}%
+ \indexoption{#1}%
+}
+
+\def\indexoption#1{%
+ \index{#1@\protect\texttt{#1} option}%
+ \index{Graphic options!#1@\protect\texttt{#1}}%
+}
+
+\def\itemstyle#1{\item \texttt{style=}\declare{\texttt{#1}}%
+ \index{#1@\protect\texttt{#1} style}%
+ \index{Styles!#1@\protect\texttt{#1}}%
+}
+
+
+
+\def\class#1{\list{}{\leftmargin=2em\itemindent-\leftmargin\def\makelabel##1{\hss##1}}%
+\extractclass#1@\par\topsep=0pt}
+\def\endclass{\endlist}
+\def\extractclass#1#2@{%
+\item{{{\ttfamily\char`\\documentclass}#2{\ttfamily\char`\{\declare{#1}\char`\}}}}%
+ \index{#1@\protect\texttt{#1} class}%
+ \index{Classes!#1@\protect\texttt{#1}}}
+
+\def\partname{Part}
+
+\makeatletter
+%\def\index@prologue{\section*{Index}\addcontentsline{toc}{section}{Index}
+% This index only contains automatically generated entries. A good
+% index should also contain carefully selected keywords. This index is
+% not a good index.
+% \bigskip
+%}
+%\c@IndexColumns=2
+% \def\theindex{\@restonecoltrue
+% \columnseprule \z@ \columnsep 35\p@
+% \twocolumn[\index@prologue]%
+% \parindent -30pt
+% \columnsep 15pt
+% \parskip 0pt plus 1pt
+% \leftskip 30pt
+% \rightskip 0pt plus 2cm
+% \small
+% \def\@idxitem{\par}%
+% \let\item\@idxitem \ignorespaces}
+% \def\endtheindex{\onecolumn}
+%\def\noindexing{\let\index=\@gobble}
+
+
+%\newcommand\patternindex[1]{
+% \index{#1@\protect\texttt{#1} pattern}%
+% \index{Patterns!#1@\protect\texttt{#1}}
+% \texttt{#1}&
+% \begin{tikzpicture}
+% \path[draw=black!50,very thin,pattern=#1,rounded corners]
+% (0pt,0pt) rectangle (1cm,1.5em);
+% \end{tikzpicture}
+%}
+%
+%
+%\newcommand\symarrow[1]{
+% \index{#1@\protect\texttt{#1} arrow tip}%
+% \index{Arrow tips!#1@\protect\texttt{#1}}
+% \texttt{#1}& yields thick
+% \begin{tikzpicture}[arrows={#1-#1},thick,baseline]
+% \useasboundingbox (0pt,-0.5ex) rectangle (1cm,2ex);
+% \draw (0pt,.5ex) -- (1cm,.5ex);
+% \end{tikzpicture} and thin
+% \begin{tikzpicture}[arrows={#1-#1},thin,baseline]
+% \useasboundingbox (0pt,-0.5ex) rectangle (1cm,2ex);
+% \draw (0pt,.5ex) -- (1cm,.5ex);
+% \end{tikzpicture}
+%}
+%
+%\newcommand\sarrow[2]{
+% \index{#1@\protect\texttt{#1} arrow tip}%
+% \index{Arrow tips!#1@\protect\texttt{#1}}
+% \index{#2@\protect\texttt{#2} arrow tip}%
+% \index{Arrow tips!#2@\protect\texttt{#2}}
+% \texttt{#1-#2}& yields thick
+% \begin{tikzpicture}[arrows={#1-#2},thick,baseline]
+% \useasboundingbox (0pt,-0.5ex) rectangle (1cm,2ex);
+% \draw (0pt,.5ex) -- (1cm,.5ex);
+% \end{tikzpicture} and thin
+% \begin{tikzpicture}[arrows={#1-#2},thin,baseline]
+% \useasboundingbox (0pt,-0.5ex) rectangle (1cm,2ex);
+% \draw (0pt,.5ex) -- (1cm,.5ex);
+% \end{tikzpicture}
+%}
+%
+%\newcommand\carrow[1]{
+% \index{#1@\protect\texttt{#1} arrow tip}%
+% \index{Arrow tips!#1@\protect\texttt{#1}}
+% \texttt{#1}& yields for line width 1ex
+% \begin{tikzpicture}[arrows={#1-#1},line width=1ex,baseline]
+% \useasboundingbox (0pt,-0.5ex) rectangle (1.5cm,2ex);
+% \draw (0pt,.5ex) -- (1.5cm,.5ex);
+% \end{tikzpicture}
+%}
+%\def\myvbar{\char`\|}
+%\newcommand\plotmarkentry[1]{%
+% \index{#1@\protect\texttt{#1} plot mark}%
+% \index{Plot marks!#1@\protect\texttt{#1}}
+% \texttt{\char`\\pgfuseplotmark\char`\{\declare{#1}\char`\}} &
+% \tikz\draw[color=black!25] plot[mark=#1,mark options={fill=examplefill,draw=black}] coordinates{(0,0) (.5,0.2) (1,0) (1.5,0.2)};\\
+%}
+%\newcommand\plotmarkentrytikz[1]{%
+% \index{#1@\protect\texttt{#1} plot mark}%
+% \index{Plot marks!#1@\protect\texttt{#1}}
+% \texttt{mark=\declare{#1}} & \tikz\draw[color=black!25]
+% plot[mark=#1,mark options={fill=examplefill,draw=black}]
+% coordinates {(0,0) (.5,0.2) (1,0) (1.5,0.2)};\\
+%}
+%
+
+
+\ifx\scantokens\@undefined
+ \PackageError{pgfmanual-macros}{You need to use extended latex
+ (elatex) or (pdfelatex) to process this document}{}
+\fi
+
+\begingroup
+\catcode`|=0
+\catcode`[= 1
+\catcode`]=2
+\catcode`\{=12
+\catcode `\}=12
+\catcode`\\=12 |gdef|find@example#1\end{codeexample}[|endofcodeexample[#1]]
+|endgroup
+
+\begingroup
+\catcode`\^=7
+\catcode`\^^M=13
+\catcode`\ =13%
+\gdef\returntospace{\catcode`\ =13\def {\space}\catcode`\^^M=13\def^^M{}}%
+\endgroup
+
+\begingroup
+\catcode`\%=13
+\catcode`\^^M=13
+\gdef\commenthandler{\catcode`\%=13\def%{\@gobble@till@return}}
+\gdef\@gobble@till@return#1^^M{}
+\gdef\typesetcomment{\catcode`\%=13\def%{\@typeset@till@return}}
+\gdef\@typeset@till@return#1^^M{{\def%{\char`\%}\textsl{\char`\%#1}}\par}
+\endgroup
+
+\define@key{codeexample}{width}{\setlength\codeexamplewidth{#1}}
+\define@key{codeexample}{graphic}{\colorlet{graphicbackground}{#1}}
+\define@key{codeexample}{code}{\colorlet{codebackground}{#1}}
+\define@key{codeexample}{execute code}{\csname code@execute#1\endcsname}
+\define@key{codeexample}{code only}[]{\code@executefalse}
+\define@key{codeexample}{pre}{\def\code@pre{#1}}
+\define@key{codeexample}{post}{\def\code@post{#1}}
+
+\def\code@pre{}
+\def\code@post{}
+
+\newdimen\codeexamplewidth
+\newif\ifcode@execute
+\newbox\codeexamplebox
+\def\codeexample[#1]{%
+ \code@executetrue
+ \setlength\codeexamplewidth{4cm+7pt}
+ \setkeys{codeexample}{#1}%
+ \parindent0pt
+ \begingroup%
+ \par%
+ \medskip%
+ \let\do\@makeother%
+ \dospecials%
+ \obeylines%
+ \@vobeyspaces%
+ \catcode`\%=13%
+ \catcode`\^^M=13%
+ \find@example}
+\def\endofcodeexample#1{%
+ \endgroup%
+ \ifcode@execute%
+ \setbox\codeexamplebox=\hbox{%
+ {%
+ {%
+ \returntospace%
+ \commenthandler%
+ \xdef\code@temp{#1}% removes returns and comments
+ }%
+ \colorbox{graphicbackground}{\color{black}\ignorespaces%
+ \code@pre\expandafter\scantokens\expandafter{\code@temp\ignorespaces}\code@post\ignorespaces}%
+ }%
+ }%
+ \ifdim\wd\codeexamplebox>\codeexamplewidth%
+ \def\code@start{\par}%
+ \def\code@flushstart{}\def\code@flushend{}%
+ \def\code@mid{\parskip2pt\par\noindent}%
+ \def\code@width{\linewidth-6pt}%
+ \def\code@end{}%
+ \else%
+ \def\code@start{%
+ \linewidth=\textwidth%
+ \parshape \@ne 0pt \linewidth
+ \leavevmode%
+ \hbox\bgroup}%
+ \def\code@flushstart{\hfill}%
+ \def\code@flushend{\hbox{}}%
+ \def\code@mid{\hskip6pt}%
+ \def\code@width{\linewidth-12pt-\codeexamplewidth}%
+ \def\code@end{\egroup}%
+ \fi%
+ \code@start%
+ \noindent%
+ \begin{minipage}[t]{\codeexamplewidth}\raggedright
+ \hrule width0pt%
+ \footnotesize\vskip-1em%
+ \code@flushstart\box\codeexamplebox\code@flushend%
+ \vskip-1ex
+ \leavevmode%
+ \end{minipage}%
+ \else%
+ \def\code@mid{\par}
+ \def\code@width{\linewidth-6pt}
+ \def\code@end{}
+ \fi%
+ \code@mid%
+ \colorbox{codebackground}{%
+ \begin{minipage}[t]{\code@width}%
+ {%
+ \let\do\@makeother
+ \dospecials
+ \frenchspacing\@vobeyspaces
+ \normalfont\ttfamily\footnotesize
+ \typesetcomment%
+ \@tempswafalse
+ \def\par{%
+ \if@tempswa
+ \leavevmode \null \@@par\penalty\interlinepenalty
+ \else
+ \@tempswatrue
+ \ifhmode\@@par\penalty\interlinepenalty\fi
+ \fi}%
+ \obeylines
+ \everypar \expandafter{\the\everypar \unpenalty}%
+ #1}
+ \end{minipage}}%
+ \code@end%
+ \par%
+ \medskip
+ \end{codeexample}
+}
+
+\def\endcodeexample{}
+
+
+\makeatother
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "beameruserguide"
+%%% End:
diff --git a/Master/texmf-dist/doc/latex/pstring/pstring-doc.pdf b/Master/texmf-dist/doc/latex/pstring/pstring-doc.pdf
new file mode 100644
index 00000000000..4888258c690
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pstring/pstring-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/pstring/pstring-doc.pre b/Master/texmf-dist/doc/latex/pstring/pstring-doc.pre
new file mode 100644
index 00000000000..d758f1cfc5c
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pstring/pstring-doc.pre
@@ -0,0 +1,11 @@
+\documentclass{article}
+\usepackage{pstring}
+\usepackage{amssymb}
+\usepackage{calc}
+\usepackage{a4wide}
+\usepackage{url}
+
+\usepackage{pgfcore}
+\input{pgfmanual-en-macros}
+
+
diff --git a/Master/texmf-dist/doc/latex/pstring/pstring-doc.tex b/Master/texmf-dist/doc/latex/pstring/pstring-doc.tex
new file mode 100644
index 00000000000..6aa7bc71533
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pstring/pstring-doc.tex
@@ -0,0 +1,241 @@
+% Speed-up the compilation with LatexDaemon!!! (http://william.famille-blum.org/software/latexdaemon)
+\input{pstring-doc.pre}
+%
+
+\author{William Blum}
+\title{The pstring package}
+\begin{document}
+\maketitle
+\begin{abstract}
+This is a short documentation for the pstring package for Latex. This package allows you to
+typeset justified sequences, also called pointing strings.
+The latest version of the package can be downloaded from \url{http://william.famille-blum.org/software/latex/index.html}.
+
+\begin{codeexample}[width=5cm]
+\Pstr[0.65cm]{ \psi = (n){q^0} \ (n4-n,60){q^1} \ (n5-n4){q^2}
+\ (n8-n){q^1} \ (n9-n8){q^2} \ (n10-n){q^3} }.
+\end{codeexample}
+\end{abstract}
+
+\section{Use and syntax}
+
+From version 0.3, pstring can use either PSTricks or PGF as a rendering engine. To specify which one
+you want, use the option \verb|pstricks| or \verb|pgf| when you load the pstring package. For instance to use PGF you must type:
+\begin{codeexample}[code only]
+\usepackage{pstring}[pgf]
+\end{codeexample}
+If no option is specified then by default \verb|pgf| is selected if you are running pdflatex
+and \verb|pstricks| is selected if you are running latex.
+
+You can specifies other options with the following commands:
+\begin{command}{\pstrSetLabelStyle\{style\}}
+Change the style used to typeset labels on arrows.
+\end{command}
+\begin{command}{\pstrSetArrowColor\{color\}}
+Change the color used to typeset arrows.
+\end{command}
+\begin{command}{\pstrSetArrowLineWidth\{size\}}
+Change the arrows line width.
+\end{command}
+\begin{command}{\pstrSetArrowLineStyle\{style\}}
+Change the arrows line style. Valid styles are: \verb|none|, \verb|dashed|, \verb|dotted| and \verb|solid|.
+\end{command}
+The default options are as follows:
+\begin{codeexample}[code only]
+\pstrSetLabelStyle{\color{blue} \tiny}
+\pstrSetArrowColor{orange}
+\pstrSetArrowLineWidth{0.3pt}
+\pstrSetArrowLineStyle{solid}
+\end{codeexample}
+
+\subsection{The succinct syntax}
+The syntax for creating a pointing string is as follows:
+\begin{command}{\Pstr[raiseamount][nodesep]\{stringspecification\}}
+\begin{itemize}
+\item \verb|raiseamount| (optional) is the size by which you want
+to raise the box containing the sequence. In
+PSTricks mode, the bounding box is not computed automatically therefore
+it is necessary to specify this value by hand. Using the PGF mode
+ however, this value is ignored since the bounding box
+is computed automatically,
+\item \verb|nodesep| (optional) is the vertical distance between
+the nodes and the links.
+\item \verb|stringspecification| contains commands describing the nodes
+of the string.
+This parameter can contain normal text and latex commands (with some restriction, see section \ref{subsec:altsyntax}).
+Nodes that have link associated to them, or which have a link pointing to them
+must be specified with the node specification syntax described hereunder.\end{itemize}
+\end{command}
+
+The syntax for creating nodes is as follows.
+If the node has no link associated to it then you just use
+the syntax \verb|(nodename){content of the node}| where \verb|nodename| is a name that you give to the node and \verb|content| is the text you want to write inside the node.
+
+If there is a link attached to the node then you use
+the syntax
+\begin{verbatim}
+(targetnode-nodename,angle:label){content}
+\end{verbatim}
+where
+\begin{itemize}
+\item \verb|nodename| is a name that you give to the node,
+\item \verb|targetnode| is the name of the node where the link must point to,
+\item \verb|angle| (optional) specifies the angle between the horizontal line and the line
+tangent to the arrow representing the link at the top of the node,
+\item \verb|label| (optional) is a text to be printed out on top of the link,
+\item \verb|content| is the content of the node.
+\end{itemize}
+
+The arguments \verb|angle| and \verb|label| are optional. When the angle is not specified it is set to a default value of 45 (degrees).
+
+Here is an example:
+\begin{codeexample}[width=7cm]
+\Pstr[20pt]{
+t = \lambda\cdot (app){@} \cdot (ly){\lambda y}
+\ldots (y-ly,35:1){y} \cdot
+(lx-app,38:1){\lambda \overline{x}}
+\ldots (x-lx,30:i){x_i} \cdot
+(leta-y,40:i){\lambda \overline{\eta_i}} {\ldots}
+}.
+\end{codeexample}
+
+
+\subsection{Alternative syntax}
+\label{subsec:altsyntax}
+You can use an alternative syntax to specify sequences. For instance the previous example
+can also be defined as follows:
+\begin{codeexample}[width=7cm]
+\pstr[0.7cm]{
+\nd t = \lambda \cdot (app){@}
+\nd \cdot (ly){\lambda y}
+\nd \ldots (y-ly,35:1) {y}
+\nd \cdot (lx-app,38:1){\lambda \overline{x}}
+\nd \ldots (x-lx,30:i){x_i}
+\nd \cdot (letay-y,40:i){\lambda \overline{\eta_i}}
+\txt{\ldots} }.
+\end{codeexample}
+Although this syntax is more cumbersome than the succinct one, it permits to typeset sequences that are not definable with the succinct syntax. The following example is such an example:
+\ifLoadPSengine
+\begin{codeexample}[width=6cm]
+$\pstr[0.7cm][1pt]{ s = \underbrace{\cdots\ \nd(r){r^O}
+\cdots }_{s'}\ \nd(n){n^P}
+\ \underbrace{\cdots\ \nd(a-r,35){a}^P \cdots }_{u}
+\ \nd(m-n,30){m}^O }$.
+\end{codeexample}
+\else
+\vskip 10pt
+[Sorry, you need to compile the documentation with latex in order to view this example]
+\vskip 10pt
+\fi
+
+{\bf Important note:}
+The previous example can only be done using the pstricks engine and using the long syntax. This is due to the use of the
+latex command \verb|\overbrace| which embraces several nodes inside the sequence.
+This cannot be handled in the PGF rendering mode due to the impossibility to create nodes outside of a PGF environment.
+It may be possible to fix this problem by using the overlay feature of PGF/Tikz, however overlays seem to work only
+within Tikz environment and not in standard PGF ones. Also overlays have the disadvantage to require two latex compilations in order to resolve node name references, and moreover they work only with pdflatex (not with latex).
+
+\subsubsection{Adding more links}
+It is possible to create additional links starting from a same node:
+\begin{codeexample}[width=6cm]
+\pstr[0.6cm]{\ldots \nd(r){r}
+ \nd\ldots (l1){\lambda \overline{\xi}_1}
+ \nd\ldots (l2){\lambda \overline{\xi}_2 }
+ \nd\ldots (n-r,45){n}
+ \arrow{n}{l1}{45}{}{blue}{dotted}
+ \arrow{n}{l2}{45}{}{blue}{dotted}
+ }.
+ \end{codeexample}
+The syntax for arrow creation is:
+\begin{command}{\arrow\{source\}\{target\}\{angle\}\{label\}\{linecolor\}\{linestyle\}}
+\begin{itemize}
+\item \verb|source| is the name of the source node,
+\item \verb|target| is the name of the target node,
+\item \verb|angle| is the arrow angle,
+\item \verb|label| is a text to be printed out on top of the link,
+\item \verb|linecolor| is the color to be used to draw the link,
+\item \verb|linestyle| is a line style used to draw the arrow. Valid styles are: \verb|none|, \verb|dashed|, \verb|dotted| and \verb|solid|.
+\end{itemize}
+\end{command}
+
+
+
+\section{Examples}
+
+\subsection{A sequence with more links}
+\begin{codeexample}[width=7cm]
+\Pstr[1cm][2pt]{
+t_2 = (n){\lambda f z} \ (n2){@}
+\ (n3-n2,60){\lambda g x} \ (n4-n){f^{[1]}}
+\ (n5-n4){\lambda^{[2]}} \ (n6-n3){x}
+\ (n7-n2,35){\lambda^{[3]}} \ (n8-n,35){f^{[4]}}
+\ (n9-n8,45){\lambda^{[5]}} \ (n10-n,35){z} }.
+\end{codeexample}
+
+
+\subsection{Elevation of the links}
+A second optional parameter can be passed to \verb|\pstr| in order to elevate the links in the sequence as follows:
+\begin{codeexample}[width=5cm]
+$\begin{array}{rclrcl}
+\mbox{First line} &=& \parbox[t]{8cm}{there should be enough space between the
+ bottom of this line and the arc of the next line.} \\
+ s &=& \Pstr[28pt][10pt]{ s \cdot (m){m} \cdot \ldots \cdot (lmd-m,40)
+ {\lambda\overline{\xi}} }
+ \quad \mbox{ the arc is elevated using the raise option of pstr.}
+\end{array}$
+\end{codeexample}
+
+\subsection{Two sequences on the same line}
+\begin{codeexample}[width=7cm]
+\Pstr[0.8cm]{
+t = (n){\lambda f z}\ (n2){@} \ (n3-n2,60){\lambda g x} \ (n4-n,45){f^{[1]}}
+\ (n5-n4,45){\lambda^{[2]}} \ (n6-n3,45){x} \ (n7-n2,35){\lambda^{[3]}}
+\ (n8-n,35){f^{[4]}} \ (n9-n8,45){\lambda^{[5]}} \ (n10-n,35){z}
+}
+\qquad
+\Pstr[0.9cm]{
+t\upharpoonright r = (n){\lambda f z} \ (n4-n,50){f}^{[1]}
+\ (n5-n4,60){\lambda}^{[2]} \ (n8-n,45){f}^{[4]}
+\ (n9-n8,60){\lambda}^{[5]} \ (n10-n,40){z}}
+\end{codeexample}
+
+\subsection{Sequences containing parenthesis}
+If you insert text containing parenthesis '(' and ')' between two nodes then you must surround
+the text with curly braces otherwise \verb|pstr| will interpret it as a node specification:
+\begin{codeexample}[width=7.1cm]
+\Pstr[0.8cm]{ {\psi_M(t\upharpoonright r) =\ }
+(n){q^0}\ (n4-n,60){q^1}\ (n5-n4,60){q^2}
+\ (n8-n,45){q^1}\ (n9-n8,60){q^2}
+\ (n10-n,38){q^3} \in [\![ M ]\!] \ .}
+\end{codeexample}
+
+\subsection{Example taken from an article}
+%\begin{codeexample}[width=4cm]
+\newcommand{\oview}[1]{\llcorner #1 \lrcorner}
+{\bf (InputVar)} If $t_1 \cdot x \cdot t_2$ is a traversal with
+ $x \in N_{var}^{\upharpoonright r}$ and $?(t_1 \cdot x \cdot
+ t_2)=?(t_1) \cdot x$ then so is \Pstr[0.4cm]{t_1 \cdot (m){x} \cdot t_2 \cdot (n-m,38:i){n}} for all
+ $\lambda$-node $n$ whose parent occurs in $\oview{t_1 \cdot x}$, $n$
+ pointing to some occurrence of its parent node in $\oview{t_1 \cdot x}$.
+
+\noindent {\bf (Copycat$^@$)}
+ If \Pstr{t \cdot (app){@} \cdot (lz-app,60:0){\lambda \overline{z}} \ldots (lzv-lz,60:v){v}_{\lambda \overline{z}} } is a traversal then so is
+\Pstr[0.6cm]{t \cdot (app){@} \cdot (lz-app,60){\lambda
+\overline{z}} \ldots (lzv-lz,60:v){v}_{\lambda \overline{z}} \cdot
+(appv-app,45:v){v}_@}.
+
+\noindent {\bf (Copycat$^\lambda$)}
+ If \Pstr[0.4cm]{t \cdot \lambda \overline{\xi} \cdot (x){x} \ldots (xv-x,50:v){v}_x}
+is a traversal then so is \Pstr[0.6cm]{t \cdot (lmd){\lambda
+\overline{\xi}} \cdot (x){x} \ldots (xv-x,50:v){v}_x \cdot
+(lmdv-lmd,30:v){v}_{\lambda \overline{\xi}} }.
+
+\noindent {\bf (Copycat$^{var}$)}
+If \Pstr[0.4cm]{t \cdot y \cdot (lmd){\lambda \overline{\xi}}
+\ldots (lmdv-lmd,50:v){v}_{\lambda \overline{\xi}} } is a traversal
+for some variable $y$ not in $N_{var}^{\upharpoonright r}$ then so
+is \Pstr[0.6cm]{t \cdot (y){y} \cdot (lmd){\lambda \overline{\xi}}
+\ldots (lmdv-lmd,30:v){v}_{\lambda \overline{\xi}} \cdot
+(vy-y,50:v){v}_y }.
+%\end{codeexample}
+\end{document}