From 8cb156bb991f25949dbb5dd83a06cfc81fa417bd Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 4 Jul 2010 23:06:08 +0000 Subject: new latex package drs (3jul10) git-svn-id: svn://tug.org/texlive/trunk@19232 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/drs/README | 13 ++ Master/texmf-dist/doc/latex/drs/drsdoc.pdf | Bin 0 -> 102882 bytes Master/texmf-dist/doc/latex/drs/drsdoc.tex | 236 +++++++++++++++++++++++++++++ 3 files changed, 249 insertions(+) create mode 100644 Master/texmf-dist/doc/latex/drs/README create mode 100644 Master/texmf-dist/doc/latex/drs/drsdoc.pdf create mode 100644 Master/texmf-dist/doc/latex/drs/drsdoc.tex (limited to 'Master/texmf-dist/doc/latex/drs') diff --git a/Master/texmf-dist/doc/latex/drs/README b/Master/texmf-dist/doc/latex/drs/README new file mode 100644 index 00000000000..8f36d385ffc --- /dev/null +++ b/Master/texmf-dist/doc/latex/drs/README @@ -0,0 +1,13 @@ +The package drs.sty draws Discourse Representation Structures (DRSs). It can draw +embedded DRSs, if-then conditions and quantificational “duplex conditions” (with +a properly scaled connecting diamond). Formatting parameters allow the user to +control the appearance and placement of DRSs, and of DRS variables and conditions. + +Author: Alexis Dimitriadis + +The package may be distributed and/or modified unter the conditions of the +LaTeX Project Public License, either version 1.3 of this license or (at your option) +any later version. + +The latest version of the LaTeX Project Public License can be found at this URL: +http://www.latex-project.org/lppl.txt diff --git a/Master/texmf-dist/doc/latex/drs/drsdoc.pdf b/Master/texmf-dist/doc/latex/drs/drsdoc.pdf new file mode 100644 index 00000000000..fa6abe25973 Binary files /dev/null and b/Master/texmf-dist/doc/latex/drs/drsdoc.pdf differ diff --git a/Master/texmf-dist/doc/latex/drs/drsdoc.tex b/Master/texmf-dist/doc/latex/drs/drsdoc.tex new file mode 100644 index 00000000000..22583599088 --- /dev/null +++ b/Master/texmf-dist/doc/latex/drs/drsdoc.tex @@ -0,0 +1,236 @@ +\documentclass[11pt]{article} + +% 10 Jun 2010: Added memoir/array compatibility, switched to pict2e, changed some flags. +% Updated documentation to describe the new features. + +% 17 Feb 2004: Corrected some typos in documentation + +\usepackage{drs,pict2e} +\usepackage{times} + +\chardef\BS=`\\ % It only works in \tt font + +\def\ctt#1{{\texttt{\BS #1}}} % \ctt command --> \command (in tt) +\def\citem[#1 #2]{\item[\ctt{#1}{\textsl{#2}}]} % header of command plus argument + +\advance\textheight by 0.7in +\advance\textwidth by 0.8 in +\advance\oddsidemargin by -0.4in +\topmargin=-0.3in + +\begin{document} + +\begin{center} +{\bfseries Drs.sty, a \LaTeX\ package for Discourse Representation Structures} +\\[6pt] +Alexis Dimitriadis \\[6pt] +Version 1.1\\[6pt] +June 10, 2010 \\[1.5ex] +\end{center} + +\noindent +This package draws Discourse Representation Structures (DRSs). It can draw +embedded DRSs, if-then conditions and quantificational ``duplex conditions'' +(with a properly scaled connecting diamond). Formatting parameters allow the +user to control the appearance and placement of DRSs, and of DRS variables and +conditions. + +You should use this package together with \emph{pict2e.sty,} which allows better diagonal lines to be drawn. It is not automatically loaded by \emph{drs.sty,} but will be utilized if it you do load it. + +\section{History} + +This package is derived from the DRS macros in the style \emph{covington.sty,} +written by Michael A. Covington. I am grateful to him for allowing +modification and redistribution of his code. The present style retains the +basic design (command syntax, use of the \verb|tabular| environment to +construct the DRSs) and is intended to be backward compatible. It +adds commands for duplex conditions and logical connectives, formatting +options, better spacing, and an absurdly elaborate algorithm for calculating +the size of the diamond used in duplex conditions. + +Please direct suggestions, bug reports, or other comments to Alexis +Dimitriadis, \emph{a.dimitriadis} \emph{@uu.nl.} +As usual, +I cannot promise this package will do what you want it to, but I will +try to help if there is a problem. + + +\section{Box-building commands} +These commands can be embedded in each other as desired. + +\begin{description} +\citem [drs \{variables\}\{conditions\}]~ + + Typesets a DRS in a box according to the formatting options in +effect (see below). Conditions should be separated by \verb|\\|. If the +variables argument is completely empty (given as \verb|{}|), no space is +provided for variables at the top of the box. To leave an empty line, give a +space as the list of variables (\verb|{ }| or \verb|{~}|). + +\begin{verbatim} +\drs{x y}{Jones(x) \\ Ulysses(y) \\ x owns y} +\end{verbatim} +\drs{x y}{Jones(x) \\ Ulysses(y) \\ x owns y} + +\newpage +\citem[drs* \{variables\}\{conditions\}]~ + +Top-level DRSs are positioned on the page according to a number of formatting +parameters (see next section). To generate a DRS without the extra spacing, +define it using \verb|\drs*| rather than \verb|\drs|. + +\citem[ifdrs \{lvar\}\{lcond\}\{rvar\}\{rcond\}] + +Forms two DRSs joined by an arrow. This command is just a special case of \verb|\condrs|. + +\begin{verbatim} +\drs{x}{Jones(x) \\ + \ifdrs{y}{donkey(y)\\x owns y} + {z w}{z = x\\ w = y\\ z feeds w}} +\end{verbatim} + +\drs{x}{Jones(x) \\ + \ifdrs{y}{donkey(y)\\x owns y} {z w}{z = x\\ w = y\\ z feeds w}} +%If Jones owns a donkey, he feeds it. + +\citem[condrs \{lvar\}\{lcond\}\{connective\}\{rvar\}\{rcond\}]~ + +Connects two DRSs with the middle argument, presumably a logical connective +like \verb|$\vee$| or \verb|$\wedge$|. (You must manually switch to math mode +if it's needed). This is provided as a separate +command because the spacing needs certain adjustments. The connective is always put in size \verb|\large|, which is appropriate for normal-sized text. If the text of your DRS is in a different size, manually resize the connective to be one step larger; for example, +\verb|{\LARGE $\vee$}| if the DRS text is \verb|\Large|. + +\citem[qdrs \{lvar\}\{lcond\}\{quantifier\}\{qvar\}\{rvar\}\{rcond\}]~\par + +Forms a duplex condition. The arguments \emph{quantifier} and \emph{qvar} are +placed in the diamond connecting the left and right DRSs, which is sized to +fit them. The \emph{quantifier} argument may contain newlines (\verb|\\|), if necessary. + +\begin{verbatim} +\drs{X}{ the lawyers(X) \\ + \qdrs{x}{x $\in$ X} + {every}{x} + {y}{secretary(y) \\ x hired y}} +\end{verbatim} +\drs{X}{ the lawyers(X) \\ + \qdrs{x}{x $\in$ X} {every}{x} {y}{secretary(y) \\ x hired y}} + +\citem[negdrs \{variables\}\{conditions\}]~ + +Produces a DRS preceded by the negation symbol. + +\citem[drsdiamond \{quantifier\}\{variable\}] ~ + +Produces the +automatically scaling diamond used by \verb|\qdrs|. Perhaps it is useful to call it +directly for specialized uses. An absurdly fancy scaling algorithm +draws a diamond of the right size and places the text at the right height. +The algorithm is optimized for cases where the variable is narrower than the +quantifier text, but works well for a variety of shapes, including multi-line +quantifier names (use {\tt \BS\BS} to break lines, as in: {\tt +at~least\BS\BS one}). If it does the wrong thing +for you, try padding the text with non-breaking spaces (\verb|~|). + +\end{description} + +\noindent +For compatibility with the \emph{covington.sty} macros, the following commands +are also supported: + +\begin{description} +\citem[sdrs \{sentence\}\{variables\}\{conditions\}] ~ + +Just like \verb|\drs|, but +the first argument is a sentence to be displayed above the DRS. + +\citem[alifdrs \{lvar\}\{lcond\}\{rvar\}\{rcond\}]~ + +Just like \verb|\ifdrs|, but shifted to the left so that the conditions in it, +if left-adjusted, will line up with unembedded DRS conditions. + +\end{description} + +\section{Formatting parameters} + +The following commands may be redefined to control the appearance of the DRS +boxes. + +\begin{description} + +\citem[drscondfont ] The font used for the DRS conditions. Default: +\verb|\rm|. If necessary, it can be redefined to a macro that takes an argument, e.g.: + + \verb|\renewcommand\drscondfont[1]{\emph{#1}}| + + The font properties selected with this macro (e.g., italics) will also apply to the DRS variables, except as overridden by \verb|\drsvarfont|. + +\citem[drsvarfont ] Additional font settings used for the DRS variables. This macro modifies the font style already in effect from \verb|\drscondfont|. Default: + \verb|\it|. If necessary, it can be redefined to a macro that takes an argument. + +\citem[drsseparator ] The separator between variables and conditions. By +default it is \verb|\hline|, but can be redefined to suppress the line (or to draw +other line styles, if appropriate). To suppress the line, put the following +in the preamble of your document: + +\verb|\renewcommand\drsseparator{\relax}| + +\citem[drsalignment ] Alignment of the contents of the DRS, in the form of a +\{tabular\} alignment parameter. The default is {\tt c} (centered) but can be +changed to {\tt l} (or even {\tt r} if you wish). + +\citem[drsboxalignh ] Horizontal alignment of the top-level DRS box in the surrounding text. +You can ask for left-aligned ({\tt l}) or centered boxes. The default is {\tt c.} + +\citem[drsboxalignv ] Vertical alignment of the top-level DRS box with the +baseline of the text. The default is {\tt c} (centered on the baseline); {\tt t} and +{\tt b} are also available. Embedded DRS boxes are always centered on the +baseline. + +\citem[drsarraystretch ] This parameter gives the value of +\verb|\arraystretch| used when making DRS boxes. Undefined by default, which +is equivalent to the value~\emph{1.0.} You can change it to other numbers (without a dimension) to stretch or compress linespacing. + +\citem[drslinewidth ] The thickness of the lines used to draw the DRS boxes. The default is the current value of \verb|\arrayrulewidth| (which controls the width of table borders), normally 0.4pt. If you redefine this you should definitely load the package \emph{pict2e.sty} (recommended anyway), which will allow LaTeX to set the diagonal lines of the quantifier diamond to the same thickness. + +\end{description} + + +\subsection{Compatibility with \emph{covington.sty}} + +Although this package should accept DRSs written for the \emph{covington.sty} +macros, the appearance of the output is not the same by default. To match +that style, specify the following formatting parameters: + +\begin{itemize} +\item[] +\begin{verbatim} +\renewcommand\drscondfont{\it} +\renewcommand\drsalignment{l} +\renewcommand\drsboxalignh{l} +\end{verbatim} +\end{itemize} + + +\section{Other packages} + +I recommend that you use \emph{drs.sty} in conjunction with \emph{pict2e.sty,} +which improves \LaTeX's picture drawing capabilities. Your DRS diamonds will look a lot +better if you do. \emph{Drs.sty} is also compatible with \emph{eepic.sty,} which has similar +function but only works for DVI output (with PostScript enhancements). \emph{Drs.sty} will not +automatically load either package, but will take advantage of their capabilities if one is loaded. + +I have tried to make \emph{drs.sty} work well with doublespacing. Because of +shortcomings of the doublespacing macros, the boxes might still be placed +too close to each other. Perhaps some day this will be corrected in future versions +of \emph{setspace.sty} (but I requested the fix years ago, so don't hold your breath). Until then, I have provided a work-around which you +can use if you are using \emph{setspace.sty.} Place the command +\verb|\drshacksetspace| in your document preamble, somewhere after both packages +have been included, to redefine certain \emph{setspace} internals so that +boxes can be properly spaced. This is turned off by default since it +is a hack and might cause unexpected problems. + +Starting with version 1.1, \emph{drs.sty} is compatible with \emph{memoir.cls} and the reimplementation of the \emph{tabular} and \emph{array} environments used by \emph{memoir} and \emph{array.sty.} However, the extra column types these provide cannot be used with \emph{drs} commands. Only {\tt c, l} and {\tt r} are accepted. + +\end{document} + -- cgit v1.2.3