diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/qobitree/readme')
-rw-r--r-- | Master/texmf-dist/doc/latex/qobitree/readme | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/qobitree/readme b/Master/texmf-dist/doc/latex/qobitree/readme new file mode 100644 index 00000000000..f96298c1458 --- /dev/null +++ b/Master/texmf-dist/doc/latex/qobitree/readme @@ -0,0 +1,92 @@ +While writing my PhD thesis, I put together some useful LaTeX macros for +typesetting trees. I thought that they would be of general interest so I am +making them available. I gave an earlier version of these macros to Phil +Resnik a few months ago. These new macros are much easier to use and produce +much nicer output. For arcane reasons, the new macros, however, use a +different calling sequence. To use the new package get the file +~qobi/tex/QobiTree/QobiTree.tex from unagi and put in wherever you put your TeX +macros. Put the line: + +\input{QobiTree} + +somewhere at the beginning of your LaTeX file. The tree macros operate like a +stack machine. You push TeX boxes onto the stack containing text for the nodes +of the tree and then you pop them off the make branching nodes which get +pushed back on the stack. The following commands are supported: + +\leaf{<text>} + +Pushes a node onto the stack containing <text>. The <text> can contain +`\\' commands to create a node with more than one line. For example: + +\leaf{NP\\{\em John}} + +creates a two line node with NP (in roman) on top of John (in italics). +You can put any TeX box inside a leaf node, including math mode, LaTeX +picture environments, tables, embedded postscript, and other trees. +QobiTree automatically figures out how big the node is and sizes the tree and +its branches accordingly. + +The command: + +\branch{n}{<text>} + +pops n nodes off the stack and creates a branching node with n children and +pushes it back on the stack. The first node popped off becomes the rightmost +child and the last node popped off becomes the leftmost child. n must be an +integer between 1 and 5. (It is possible to extend QobiTree to handle trees of +greater branching factor. See me if you need to.) The branching node created +is given <text> as its label. Again <text> can have `\\' commands and can be +any TeX box. For example: + +\leaf{NP\\{\em John}} +\leaf{V\\{\em saw}} +\leaf{NP\\{\em Mary}} +\branch{2}{VP\\{em saw Mary}} +\branch{2}{S\\{\em John saw Mary}} + +creates a simple binary branching tree. + +The \leaf and \branch command don't generate any typeset output. They just +push trees onto the stack. The output is generated with the following command: + +\tree + +which pops one node off the stack and typesets it as a single box. Usually you +would center this box as in: + +\leaf{NP\\{\em John}} +\leaf{V\\{\em saw}} +\leaf{NP\\{\em Mary}} +\branch{2}{VP\\{em saw Mary}} +\branch{2}{S\\{\em John saw Mary}} +\begin{center} +\tree +\end{center} + +but it is also possible to put a tree in a sentence, in a table, in a math +mode formula, in a picture environment, or in another tree. +The file ~qobi/tex/QobiTree/examples.tex contains some examples taken +from my thesis. + +Most of the time, QobiTree does a good job of figuring out how to space the +children of a tree. It never mistakingly overlaps children. Unlike the earlier +version of the tree macros I gave Phil, it is usually able to space the tree +better without inordinate growth in deep trees. Sometimes however, you can +give it some help to produce even better looking output. The command: + +\faketreewidth{<text>} + +tells QobiTree to override its default calculation of the width of the node on +the top of the stack and replace it with the width of <text> (which again can +have `\\' commands etc.) <text> is not actually typeset but is used just to +compute the fake width of the node on the top of the stack. When you use +\faketreewidth you are on your own. This can either shrink or enlarge the +space taken by the node and may result in trees with overlapping children. +Usually a few tries with xdvi and you can adjust the tree widths to produce +the desired output. See ~qobi/tex/QobiTree/examples.tex for some +examples using \faketreewidth. + +I hope that people find these macros useful. Feel free to pass them on to +whoever wants them. + Jeff |