Attribute-value matrices are a practical way to present feature structures as a group of attributes and their corresponding values. It is possible to typeset tribute-value matrices (AVMs) with LaTeX by means of the package avm. This article explains its main features.
Contents |
To create an attribute-value matrix is simple, it should be typeset inside the avm
environment.
\documentclass{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{avm} \begin{document} \begin{avm} \[ cat\|subcat & \<NP$_{it}$, NP$_{\@2}$, S[comp]:\@3\> \\ content & \[ relation & \bf bother\\ bothered & \@2 \\ soa-arg & \@3 \] \] \end{avm} \end{document}
The AVM package is not part of ShareLaTeX by now, but it can still be easily imported by uploading it to the root directory.
Once the package is in place, it must be imported into the main file with
\usepakcage{avm}
This will make available the environment avm
which should contain the attribute-value matrix itself. The syntax to typeset a matrix is very similar to that of an array or a tabular environment. More details and examples are presented in the subsequent sections.
Open an example of the avm package in ShareLaTeX
To typeset an attribute-value matrix inside an avm
environment there are four special commands to have in mind:
\documentclass{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{avm} \avmfont{\sc} \begin{document} \begin{avm} \[ subj & \[ pers & 3 \\ num & sg \\ gend & masc\\ pred & \rm ‘pro’ \]\\ pred & \rm ‘eat\q<SUBJ, OBJ\q>’\\ obj & \[ pers & 3 \\ num & pl \\ gend & fem \\ pred & \rm ‘pro’ \] \] \end{avm} \end{document}
We have the commands:
\avmfont{\sc}
\begin{avm}
and \end{avm}
\[
and \]
\<
, \>
, \{
and \}
\\
&
Open an example of the avm package in ShareLaTeX
Sometimes, when a row is too long, it may be convenient to use unaligned columns for a better output.
\begin{avm} \[ \avmspan{system\|local\|content\; \@2} \\ qstore & \[det & \textnormal{forall} \\ restpar & \@2 \[para & \@1 \\ restr & \[reln & \textnormal{book} \\ inst & \@1 \] \] \] \] \end{avm}
The command \avmspan{}
prevents column alignment for its argument whilst the command \;
inserts a horizontal blank space slightly longer than normal, creating a nice separator.
Open an example of the avm package in ShareLaTeX
It is possible to add sort labels at the corners of a AVM. There are two possible styles. The first one is printing the labels inside the matrix.
\avmsortfont{\it} \avmvalfont{\it} \begin{avm} \[ \asort{indexed-obj} index & \[\asort{index} variable & \@1 \[\asort{variable} per & 3rd \\ num & sing \\ gend & neut \] \\ restriction & \[\asort{psoa} relation & book \\ instance & \@1 \] \] \] \end{avm}
There are three new commands in this example:
\avmsortfont{\it}
\avmvalfont{\it}
\asort{}
It's also possible to overlap the sort label onto the previous column.
\avmvalfont{\it} \avmsortfont{\it} \begin{center} \begin{avm} \sort{indexed-obj}{\[ index & \osort{index}{\[ variable & \@1 \osort{variable}{\[ per & 3rd \\ num & sing \\ gend & neut \]} \\ restriction & \osort{psoa}{\[relation & book \\ instance & \@1 \]} \]} \]} \end{avm}
There are two new commands:
\sort{}
\osort{}
Open an example of the avm package in ShareLaTeX
Available brackets in the avm package.
Command | Output |
---|---|
\{ \} |
![]() |
\[ \] |
![]() |
\< \> |
![]() |
For more information see