summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/qobitree/readme
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/qobitree/readme')
-rw-r--r--Master/texmf-dist/doc/latex/qobitree/readme92
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