
One small problem is that logical symbols and formulae generally require maths mode, where every letter is treated as a separate mathematical symbol. This is not a problem for logicians, who mostly use single letters for predicate names, e.g. P(x) but linguistics often need words, as in (1), and this can look clumsy unless special care is taken.
For example, giving (2) as the
characteristic function of the set of things that are different from
Sam does not look very good, because the spacing (or rather, lack of
ligature) between the fs. The solution is to use one of the maths
type styles, e.g. \mathit
. Compare (3):
If this looks like a lot of typing, the obvious thing is to define commands:
\newcommand{\different}{\mathit{Different\_from}} \newcommand{\Sam} {\mathit{Sam}}
Other than this, there are very few problems. However, two `problems' I do know about are:
Before I go through these, here are a two other commands I find
generally useful: \setof
for putting curly brackets round
elements of a set, and \tuple
for putting angle brackets around
a tuple:
They are defined simply enough to work both inside and outside maths mode, by:
\newcommand{\setof}[1]{\ensuremath{\left \{ #1 \right \}}} \newcommand{\tuple}[1]{\ensuremath{\left \langle #1 \right \rangle }}
Here for reference are most the symbols that are generally needed:
The Greek letters mostly go by their usual names, e.g.
To get the following, you need to load the latexsym
package:
Basic LaTeX does not provide a command for the `semantic evaluation/denotation' function:
However, it is provided by the stmaryrd
package; alternatively,
it is easy to `roll your own'
James A. Crippen
james@unlambda.com points out that the `semantic evaluation' brackets are part of
the stmaryrd
"St. Mary's Road" symbol font. To get them, put
\usepackage{stmaryrd}
in the preamble:
In this package, the brackets are known as
\llbracket
and \rrbracket
. For example:
\llbracket (MN)\rrbracket^{\mathcal{M}}
produces:
For the evaluation function itself, one can define an appropriate macro:
\newcommand{\evaluation}[2][]{\ensuremath{\llbracket #2\rrbracket^{#1}}}This takes two arguments, the first optional, puts the second inside the evaluation function, and superscripts the other outside. This makes typing the above much simpler, just put:
\evaluation[\mathcal{M}]{(MN)}
It is easy enough to roll your own definition.
\newcommand{\sem}[2][M\!,g]{\mbox{ $[\![ #2 ]\!]^{#1}$}}
Some examples:
The purpose of the \!
in the definition is to bring the square brackets
close together so they look like one character.
This looks good with small objects, if you want larger ones it is probably better to make them using something like:
\left [\!\!\left [ ... \right ]\!\!\right ]^{M,g}
Formally, a DRS is a pair <U,C>, with U a `universe' (set of discourse
variables), and C as set of conditions. So it is naturally to think a
command \Drs
should have two arguments.
\newcommand{\Drs}[2]{ ... #1 ... #2 ... }
Graphically/pictorially, DRSs are boxes, with a line separating the `universe' from the conditions. One of the easiest ways to draw a box in LaTeX is as a tabular or array environment. Since DRSs are may often contain logical symbols, and for typographical consistency with other logical expressions (which will be set in maths mode), we may as well use an array and maths mode:^{1}
\( \begin{array}{c} \hline Universe \\ \hline Conditions\\ \hline \end{array} \)
There can be a lot of discourse variables, and conditions, and you probably want them centered, one simple way of doing this is to put them in array (or tabular) environments.
\newcommand{\Drs}[2]{%%%%%%%%%%%%%%%%%%%%%%%%% \( % begin maths mode \begin{array}{c} % \hline % top line \begin{array}{c} % #1 % `Universe' \end{array} \\ % end the `universe' part \hline % line between Universe and Conditions \begin{array}{c} % #2 % the conditions \end{array} \\ % end the conditions part \hline % bottom line \end{array} % \) % end maths mode }%%%%%%%%%%%%%%%%%%%%%%%%%
Now, we can say:
\Drs{u,v}{ \mathit{man}(u) \\ \mathit{unicorn}(u) \\ \mathit{seeks}(u,v) \\ }
to produce:
In their book [Kamp and Reyle(1993)], Kamp and Reyle draw DRSs like the following:
There is no easy way to make the `diamond' shape containing `every' in
ordinary LaTeX. However, it is easy using the pstricks
package. The \psframebox
command draws a frame around its
argument, the \psdiabox
draws a diamond round its argument. The
contents on the DRSs can be set in tabular environments (or arrays,
but Kamp and Reyle's are set in ordinary Roman text). Here is one way
to obtain the previous picture:
\usepackage{pstricks} \psframebox{ \psframebox{ \begin{tabular}{c} x y\\ farmer(x)\\ donkey(y)\\ x owns y \end{tabular} } \psdiabox{ \begin{tabular}{c} every\\x \end{tabular} } \psframebox{ \begin{tabular}{c} u\\ u = y\\ x beats u \end{tabular} } }
The size of the diamond can be reduced by giving an optional argument:
\psdiabox[framesep=3pt]{ .... }
See [Goossens et al.(1997)] (Ch4, circa page 107) for more information.