summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/tree-dvips
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-09 00:49:07 +0000
committerKarl Berry <karl@freefriends.org>2006-01-09 00:49:07 +0000
commit007f67a693e4d031fd3d792df8e4d5f43e2cb2e7 (patch)
tree90d17e00e572ecb1e24764b6f29c80e098b08d29 /Master/texmf-dist/doc/latex/tree-dvips
parent950209b26f70aa87ed07c54f82a95b6f03b7c3a0 (diff)
doc/latex
git-svn-id: svn://tug.org/texlive/trunk@84 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/tree-dvips')
-rw-r--r--Master/texmf-dist/doc/latex/tree-dvips/lingmacros-manual.tex139
-rw-r--r--Master/texmf-dist/doc/latex/tree-dvips/tree-manual.tex409
2 files changed, 548 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/tree-dvips/lingmacros-manual.tex b/Master/texmf-dist/doc/latex/tree-dvips/lingmacros-manual.tex
new file mode 100644
index 00000000000..e8259dd26f0
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/tree-dvips/lingmacros-manual.tex
@@ -0,0 +1,139 @@
+\documentstyle[lingmacros]{article}
+
+\title{Linguistic Macros}
+\author{Emma Pease}
+
+\begin{document}
+
+\maketitle
+
+The lingmacros file contains a few macros that may be of use to
+linguists. The major commands are
+\begin{enumerate}
+\item The enumsentence macros for creating example sentences
+\begin{center}
+\begin{verbatim}
+\enumsentence[label]{sentence}
+\eenumsentence[label]{\item[label] sentence 1
+ \item[label] sentence 2}
+\end{verbatim}
+\end{center}
+ The enumsentence macros are similar to the math equation environment
+except that they take regular text. The \verb+\label+ command can be
+used inside of them.\footnote{The enumsentence macros use the counter,
+enums. For more information read the style file.} Inside of the
+eenumsentence either the \verb+\toplabel+ command for the sentence
+number only or the \verb+\label+ for sentence number and sublabel.
+Also defined is
+\verb+\ex{number}+ which gives a relative reference. \verb+(\ex{1})+
+or \verb+(\ref{senta})+ give the number of the next enumsentence (\ex{1})
+or (\ref{senta}); \verb+(\ex{2})+ or \verb+(\ref{sentb})+ of the second
+succeeding enumsentence (\ex{2}) or (\ref{sentb}).
+\verb+(\ref{sentbb})+ will give (\ref{sentbb}).
+ \enumsentence{This is the first sentence\label{senta}}
+\eenumsentence{\item this is a second sentence \toplabel{sentb}
+ \item this is a third sentence\label{sentbb}}
+\begin{center}
+\begin{verbatim}
+\enumsentence{This is the first sentence\label{senta}}
+\eenumsentence{\item this is a second sentence \toplabel{sentb}
+ \item this is a third sentence\label{sentbb}}
+\end{verbatim}
+\end{center}
+
+
+\item The tree macros
+\begin{center}
+\begin{verbatim}
+\smalltree{alignment structure}
+\modsmalltree{number of columns}{alignment structure}
+\end{verbatim}
+\end{center}
+\verb+\smalltree+ is based on the tabular environment with a large
+baselineskip. A simple example should suffice.
+\enumsentence{\smalltree{& &a\\
+ &b& &c\\
+ d& &e& &f}}
+\begin{center}
+\begin{verbatim}
+\enumsentence{\smalltree{& &a\\
+ &b& &c\\
+ d& &e& &f}}
+\end{verbatim}
+\end{center}
+\verb+\modsmalltree+ sometime works better.
+\enumsentence{\modsmalltree{5}{& &a\\
+ &b& \mc{3}{this is long}\\
+ d& &e& &f}}
+\begin{center}
+\begin{verbatim}
+\enumsentence{\modsmalltree{5}{& &a\\
+ &b& \mc{3}{this is long}\\
+ d& &e& &f}}
+\end{verbatim}
+\end{center}
+ Note the use of the \verb+\mc{number of columns}{text}+ to span
+several columns. The \verb+\clap{text}+ might also be useful; it is
+similar to the \verb+\rlap+ and \verb+\llap+ commands and produces a
+centered hbox of zero width. Lines need to be drawn in by hand or one
+can use the tree-dvips macros.
+
+\item The gloss macros
+\begin{center}
+\begin{verbatim}
+\shortex{number of columns}{first line}{second line}{gloss}
+\shortexnt{number of columns}{first line}{second line}
+\end{verbatim}
+\end{center}
+These can be combined to produce most of the glosses that linguists
+should need.
+\enumsentence{\shortex{6}{Was & ist & dem & Kind & geschenkt&worden?}
+ {What& is & the & child& given &been?}
+ {What has been given to the child?}
+ \item \shortexnt{7}
+{Das & Fin\'anzamt & hat & ihn & geschnappt &(und & nicht}
+{the &finance authority & has & him & caught &(and &not}
+
+\shortex{2}{die &Polizei).}
+ {the &police).}
+ {It was the IRS that caught him (and not the police).}}
+\begin{center}
+\begin{verbatim}
+\enumsentence{\shortex{6}{Was & ist & dem & Kind & geschenkt&worden?}
+ {What& is & the & child& given &been?}
+ {What has been given to the child?}}
+ \item \shortexnt{7}
+{Das & Fin\'anzamt & hat & ihn & geschnappt &(und & nicht}
+{the &finance authority & has & him & caught &(and &not}
+
+\shortex{2}{die &Polizei).}
+ {the &police)}
+ {It was the IRS that caught him (and not the police).}}
+\end{verbatim}
+\end{center}
+Unfortunately, I've not figured out a fullproof method of breaking
+the glosses automatically so they have to be done by hand.
+
+\item AVM structures
+\begin{center}
+\begin{verbatim}
+\outerfs{text}
+\end{verbatim}
+\end{center}
+\enumsentence{\evnup[-3pt]{\outerfs{SUBJ & \outerfs{POSS & [PRED `Louise']\\
+ PRED &`mother$\langle$Poss$\rangle$}\\[3ex]
+ OBJ & \outerfs{PRED & `PRO'\\
+ REFL & +}\\
+ PRED & `dress$\langle$SUBJ OBJ$\rangle$'}}}
+\begin{center}
+\begin{verbatim}
+\enumsentence{\evnup[-3pt]{%
+\outerfs{SUBJ & \outerfs{POSS & [PRED `Louise']\\
+ PRED &`mother$\langle$Poss$\rangle$}\\[3ex]
+ OBJ & \outerfs{PRED & `PRO'\\
+ REFL & +}\\
+ PRED & `dress$\langle$SUBJ OBJ$\rangle$'}}}
+\end{verbatim}
+\end{center}
+\end{enumerate}
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/tree-dvips/tree-manual.tex b/Master/texmf-dist/doc/latex/tree-dvips/tree-manual.tex
new file mode 100644
index 00000000000..195b1f46273
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/tree-dvips/tree-manual.tex
@@ -0,0 +1,409 @@
+\documentstyle[tree-dvips,lingmacros]{article}
+
+\title{Tree Macros}
+\author{Emma Pease}
+
+
+\begin{document}
+
+\maketitle
+
+The tree macros package allows one to integrate \TeX\ and Postscript.
+For example, one can use \TeX\ to layout a tree and have Postscript
+draw the lines.
+\begin{center}
+ \begin{tabular}{ccc}
+&\node{ab}{top node}\\[3ex]
+\node{ac}{left node} && \node{c}{right node}\\[3ex]
+ && \node{d}{odd node}
+\end{tabular}
+\nodeconnect{ab}{ac}
+\nodeconnect{ab}{c}
+\nodeconnect{c}{d}
+\nodecurve[r]{ab}[r]{d}{1in}
+\anodeconnect[b]{ac}[l]{d}
+\anodecurve[l]{ab}[l]{ac}{1in}
+\end{center}
+
+These macros work by defining locations on a page and then
+manipulating them in a variety of ways. The commands that created the
+above tree are as follows:
+ \begin{verbatim}
+\begin{tabular}{ccc}
+ &\node{a}{top node}\\[3ex]
+\node{b}{left node} & & \node{c}{right node}\\[3ex]
+ & & \node{d}{odd node}
+\end{tabular}
+\nodeconnect{a}{b}
+\nodeconnect{a}{c}
+\nodeconnect{c}{d}
+\nodecurve[r]{a}[r]{d}{1in}
+\anodeconnect[b]{b}[l]{d}
+\anodecurve[l]{a}[l]{b}{1in}
+\end{verbatim}
+ You will notice that four nodes are defined, a, b, c, and d, using the
+\verb+\node+ command. These nodes are then connected using the
+\verb+\nodeconnect+ and \verb+\nodecurve+ commands.
+
+\section{Locating Commands}
+
+Location commands are those that deal with defining a location on a
+page. The basic command
+ \begin{center}
+\begin{verbatim}
+\node{nodename}{object}
+\end{verbatim}
+\end{center}
+ Each node has its name, height, width, and the location of the lower
+left hand corner point passed down to postscript where it will remain
+until needed. Note that the object will be printed by \TeX\ but the
+lines drawn by Postscript. A variant
+of this command is
+ \begin{center}
+\begin{verbatim}
+\nodepoint{nodename}[horizontal displace][vertical displace]
+\end{verbatim}
+\end{center}
+ The node's height and width are 0pts, but the location can be
+displaced.
+
+\section{Connecting Commands}
+
+These commands connect two or more nodes. The two basic ones are
+\begin{center}
+\begin{verbatim}
+\nodeconnect[fromloc]{fromnodename}[toloc]{tonodename}
+\nodecurve[fromloc]{fromnodename}[toloc]{tonodename}{depth}
+\end{verbatim}
+\end{center}
+ fromnodename and tonodename must be the names of two existing nodes.
+Imagine the node as a box, fromloc and toloc are the locations on that
+box to draw the connecting lines.
+\begin{center}\nodemargin=9pt
+\begin{tabular}{lcr}
+tl & {t} &{tr}\\[2ex]
+{l} & \node{a}{object} &{r}\\[2ex]
+{bl}& {b} &{br}
+\end{tabular}
+\nodebox{a}
+\end{center}
+ The present choices are t [top], b [bottom], l [left], r [right], tl
+[topleft], tr [topright], bl [bottomleft], and br [bottomright].
+These could be expanded.
+
+Other connecting commands are
+\begin{verbatim}
+\barnodeconnect[depth]{fromnodename}{tonodename}
+\anodeconnect[fromloc]{fromnodename}[toloc]{tonodename}
+\anodecurve[fromloc]{fromnodename}[toloc]{tonodename}{depth}
+\end{verbatim}
+For example,
+\begin{center}
+\node{c}{\strut This} \node{a}{\strut is} a \node{b}{\strut test} of
+barnodeconnect.
+\barnodeconnect{a}{b}
+\barnodeconnect[-5pt]{a}{c}
+\bigskip\bigskip
+
+\node{c}{\strut This} \node{a}{\strut is} a \node{b}{\strut test}
+\node{d}{\strut of} abarnodeconnect. \node{e}{\strut Note} arrows.
+\abarnodeconnect[10pt]{a}{b}
+\abarnodeconnect[-10pt]{a}{c}
+\abarnodeconnect[-10pt]{b}{d}
+\abarnodeconnect[10pt]{e}{d}
+\end{center}\bigskip
+\begin{verbatim}
+\node{c}{\strut This} \node{a}{\strut is} a \node{b}{\strut test}
+of barnodeconnect.
+\barnodeconnect{a}{b}
+\barnodeconnect[-5pt]{a}{c}
+\bigskip\bigskip
+
+\node{c}{\strut This} \node{a}{\strut is} a \node{b}{\strut test}
+\node{d}{\strut of} abarnodeconnect. \node{e}{\strut Note} arrows.
+\abarnodeconnect[10pt]{a}{b}
+\abarnodeconnect[-10pt]{a}{c}
+\abarnodeconnect[-10pt]{b}{d}
+\abarnodeconnect[10pt]{e}{d}
+\end{verbatim}
+ A negative depth places the bar below the line; a positive depth (or
+the default, which is 5pt) places the bar above the line.
+
+
+A few odd commands
+\begin{verbatim}
+\nodetriangle{fromnodename}{tonodename}
+\end{verbatim}
+This creates a triangle whose apex is the bottom of
+\verb+fromnodename+ and whose base is the top of \verb+tonodename+.
+
+\verb+\anodeconnect+ and \verb+\anodecurve+ are the same as
+\verb+\nodeconnect+ and \verb+\node-+ \verb+curve+ except that the connecting
+line has a arrowhead on it pointing to the second node.
+
+
+\section{Single Node commands}
+
+These commands adjust something around a single node rather than
+connecting nodes. The basic commands are
+ \begin{center}
+\begin{verbatim}
+\nodebox{nodename}
+\nodecircle[depth]{nodename}
+\nodeoval{nodename}
+\end{verbatim}
+\end{center}
+They draw, respectively, a box, circle, or oval around the given node.
+\begin{center}
+\node{a}{node}\hfill \node{b}{node} \hfill \node{c}{node}
+\nodebox{a} \nodecircle{b} \nodeoval{c}
+\end{center}
+ You will probably wish to call these commands after you have called
+all the connecting commands you will be using in a particular diagram.
+
+\section{Parameters}
+
+At the moment there are three parameters that can be changed. They
+are
+\begin{itemize}
+\item \verb+\nodemargin+ - A node's height and width are defined as
+the height plus depth and width of an hbox enclosing the object plus the
+nodemargin on each side. The default is 2pt.
+
+\item \verb+\treelinewidth+ - The width of the lines. The default is .3pt.
+
+\item \verb+\dashlength+ - The length of the dash, if you are using
+dashed lines. The default is 0pt (solid line).\footnote{The length
+of the dash and the length between the dashes are the same. An
+exercise for someone who knows postscript and tex is to allow the dash
+and the blank to vary in size.}
+
+\item \verb+\arrowwidth+ - the width of the arrowhead in the
+ \verb+\anodeconnect+ and \verb+\anodecurve+ commands. Default is
+ 4 pt.
+
+\item \verb+\arrowlength+ - the length of the arrowhead. Default is
+ 4pt.
+
+\end{itemize}
+
+
+\section{How to Run}
+
+Add the style file, tree-dvips.sty,
+\begin{verbatim}
+\documentstyle[tree-dvips]{article}
+\end{verbatim}
+Run through \LaTeX\ and send to a postscript printer using dvips
+(written by Tomas Rokicki).
+
+
+\section{Examples}
+
+A series of examples follow.
+\begin{center}
+\let\mc=\multicolumn
+\begin{tabular}[t]{@{}lllllllll@{}}
+ & & & &\node{a}{VP} \\[2ex]
+ &\node{b}{PP}
+ & & & & &\mc{2}{c}{\node{c}{V$'$}}\\[2ex]
+ & & &\node{d}{NP} \\[2ex]
+ & &\nodepoint{e}
+ & &\node{f}{NP} \\
+ & & &\hfill\nodepoint{r}[0pt][3pt] \\
+ &\hfil\node{g}{AP}
+ & &\hfil\node{h}{NP}
+ & & & &\hfil\node{i}{NP}\\[2ex]
+\node{j}{P}
+ &\hfil\node{k}{A}
+ & \node{l}{Prt}
+ &\hfil\node{m}{N}
+ &\node{n}{Prt}
+ &\node{o}{N}
+ &\node{p}{V}
+ &\hfil\node{q}{N}\\[2ex]
+`zaw &`oN &`geq&?njiaw&`geq&`dou& khe &tshjaN \\
+toward &red & & bird & &head& open&gun \\[1ex]
+\mc{9}{@{}l}{`shoot at the red head of the bird'} \\
+\end{tabular}
+\nodeconnect{a}{b}
+\nodeconnect{a}{c}
+\nodeconnect{b}{d}
+\nodeconnect{b}{j}
+\nodeconnect{c}{p}
+\nodeconnect{c}{i}
+\nodeconnect{d}{e}
+\nodeconnect{e}{g}
+\nodeconnect{e}{l}
+\nodeconnect{d}{f}
+\nodeconnect{g}{k}
+\nodeconnect{f}{r}
+\nodeconnect{r}{h}
+\nodeconnect{r}{n}
+\nodeconnect{f}{o}
+\nodeconnect{h}{m}
+\nodeconnect{i}{q}
+
+\end{center}
+\begin{verbatim}
+\let\mc=\multicolumn
+\begin{tabular}[t]{@{}lllllllll@{}}
+ & & & &\node{a}{VP} \\[2ex]
+ &\node{b}{PP}
+ & & & & &\mc{2}{c}{\node{c}{V$'$}}\\[2ex]
+ & & &\node{d}{NP} \\[2ex]
+ & &\nodepoint{e}
+ & &\node{f}{NP} \\
+ & & &\hfill\nodepoint{r}[0pt][3pt] \\
+ &\hfil\node{g}{AP}
+ & &\hfil\node{h}{NP}
+ & & & &\hfil\node{i}{NP}\\[2ex]
+\node{j}{P}
+ &\hfil\node{k}{A}
+ & \node{l}{Prt}
+ &\hfil\node{m}{N}
+ &\node{n}{Prt}
+ &\node{o}{N}
+ &\node{p}{V}
+ &\hfil\node{q}{N}\\[2ex]
+`zaw&`oN &`geq&?njiaw&`geq&`dou& khe &tshjaN \\
+toward &red & & bird & &head& open&gun \\[1ex]
+\mc{9}{@{}l}{`shoot at the red head of the bird'} \\
+\end{tabular}
+\nodeconnect{a}{b} \nodeconnect{e}{l}
+\nodeconnect{a}{c} \nodeconnect{d}{f}
+\nodeconnect{b}{d} \nodeconnect{g}{k}
+\nodeconnect{b}{j} \nodeconnect{f}{r}
+\nodeconnect{c}{p} \nodeconnect{r}{h}
+\nodeconnect{c}{i} \nodeconnect{r}{n}
+\nodeconnect{d}{e} \nodeconnect{f}{o}
+\nodeconnect{e}{g} \nodeconnect{h}{m}
+\nodeconnect{i}{q}
+\end{verbatim}
+ The following two examples use \verb+\outerfs+ and
+\verb+\modsmalltree+; these are both part of the lingmacros package.
+See \verb+lingmacros.sty+ for more information.
+ \enumsentence[(100)]{\evnup[2pt]
+{\outerfs{ Focus & \outerfs{subj & \outerfs{\ \nodepoint{a}\ }\\[1ex]
+ obl$_{th}$ & \outerfs{Pred & `Pro'\\
+ Refl & +}\\[1ex]
+ Pred & `proud$\langle(\uparrow {\rm subj})
+ (\uparrow {\rm obl}_{th})\rangle$'}\nodepoint{d}[-3pt][0pt]\\[2ex]
+ Subj & \outerfs{Pred & `Max'}\\[1ex]
+ Comp & \outerfs{Subj &\outerfs{Pred & `Larry'}\nodepoint{c}[-3pt][0pt]\\[1ex]
+ Xcomp&\outerfs{\ \nodepoint{b}\ }\\[1ex]
+ Pred & `be$\langle(\uparrow {\rm xcomp})
+ (\uparrow {\rm subj})\rangle$'}\\[1ex]
+ Pred & `think$\langle(\uparrow {\rm subj})
+ (\uparrow {\rm comp})\rangle$'}\\
+}
+\nodecurve[r]{a}[r]{c}{2in}[.5in]
+\anodecurve[r]{d}[r]{b}{1in}[2in]
+}
+\begin{verbatim}
+\enumsentence[(100)]{\evnup[2pt]
+{\outerfs{
+Focus & \outerfs{subj & \outerfs{\ \nodepoint{a}\ }\\[1ex]
+ obl$_{th}$ & \outerfs{Pred & `Pro'\\
+ Refl & +}\\[1ex]
+ Pred & `proud$\langle(\uparrow {\rm subj})
+ (\uparrow {\rm obl}_{th})\rangle$'}%
+\nodepoint{d}[-3pt][0pt]\\[2ex]
+Subj & \outerfs{Pred & `Max'}\\[1ex]
+Comp & \outerfs{Subj &\outerfs{Pred & `Larry'}%
+\nodepoint{c}[-3pt][0pt]\\[1ex]
+ Xcomp&\outerfs{\ \nodepoint{b}\ }\\[1ex]
+ Pred & `be$\langle(\uparrow {\rm xcomp})
+ (\uparrow {\rm subj})\rangle$'}\\[1ex]
+Pred & `think$\langle(\uparrow {\rm subj})
+ (\uparrow {\rm comp})\rangle$'}\\
+}
+\nodecurve[r]{a}[r]{c}{2in}[.5in]
+\anodecurve[r]{d}[r]{b}{1in}[2in]
+}
+\end{verbatim}
+\enumsentence{\modsmalltree{6}{
+ & & &\ns\node{a}{\begin{tabular}[t]{@{}c@{}}S\\
+ {}[+R]\end{tabular}} \\
+ &\node{b}{NP} & & & & \node{c}{VP} \\
+\node{d}{Det}& &\node{e}{N$^1$} \\
+\node{h}{the}&\node{i}{N} & & \node{f}{PP} &&\node{g}{are
+ totally false}\\
+ &\node{n}{rumors}&\node{j}{P} &&\ns\node{k}{\begin{tabular}[t]{@{}c@{}}NP\\
+ {}[+R] \end{tabular}}\\
+ & &\node{l}{about} &&\node{m}{whom}}
+\nodeconnect{a}{b}
+\nodeconnect{a}{c}
+\nodeconnect{b}{d}
+\nodeconnect{b}{e}
+\nodeconnect{d}{h}
+\nodeconnect{e}{i}
+\nodeconnect{e}{f}
+\nodeconnect{i}{n}
+\nodeconnect{f}{j}
+\nodeconnect{f}{k}
+\nodeconnect{j}{l}
+\nodeconnect{k}{m}
+\nodetriangle{c}{g}
+{\makedash{4pt}
+\anodecurve[t]{b}[l]{a}{10pt}
+\anodecurve[t]{e}[r]{b}{10pt}
+\anodecurve[t]{f}[r]{e}{10pt}
+\anodecurve[t]{k}[r]{f}{10pt}
+}}
+\begin{verbatim}
+\enumsentence{\modsmalltree{6}{
+ & & &\ns\node{a}{\begin{tabular}[t]{@{}c@{}}S\\
+ {}[+R]\end{tabular}} \\
+ &\node{b}{NP}
+ & & && \node{c}{VP} \\
+\node{d}{Det}
+ & &\node{e}{N$^1$} \\
+\node{h}{the}
+ &\node{i}{N}
+ & &\node{f}{PP}
+ &&\node{g}{are totally false}\\
+ &\node{n}{rumors}
+ &\node{j}{P}
+ & &\ns\node{k}{\begin{tabular}[t]{@{}c@{}}NP\\
+ {}[+R] \end{tabular}}\\
+ & &\node{l}{about}
+ & &\node{m}{whom}}
+\nodeconnect{a}{b} \nodeconnect{e}{f}
+\nodeconnect{a}{c} \nodeconnect{i}{n}
+\nodeconnect{b}{d} \nodeconnect{f}{j}
+\nodeconnect{b}{e} \nodeconnect{f}{k}
+\nodeconnect{d}{h} \nodeconnect{j}{l}
+\nodeconnect{e}{i} \nodeconnect{k}{m}
+\nodetriangle{c}{g}
+{\makedash{4pt}
+\anodecurve[t]{b}[l]{a}{10pt} \anodecurve[t]{f}[r]{e}{10pt}
+\anodecurve[t]{e}[r]{b}{10pt} \anodecurve[t]{k}[r]{f}{10pt}
+}}
+\end{verbatim}
+
+
+\section{Errors}
+
+A multitude of caveats.
+\begin{itemize}
+ \item Any commands calling nodes must be read while \TeX\ is still
+processing the page the nodes are defined on. In other words don't
+define the nodes on page 1 and connect them with commands that appear
+at the end of the paper.
+
+\item Nodes mentioned in node connecting commands must exist or else
+ the job won't print.
+
+\item Make sure the dvips postscript output is sent to a postscript
+printer. It is possible to send the dvi, but not the postscript,
+output to another printer; the lines just won't appear, assuming the
+printer ignores specials it doesn't know about.
+
+
+\end{itemize}
+
+
+\end{document}
+
+