diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-09 00:49:07 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-09 00:49:07 +0000 |
commit | 007f67a693e4d031fd3d792df8e4d5f43e2cb2e7 (patch) | |
tree | 90d17e00e572ecb1e24764b6f29c80e098b08d29 /Master/texmf-dist/doc/latex/tree-dvips | |
parent | 950209b26f70aa87ed07c54f82a95b6f03b7c3a0 (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.tex | 139 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/tree-dvips/tree-manual.tex | 409 |
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 ¬} + +\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 ¬} + +\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} + + |