diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /graphics/tree/README |
Initial commit
Diffstat (limited to 'graphics/tree/README')
-rw-r--r-- | graphics/tree/README | 271 |
1 files changed, 271 insertions, 0 deletions
diff --git a/graphics/tree/README b/graphics/tree/README new file mode 100644 index 0000000000..72c0d15265 --- /dev/null +++ b/graphics/tree/README @@ -0,0 +1,271 @@ + +Tree, a program for displaying trees. + + Greg Lee, lee@uhccux.uhcc.hawaii.edu, 7/90 + + + * * + Announcement + * ///////\\\\\\ * + / \ + * Tree Drawing Program * + \ / + * \\\\\\\////// * + Available + * * + +The above is from the following tree-definition: + + \tree -b9 +( +(*(*\O(*\O(*\O(*\O))))) + ((Announcement\O(Available\I\O (Tree Drawing()) (\ \ \ \ Program()) ) )) +(*(*\O(*\O(*\O(*\O))))) +) + + +The `tree' program formats trees for screen display or printing with +TeX. The program, supporting utilities, and accompanying documents are +free and in the public domain. If you distribute a modified version of +`tree', please keep your version in the public domain. + +At the University of Hawaii, the tree program is available on the +uhccux system in directory ~lingua/bin with source code and documents +in directory ~lee/src/Tree. And in the Linguistics Department, the +program is available on uhl2 in directory /usr/local/bin with source +code and documents in ~greg/Tree. + +The predecessor program to this was written by Chris Barker, the +Linguistics Board at University of California, Santa Cruz, email: +barker@ling.ucsc.edu. + +This version has been tested only on Unix: SunOS 3.5, Ultrix 3.1, and +SysV 3.50 (Unixpc). It requires the `lex' utility to compile, or else +`flex', which is the free version of Unix `lex' by Vern Pacson. The +Makefile is set up to use `flex'. To compile the source, type "make", +which will process the source code with flex then will invoke the C +compiler. This creates 3 programs: `tree', `tpar', and `unpar'. The +last two are minor utilities that you may not have any need for; they +are described below. Typing "make tex" compiles `mdoc' and uses that +and `tree' and `tpar' to create some .tex files with examples and +a document on the tree program. + +Basic usage for screen display is: "tree textfile", where the +textfile has some trees. After you've made the program, try displaying +the example files with: + + % tree sample + % tree texsample + +The texsample file is intended to illustrate printed output using TeX, +which you can get with the following (adapted for your local conventions +for using TeX and printing): + + % tree -t texsample > texsample.tex + % tex texsample + % lpr -d texsample.dvi + +And you can follow the similar procedure for the file sample. This +should get you printout of trees done with horizontal and vertical +lines. If you have a PostScript printer, the following may work to get +trees made with slanty lines: + + % tree -u texsample > texsample.tex + % tex texsample + % lpr -d texsample.dvi + +That is, everything the same, except use `-u' instead of `-t'. (`-t' is +for TeX; the only logic to the `-u' is that `u' comes after `t'.) If +this last doesn't work right, the most likely thing to have gone wrong +is that your local PostScript driver program does not treat TeX \special +commands, which I've used to embed PS code, in the same way that mine +does. If that's a problem, there are two things you can do about it. +(1) Find out what should be in a TeX \special to tell your driver to +just spit out literally into its output whatever it finds in a \special, +then modify the Makefile or the C code in the source tex.c accordingly +(see `SKEY' in the code), or (2) email me and I'll send you my PS driver +program (which is a modification of the free dvi2ps program from MIT). + +The Makefile also provides for "make tex" to create TeXable files +use.tex, sample.tex, texsample.tex, and ptsample.tex for a sort of user +manual and some sample output. If you can't get the `-u' option to +work, you can change the definition of UT in the Makefile to -t. + +Tree has some options for modifying or decorating trees in various ways. +Some of these can be used either for all the trees in a source text file +by giving the option on the command line after `tree', or for some +individual tree by giving the option after the `\tree' command within +the text file. For instance, if the text has + + \tree -t (S (Q (did) (V' (you go)))) + +then TeX code will be generated for this particular tree in the text, +but not necessarily for other trees in that text file. Here is another +example: + + % tree -L < filename + \tree -L (S(NP(N(features)))(V'(V(galore)))) + +The first Unix command will have `tree' omit all connecting lines under +nodes for all trees in the file `filename'. The second, as a line in a +text file processed by tree, will do that for just the one tree that +follows. There are other options that apply just to single nodes within +a tree, which are given as backslash plus some capital letter. As it +happens, in this instance there is an option \L for individual nodes, +also: + + \tree (S(NP(N\L(features)))(V'(\L V(galore)))) + +which omits lines under just the two nodes `N' and `V'. The second \L +in this example has to be separated by a space from the following V so +`tree' can tell that this is not a TeX command with the name `LV'. (If +it happens that you need to use a TeX command with the name `L' in a +node, you could use \\L for this, but it is necessary to use \\ for +TeX commands only in such cases of conflict.) + +Here is a reference list of the options or commands for formatting +individual nodes. (See the man page and the "use" document for more +info.) In this list, `<d>' is an optional single digit argument, and +`<n>' is an obligatory non-negative integer argument. + + Command: Option: Function: + + \D<d> "daughter" label discontinuous daughter + \E "even" -E select basis for flatten command + \F "flatten" -F move nodes to lowest level + \H "head" center mother over this daughter + \I "invert" -I turn tree upside down + \L "lexical" -L don't put lines under nodes + \M<d> "mother" label mother of discontinuous daughter + \O "omit" -O omit line above nodes + \P "phantom" as "omit" but retain spacing + \T "triangle" -T put triangles under nodes + \R "relational" -R put aligned verticals at right of nodes + \B<d> "boldness" -b<n> do shaded triangles or bold lines (see below) + -g<n> use n as the minimal gap between nodes + -v don't suppress TeX commands on screen + -q suppress warnings + +All commands of the form backslash plus capital letter `tree' assumes +are intended for it, and it eats them up without comment, even though +in most cases they don't do anything. + +The option `-b<n>' has different effects depending on output is +tty-style or TeX code. The sample files have examples for the latter. +For tty output, here is a series of trees showing how the connecting +"lines" can be varied. These are from the tree definition: + + \tree (bold =<n>(family\T(Martha Henry))(uncle)(aunt)(kin(Fred)(Milly\H))) + +with values from 0 through 9 for <n> and with option `-b<n>': + + bold =0 + ____________|____________ + | | | | + family uncle aunt kin + _____|______ _______| + |__________| | | + Martha Henry Fred Milly + bold =1 + +-----------+-----------+ + | | | | + family uncle aunt kin + +----+-----+ -------| + |----------| | | + Martha Henry Fred Milly + bold =2 + ...........:........... + : : : : + family uncle aunt kin + ....:..... .......: + :::::::::::: : : + Martha Henry Fred Milly + bold =3 + ||||||||||||||||||||||||| + | | | | + family uncle aunt kin + |||||||||||| |||||||| + |||||||||||| | | + Martha Henry Fred Milly + bold =4 + ::::::::::::::::::::::::: + : : : : + family uncle aunt kin + :::::::::::: :::::::: + :::::::::::: : : + Martha Henry Fred Milly + bold =5 + ........../ \.......... + / : : \ + family uncle aunt kin + ..../\.... .......: + :::::::::::: / * + Martha Henry Fred Milly + bold =6 + __________/ \__________ + / | | \ + family uncle aunt kin + ____/\____ _______| + |||||||||||| / * + Martha Henry Fred Milly + bold =7 + <<<<<<<<<<< >>>>>>>>>>> + / | | \ + family uncle aunt kin + <<<<<>>>>> <<<<<<<| + |----------| / * + Martha Henry Fred Milly + bold =8 + ////////////\\\\\\\\\\\ + / | | \ + family uncle aunt kin + /////\\\\\ ///////| + |||||||||||| / * + Martha Henry Fred Milly + bold =9 + ////////////\\\\\\\\\\\ + / | | \ + family uncle aunt kin + /////\\\\\ ///////| + |**********| / * + Martha Henry Fred Milly + +The \B<d> command selects the different styles on a node-by-node +basis, affecting the lines just below the node with the command. +\B without argument is the same as \B9. + +The utilities `tpar' and `unpar' are for trees using indentation +for indicating structure rather than parenthesization. For instance, +feed this to `tpar': + + \tree + S + NP + Det\L - the + N - rain + VP - V - falls + +to get back a parenthesized version that you can give to `tree': + + \tree + (S + (NP + (Det\L(the)) + (N(rain))) + (VP(V(falls)))) + +With the option `-v', `tpar' will put some ending parens on new lines, +and with the option `-t' it will turn bracketed digits and i,j,k,x,y,z +into the TeX code for subscripting the digit or letter, and also +translate N',A',V',P' into TeX code for putting bars over the letters. +The `unpar' utility translates the other way, substituting indentation +for parenthesization and, with the `-t' option, going back to the +bracket and prime notation from the TeX code. The file tpsample has +example trees in indented form. + +Bug reports and suggestions for changes are welcome. + +Greg Lee +U.S.mail: 562 Moore Hall, Dept. of Linguistics, Univ. of Hawaii, HONO, HI 96822 +INTERNET: lee@uhccux.uhcc.hawaii.edu +BITNET: lee@uhccux |