summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-12-30 23:50:06 +0000
committerKarl Berry <karl@freefriends.org>2010-12-30 23:50:06 +0000
commit58679cc130f6f05e33c54456b379a2b878211c29 (patch)
tree8e69c516776b653ec6d28fe8559b630a5422862f
parent93125edaad6060997d02d972a15f2543b145e676 (diff)
pst-jtree
git-svn-id: svn://tug.org/texlive/trunk@20894 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/generic/pst-jtree/Doc-source.zip (renamed from Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-doc-source.zip)bin61886 -> 63897 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-jtree/README29
-rw-r--r--Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-doc-add.pdfbin0 -> 18454 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-doc.pdfbin257400 -> 255182 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-examples.pdfbin65181 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-examples.tex624
-rw-r--r--Master/texmf-dist/tex/generic/pst-jtree/pst-jtree.tex432
-rw-r--r--Master/texmf-dist/tex/latex/pst-jtree/pst-jtree.sty3
8 files changed, 290 insertions, 798 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-doc-source.zip b/Master/texmf-dist/doc/generic/pst-jtree/Doc-source.zip
index b0db962d20f..6a88bb11c6c 100644
--- a/Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-doc-source.zip
+++ b/Master/texmf-dist/doc/generic/pst-jtree/Doc-source.zip
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-jtree/README b/Master/texmf-dist/doc/generic/pst-jtree/README
index 2ebcff0ce09..b8c3448f9c8 100644
--- a/Master/texmf-dist/doc/generic/pst-jtree/README
+++ b/Master/texmf-dist/doc/generic/pst-jtree/README
@@ -1,27 +1,12 @@
+The jTree package is an extension of PSTricks which is intended
+to be used by linguists as a tool to typeset complex trees. It
+consists of four files: pst-jtree.tex, pst-jtree.sty,
+pst-jtree-doc.pdf, and pst-jtree-doc-add (which is essentially an
+appendix to the older pst-jtree-doc.pdf).
+
+
-The pst-jtree package is based on PSTricks and is intended to be
-used by linguists to typeset complex trees. The core files are 1)
-pst-jtree.tex, the Tex macro file, 2) pst-jtree.sty, a LaTex
-wrapper which calls pst-jtree.tex, and 3) pst-jtree-doc.pdf, the
-documentation. The complete Tex source for the documentation is
-in the file pst-jtree-doc-source.zip.
-The file pst-jtree-examples.tex is a LaTex file which contains
-all the complex examples in the documentation, as well as many of
-the simpler ones. It very simply formatted (no packages other
-than pstricks, pst-xkey, and pst-jtree are used) in order to
-facilitate user experimentation with pst-jtree typesetting.
-Provided that PSTricks and PST-XKey are installed, users should
-be able to run this file with little difficulty if PST-jTree is
-installed or simply if pst-jtree.tex and pst-jtree.sty are in the
-same directory that pst-jtree-examples.tex is in.
-pst-jtree-examples.pdf shows what the source produces.
-For those interested in tree formatting but not LaTex,
-pst-jtree-examples.tex can be very simply converted into a Tex
-file.
-This material is subject to the LaTeX Project Public License. See
-http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
-for the details of that license.
diff --git a/Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-doc-add.pdf b/Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-doc-add.pdf
new file mode 100644
index 00000000000..7db5c11efa1
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-doc-add.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-doc.pdf b/Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-doc.pdf
index 118815005a4..d19f0dd6149 100644
--- a/Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-doc.pdf
+++ b/Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-examples.pdf b/Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-examples.pdf
deleted file mode 100644
index 9bb9449e24c..00000000000
--- a/Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-examples.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-examples.tex b/Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-examples.tex
deleted file mode 100644
index 272db499be4..00000000000
--- a/Master/texmf-dist/doc/generic/pst-jtree/pst-jtree-examples.tex
+++ /dev/null
@@ -1,624 +0,0 @@
-
-\documentclass[12pt]{article}
-\usepackage{pstricks,pst-xkey,pst-jtree}
-
-\rightskip=0pt plus 2em
-
-\newdimen\dimpuba
-\newdimen\dimpubb
-\newdimen\dimpubc
-\newdimen\dimpubd
-\newcount\exno
-\exno=0
-
-\def\ex{%
- \vskip2.5em
- \allowbreak\noindent
- \global\advance\exno by 1
- \bgroup
- \parindent=0pt
- \rightskip=0pt minus 3em % allow overwide displays if necessary
- (\the\exno)\quad
-}
-\def\xe{\par\egroup}
-
-\begin{document}
-\psset{nodesepA=.8ex,nodesepB=.4ex}
-
-\centerline{\huge Examples}
-
-\vskip1.5em
-
-\noindent The source file for this pdf file is {\it
-pst-jtree-examples.tex}. It is very simply formatted (no packages
-other than pstricks, pst-xkey, and pst-jtree are used) in order
-to facilitate user experimentation with pst-jtree typesetting.
-Provided that PSTricks and PST-XKey are installed, users should
-be able to run this file with little difficulty if PST-jTree is
-installed or simply if \hbox{\it pst-jtree.tex\/} and \hbox{\it
-pst-jtree.sty\/} are in the same directory that \hbox{\it
-pst-jtree-examples.tex\/} is in. \hbox{\it
-pst-jtree-examples.pdf\/} shows what the source produces. For
-those interested in Tex tree formatting, but not LaTex, \hbox{\it
-pst-jtree-examples.tex\/} can be very simply converted into a
-Tex file.
-
-All of the complex examples in the documentation file {\it
-pst-jtree-doc.pdf\/} are given here, as well as many of the
-simpler ones. They appear in the same order that they appear in
-the documentation. But the numbering is sequential and differs from
-the numbering in the documentation.
-
-\ex
-\jtree[xunit=2.2em,yunit=1em]
-\def\:{:[scaleby=2.3]}%
-\! = \:!a :{is} {rotten}.
-\!a = :{the} :{cheese} :{that } \:!b :{ate} {\it t}.
-\!b = :{the} :{rat} :{that } :{John \ } :{killed} {\it t}.
-\endjtree
-\xe
-
-\ex
-\jtree
-\! = {a}
- :{b} {c}
- :{d} {e}
- :{f} {g}
- :{h} {i}.
-\endjtree
-\xe
-
-\ex
-\jtree
-\! = :{a} :{b} :{c} :{d} {e}.
-\endjtree
-\xe
-
-\ex
-\jtree
-\defbranch<colonB>(1)(-.5)
-\! = {a}
- :{b} {c}
- :{d} {e}
- :{f} {g}.
-\endjtree
-\xe
-
-\ex
-\jtree[xunit=2.5em,yunit=1em]
-\defbranch<Left>(2.3)(1)
-\! = <Left>!a ^<right> :{is} {rotten}.
-\!a = :{the} :{cheese} :{that}
- <Left>!b ^<right> :{ate} {\it t}.
-\!b = :{the} :{rat} :{that}
- <Left>!c ^<right> :{killed} {\it t}.
-\!c = :{the} :{cat} :{that} :{John} :{owned} {\it t}.
-\endjtree
-\xe
-
-\ex
-\jtree[xunit=3em,yunit=3em]
-\! = <left>[scaleby=2 1,
- arrows=->]{a}
- ^<left>[linewidth=2pt]{b}
- ^<right>[scaleby=1 2,
- linestyle=dashed]{c}
- ^<right>[scaleby=1.5 1,
- linestyle=dotted,linewidth=1pt]{d}
- ^<right>[scaleby=2 .5,doubleline=true]{e}.
-\endjtree
-\xe
-
-\ex
-\def\GO#1#2#3{$\rm GO\bigl({#1},[_{Path}\,
- FROM({#2}),TO({#3})]\bigr)$}%
-\jtree[xunit=3em,yunit=1em]
-\defstuff[a]{\multiline
- \it The cup slid from John to Mary\cr
- \GO{\bf cup}{\bf John}{\bf Mary}\cr
- IP\endmultiline}
-\defstuff[b]{\multiline
- \it The cup\cr
- \bf cup\cr
- NP\endmultiline}
-\defstuff[c]{\multiline
- \it slid from John to Mary\cr
- \GO{\mit x}{\bf John}{\bf Mary}\cr
- IP\endmultiline}
-\defstuff[d]{\multiline
- \it The\cr
- $\perp$\cr
- \quad N$\rm _{SPEC}$\endmultiline}
-\defstuff[e]{\multiline
- \it cup\cr
- \bf cup\cr
- N\endmultiline}
-\def\Fracture{<vert>{\omit\psframebox[framesep=.4ex]
- {Fracture$\vphantom j$}}}%
-\! = {\stuff[a]}
- \Fracture
- :\jtbig{\stuff[b]}!a \jtbig{\stuff[c]}
- \Fracture
- :{$\vdots$} {$\vdots$}.
-\!a = \Fracture
- :{\stuff[d]} {\stuff[e]}.
-\endjtree
-\xe
-
-\ex % Dowty
-\jtree[xunit=4em,yunit=2em,everylabel=\strut\it]
-\! = {John walks from Boston to Detroit\rm, t, 4}
- :{John\rm, T} {walk from Boston
- to Detroit\rm, IV,7}[labeloffset=1.5em]
- :\jtlong{walk from Boston\rm, IV,7}!a
- {to Detroit\rm, IV/IV, 5}
- :[scaleby=.8]{to\rm, IAV/T}() [scaleby=.8]{Detroit\rm, T}.
-\!a = :{walk\rm, IV} {from Boston\rm, IV/IV, 5}
- :{from\rm, IAV/T} {Boston\rm, T}.
-\endjtree
-\xe
-
-\ex % Nunes
-\jtree[xunit=3em,yunit=1.4em]
-\def\what{[which claim]$_k$}%
-\! = {CP$_1$}
- <left>[scaleby=1.7]{CP$_2$}!a ^<right>[scaleby=2.5]{C$'$}
- :{$\rm was+Q$} {TP}
- <vartri>[scaleby=1.6,triratio=.4]
- {he$_i$ willing to discuss \what}.
-\!a = :{\what} {CP$_2$}
- <vartri>[scaleby=1.6,triratio=.6]
- {that John$_i$ made \what}.
-\endjtree
-\xe
-
-\ex % Andrews
-\jtree[xunit=2.2em,yunit=.7em]
-\def\\{[labelgapb=-.5ex]}%
-\! = {S}
- :({NP}\\{that book}@A1 ) \jtwide{S/NP}
- :({NP}\\{I}) {VP/NP}
- :({V}\\{want}) {VP/NP}
- :{\it to} {VP/NP}
- <left>({V}\\{ask}) ^<vert>({NP}\\{Mary}) ^<wideright>{VP/NP}
- :{\it to} {VP/NP}
- <left>({V}\\{tell}) ^<vert>({NP}\\{Tom}) ^<wideright>{VP/NP}
- :{\it to} {VP/NP}
- :({V}\\{read}) {NP/NP}\\{e}@A2 .
-\nccurve[angleA=210,angleB=-90]{->}{A2}{A1}
-\endjtree
-\xe
-
-\ex % Andrews (second version)
-\jtree[xunit=2.2em,yunit=.7em]
-\def\\{<shortvert>}%
-\! = {S}
- :({NP}<vartri>{that book}@A1 ) \jtwide{S/NP}
- :({NP}\\{I}) {VP/NP}
- :({V}\\{want}) {VP/NP}
- :{\it to} {VP/NP}
- <left>({V}\\{ask}) ^<vert>({NP}\\{Mary}) ^<wideright>{VP/NP}
- :{\it to} {VP/NP}
- <left>({V}\\{tell}) ^<vert>({NP}\\{Tom}) ^<wideright>{VP/NP}
- :{\it to} {VP/NP}
- :({V}\\{read}) {NP/NP}\\{e}@A2 .
-\nccurve[angleA=210,angleB=-90]{->}{A2}{A1}
-\endjtree
-\xe
-
-\ex % Merchant
-a.\quad
-%
-\jtree[xunit=2.6em,yunit=1em]
-\def\\{[labelgapb=-1.2ex]}%
-\everymath={\rm}%
-\! = {CP}
- :({XP}\\{$\scriptstyle [wh]$}@A1 ) {$C'$}
- :({$C^0$}\\{$\scriptstyle [wh,Q]$}) {$\langle\, TP\,\rangle$}
- <tri>{\dots\quad\rnode[b]{A2}{\it t}\quad\dots}.
-\nccurve[angleA=-150,angleB=-90,ncurv=1]{->}{A2}{A1}
-\endjtree
-%
-\hfil
-b.\quad
-\jtree[xunit=2.6em,yunit=1em]
-\def\\{[labelgapb=-1.2ex]}%
-\everymath={\rm}%
-\! = {CP}
- :({XP}\\{$\scriptstyle [wh]$}@A1 ) {$C'$}
- :({$C^0$}\\{$\scriptstyle [wh,Q]$}) {$\langle\, TP\,\rangle$}
- <tri>{\dots\quad\rnode[b]{A2}{\it t}\quad \dots}.
- \ncbar[angleA=-90,angleB=-90,armA=1em,
- armB=1em,linearc=.6ex]{->}{A2}{A1}
-\endjtree
-\xe
-
-\ex % Chung, first example
-a.\quad
-%
-\jtree[xunit=2.6em,yunit=1em]
-\def\\{[labelgapb=-1.2ex]}%
-\everymath={\rm}%
-\! = {CP}
- :({XP}\\{$\scriptstyle [wh]$}@A1 ) {$C'$}
- :({$C^0$}\\{$\scriptstyle [wh,Q]$}) {$\langle\, TP\,\rangle$}
- <tri>{\dots\quad\rnode[b]{A2}{\it t}\quad\dots}.
-\nccurve[angleA=-150,angleB=-90,ncurv=1]{->}{A2}{A1}
-\endjtree
-%
-\hfil
-b.\quad
-\jtree[xunit=2.6em,yunit=1em]
-\def\\{[labelgapb=-1.2ex]}%
-\everymath={\rm}%
-\! = {CP}
- :({XP}\\{$\scriptstyle [wh]$}@A1 ) {$C'$}
- :({$C^0$}\\{$\scriptstyle [wh,Q]$}) {$\langle\, TP\,\rangle$}
- <tri>{\dots\quad\rnode[b]{A2}{\it t}\quad \dots}.
- \ncbar[angleA=-90,angleB=-90,armA=1em,
- armB=1em,linearc=.6ex]{->}{A2}{A1}
-\endjtree
-\xe
-
-\ex % Chung, second example
-\jtree[xunit=2em,yunit=1.4em,labelgapb=0,triratio=0,
- arrowscale=1.6 1]
-\deftriangle<tri>(1.8)(1)(-.5)
-\defbranch<colonB>(1)(-.5)
-\! = {CP}
- :{\sc WH}@A {C$'$}
- <tri>{\rlap{V}}@AA ^<tri>[triratio=.55]{CP}
- :{\it t}@B {C$'$}
- <tri>{\rlap{V}}@BB ^<tri>[triratio=.55]{CP}
- :{\it t}@C {C$'$}
- <tri>{\rlap{V}}@CC .
-\psset{linewidth=1pt,ncurvB=1.1,nodesepA=0,nodesepB=.7ex,
- angleA=-90,angleB=180,offsetA=.5ex}
-\nccurve{A}{AA}
-\nccurve{B}{BB}
-\nccurve{C}{CC}
-\psset{offsetA=-.5ex,arrows=->}
-\nccurve{A}{AA}
-\nccurve{B}{BB}
-\nccurve{C}{CC}
-\endjtree
-\xe
-
-\ex % Caponigo and Schutze
-\jtree[xunit=5em,yunit=2em]
-\! = {IP}
- <tri>{\triline{sono stati\hfil}} ^<tri>[triratio=.95]{FP}
- :{F$_{\rlap{$\scriptstyle\rm [+strong]$}}$}!a
- {Voice$_{\rlap{$\scriptstyle\rm Pass$}}$}
- :{Voice\rlap{$_{\rm Pass}$}}@A2 {$\rm Agr_OP$}
- :{DP}!b {${\rm Agr_O}'$}
- :[scaleby=.8 1]{$\rm Agr_O$}@A3 [scaleby=.8 1]{VP}
- <tri>[scaleby=.4 .7]
- {\rnode{A5}{$t_i$}\hskip1ex \rnode{A6}{$t_m$}}.
-\!a = <shortvert>{arrestati$_i$}@A1 .
-\!b = <shortvert>{alcuni uomini$_m$}@A4 .
-\psset{arrows=->}
-\nccurve[angleA=225,angleB=-45]{A2}{A1}
-\nccurve[angleA=200,angleB=-90,ncurv=1.5]{A3}{A2}
-\nccurve[angleA=-130,angleB=-70]{A5}{A3}
-\nccurve[angleA=-130,angleB=-70,linestyle=dashed]{A6}{A4}
-\endjtree
-\xe
-
-\ex % Uriagereka
-\jtree[xunit=1.8em,yunit=.9em]
-\def\*{\xleaders\hbox{\kern1pt.\kern1pt}\hfil}%
-\deftriangle<triA>(1.3)(1)(-1/2)
-\! = {F$'$}
- <wideleft>{F}!a
- ^<wideright>{\hbox to 2em{\*}}{$\rm Agr_O P$}
- <left>{DP\rlap{\rnode{B2}{$\;\equiv\;$}\it me}}@B1
- ^<wideright>{$\rm Agr_O P$}
- <left> ^<wideright>{$\rm {Agr_O}'$}
- <left>{$\rm Agr_O$}!b ^<wideright>{AsP}
- <triA>{\triline
- {\* \rnode[b]{D1}{t} \* DP \* \rnode[b]{D2}{t} \*}}
- <tri>[scaleby=.8 1.3]{\triline{\* \rnode[b]{E1}{\it a} \*}}.
-\!a = :{F}!a1 @A1 .
-\!a1 = :{F}!a2 @A2 .
-\!a2 = :{V}@A3 {F}.
-\psset{scaleby=.5 1}
-\!b = :{V}@C1 {$\emptyset$}.
-\psset{arrows=->}
-\ncarc[arcangle=50]{C1}{A3}
-\ncarc[arcangle=50]{B1}{A2:t}
-\ncarc[arcangle=50]{D1}{C1}
-\nccurve[angleA=-75,angleB=-90,ncurv=1.2,nodesepB=1ex]{D2}{B2}
-\nccurve[angleA=-145,angleB=-100,ncurv=1]{E1}{A1:t}
-\endjtree
-\xe
-
-\ex % Richards
-\jtree[xunit=1.5em,yunit=1.1em,labelgap=0]
-\def\A#1{\pnode(0,.3){A#1}}%
-\def\B#1{\pnode(0,-.3){B#1}}%
-\! = :{car} {\omit\A1}
- :({\omit\A0}{Op})
- :{that}
- :{I}
- :{T}
- :{know} {\omit\B1}
- :({\omit\B0}{who})
- :{C}
- :{Pro}
- :{to}() \jtjot
- :{persuade}() \jtjot
- :{V} {\omit\A2}
- :\jtlong{\omit\A4}!a
- :{Pro}
- :{to}
- :{talk} {\omit\B2}
- :\jtlong{\omit\B3}!b
- :{V}
- :{about}() {\omit\A3}{\it t}.
-\!a = :{owners}() \jtjot
- :{of} {\omit\A5}{\it t}.
-\!b = :{to} {\omit\B4}{\it t}.
-\psset{linestyle=dashed,linewidth=.3ex,linecolor=blue,nodesep=0}
-\def\fudge{.5}%
-\ncline[nodesepA=-\fudge]{A0}{A1}
-\ncline[nodesepB=-\fudge]{A1}{A3}
-\ncline{A2}{A4}
-\ncline[nodesepB=-\fudge]{A4}{A5}
-\psset{linestyle=dotted,linewidth=.5ex,linecolor=red}
-\ncline[nodesepA=\fudge]{B0}{B1}
-\ncline{B1}{B2}
-\ncline{B2}{B3}
-\ncline[nodesepB=\fudge]{B3}{B4}
-\endjtree
-\xe
-
-\ex % Zubizaretta
-\jtree[xunit=2.5em,yunit=2em]
-\def\ovalstuff{\vtop{\hbox{arg$^3$}%
- \hbox to 4em{(\thinspace \leaders\hrule\hfil\ NP)}}}%
-\! = {V}@B1
- <left>{face}({arg$^1$}@B2 )
- ^<right>{$\rm [_V\,$leggere]}({arg$^2$,})
- ^<right>[scaleby=3 1,branch=\blank]
- {}{\ovalnode[framesep=1ex,boxsep=false]{K}{\ovalstuff}}.
-\psset{arrows=->,nodesepA=0}
-\nccurve[angleA=150,angleB=180,ncurv=1.2]{B2}{B1}
-\nccurve[angleA=90,angleB=0,ncurv=.8]{K}{B1}
-\endjtree
-\xe
-
-\begingroup % Koopman
-
-\def\scaleA{[scaleby=1.6 1]}%
-\def\scaleB{[scaleby=.6 1,doubleline=true,doublesep=.1ex]}%
-\def\mkovalnode{\rput(-1ex,-.8)
- {\ovalnode[framesep=\psxunit]{K}{\hskip2em}}}%
-
-\ex
-\jtree[xunit=3em,yunit=1.5em]
-\def\scaleA{[scaleby=1.6 1]}%
-\def\scaleB{[scaleby=.6 1,doubleline=true,doublesep=.1ex]}%
-\def\mkovalnode{\rput(-1ex,-.8)
- {\ovalnode[framesep=\psxunit]{K}{\hskip2em}}}%
-\! = {$\rm Agr'$}
- :\scaleA{Agr}!a \scaleA{\bf VP}
- <vert>[linestyle=dashed,linewidth=1pt]{\bf V}
- :{${\rm [_V\,e]}_i$}@A1 {T}.
-\!a = :{V$_i$}!b {Agr}
- <vert>{[e]$_j$}@A2 .
-\!b = {\omit\mkovalnode}
- :\scaleB{${\rm [_{Agr}\,Agr]}_j$}@A3 \scaleB{$\rm [_T\,T]$}.
-\psset{angleA=-90,angleB=-45,arrows=->}
-\nccurve[nodesepB=0]{A1}{K}
-\nccurve[ncurv=1.3]{A2}{A3}
-\endjtree
-\xe
-\vskip2em
-
-\ex
-\jtree[xunit=4.8em,yunit=2em]
-\def\mkovalnode{\rput(-1ex,-.8){\ovalnode[framesep=\psxunit]{K}
- {\hskip2em}}}%
-\! = {$\rm Agr'$}
- :\scaleA{Agr}!a \scaleA{\bf VP}
- <vert>[linestyle=dashed,linewidth=1pt]{\bf V}
- :{${\rm [_V\,e]}_i$}@A1 {T}.
-\!a = :{V$_i$}!b {Agr}
- <vert>{[e]$_j$}@A2 .
-\!b = {\omit\mkovalnode}
- :\scaleB{${\rm [_{Agr}\,Agr]}_j$}@A3 \scaleB{$\rm [_T\,T]$}.
-\psset{angleA=-90,angleB=-45,arrows=->}
-\nccurve[nodesepB=0]{A1}{K}
-\nccurve[ncurv=1.3]{A2}{A3}
-\endjtree
-\xe
-\vskip5em
-
-\ex \small
-\jtree[xunit=2.6em,yunit=1em]
-\def\mkovalnode{\rput(-1ex,-.8){\ovalnode[framesep=\psxunit]{K}
- {\hskip2em}}}%
-\! = {$\rm Agr'$}
- :\scaleA{Agr}!a \scaleA{\bf VP}
- <vert>[linestyle=dashed,linewidth=1pt]{\bf V}
- :{${\rm [_V\,e]}_i$}@A1 {T}.
-\!a = :{V$_i$}!b {Agr}
- <vert>{[e]$_j$}@A2 .
-\!b = {\omit\mkovalnode}
- :\scaleB{${\rm [_{Agr}\,Agr]}_j$}@A3 \scaleB{$\rm [_T\,T]$}.
-\psset{angleA=-90,angleB=-45,arrows=->}
-\nccurve[nodesepB=0]{A1}{K}
-\nccurve[ncurv=1.3]{A2}{A3}
-\endjtree
-\xe
-\vskip2em
-
-\endgroup % Koopman
-
-\ex % McCawley
-\jtree[xunit=2.45em,yunit=1.4em,dirA=(1:-1),nodesep=0]
-\def\\{[labelgapb=-4pt]}%
-\def\V{$\rm \overline V$}%
-\! = {S}
- <wideleft>{S}!a ^<vert>{and} ^<wideright>{S}
- :({NP}<shortvert>{Fred}) {\V}
- :({V}\\{knows}) {NP}
- <tri>{a man} ^<right>
- <right>[scaleby=3.5 1,branch=\blank]{NP}@A3 !b ^{S}
- :({NP}<shortvert>{who}) {\V}@A2
- <left>({V}\\{repairs}).
-\!a = :({NP}<shortvert>{John}) {\V}@A1
- <left>{V}\\{sells}.
-\!b = <vartri>{washing machines}.
-\nccurve[angleB=150,ncurvB=1.4]{A2:b}{A3:t}
-\nccurve[angleB=135,ncurvA=.5,ncurvB=2.6]{A1:b}{A3:t}
-\endjtree
-\xe
-
-\vfil\break
-
-\ex % Frampton, verb raising
-\def\\#1\par{\bigskip #1\par\nobreak\vskip1.5em \hfil}
-\def\Vj{V$\mskip-5mu _j$}
-\psset{xunit=3.5em,yunit=1.5em,treevshift=1.3em}
-\hfil Theories of verb raising
-\medskip
-\leftskip=2em
-
-\\Trace theory
-
-\jtree[scaleby=.8]
-\! = :{Agr} :{Tns} :{V}() \etc.
-\endjtree
-\quad $\longrightarrow$\quad
-\jtree
-\! = :{Agr} !a
- :{$t_i$}
- :{$t_j$}() \etc.
-\psset{scaleby=.3 .4}
-\!a = :{Agr} {Tns$_i$}
- :{Tns} {\Vj}.
-\endjtree
-
-\\Copy theory
-
-\jtree[scaleby=.8]
-\! = :{Agr} :{Tns} :{V}() \etc.
-\endjtree
-\quad $\longrightarrow$\quad
-\jtree
-\! = :{Agr}!a [scaleby=1.45]
- :{Tns$_i$}!b
- :{\Vj}() \etc.
-\psset{scaleby=.3 .4}
-\!a = :{Agr} {Tns$_i$}
- :{Tns} {\Vj}.
-\!b = :{Tns} {\Vj}.
-\endjtree
-
-\\Shared structure
-
-\jtree[scaleby=.8]
-\! = :{Agr} :{Tns} :{V}() \etc.
-\endjtree
-\quad $\longrightarrow$\quad
-\jtree
-\! = :{Agr}@A1 !a
- :{Tns}@A2 !b
- :{V}@A3 \etc.
-\psset{scaleby=.3 .4,angleA=-35,angleB=125,ncurv=1.5,nodesep=0}
-\!a = <left>{Agr}.
-\!b = <left>{Tns}.
-\nccurve{->}{A1:b}{A2:t}
-\nccurve{->}{A2:b}{A3:t}
-\endjtree
-\xe
-
-\ex % Frampton, Bulgarian
-\kern2em
-\jtree[xunit=2.4em,yunit=1.2em,style=arrows2,nodesep=0]
-\def\broken{[branch=\brokenbranch,scaleby=1.6]}%
-\def\stub{<right>[scaleby=.5,arrows=-]}%
-\def\\#1{\rput[bl](.6ex,.4ex){\it #1}}%
-\! = {\omit\\a}@A1
- \stub @K1 ^<right>{\omit\\b}
- :{C$_2$}() \broken @A2
- \stub @K2 ^<right>@A3
- \stub @K3 ^<right>
- :{C$_1$}() \broken
- :{ubil} {\omit\\c}@A4
- :{kolko} {\omit\\d}
- :{studenti} {\omit\\e}@A5
- :{ot} :{koi} {strani}.
-\psset{dirA=(1:1),angleB=90,ncurvA=.6,ncurvB=1}
-\nccurve{K1}{A5}
-\nccurve{-}{K2}{A5}
-\nccurve{K3}{A4}
-\psset{dirA=(-1:-1),dirB=(-1:-1),ncurv=4,arrows=-}
-\nccurve{A1}{K1}
-\nccurve{A2}{K2}
-\nccurve{A3}{K3}
-\endjtree
-\xe
-
-\ex % Wilder, right node raising
-\jtree[dirA=(1:-1),nodesepA=0,nodesepB=.8ex,
- xunit=2.2em,yunit=1em,style=arrows2]
-\! = :!a {\rnode{K1}{knew}}.
-\!a = :!b {\rnode{O1}{owned}}.
-\!b = :!c {\rnode{C1}{cats}}.
-\!c =
- :\jtlong !d [scaleby=1.8]
- :{and}() [scaleby=2.4]
- :{he}() @K2
- <left>\jtjot !e .
-\!d =
- :{she}() @K3
- <left>\jtjot !f .
-\!e =
- :{a woman}[labeloffset=-1ex]
- :{who}() @O2
- <left>@C2
- <left>{four}.
-\!f =
- :{a man}
- :{who}() @O3
- <left>@C3
- <left>{three}.
-\psset{linestyle=dashed,arrows=<-}
-\nccurve[angleB=-10,ncurvB=2,ncurvA=1.2]{O2}{O1}
-\nccurve[angleB=-90,ncurvA=1.4]{O3}{O1}
-\nccurve[angleB=-10,ncurvB=1.8,ncurvA=1.6]{K2}{K1}
-\nccurve[angleB=-90,ncurvA=1.4]{K3}{K1}
-\nccurve[angleB=-90,ncurvA=1.4]{C3}{C1}
-\nccurve[angleB=-10,ncurvB=1.8,ncurvA=1.6]{C2}{C1}
-\endjtree
-\xe
-
-\ex % Frampton, bilinks
-\def\bilink(#1,#2)(#3,#4){%
- \pcarc(#1,#2)(#3,#4)%
- \pcarc[linestyle=dashed](#3,#4)(#1,#2)%
-}%
-\kern5em
-\jtree[xunit=3em,yunit=1.8em,style=arrows2,
- dirA=(-1:-1),branch=\bilink,nodesep=3pt,
- arcangle=10,offset=1pt,labelgapt=!3pt]
-\def\@{\pscircle(0,0){3pt}}%
-\! =
- {\pnode{A1}\@}
- <right>{\omit\@\pnode(.8,-.8){A3}}
- :({\omit\@}{C}) [scaleby=1.6,arcangle=7]{\omit\@}
- :({\omit\@}{see})
- ({\omit\@\pnode{A2}}{who}[labeloffset=.8em]).
-\nccurve[angleB=225,ncurvA=1.95,ncurvB=1,offset=1.6pt]{A1}{A2}
-\nccurve[angleB=227,ncurvA=2,ncurvB=1.02,offset=-1.6pt,
- linestyle=dashed,arrows=<-]{A1}{A2}
-\rput(1.8,-1.8){\pscircle*[linecolor=white]{1em}}%
-\rput(1.8,-1.8){\dots}
-\endjtree
-\xe
-
-\end{document}
-
diff --git a/Master/texmf-dist/tex/generic/pst-jtree/pst-jtree.tex b/Master/texmf-dist/tex/generic/pst-jtree/pst-jtree.tex
index 0bbd8d0ea1e..898a84f50cc 100644
--- a/Master/texmf-dist/tex/generic/pst-jtree/pst-jtree.tex
+++ b/Master/texmf-dist/tex/generic/pst-jtree/pst-jtree.tex
@@ -1,21 +1,58 @@
+% Author: John Frampton, j.frampton@neu.edu
+%
% Users should feel free to modify this file in any way they
% see fit. If these modification go beyond your personal
% use, please send me a careful description of the
% modifications that have been made and the reasons that
% they were made.
-\def\fileversion{2.5}
-\def\filedate{2010/02/22}
-\message{ v\fileversion, \filedate}
-
+%
+% Please NOTIFY ME about bugs and incompatibilities.
+%
+\def\fileversion{2.6}
+\def\filedate{2010/12/17}
+\message{`PST-jTree' v\fileversion\space\space <\filedate> (jf)}
+%
\csname JTreeLoaded\endcsname
\let\JTreeLoaded\endinput
\ifx\PSTricksLoaded\endinput \else \input pstricks \fi\relax
\ifx\PSTnodesLoaded\endinput \else \input pst-node \fi\relax
\ifx\PSTXKeyLoaded\endinput \else \input pst-xkey \fi\relax
-\edef\TheAtCode{\the\catcode`\@}
-
-\catcode`@=12 \let\OtherAt=@
+%
+% commands for manipulating character codes
+\begingroup
\catcode`@=11
+\gdef\jStoreCat#1{%
+ \expandafter\edef\csname @OldCat\string#1\endcsname
+ {\noexpand\catcode\noexpand`\noexpand#1=\the\catcode`#1}%
+}
+\gdef\jRestoreCat#1{\edef\tempa{@OldCat\string#1}%
+ \expandafter\csname\tempa\endcsname \ignorespaces}
+\catcode`@=12
+\global\let\OtherAt=@
+\endgroup
+\def\jTempChangeCat#1#2{\jStoreCat#1\catcode`#1=#2\ignorespaces}
+\jTempChangeCat @{11}
+\def\j@StoreCats#1{%
+ \XKV@for@n{#1}\@char{\expandafter\jStoreCat\@char}%
+}
+\def\j@ChangeCat#1#2{\catcode`#1=#2}
+\def\j@MakeAllOther#1{%
+ \XKV@for@n{#1}\@char{\expandafter\j@ChangeCat\@char{12}}%
+}
+\def\j@TempMakeAllOther#1{%
+ \XKV@for@n{#1}\@char{\expandafter\jTempChangeCat\@char{12}}%
+ \ignorespaces
+}
+\def\j@RestoreCats#1{%
+ \XKV@for@n{#1}\@char{\expandafter\jRestoreCat\@char}%
+ \ignorespaces
+}
+\def\tempjtree@cats{\jTempChangeCat ^{7}\j@TempMakeAllOther{",>,<}}
+\def\jtree@cats{\catcode`^=7 \j@MakeAllOther{",>,<}}
+\def\unjtree@cats{\j@RestoreCats{^,",>,<}}
+\tempjtree@cats
+%
+% register resources
\newdimen\@xpos
\newdimen\@ypos
\newdimen\@@xpos
@@ -33,9 +70,44 @@
\newtoks\jtEverytree
\newtoks\jteverytree
\newtoks\jteverylabel
-\newif\if@omit
\newcount\@CurrState
-%%%
+%
+\newif\if@omit
+%
+% from eplain - \@futurenonspacelet, \@getoptionalarg
+\def\@futurenonspacelet#1{\def\cs{#1}%
+ \afterassignment\@stepone\let\@nexttoken=
+}
+\begingroup
+\def\\{\global\let\@stoken= }%
+\\ %
+\endgroup
+\def\@stepone{\expandafter\futurelet\cs\@steptwo}%
+\def\@steptwo{\expandafter\ifx\cs\@stoken\let\@@next=\@stepthree
+ \else\let\@@next=\@nexttoken\fi \@@next}%
+\def\@stepthree{\afterassignment\@stepone\let\@@next= }%
+\def\@getoptionalarg#1{%
+ \let\@optionaltemp = #1%
+ \let\@optionalnext = \relax
+ \@futurenonspacelet\@optionalnext\@bracketcheck
+}
+\def\@bracketcheck{%
+ \ifx [\@optionalnext
+ \expandafter\@@getoptionalarg
+ \else
+ \let\@optionalarg = \empty
+ \expandafter\@optionaltemp
+ \fi
+}
+\def\@@getoptionalarg[#1]{%
+ \def\@optionalarg{#1}%
+ \@optionaltemp
+}
+% end eplain utilities
+\def\psset@optionalarg{%
+ \ifx\@optionalarg\empty \else
+ \expandafter\psset\expandafter{\@optionalarg}\fi
+}
\def\jt@xovery#1#2{%
\jt@ytox@a#1//\@nil#2\ignorespaces}
\def\jt@ytox@a#1/#2/#3\@nil#4{%
@@ -44,18 +116,9 @@
\pst@dimc=\@denom pt \pst@dimd=#1pt \pst@dimd=-\pst@dimd
\pst@divide\pst@dimc\pst@dimd#4}
%%%
-\def\Expandafter#1#2{\expandafter\expandafter\expandafter#1#2}
+\def\expandaftertwice{\expandafter\expandafter\expandafter}
\def\@empty{}
\def\@nullbox{\omit}
-\begingroup
-\def\:{\jf@gobblespace} \expandafter\gdef\: {}
-\endgroup
-%%% this is also in @lingbasics
-\def\ling@getpars#1{%
- \def\k@@p{#1}\@ifnextchar[\ling@getparsA\ling@getparsB}
-\def\ling@getparsA[#1]{\def\pst@pars{#1}\k@@p}
-\def\ling@getparsB{\let\pst@pars\@empty \k@@p}
-%%%
\def\psinterpolate(#1)(#2)#3#4{{\SpecialCoor
\pst@getcoor{#1}\pst@tempa%
\pst@getcoor{#2}\pst@tempb%
@@ -68,7 +131,6 @@
/dy YB YA sub def
dx #3\space mul XA add dy #3\space mul YA add){#4}
}\ignorespaces}
-
%% PSTricks parameters
%%
% labelgap,labelgapt,labelgapb,everytree,everylabel,branch,triratio
@@ -80,29 +142,23 @@
\else
\pssetlength\pst@dima{#2#3}\fi }
\pst@addfams{jtree}
-\define@key[psset]{jtree}{labelgapt}%
- {\jtreevalue{labelgapt}#1\@nil
- \edef\jt@labelgapt{\the\pst@dima}}
-\define@key[psset]{jtree}{labelgapb}
- {\jtreevalue{labelgapb}#1\@nil
- \edef\jt@labelgapb{\the\pst@dima}}
+\def\define@inckey#1{% incremental key
+ \define@key[psset]{jtree}{#1}%
+ {\jtreevalue{#1}##1\@nil
+ \expandafter\edef\csname jt@#1\endcsname{\the\pst@dima}}%
+}
+\def\defin@inckeys#1{\XKV@for@n{#1}\@parname{%
+ \expandafter\define@inckey\expandafter{\@parname}%
+}}
+\defin@inckeys{labelgapt,labelgapb,labeloffset,%
+ labelstrutt,labelstrutb,baretopadjust}
\define@key[psset]{jtree}{labelgap}
{\psset{labelgapt=#1,labelgapb=#1}}
-\define@key[psset]{jtree}{labeloffset}{%
- \jtreevalue{labeloffset}#1\@nil
- \edef\jt@labeloffset{\the\pst@dima}}
-\define@key[psset]{jtree}{labelstrutt}{%
- \jtreevalue{labelstrutt}#1\@nil
- \edef\jt@labelstrutt{\the\pst@dima}}
-\define@key[psset]{jtree}{labelstrutb}{%
- \jtreevalue{labelstrutb}#1\@nil
- \edef\jt@labelstrutb{\the\pst@dima}}
\define@key[psset]{jtree}{everylabel}{\jteverylabel={#1}}
\define@key[psset]{jtree}{everytree}{\jteverytree={#1}}
+% 12/29/09 parameter eval added
+\define@key[psset]{jtree}{eval}{#1}
\define@key[psset]{jtree}{triratio}{\edef\jt@triratio{#1}}
-\define@key[psset]{jtree}{baretopadjust}{%
- \jtreevalue{baretopadjust}#1\@nil
- \edef\jt@baretopadjust{\the\pst@dima}}
\define@key[psset]{jtree}{treevshift}{%
\jtreevalue{labelgapt}#1\@nil
\edef\jt@treevshift{\the\pst@dima}}
@@ -131,7 +187,7 @@
% syntax: \psset{dirA=(1:1)} (note :) sets angleA to point in
% the (1,1) direction
% end new parameter
-
+%
\def\jt@maxafter{\xdef\jt@@maxafter{%
\noexpand\max@left=\the\max@left
\noexpand\max@right=\the\max@right
@@ -145,17 +201,22 @@
\noexpand\@@xpos=\the\@@xpos
\noexpand\@@ypos=\the\@@ypos}%
\aftergroup\vartri@@after}
-%%%%%%%%%%%%%%%%%%%%%%
-%%%%% leaf definitions
-\def\defbranch{\ling@getpars\defbranch@a}
+%
+% leaf definitions
+\def\defenter{\j@TempMakeAllOther{>,<}\@getoptionalarg}
+\def\defreturn{\j@RestoreCats{>,<}}
+%
+\def\defbranch{\defenter\defbranch@a}
\def\defbranch@a<#1>#2(#3)#4(#5){%
\jt@xovery{#5}\temp
- \Expandafter\edef\@nameuse{leaf@#1}%
+ \expandaftertwice\edef\@nameuse{leaf@#1}%
{\noexpand\def\noexpand\@leaf{%
- \noexpand\@@branch{\pst@pars}{#3}{\temp}}%
- }\ignorespaces}
+ \noexpand\@@branch{\@optionalarg}{#3}{\temp}}}%
+ \defreturn
+ \ignorespaces
+}
\def\@@branch#1#2#3{\@@xpos=\@xpos \@@ypos=\@ypos
- {\psset{#1}\expandafter\psset\expandafter{\pst@pars}%
+ {\psset{#1}\psset@optionalarg
\pssetylength\pst@dimd{#2}
\pst@dimc=#3\pst@dimd
\pst@divide\psxunit\psyunit\temp
@@ -171,16 +232,18 @@
\ifdim\@ypos < \max@down \max@down=\@ypos \fi
\jt@maxafter}%
}
-\def\deftriangle{\ling@getpars\deftriangle@a}
+\def\deftriangle{\defenter\deftriangle@a}
\def\deftriangle@a#1<#2>#3(#4)#5(#6)#7(#8){%
\jt@xovery{#6}\tempA
\jt@xovery{#8}\tempB
- \Expandafter\edef\@nameuse{leaf@#2}%
+ \expandaftertwice\edef\@nameuse{leaf@#2}%
{\noexpand\def\noexpand\@leaf{%
- \noexpand\@@triangle{\pst@pars}{#4}{\tempA}{\tempB}}}%
+ \noexpand\@@triangle{\@optionalarg}{#4}{\tempA}{\tempB}}}%
+ \defreturn
+ \ignorespaces
}
\def\@@triangle#1#2#3#4{\@@xpos=\@xpos \@@ypos=\@ypos
- {\psset{#1}\expandafter\psset\expandafter{\pst@pars}
+ {\psset{#1}\psset@optionalarg
\jt@dima=\@xpos \jt@dimb=\@ypos
\pssetylength\jt@dimc{#2}
\jt@dimd=#3\jt@dimc
@@ -206,17 +269,19 @@
\jt@positionafter}%
\edef\triwd{\temp}%
}
-\def\defvartriangle{\ling@getpars\defvartriangle@a}
+\def\defvartriangle{\defenter\defvartriangle@a}
\def\defvartriangle@a#1<#2>#3(#4){%
- \Expandafter\edef\@nameuse{leaf@#2}%
+ \expandaftertwice\edef\@nameuse{leaf@#2}%
{\noexpand\@CurrState=\State@vartri
\noexpand\def\noexpand\@leaf{%
- \noexpand\@@vartriangle{\pst@pars}{#4}}}%
+ \noexpand\@@vartriangle{\@optionalarg}{#4}}}%
+ \defreturn
+ \ignorespaces
}
\def\@@vartriangle#1#2{\@@xpos=\@xpos \@@ypos=\@ypos
{\expandafter\psset\expandafter{\jf@@pars}%
\edef\@vartriratio{\jt@triratio}%
- \psset{#1}\expandafter\psset\expandafter{\pst@pars}%
+ \psset{#1}\psset@optionalarg
\pssetylength\jt@dimc{#2}
\jt@dimc=\jt@scaleyby\jt@dimc
\advance\@ypos by -\jt@dimc
@@ -276,22 +341,14 @@
\def\@ifCurrState#1{\ifnum\@CurrState=#1}
\def\start{\xdef\@topadjust{\jt@baretopadjust}\@CurrState=\State@root
\jtp@parse }
-% 23 June 05 removed \expandafter
-
-
-%%% utility used extensive by the parser
-%%% removes following space token and expands the token
-%%% which follows
-\def\@preparenext#1{\def\@@hold{#1}\@pn@}
-\def\@pn@{\futurelet\temp\@pn@a}
-\def\@pn@a{\ifx\temp\@sptoken \let\next\@pn@b
- \else \let\next\@pn@c \fi \next}
-\def\@pn@b{\expandafter\@pn@c\jf@gobblespace}
-\def\@pn@c{\futurelet\temp\@pn@d}
-\def\@pn@d{\ifcat\noexpand\temp\noexpand\relax
- \let\next\@pn@e \else \let\next\@@hold \fi \next}
-\def\@pn@e{\expandafter\@@hold}
-%%% main parser
+%
+% \@preparenext is used extensive by the parser. It removes a
+% following space token and expands the token which follows.
+\def\@preparenext#1{%
+ \def\@@hold{\expandafter #1}%
+ \@futurenonspacelet\temp\@@hold % \temp is a dummy
+}
+%%%% main parser
\def\jtp@parse{\@preparenext\jtp@parseA}
\def\jtp@parseA{\futurelet\temp\jtp@parseD}
\def\jtp@parseD{%
@@ -301,7 +358,6 @@
\ifx\temp:\let\next\jtp@colon \else
\ifx\temp!\let\next\jtp@insertlabel \else
\ifx\temp\OtherAt \let\next\jtp@insertlabel \else
-% \ifx\temp;\let\next\jtp@semicolon \else
\ifx\temp(\let\next\jtp@lparen \else
\ifx\temp)\let\next\jtp@rparen \else
\ifx\temp.\let\next\jtp@exit \else
@@ -316,19 +372,22 @@
\def\jtp@TestForOmitA{\global\@omittrue
\ifx\temp\omit \let\next\@gobble
\else \ifx\temp\pnode \let\next\relax
- \else \global\@omitfalse
- \def\next{\the\jteverylabel}\fi\fi \next
+ \else \ifx\temp\elc \let\next\relax
+ \else \global\@omitfalse
+ \def\next{\the\jteverylabel}\fi\fi\fi \next
}
%%
-\def\jtp@label#1{\def\@stuff{#1}\@preparenext\jtp@labelA}
-\def\jtp@labelA{\expandafter\ling@getpars\expandafter\jtp@labelB}
+\def\jtp@label{\unjtree@cats\jtp@label@}
+\def\jtp@label@#1{\def\@stuff{#1}\jtree@cats\@preparenext\jtp@labelA}
+%\def\jtp@label#1{\def\@stuff{#1}\@preparenext\jtp@labelA}
+\def\jtp@labelA{\expandafter\@getoptionalarg\expandafter\jtp@labelB}
\def\jtp@labelB{\@preparenext\jtp@labelC}
\def\jtp@labelC{\@ifnextchar \OtherAt
\jtp@labelD{\def\@explabel{}\jtp@labelE}}
\def\testlabel#1.#2\@nil{\def\temp{#2}\ifx\temp\@empty
\else \jtp@err{SPACE MUST FOLLOW @TAG OR !TAG}\fi}
\def\jtp@labelD#1#2 {\def\@explabel{#2}\testlabel#2.\@nil\jtp@labelE}
-\def\jtp@labelE{\bgroup\expandafter\psset\expandafter{\pst@pars}%
+\def\jtp@labelE{\bgroup\psset@optionalarg
\setbox\@nodebox\hbox{\expandafter\jtp@TestForOmit\@stuff}%
\@ifCurrState\State@vartri \@leaf \fi
\jt@setnode\vartri@after\jt@positionafter\egroup
@@ -336,13 +395,11 @@
\@ifnextchar !\jtp@labelF\jtp@labelG}
\def\jtp@labelF #1 {%
\testlabel#1.\@nil
- \Expandafter\xdef\@nameuse{coords@#1}{%
+ \expandaftertwice\xdef\@nameuse{coords@#1}{%
\noexpand\@xpos=\the\@xpos\noexpand\@ypos=\the\@ypos}%
\jtp@labelH
}
\def\jtp@labelG{\@ifnextchar (\jtp@lparen\jtp@labelH}
-%\def\jtp@labelH{%
-% \@ifnextchar;{\expandafter\jtp@labelHa\@gobble}\jtp@labelHa}
\def\jtp@labelH{%
\@ifCurrState\State@colonB
\jt@maxafter\egroup \@CurrState=\State@normal
@@ -355,36 +412,70 @@
%%%% branches
\def\colon@error{\jtp@err{(pars) + target should follow : operator}}
\def\jtp@branch<#1>{%
- \ifnum\@CurrState=\State@root \@CurrState=\State@normal
- \else\ifnum\@CurrState=\State@colonA \@CurrState=\State@colonB
- \else\ifnum\@CurrState=\State@colonB \colon@error \fi\fi\fi
- \Expandafter\ifx\@nameuse{leaf@#1}\relax
- \jtp@err{unknown branch, <#1>}\fi
- \@nameuse{leaf@#1}\@preparenext\jtp@branchA}
-\def\jtp@branchA{\expandafter\ling@getpars\expandafter\jtp@branchB}
+ \ifnum\@CurrState=\State@root
+ \@CurrState=\State@normal
+ \else
+ \ifnum\@CurrState=\State@colonA
+ \@CurrState=\State@colonB
+ \else
+ \ifnum\@CurrState=\State@colonB
+ \colon@error
+ \fi
+ \fi
+ \fi
+ \expandaftertwice\ifx\@nameuse{leaf@#1}\relax
+ \jtp@err{unknown branch, <#1>}%
+ \fi
+ \@nameuse{leaf@#1}%
+ \@preparenext
+ \jtp@branchA
+}
+\def\jtp@branchA{\expandafter\@getoptionalarg\expandafter\jtp@branchB}
\def\jtp@branchB{%
- \@ifCurrState\State@vartri \edef\jf@@pars{\pst@pars}%
- \let\next\jtp@varbranch\else
- \let\next\jtp@mkbranch\fi \next}
+ \@ifCurrState\State@vartri
+ \edef\jf@@pars{\@optionalarg}%
+ \let\next\jtp@varbranch
+ \else
+ \let\next\jtp@mkbranch
+ \fi
+ \next
+}
\def\jtp@mkbranch{\@leaf\jtp@parse}
\def\jtp@varbranch{\@preparenext\jtp@varbranchA}
\def\jtp@varbranchA{\@ifnextchar\bgroup \jtp@label
{\jtp@err{vartriangle (pars) should be followed by a label}%
\fi \next}}
%%% the rest
-\def\jtp@colon#1{\ifnum\@CurrState<\State@colonB
+\def\jtp@colon#1{%
+ \ifnum\@CurrState<\State@colonB
\else \colon@error \fi
- \bgroup \@CurrState=\State@colonA
- \jtp@parse <colonA>}
-%\def\jtp@semicolon#1{\jtp@parse ()}
-\def\jtp@lparen#1{\@ifCurrState\State@root
- \global\@CurrState=\State@normal \gdef\@topadjust{0pt}%
- \fi \bgroup \@CurrState=\State@normal \jtp@parse}
-\def\jtp@rparen#1{\jt@maxafter\egroup
+ \bgroup
+ \@CurrState=\State@colonA
+ \jtp@parse <colonA>%
+}
+\def\jtp@lparen#1{%
+ \@ifCurrState\State@root
+ \global\@CurrState=\State@normal
+ \gdef\@topadjust{0pt}%
+ \fi
+ \bgroup
+ \@CurrState=\State@normal
+ \jtp@parse
+}
+\def\jtp@rparen#1{%
+ \jt@maxafter\egroup
\@ifCurrState\State@colonB
- \def\next{\jt@maxafter\egroup\@CurrState=\State@normal
- \jtp@parse <colonB>}\else
- \def\next{\jtp@parse}\fi \next }
+ \def\next{%
+ \jt@maxafter
+ \egroup
+ \@CurrState=\State@normal
+ \jtp@parse <colonB>%
+ }%
+ \else
+ \def\next{\jtp@parse}%
+ \fi
+ \next
+}
\def\jtp@exit#1{\ignorespaces}
\def\jtp@insertlabel{\jtp@parse{\omit}}
\def\jtp@HatOp#1{\@ifCurrState\State@normal \else
@@ -393,97 +484,138 @@
\def\jtp@evalnext#1#2{\ifnum\@CurrState>1
\jtp@err{misplaced " evaluation}\fi #2\jtp@parse}
%%% end of parser
-
-\def\adjoin at #1 {\Expandafter\ifx\@nameuse{coords@#1}\relax
- \writeln{* * coords@#1 unknown * *}\let\next\more@gobble\else
- \@nameuse{coords@#1}\let\next\jtp@parse \fi \next}
+%
+\def\adjoin at #1 {%
+ \expandaftertwice\ifx\@nameuse{coords@#1}\relax
+ \writeln{* * coords@#1 unknown * *}%
+ \let\next\more@gobble
+ \else
+ \@nameuse{coords@#1}%
+ \let\next\jtp@parse
+ \fi
+ \next
+}
\def\more@gobble#1.{\ignorespaces}
-\def\adjoinop#1 ={\@ifCurrState\State@root
- \xdef\@topadjust{\jt@baretopadjust}\fi
- \adjoin at !#1 }
-
-\def\jtree{\ling@getpars\jtree@a}
+\def\adjoinop#1 ={%
+ \@ifCurrState\State@root
+ \xdef\@topadjust{\jt@baretopadjust}\fi
+ \adjoin at !#1
+}
+\def\jtree{\@getoptionalarg\jtree@a}
\def\jtree@a{\leavevmode
\setbox\tree@box\hbox\bgroup
- \Expandafter\def\@nameuse{coords@!}{\@xpos=0pt \@ypos=0pt}%
+ \tempjtree@cats
+ \expandaftertwice\def\@nameuse{coords@!}{\@xpos=0pt \@ypos=0pt}%
\ifjt@normallabelstrut \NormalLabelStrut \fi
\the\jtEverytree
\the\jteverytree
- \expandafter\psset\expandafter{\pst@pars}%
+ \psset@optionalarg
\@CurrState=\State@root
\def\@topadjust{\jt@baretopadjust}%
\@xpos=0pt \@ypos=0pt
\max@left=\maxdimen \max@right=-\maxdimen \max@down=0pt
\ignorespaces
}
-\def\jt@topadjustafter{\pssetlength\jt@dime\@topadjust
+\define@key[psset]{jtree}{bbadjust}{\@bbadjust#1 \@nil}
+\def\@bbadjust{\futurelet\temp\@@bbadjust}
+\def\@@bbadjust{\ifx\temp\@nil \let\next\@gobble
+ \else \let\next\@@@bbadjust \fi \next}
+\def\@@@bbadjust #1 #2 {%
+ \expandafter\def\csname jt@bb#1adjust\endcsname{#2}%
+ \@bbadjust
+}
+\psset{bbadjust=height 0pt depth 0pt left 0pt right 0pt}
+\def\jt@afterpic{%
+ \pssetlength\jt@dime\@topadjust
\psaddtolength\jt@dime\jt@treevshift
- \xdef\jt@@topadjustafter
- {\noexpand\def\noexpand\@topadjust{\the\jt@dime}}%
- \aftergroup\jt@@topadjustafter
+ \xdef\jt@@afterpic
+ {%
+ \noexpand\def\noexpand\@topadjust{\the\jt@dime}%
+ \noexpand\edef\noexpand\@extraht{\jt@bbheightadjust}%
+ \noexpand\edef\noexpand\@extraleft{\jt@bbleftadjust}%
+ \noexpand\edef\noexpand\@extraright{\jt@bbrightadjust}%
+ }%
+ \aftergroup\jt@@afterpic
}
-\def\endjtree{\jt@maxafter\jt@topadjustafter\egroup
+\def\endjtree{%
+ \advance\max@down by -\jt@bbdepthadjust
+ \jt@afterpic\jt@maxafter\egroup
+ \advance\max@left by -\@extraleft
+ \advance\max@right by \@extraright
\dp\tree@box=-\max@down
- \kern-\max@left
- \raise\@topadjust
- \box\tree@box\kern\max@right
+ \vbox{%
+ \kern\@extraht
+ \hbox{\kern-\max@left
+ \raise\@topadjust \box\tree@box
+ \kern\max@right}%
+ }%
}
-
-%%%%
-%% alternates to \psline for drawing branches
+% alternates to \psline for drawing branches
\let\branch@type=\psline
\def\blank(#1)(#2){\ignorespaces}
% branch with centered elision
-\def\brokenbranch(#1,#2)(#3,#4){{\psline(#1,#2)(#3,#4)
- \dimpuba=#1\dimpubb=#2\dimpubc=#3\dimpubd=#4%
- \dimpuba=.5\dimpuba \advance\dimpuba by .5\dimpubc
- \dimpubb=.5\dimpubb \advance\dimpubb by .5\dimpubd
- \rput(\dimpuba,\dimpubb){\pscirclebox*{\vrule
- height3pt width0pt\dots}}}\ignorespaces
+\def\brokenbranch(#1,#2)(#3,#4){%
+ {\psline(#1,#2)(#3,#4)
+ \jt@dima=#1\jt@dimb=#2\jt@dimc=#3\jt@dimd=#4%
+ \jt@dima=.5\jt@dima \advance\jt@dima by .5\jt@dimc
+ \jt@dimb=.5\jt@dimb \advance\jt@dimb by .5\jt@dimd
+ \rput(\jt@dima,\jt@dimb){\pscirclebox*{\vrule
+ height3pt width0pt\dots}}}%
+ \ignorespaces
}
% \etc branches (trail off into ...)
\def\psset@etcratio#1{\edef\jt@etcratio{#1}}
% determines the proportion of the branch devoted to ...
\newpsstyle{etc}{nodesepB=0,nodesepA=1pt,linestyle=dotted,
linewidth=1.2pt,dotsep=2pt}
-\def\etcbranch(#1,#2)(#3,#4){{\dimpuba=#1\dimpubb=#3%
- \dimpubc=\dimpubb
- \advance\dimpubc by \jt@etcratio\dimpuba
- \advance\dimpubc by -\jt@etcratio\dimpubb
- \dimpuba=#2\dimpubb=#4%
- \dimpubd=\dimpubb
- \advance\dimpubd by \jt@etcratio\dimpuba
- \advance\dimpubd by -\jt@etcratio\dimpubb
- \psline[arrows=-cc](#1,#2)(\dimpubc,\dimpubd)
- \pcline[style=etc](\dimpubc,\dimpubd)(#3,#4)}%
+\def\etcbranch(#1,#2)(#3,#4){{\jt@dima=#1\jt@dimb=#3%
+ \jt@dimc=\jt@dimb
+ \advance\jt@dimc by \jt@etcratio\jt@dima
+ \advance\jt@dimc by -\jt@etcratio\jt@dimb
+ \jt@dima=#2\jt@dimb=#4%
+ \jt@dimd=\jt@dimb
+ \advance\jt@dimd by \jt@etcratio\jt@dima
+ \advance\jt@dimd by -\jt@etcratio\jt@dimb
+ \psline[arrows=-cc](#1,#2)(\jt@dimc,\jt@dimd)
+ \pcline[style=etc](\jt@dimc,\jt@dimd)(#3,#4)}%
\ignorespaces
}
\def\etc{[branch=\etcbranch,scaleby=.7]}
% the default is that \etc is 70% the length of \rb and 75% of
% it is dots
% Incremental tree building
-\def\stuff{\ling@getpars\stuff@A}
-\def\stuff@A{\ifx\pst@pars\@empty no def\else
- \Expandafter\ifx\@nameuse{stuff@@\pst@pars}\relax
- {\tt [}\expandafter\tt\pst@pars]\else
- \@nameuse{stuff@@\pst@pars}\fi\fi
+\def\stuff{\@getoptionalarg\stuff@A}
+\def\stuff@A{\ifx\@optionalarg\@empty no def\else
+ \expandaftertwice\ifx\@nameuse{stuff@@\@optionalarg}\relax
+ {\tt [}\expandafter\tt\@optionalarg]\else
+ \@nameuse{stuff@@\@optionalarg}\fi\fi
}
\def\defstuff[#1]#2{%
- \Expandafter\def\@nameuse{stuff@@#1}{#2}\ignorespaces}
+ \expandaftertwice\def\@nameuse{stuff@@#1}{#2}\ignorespaces}
% support for multiline labels
\def\multiline{\setbox0=\hbox{\strut}\vrule height\ht0 width0pt
\xdef\@temp@{\the\dp0}%
\vtop\bgroup\let\\=\cr\halign\bgroup \hfil##\hfil\cr}
\def\endmultiline{\vrule depth\@temp@ width0pt
\crcr\egroup\egroup}
-
+%
\def\triline#1{\hbox to\triwd{#1}}
-\catcode`\@=\TheAtCode\relax
-
+% empty label comment
+\defin@inckeys{elcxoffset,elcyoffset}
+\define@key[psset]{jtree}{elcref}
+ {\edef\jt@elcref{#1}}
+\psset{elcxoffset=.8ex,elcyoffset=0,elcref=bl}
+\def\elc{\@getoptionalarg\@elc}
+\def\@elc#1{\psset@optionalarg
+ \rput[\jt@elcref]%
+ (\jt@elcxoffset,\jt@elcyoffset){#1}}
+%
+\unjtree@cats
+\jRestoreCat @
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% the lines below can be commented out and replaced by
-%% personalized settings
-
+% the lines below can be commented out and replaced by
+% personalized settings
+%
\defbranch<left>(1)(1)
\defbranch<4left>(1)(2)
\defbranch<bigleft>(2)(1)
diff --git a/Master/texmf-dist/tex/latex/pst-jtree/pst-jtree.sty b/Master/texmf-dist/tex/latex/pst-jtree/pst-jtree.sty
index bc5a8b11e51..44d3850d83b 100644
--- a/Master/texmf-dist/tex/latex/pst-jtree/pst-jtree.sty
+++ b/Master/texmf-dist/tex/latex/pst-jtree/pst-jtree.sty
@@ -1,4 +1,3 @@
-\ProvidesPackage{pst-jtree}[2010/02/22 package wrapper for PSTricks
- pst-jtree.tex]
+\ProvidesPackage{pst-jtree}[2010/12/17 package wrapper for pst-jtree.tex]
\input pst-jtree.tex
\endinput