summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/gb4e
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/gb4e
Initial commit
Diffstat (limited to 'macros/latex/contrib/gb4e')
-rw-r--r--macros/latex/contrib/gb4e/README11
-rw-r--r--macros/latex/contrib/gb4e/cgloss4e.sty168
-rw-r--r--macros/latex/contrib/gb4e/gb4e-doc.pdfbin0 -> 166149 bytes
-rw-r--r--macros/latex/contrib/gb4e/gb4e-doc.tex449
-rw-r--r--macros/latex/contrib/gb4e/gb4e.sty385
5 files changed, 1013 insertions, 0 deletions
diff --git a/macros/latex/contrib/gb4e/README b/macros/latex/contrib/gb4e/README
new file mode 100644
index 0000000000..f3061b1691
--- /dev/null
+++ b/macros/latex/contrib/gb4e/README
@@ -0,0 +1,11 @@
+The style file gb4e provides an environment for linguistic examples, a command
+for glossed sentences, and a grab-bag of various other goodies.
+
+Authors: Hans-Peter Kolb and Craig Thiersch (c_thiersch@alum.mit.edu)
+
+The code was developed from the midnight and covington packages. It may be
+distributed and/or modified unter the conditions of the LaTeX Project Public
+License, either version 1.2 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/macros/latex/contrib/gb4e/cgloss4e.sty b/macros/latex/contrib/gb4e/cgloss4e.sty
new file mode 100644
index 0000000000..b066dbd993
--- /dev/null
+++ b/macros/latex/contrib/gb4e/cgloss4e.sty
@@ -0,0 +1,168 @@
+% -*- LaTeX -*-
+% Following borrows from Covington's style files inspired by Midnight by M.
+% van der Goot, adapted to be used with gb4e.sty: examples beginning with \ex can
+% contain glosses directly. Default is
+% Linguistic Inquiry style with all lines in \rm; to change a line (eg. to
+% \it for a particular journal, change the appropriate line: e.g.,
+% \let\eachwordone=\rm in a copy of this file. Note that it will NOT work
+% to put \it before the line as the words are parsed separately.
+
+% Use \singlegloss to force single-spaced glosses even in double-space
+% environments. Works also in footnotes (^M as delimiter replaced by
+% \\)---hpk
+%
+%%%
+%%% Sentences with word-by-word glosses
+%%%
+
+% See covingtn.tex for full documentation. Some examples:
+%
+% Displayed sentence with gloss and translation:
+%
+% \gll Dit is een Nederlands voorbeeld.\\
+% This is a Dutch example.\\
+% \glt `This is an example in Dutch.'
+%
+% Same, using bracketing where words do not correspond one-to-one:
+%
+% \gll Dit is een voorbeeldje in het Nederlands.\\
+% This is a {little example} in {} Dutch.\\
+% \glt `This is a little example in Dutch.'
+%
+% If you want to align 3 lines rather than two, use \glll instead of \gll.
+%
+% Layout is critical between \gll (or \glll) and \glt (or \gln).
+%
+% Thanks to Marcel R. van der Goot for permission to reproduce code.
+\let\@gsingle=1
+\def\singlegloss{\let\@gsingle=1}
+\def\nosinglegloss{\let\@gsingle=0}
+\@ifundefined{new@fontshape}%
+ {\def\@selfnt{\ifx\@currsize\normalsize\@normalsize\else\@currsize\fi}}
+ {\def\@selfnt{\selectfont}}
+
+\def\gll% % Introduces 2-line text-and-gloss.
+ {\begin{flushleft}
+ \ifx\@gsingle1% conditionally force single spacing (hpk/MC)
+ \vskip\baselineskip\def\baselinestretch{1}%
+ \@selfnt\vskip-\baselineskip\fi%
+ \bgroup
+ \twosent
+ }
+
+\def\glll% % Introduces 3-line text-and-gloss.
+ {\begin{flushleft}
+ \ifx\@gsingle1% conditionally force single spacing (hpk/MC)
+ \vskip\baselineskip\def\baselinestretch{1}%
+ \@selfnt\vskip-\baselineskip\fi%
+ \bgroup
+ \threesent
+ }
+
+\def\glt{\vskip.17\baselineskip}
+% Introduces a translation
+\let\trans\glt
+
+\def\glend{} % obsolete
+ % Ends the gloss environment.
+
+% The following TeX code is adapted, with permission, from:
+% gloss.tex: Macros for vertically aligning words in consecutive sentences.
+% Version: 1.0 release: 26 November 1990
+% Copyright (c) 1991 Marcel R. van der Goot (marcel@cs.caltech.edu).
+% Original Midnight/gloss.tex and Midnight/gloss.doc are available from
+% csvax.cs.caltech.edu [131.215.131.131] in pub/tex
+% and many other anonymous ftp archives.
+
+\newbox\lineone% boxes with words from first line
+\newbox\linetwo%
+\newbox\linethree%
+\newbox\wordone% a word from the first line (hbox)
+\newbox\wordtwo%
+\newbox\wordthree%
+\newbox\gline% the constructed double line (hbox)
+\newskip\glossglue% extra glue between glossed pairs or triples
+\glossglue = 0pt plus 2pt minus 1pt % allow stretch/shrink between words
+%\glossglue = 5pt plus 2pt minus 1pt % allow stretch/shrink between words
+\newif\ifnotdone
+
+% For any REALLY old distributions without \rmfamily
+\@ifundefined{rmfamily}{\let\rmfamily=\rm}
+
+\@ifundefined{eachwordone}{\let\eachwordone=\rmfamily}{\relax}
+\@ifundefined{eachwordtwo}{\let\eachwordtwo=\rmfamily}{\relax}
+\@ifundefined{eachwordthree}{\let\eachwordthree=\rmfamily}{\relax}
+
+\def\lastword#1#2#3% #1 = \each, #2 = line box, #3 = word box
+ {\setbox#2=\vbox{\unvbox#2%
+ \global\setbox#3=\lastbox%
+ }%
+ \ifvoid#3\global\setbox#3=\hbox{#1\strut{} }\fi
+ % extra space following \strut in case #1 needs a space
+ }
+
+\def\testdone
+ {\ifdim\ht\lineone=0pt
+ \ifdim\ht\linetwo=0pt \notdonefalse % tricky space after pt
+ \else\notdonetrue
+ \fi
+ \else\notdonetrue
+ \fi
+ }
+
+\gdef\getwords(#1,#2)#3 #4\\% #1=linebox, #2=\each, #3=1st word, #4=remainder
+ {\setbox#1=\vbox{\hbox{#2{\strut#3} }% adds space
+ \unvbox#1%
+ }%
+ \def\more{#4}%
+ \ifx\more\empty\let\more=\donewords
+ \else\let\more=\getwords
+ \fi
+ \more(#1,#2)#4\\%
+ }
+
+\gdef\donewords(#1,#2)\\{}%
+
+\gdef\twosent#1\\ #2\\{% #1 = first line, #2 = second line
+ \getwords(\lineone,\eachwordone)#1 \\%
+ \getwords(\linetwo,\eachwordtwo)#2 \\%
+ \loop\lastword{\eachwordone}{\lineone}{\wordone}%
+ \lastword{\eachwordtwo}{\linetwo}{\wordtwo}%
+ \global\setbox\gline=\hbox{\unhbox\gline
+ \hskip\glossglue
+ \vtop{\box\wordone % vtop was vbox
+ \nointerlineskip
+ \box\wordtwo
+ }%
+ }%
+ \testdone
+ \ifnotdone
+ \repeat
+ \egroup % matches \bgroup in \gloss
+ \gl@stop}
+
+\gdef\threesent#1\\ #2\\ #3\\{% #1 = first line, #2 = second line, #3 = third
+ \getwords(\lineone,\eachwordone)#1 \\%
+ \getwords(\linetwo,\eachwordtwo)#2 \\%
+ \getwords(\linethree,\eachwordthree)#3 \\%
+ \loop\lastword{\eachwordone}{\lineone}{\wordone}%
+ \lastword{\eachwordtwo}{\linetwo}{\wordtwo}%
+ \lastword{\eachwordthree}{\linethree}{\wordthree}%
+ \global\setbox\gline=\hbox{\unhbox\gline
+ \hskip\glossglue
+ \vtop{\box\wordone % vtop was vbox
+ \nointerlineskip
+ \box\wordtwo
+ \nointerlineskip
+ \box\wordthree
+ }%
+ }%
+ \testdone
+ \ifnotdone
+ \repeat
+ \egroup % matches \bgroup in \gloss
+ \gl@stop}
+
+\def\gl@stop{{\hskip -\glossglue}\unhbox\gline\end{flushleft}}
+
+\endinput
diff --git a/macros/latex/contrib/gb4e/gb4e-doc.pdf b/macros/latex/contrib/gb4e/gb4e-doc.pdf
new file mode 100644
index 0000000000..40583fa164
--- /dev/null
+++ b/macros/latex/contrib/gb4e/gb4e-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/gb4e/gb4e-doc.tex b/macros/latex/contrib/gb4e/gb4e-doc.tex
new file mode 100644
index 0000000000..0b505a0198
--- /dev/null
+++ b/macros/latex/contrib/gb4e/gb4e-doc.tex
@@ -0,0 +1,449 @@
+% -*- LaTeX -*-
+%%%% Latex2e:
+\documentclass[11pt,a4paper]{article}
+\usepackage{gb4e}
+%%%% LaTeX209:
+%\documentstyle[a4,11pt,gb4e]{article}
+%%
+\def\bs{$\backslash$}
+\frenchspacing\parskip1.2ex
+\parindent0pt
+\def\bit{\vskip.05\baselineskip\hspace*{1em}\hangindent4em\hangafter1}
+\title{Preliminary documentation for {\tt gb\gbVersion.sty}\thanks{%
+ Parts of ``Government-Binding style'' {\tt gb\gbVersion.sty} are
+ loosely based on ideas and code by M.~Covington, M.~van der Goot,
+ J.~Frampton and L.~Holt. In particular it automatically includes {\tt
+ cgloss\gbVersion.sty}, a (heavily adapted) version of M.~Covington's
+ \LaTeX-adaptation of M.~van der Goot's plain\TeX{} Midnight gloss
+ macros.} and {\tt cgloss\gbVersion.sty}}
+\author{Hans-Peter Kolb \\[2pt]
+Craig Thiersch $<${\sf c\_thiersch@alum.mit.edu}$>$}
+\date{}
+\begin{document}
+\maketitle
+\tableofcontents
+\vspace*{1cm}
+\vfill
+\subsection*{Important note:}
+The file {\tt gb\gbVersion.sty}\footnote{%
+ This version of {\tt gb{\em x}.sty}
+ redesigns the entire series of {\tt \bs ex}
+ commands. It also contains changes to the gloss-macros to make them
+ work in footnotes etc. {\bf NB: The {\em {\tt e}xport\/} version does
+ not provide a
+ soft-landing system of command-compatibility with earlier
+ versions}.
+
+ NB: Make sure to get {\tt cgloss\gbVersion.sty} together with {\tt
+ gb\gbVersion.sty}.
+
+ This version of gb4e includes some \emph{minimal} bug-fixes and enhancements by
+ Alexis Dimitriadis, with emphasis on backward compatibility.
+}
+ allows \verb"_" (subscript) and
+\verb"^" (superscript) to be used in ordinary text, which is handy,
+but because it changes their definitions it must be loaded {\bf after}
+any file that uses them in their \TeX\ meaning.
+\pagebreak
+\section{Linguistic examples in \LaTeX}
+{\tt gb\gbVersion.sty} is a style option to be used
+ with \LaTeX's major document styles. To make its commands available,
+ add it to your document's preamble like this:
+\bit (in LaTex2e:)~~~~~~\verb,\usepackage{gb4e},
+\bit (in LaTex 2.09:)~~{\tt \bs documentstyle[\ldots gb\gbVersion]\{\ldots\}}
+
+
+Its core is an environment for the formatting of
+linguistic examples.
+
+The format is simple:\\
+(Batches of) examples are introduced by
+\verb,\begin{exe}, which sets up the top level example environment.
+Obviously, this environment has to be closed after the example(s) by
+\verb,\end{exe},. You can create sub- and subsubexamples by
+embedding several {\tt xlist}-environments (up to three levels deep).
+
+Here is an elaborate example:
+\begin{verbatim}
+\begin{exe} % sets up the top-level example environment
+\ex\label{here} Here is one. % example with running number
+\ex[*]{Here another is.} % judged ex. with running number
+\ex Here are some with judgements.
+ \begin{xlist} % first embedding (alphabetical numbering)
+ \ex[]{A grammatical sentence am I.}
+ \ex[*]{An ungrammatical sentence is you.}
+ \ex[??]{A dubious sentence is she.}
+ \ex % just the number
+ \begin{xlist} % second embedding (roman numbering)
+ \ex[**]{Need one a second embedding?}
+ \ex[\%]{sometime.}
+ \end{xlist} % end second embedding
+ \ex Dare to judge me!
+ \end{xlist} % end first embedding
+\ex This concludes our demonstration.
+\end{exe} % end example environment
+\end{verbatim}
+This produces:
+\begin{exe} % sets up the top-level example environment
+\ex\label{here} Here is one. % example with running number
+\ex[*]{Here another is.} % judged ex. with running number
+\ex Here are some with judgements.
+ \begin{xlist} % first embedding (alphabetical numbering)
+ \ex[]{A grammatical sentence am I.}
+ \ex[*]{An ungrammatical sentence is you.}
+ \ex[??]{A dubious sentence is she.}
+ \ex % just the number
+ \begin{xlist} % second embedding (roman numbering)
+ \ex[**]{Need one a second embedding?}
+ \ex[\%]{sometime.}
+ \end{xlist} % end second embedding
+ \ex Dare to judge me!
+ \end{xlist} % end first embedding
+\ex This concludes our demonstration.
+\end{exe} % end example environment
+
+All example-list commands have an optional argument which allows you to
+set the labelwidth to, e.g., the widest label to come (in the style of
+\verb,\begin{bibliography},). So,
+\verb,\begin{exe}[(234)], will set the labelwidth to the width
+ of ``{\tt (234)}''---which is also the default. The other defaults
+ are ``{\tt m.}'' for {\tt xlist}, and ``{\tt iii.}'' for {\tt xlisti}.
+The default labelwidth for the {\tt exe}-environment can also be changed
+globally by issuing a \verb,\exewidth{<string>}, command in the
+preamble of your document (i.e.\ between
+\verb'\documentclass' and \verb'\begin{document}').
+
+\subsection{Examples with running numbers}
+As just shown, every example with a running number
+is introduced by \verb'\ex'.
+Obviously, \verb,\ex, is {\em context-sensitive\/}: at the top
+level the number produced is {\em arabic} and accumulative
+throughout the document; in embedded {\tt xlist}-environments it is
+{\em alphabetic\/} on the first level, {\em roman\/} on the second, and
+{\em arabic\/} on the third, starting with $a.$, $i.$, and $1.$,
+repectively. For total control over the shape
+of your subexample-numbering there are some special forms listed
+below:\footnote{%
+Note that for all
+{\tt \bs begin\{<env>\}} \ldots {\tt \bs end\{<env>\}} pairs the forms
+{\tt \bs<env>} \ldots {\tt \bs end<env>} are also permissible in \LaTeX.
+So if you like you can go on using {\tt\bs xlist} \ldots
+{\tt\bs endxlist} for {\tt \bs begin\{xlist\}} \ldots {\tt \bs end\{xlist\}}
+ etc., but \LaTeX-syntaxcheckers and utilities like AUC-\TeX\ won't
+recognize them as necessarily paired and won't report unmatched
+ expressions. (Have you ever tried {\tt <Ctrl>-C <Ctrl>-C}
+ (= LaTeX-environment) or {\tt <Ctrl>-C <Ctrl>-F}
+ (= LaTeX-close-environment) in EMACS' AUC-\TeX\ mode? You should---it
+saves a lot of typing.)}
+\begin{center}
+\begin{tabular}{|l|l|}\hline
+{\em Environment}& {\em Default numbering}\\ \hline\hline
+\verb,\begin{exe}, \ldots \verb,\end{exe},& (1) arabic
+(Toplevel)\\ \hline\hline
+\verb,\begin{xlist}, \ldots \verb,\end{xlist},& depends on level of
+embedding\\ \hline
+\verb,\begin{xlista}, \ldots \verb,\end{xlista},& a. alphabetical\\
+\verb,\begin{xlisti}, \ldots \verb,\end{xlisti},& ii. roman\\
+\verb,\begin{xlistn}, \ldots \verb,\end{xlistn},& 3. arabic\\
+\verb,\begin{xlistI}, \ldots \verb,\end{xlistI},& IV. Roman\\
+\verb,\begin{xlistA}, \ldots \verb,\end{xlistA},& E. Alphabetical\\ \hline
+\end{tabular}
+\end{center}
+In all cases, \verb,\label,/\verb,\ref, commands will do The Right
+Thing.
+
+The syntax of \verb,\ex, is as follows:
+\bit\verb'\ex' $\Longrightarrow$ a label with running number (e.g., if a
+sublist of examples follows).
+\bit\verb'\ex <example>' $\Longrightarrow$ a numbered example.
+\bit\verb'\ex[<judgement>]{<example>}' $\Longrightarrow$ a numbered example
+ with judgement.
+
+The space reserved for judgements can be controlled by the command\break
+\verb,\judgewidth{<string>},, which sets it to the width of
+\verb,<string>, (Default: ``{\tt ??}''). It can be issued in the
+preamble to change the
+default globally, or within an {\tt exe}-environment for a
+local change.
+
+\paragraph*{In short:} Use \verb"\ex" for all numbered
+examples; if they have no optional argument (judgement)
+ they will be flush left;
+if they have {\tt [ ] }'s then there will be a space reserved for
+judgements. (NB: In this case you have to
+indicate the scope of the example itself with \{\ldots\}'s.)
+
+
+\subsection{Examples with other identifiers}
+Sometimes it is necessary not to use running numbers but to specify
+the identifier of an example manually as in:
+\begin{quote}
+\ldots let us now contemplate Chomsky (1981:264, ex.29f):
+\begin{exe}
+\exi{(29)} \al\lb{INFL} AGR]\lb{VP} V\ldots]
+\exi{(30)}
+ \begin{xlist}[(ii)]
+ \exi{(i)} \be\lb{VP} V-AGR\ldots]
+ \exi{(ii)} \be\lb{VP}\lb{VP} V-AGR\ldots] NP]
+ \end{xlist}
+\end{exe}
+\end{quote}
+For cases like this there is the command \verb'\exi{<identifier>}'
+which works exactly like \verb'\ex':
+\bit\verb'\exi{<identifier>}' $\Longrightarrow$ the identifier as label
+\bit\verb'\exi{<identifier>} <example>' $\Longrightarrow$ the example
+ labelled with identifier
+\bit\verb'\exi{<identifier>}[<judgement>]{<example>}'
+ $\Longrightarrow$ the judged example,\\ labelled with identifier.\\
+
+
+So the example above is produced by:
+
+\pagebreak[2]
+\begin{verbatim}
+\ldots let us now contemplate Chomsky (1981:264, ex.29f):
+\begin{exe}
+\exi{(29)} \al\lb{INFL} AGR]\lb{VP} V\ldots]
+\exi{(30)}
+ \begin{xlist}[(ii)]
+ \exi{(i)} \be\lb{VP} V-AGR\ldots]
+ \exi{(ii)} \be\lb{VP}\lb{VP} V-AGR\ldots] NP]
+ \end{xlist}
+\end{exe}
+\end{verbatim}
+
+\verb'\exi' can be used to deal with many labelling problems. The
+three most commons ones are predefined:
+\begin{itemize}
+\item Crossreferences (\verb'\exr{<label>}'):
+ \begin{itemize}
+ \item[]
+\ldots a sentiment already expressed in (\ref{here})
+on page \pageref{here}, repeated here:
+\begin{exe}
+\exr{here} Here is one.
+\end{exe}
+\begin{verbatim}
+\ldots a sentiment already expressed in (\ref{here})
+on page \pageref{here}, repeated here:
+\begin{exe}
+\exr{here} Here is one.
+\end{exe}
+\end{verbatim}
+\end{itemize}
+\item Crossreferences with primes (\verb'\exp{<label>}'):
+\begin{itemize}\item[]
+\ldots which contrasts sharply with
+\begin{exe}
+\exp{here}[??]{Here is two}
+\end{exe}
+\begin{verbatim}
+\ldots which contrasts sharply with
+\begin{exe}
+\exp{here}[??]{Here is two.}
+\end{exe}
+\end{verbatim}
+\end{itemize}
+\item Unnumbered examples (\verb'\sn'):
+\begin{itemize}\item[]
+\ldots here we have an example
+\begin{exe}
+\sn[\%]{Colourless green ideas sleep furiously.}
+\end{exe}
+of a sentence too famous to be numbered\ldots
+\begin{verbatim}
+\ldots here we have an example
+\begin{exe}
+\sn[\%]{Colourless green ideas sleep furiously.}
+\end{exe}
+of a sentence too famous to be numbered\ldots
+\end{verbatim}
+\end{itemize}
+\end{itemize}
+Again, these commands work exactly as \verb'\ex' or
+\verb'\exi{<identifier>}'.
+
+\pagebreak[2]
+\section{Glosses}\label{gloss}
+{\tt gb\gbVersion.sty} offers a set of commands for typesetting glosses based
+on M.\ Covington's \LaTeX-adaptation of M.\ van der Goot's Midnight gloss
+\TeX-macros.\footnote{They are defined in the file {\tt cgloss\gbVersion.sty}
+which is automatically read by {\tt gb\gbVersion.sty}.}\\[5pt]
+A gloss basically contains two elements:
+\bit \verb'\gll' (obligatory):
+introduces the actual sentence/gloss pair;\footnote{%
+There is also a three-line version of {\tt \bs gll}, {\tt \bs glll} for
+special morphological/phonological information (not for the free
+translation!).}
+\bit \verb'\glt' or \verb'\trans' (optional): introduces a free
+translation.
+
+\pagebreak[2]
+So the following
+\begin{verbatim}
+\begin{exe}
+\ex
+\gll Wenn jemand in die W\"uste zieht ... \\
+If someone in the desert draws and lives ... \\
+\trans `if one retreats to the desert and ... '
+\end{exe}
+\end{verbatim}
+produces:
+\begin{exe}
+\ex
+\gll Wenn jemand in die W\"uste zieht und lebt dort von Heuschrecken
+ oder sich im Wald verirrt hat und n\"ahrt sich von Wurzeln und
+ Beeren, \ldots\\
+If someone in the desert draws and lives there from grasshoppers or
+self {in the} woods errored has and nourisches self from roots and
+berries \ldots\\
+\trans `if one retreats to the desert and lives there from
+grasshoppers or gets lost in the woods and lives off of roots and berries'
+\end{exe}
+
+Since the macro counts words, to match one word with a
+multi-word gloss or vice versa, you either have to put the words in
+braces or use
+hyphens. For example, German {\em zum} could be glossed as either
+\verb"{to the}" or \verb"to-the". And of course, if you have a word that is
+not glossed, like WH-trace $e_i$ or a proper name, you have to tell the
+gloss line that there's something there, e.g. with \{~\}.
+\begin{exe}
+\ex
+\gll Den Fritz_1 habe ich \_\_{}_1 zum Essen eingeladen.\\
+ the fred have I {} {to the} eating invited.\\
+\glt I invited Fred for dinner.
+\end{exe}
+is produced by
+\begin{verbatim}
+\begin{exe}
+\ex
+\gll Den Fritz_1 habe ich \_\_{}_1 zum Essen eingeladen.\\
+ the fred have I {} {to the} eating invited.\\
+\glt I invited Fred for dinner.
+\end{exe}
+\end{verbatim}
+
+Although it is possible to treat an optional judgement just as the
+first word of the sentence with a null-translation as in (\ref{null}),
+the standard way of using an optional argument with \verb'\ex' as in
+(\ref{arg}) is simpler (and conceptually more consistent).
+\begin{exe}
+\ex\label{null}
+\gll * Dit is een voorboeldje.\\
+ {} This is an example.\\
+\trans `Here's where the translation would be'
+
+\ex[*]{\label{arg}
+\gll Dit is een voorboeld.\\ This is an example.\\
+\trans `and this would be the translation line'
+}
+\end{exe}
+\pagebreak[2]
+This output is produced by
+\begin{verbatim}
+\ex
+\gll * Dit is een voorboeldje.\\
+ {} This is an example.\\
+\trans `Here's where the translation would be'
+\end{verbatim}
+and
+\begin{verbatim}
+\ex[*]{
+\gll Dit is een voorboeld.\\
+ This is an example.\\
+\trans `and this would be the translation line'}
+\end{verbatim}
+respectively.
+
+
+By default the glosses appear in
+``Linguistic Inquiry style'' with all lines in \verb"\rm". To change a line
+(e.g.\ to italics if required for a particular journal), just put
+the appropriate lines in the preamble of your document, e.g.,
+\verb"\let\eachwordone=\it".\footnote{Font commands that take an argument, such as {\tt \bs textit}, can only be used with versions of gb4e after 2009/12/28. Upgrade to the latest version or use argument-less font commands, such as {\tt \bs it}.}
+ The same for
+\verb"\eachwordtwo" and \verb"\eachwordthree" (used by the three line
+glosses introduced by \verb'\glll'). Note that it will
+{\em not} work
+to put \verb"\it" before the line in your text, as the words are parsed
+separately.
+ For example,
+\verb"\let\eachwordone=\it" yields
+\begin{exe}
+\let\eachwordone=\it
+\ex[?]{
+\gll Und hier k\"onnen wir sehen was f\"ur Unfug wird gemacht wenn er einen
+ganz langen Satz binnen kriegt\\
+and hier can we see what for nonsense will-be made if he a very long
+sentence inside gets.\\
+\glt `and here's what happens to a looooong sentence'}
+\end{exe}
+and \verb"\let\eachwordtwo=\sf" gives
+\begin{exe}\let\eachwordtwo=\sf
+\ex[*]{
+\gll Cette phrase n'a pas une traduction.\\
+This sentence {not has} nought a translation.\\}
+\end{exe}
+As you can see by these examples, you can also re-define the {\tt eachword}
+variables in your file for individual examples by using the \verb"\let"
+command within the \verb"\begin{exe}" environment, and then the style change is
+local.
+
+By default, the glosses will be single-spaced even in double-spaced
+environments. If you---or rather the journal you're submitting
+to---don't like that, just give the command \verb,\nosinglegloss, in the
+preamble of your document.
+
+\section{Varia}
+{\tt gb\gbVersion.sty} contains a few additional goodies (mostly
+abbreviations for frequently used constructions) which will be
+properly documented in a subsequent life. For now just some sample of
+uses:
+\begin{itemize}
+\item X-bar styles: Per default \verb,\obar{X} \ibar{X} \iibar{X} \mbar{X},
+ yields \obar{X} \ibar{X} \iibar{X} \mbar{X}. With \verb,\primebars,
+ in the preamble, the outcome is \obar{X} X^{'} XP \mbar{X}.
+\item Labelled bracketings:
+\verb,\lb{NP}[1]\lb{D}[1] the]\lb{\ibar{N}},\break \verb,example]], yields
+\lb{NP}[1]\lb{D}[1] the]\lb{\ibar{N}} example]]. An analogous
+right-bracket (\verb,\rb,) is also defined.
+\item Greek letters: the frequently used letters \al\be\ga\de\ and
+ \th\ have abbreviations \verb,\al \be \ga \de \th, which also work
+ outside mathmode.
+\item Sub- \& superscripts (\verb,_, and \verb,^,) work outside mathmode, too.
+\\
+{\bf Note:} This feature is known to cause problems for a number of
+other packages. It is retained for backward compatibility. In case of problems,
+you can disable it by adding the command \verb|\noautomath| in your preamble
+immediately after loading the gb4e package. You can also re-enable it later with
+the command \verb|\automath|. [Added 2009/12/28]
+
+\end{itemize}
+At the very end of the style-file a couple of special accents for
+``exotic'' languages are defined. Also, check out the \verb,\attop,-,
+\verb,\atcenter,-macros (by Lex Holt) for aligning naughty
+({\tt picture}-)examples to their numbers, as well as J.~Frampton's
+movement-arrows:
+\begin{exe}
+\ex\atcenter{
+ \arrowalign{
+ \fillright\pd&\link3&\fillleft{\vrule\hfil}\cr
+ Did&\ &John&\ &t_{\mathrm{Agr}}&\ appear &t&\ to be likely &t&\ to win.\cr
+ &&\fillright\pu&\link3&\centr{\vrule\spacer\pu}&\lf&\fillleft\vrule\cr}
+ }
+\end{exe}
+\begin{verbatim}
+\begin{exe}
+\ex\atcenter{
+ \arrowalign{\fillright\pd&\link3&\fillleft{\vrule\hfil}\cr
+ Did&\ &John&\ &t_{\mathrm{Agr}}&\ appear &t&\ to be likely
+ &t&\ to win.\cr
+ &&\fillright\pu&\link3&\centr{\vrule\spacer\pu}&\lf
+ &\fillleft\vrule\cr}
+ }
+\end{exe}
+\end{verbatim}
+
+
+\end{document}
diff --git a/macros/latex/contrib/gb4e/gb4e.sty b/macros/latex/contrib/gb4e/gb4e.sty
new file mode 100644
index 0000000000..211d5de59f
--- /dev/null
+++ b/macros/latex/contrib/gb4e/gb4e.sty
@@ -0,0 +1,385 @@
+% -*- LaTeX -*-
+\def\gbVersion{4e}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Version 4export (= v. 4 minus the compatibility code)
+% Based on hpk's gb.sty, revised for GM syllabus by ct,
+% and incorporating macros adapted from J.Frampton, M. van der Goot en M.
+% Covington. Full documentation in gb4e-doc.tex. Bug-reports
+% and suggestions for improvements, other used features, please!
+%
+% The package gb4e may be distributed under the conditions of the LaTeX Project
+% Public License (LPPL). See the README file for more details.
+%
+% Notes:
+%
+% Various styles for X-bar levels; can be changed, but note that {picture}
+% environements (e.g. trees) will then come out wrong and have to be
+% fixed
+%
+% This file allows _ and ^ to be used in ordinary text, hence must be
+% loaded AFTER any file that uses them in their TeX meaning. Hence
+% cgloss(n).sty is loaded early in this file. This feature is known to
+% cause some problems with other packages, but is maintained for backward
+% compatibility. If you have problems, you can try disabling it by
+% placing the command \noautomath immediately after loading the gb4e package.
+% [Added 2009/12/28]
+
+% CHANGE LOG
+%
+% 2010/7/2
+% - Fixed bug (introduced in previous changes) that discarded spaces
+% after sub/superscripts outside math mode.
+%
+% 2010/01/03 [unreleased]
+% - Removed stray \bf
+% - Removed leftover old definition of ^, _
+%
+% 2009/12/28
+% - Added README.txt with LPPL license statement.
+% - Updated sub- and superscripts outside of math mode. They now
+% combine properly, and the feature can be turned off with \noautomath
+% (and back on with \automath).
+% - Removed references to \rm, for compatibility with memoir.cls
+% - \@footnotetext is no longer modified destructively; compatible with
+% other packages that modify it.
+% - \eachwordone etc. can now be defined to font commands that take
+% arguments (e.g., to \textit).
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+% Format of examples: %
+%%%%%%%%%%%%%%%%%%%%%%%%
+% \begin{exe} or \exbegin
+% <examples> (arab.)
+% \begin{xlist} or \xlist
+% <subexamples> (1st embedding, alph.)
+% \begin{xlisti} or \xlisti
+% <subsubexamples> (2st embedding, rom.)
+% \end{xlisti} or \endxlisti
+% <more examples>
+% \end{xlist} or \endxlist
+% <still more examples>
+% \end{exe} or \exend
+%
+% Other sublist-styles: xlistA (Alph.), xlistI (Rom.), xlistn (arab)
+%
+% \ex (produces Number)
+% \ex <sentence> (numbered example)
+% \ex[jdgmt]{sentence} (numbered example with judgement)
+%
+% \exi{ident} (produces identifier)
+% \exi{ident} <sentence> (example numbered with identifier)
+% \exi{ident}[jdgmt]{sentence} (dito with judgement)
+% (\exr, \exp and \sn are defined in terms of \exi)
+%
+% \exr{label} (produces cross-referenced Num.)
+% \exr{label} <sentence> (cross-referenced example)
+% \exr{label}[jdgmt]{sentence} (cross-referenced example with judgement)
+%
+% \exp{label} (same as
+% \exp{label} <sentence> \exr but
+% \exp{label}[jdgmt]{sentence} with prime)
+%
+% \sn <sentence> (unnumbered example)
+% \sn[jdgmt]{sentence} (unnumbered example with judgement)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% For my own laziness (HANDLE WITH CARE---this works only
+% in boringly normal cases.... ):
+%
+% \ea works like \begin{exe}\ex or \begin{xlist}\ex,
+% depending on context
+% \z works like \end{exe} or \end{xlist}, dep on context
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% For any REALLY old distributions without \rmfamily
+\@ifundefined{rmfamily}{\let\rmfamily=\rm \let\bfseries=\bf}
+
+\@ifundefined{new@fontshape}{\def\reset@font{}\let\mathrm\rmfamily\let\mathit\mit}{}
+
+\let\prmbrs=0
+\def\primebars{\let\prmbrs=1}
+\def\obar#1{\ifmmode#1^{0}\else#1$^{0}$\fi} %% FIX
+\def\mbar#1{\ifmmode#1^{\mathrm{max}}\else#1$^{\mathrm{max}}$\fi}
+\def\ibar#1{\ifx\prmbrs0%
+ \ifmmode\overline{\mathrm{#1}}\else$\overline{\mbox{#1}}$\fi%
+ \else\ifmmode#1^{'}\else#1$^{'}$\fi\fi}
+\def\iibar#1{\ifx\prmbrs0%
+ \ifmmode\overline{\overline{\mathrm{#1}}}%
+ \else$\overline{\overline{\mbox{#1}}}$\fi%
+ \else #1P\fi}
+\def\th{\ifmmode\theta\else$\theta$\fi}
+\def\al{\ifmmode\alpha\else$\alpha$\fi}
+\def\be{\ifmmode\beta\else$\beta$\fi}
+\def\ga{\ifmmode\gamma\else$\gamma$\fi}
+\def\de{\ifmmode\delta\else$\delta$\fi}
+\def\spec#1{[Spec,#1]} %Def. of "Specifier of #1"
+\def\ct#1{{\em #1\/}} %Citation of linguistic material with alternative style:
+%\def\ct#1{`#1'}
+\def\tx{\bfseries} %Introduction of technical terms with alternative style:
+%\def\tx{\em}
+
+\input{cgloss\gbVersion.sty}
+
+\newcommand{\indexgroupmark}[1]{\item{\bfseries #1}} % ?? -CT
+
+
+%%%%%%%%%%% AUTOMATH
+
+% this allows _ to be used in horizontal mode (from J.Frampton):
+% Reimplemented to allow this feature to be turned on and off.
+% The new version also combines sub- and superscripts properly.
+% -Alexis
+
+% \automath Make _ and ^ work outside math mode
+% \noautomath Restore normal sub/superscript behavior
+
+{ % Temporarily change catcodes
+ \catcode`\_=\active
+ \catcode`\^=\active
+
+ \global\def\automath{%
+ \catcode`\_=\active
+ \catcode`\^=\active
+ \def_##1{\gb@ifnextchar^{\automath@two_{##1}}{\ensuremath{\sb{##1}}}}%
+ \def^##1{\gb@ifnextchar_{\automath@two^{##1}}{\ensuremath{\sp{##1}}}}}
+}
+\def\automath@two#1#2#3#4{\ensuremath{#1{#2}\relax #3{#4}}}
+% Restore default catcodes for ^, _
+\def\noautomath{\catcode`\_=8 \catcode`\^=7 }
+
+% The original \@ifnextchar discards spaces when looking for the next
+% ``character''. This variant accepts any token.
+\long\def\gb@ifnextchar#1#2#3{%
+ \let\reserved@d=#1%
+ \def\reserved@a{#2}%
+ \def\reserved@b{#3}%
+ \futurelet\@let@token\@gbifnch}
+\def\@gbifnch{%
+ \ifx\@let@token\reserved@d
+ \let\reserved@c\reserved@a
+ \else
+ \let\reserved@c\reserved@b
+ \fi
+ \reserved@c}
+
+\automath % On by default, for backward compatibility
+
+%%%%%%%%%
+
+
+\def\lb#1{\@ifnextchar [{\@glarph{#1}}{\@bl{#1}}}
+\def\@glarph#1[#2]{\ifmmode{[}\sb{{\mathrm{#1}}\sb{#2}}\else%
+ ${[}\sb{{\mathrm{#1}}\sb{#2}}$\fi}
+\def\@bl#1{\ifmmode{[}\sb{\mathrm{#1}}\;\else${[}\sb{\mathrm{#1}}\;$\fi}
+
+\def\rb#1{\@ifnextchar [{\@grarph{#1}}{\@br{#1}}}
+\def\@grarph#1[#2]{\ifmmode{]}\sb{{\mathrm{#1}}\sb{#2}}\else%
+ ${]}\sb{{\mathrm{#1}}\sb{#2}}$\fi}
+\def\@br#1{\ifmmode{]}\sb{\mathrm{#1}}\;\else${]}\sb{\mathrm{#1}}\;$\fi}
+
+%%% END_NEWSTUFF.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Macros for examples, roughly following Linguistic Inquiry style. %
+% From here on best not to tamper, else all the examples and cross- %
+% references will come out scrambled! (see also note below) - CT %
+% Completely rewritten for more robustness and flexibility. (hpk) %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\qlist{\begin{list}{\Alph{xnum}.}{\usecounter{xnum}%
+\setlength{\rightmargin}{\leftmargin}}}
+\def\endqlist{\end{list}}
+
+\newif\if@noftnote\@noftnotetrue
+\newif\if@xrec\@xrecfalse
+\@definecounter{fnx}
+
+%%%%% Get examples in footnotes right
+% Replaces code in original gb4e.sty: changed 2009/12/28 by Alexis
+% Same function as before, but the old version interacted poorly with
+% other packages that redefine \@footnotetext.
+
+\let\@gbsaved@footnotetext=\@footnotetext
+\long\def\@footnotetext#1{%
+ \@noftnotefalse\setcounter{fnx}{0}%
+ \@gbsaved@footnotetext{#1}%
+ \@noftnotetrue}
+
+\newcount\@xnumdepth \@xnumdepth = 0
+
+\@definecounter{xnumi}
+\@definecounter{xnumii}
+\@definecounter{xnumiii}
+\@definecounter{xnumiv}
+\@definecounter{exx}
+\setcounter{exx}{0}
+\def\thexnumi{\@xsi{xnumi}}
+\def\thexnumii{\@xsii{xnumii}}
+\def\thexnumiii{\@xsiii{xnumiii}}
+\def\thexnumiv{\@xsiv{xnumiv}}
+\def\p@xnumii{\thexnumi}
+\def\p@xnumiii{\thexnumi\thexnumii-}
+\def\p@xnumiv{\thexnumi\thexnumii-\thexnumiii-}
+
+\def\xs@default#1{\csname @@xs#1\endcsname}
+\def\@@xsi{\let\@xsi\arabic}
+\def\@@xsii{\let\@xsii\alph}
+\def\@@xsiii{\let\@xsiii\roman}
+\def\@@xsiv{\let\@xsi\arabic}
+
+\@definecounter{rxnumi}
+\@definecounter{rxnumii}
+\@definecounter{rxnumiii}
+\@definecounter{rxnumiv}
+
+\def\save@counters{%
+\setcounter{rxnumi}{\value{xnumi}}%
+\setcounter{rxnumii}{\value{xnumii}}%
+\setcounter{rxnumiii}{\value{xnumiii}}%
+\setcounter{rxnumiv}{\value{xnumiv}}}%
+
+
+\def\reset@counters{%
+\setcounter{xnumi}{\value{rxnumi}}%
+\setcounter{xnumii}{\value{rxnumii}}%
+\setcounter{xnumiii}{\value{rxnumiii}}%
+\setcounter{xnumiv}{\value{rxnumiv}}}%
+
+
+\def\exewidth#1{\def\@exwidth{#1}} \exewidth{(234)}
+\def\exe{\@ifnextchar [{\@exe}{\@exe[\@exwidth]}}
+
+\def\@exe[#1]{\ifnum \@xnumdepth >0%
+ \if@xrec\@exrecwarn\fi%
+ \if@noftnote\@exrecwarn\fi%
+ \@xnumdepth0\@listdepth0\@xrectrue%
+ \save@counters%
+ \fi%
+ \advance\@xnumdepth \@ne \@@xsi%
+ \begin{list}{(\thexnumi)}%
+ {\usecounter{xnumi}\@subex{#1}{1em}%
+ \if@noftnote%
+ \setcounter{xnumi}{\value{exx}}%
+ \else%
+ \setcounter{xnumi}{\value{fnx}}%
+ \fi}}
+
+\def\endexe{\if@noftnote\setcounter{exx}{\value{xnumi}}%
+ \else\setcounter{fnx}{\value{xnumi}}%
+ \reset@counters\@xrecfalse\fi\end{list}}
+
+\def\@exrecwarn{\typeout{*** Recursion on "exe"---your
+ example numbering will probably be screwed up!}}
+
+\def\xlist{\@ifnextchar [{\@xlist{}}{\@xlist{}[iv.]}}
+\def\xlista{\@ifnextchar [{\@xlist{\alph}}{\@xlist{\alph}[m.]}}
+\def\xlisti{\@ifnextchar [{\@xlist{\roman}}{\@xlist{\roman}[iv.]}}
+\def\xlistn{\@ifnextchar [{\@xlist{\arabic}}{\@xlist{\arabic}[9.]}}
+\def\xlistA{\@ifnextchar [{\@xlist{\Alph}}{\@xlist{\Alph}[M.]}}
+\def\xlistI{\@ifnextchar [{\@xlist{\Roman}}{\@xlist{\Roman}[IV.]}}
+
+\def\endxlist{\end{list}}
+\def\endxlista{\end{list}}
+\def\endxlistn{\end{list}}
+\def\endxlistA{\end{list}}
+\def\endxlistI{\end{list}}
+\def\endxlisti{\end{list}}
+
+
+%%% a generic sublist-styler
+\def\@xlist#1[#2]{\ifnum \@xnumdepth >3 \@toodeep\else%
+ \advance\@xnumdepth \@ne%
+ \edef\@xnumctr{xnum\romannumeral\the\@xnumdepth}%
+ \def\@bla{#1}
+ \ifx\@bla\empty\xs@default{\romannumeral\the\@xnumdepth}\else%
+ \expandafter\let\csname @xs\romannumeral\the\@xnumdepth\endcsname#1\fi
+ \begin{list}{\csname the\@xnumctr\endcsname.}%
+ {\usecounter{\@xnumctr}\@subex{#2}{1.5ex}}\fi}
+
+\def\@subex#1#2{\settowidth{\labelwidth}{#1}\itemindent\z@\labelsep#2%
+ \ifnum\the\@xnumdepth=1%
+ \topsep 7\p@ plus2\p@ minus3\p@\itemsep3\p@ plus2\p@\else%
+ \topsep1.5\p@ plus\p@\itemsep1.5\p@ plus\p@\fi%
+ \parsep\p@ plus.5\p@ minus.5\p@%
+ \leftmargin\labelwidth\advance\leftmargin#2\relax}
+
+%%% the example-items
+\def\ex{\@ifnextchar [{\@ex}{\item}}
+\def\@ex[#1]#2{\item\@exj[#1]{#2}}
+\def\@exj[#1]#2{\@exjbg{#1} #2 \end{list}}
+\def\exi#1{\item[#1]\@ifnextchar [{\@exj}{}}
+\def\judgewidth#1{\def\@jwidth{#1}}
+\judgewidth{??}
+\def\@exjbg#1{\begin{list}{#1}{\@subex{\@jwidth}{.5ex}}\item}
+\def\exr#1{\exi{{(\ref{#1})}}}
+\def\exp#1{\exi{{(\ref{#1}$'$)}}}
+\def\sn{\exi{}}
+\def\bu{\item[$\bullet$]}
+
+%%% Lazy abbrevs (HANDLE WITH CARE!)
+\def\ea{\ifnum\@xnumdepth=0\begin{exe}[(234)]\else\begin{xlist}[iv.]\fi\ex}
+\def\z{\ifnum\@xnumdepth=1\end{exe}\else\end{xlist}\fi}
+
+
+%%%%%%% \lcomment for breaks in (example-)lists (leaves all counters
+%%%%%%% as they are) (hpk)
+\newlength{\lcommentsep}
+\lcommentsep = 1ex
+
+\long\def\lcomment#1%
+ {\vspace{\lcommentsep}
+ \item[]\hspace*{-\leftmargin}%
+ \@tempskipa=\linewidth%
+ \addtolength{\@tempskipa}{\rightmargin}%
+ \addtolength{\@tempskipa}{\leftmargin}%
+ \parbox{\@tempskipa}{#1}%
+ \vspace{\lcommentsep}%
+ }
+
+%%%%%% control the alignment of exampleno. and (picture-)example
+%%%%%% (by Lex Holt <lex@cogsci.ed.ac.uk>).
+\def\attop#1{\leavevmode\vtop{\strut\vskip-\baselineskip\vbox{#1}}}
+\def\atcenter#1{$\vcenter{#1}$}
+%%%%%%
+
+%-------------------Move Arrows (from J.Frampton):
+
+\def\leaderfill{\leaders\hrule\hfil}
+\def\pointerup{\hbox to 0pt{\hss
+ \vbox{\offinterlineskip\vskip-1pt\hbox{\elevenex\char'170}\null}\hss}}
+\def\pointerdown{\hbox to 0pt{\hss
+ \vtop{\offinterlineskip\null\hbox{\elevenex\char'171}\vskip-1pt}\hss}}
+
+\let\pu=\pointerup
+\let\pd=\pointerdown
+\let\lf=\leaderfill
+
+\def\spacer{\hskip4.5pt}
+\def\fillright#1{\hfil#1\leaderfill}
+\def\fillleft#1{\leaderfill#1\hfil}
+% Changed spelling to \centr, else conflicts with LaTeX \center{} -CT
+\def\centr#1{\leaderfill#1\leaderfill}
+\def\link#1{\multispan#1\leaderfill}
+
+\def\arrowalign#1{\vtop{\baselineskip=0pt \lineskiplimit=0pt \lineskip=2pt
+ \halign{&##\cr#1}}}
+
+\font\elevenex=cmex10 scaled\magstephalf % just for the arrow!
+ %PS: this may not work on some installations, not sure why. CT
+ %%PPS: (e.g., PCTeX, but it works find works fine with EmTeX)
+%----------------END Move Arrows
+
+\def\pijl{$\rightarrow$\ }
+
+% Special accents for Vata & Gbadi; Navajo coming soon, I hope...:
+%\def\bb#1{$\mathrm{\overline{#1}}$} Following looks better:
+\def\bb#1{\ifmmode\overline{\mathrm{#1}}\else$\bar{\mathrm{#1}}$\fi}
+
+\def\boven#1#2{\raisebox{-0.2pt}{$\stackrel{#1}{\mathrm{#2}}$}}
+\def\bovenop#1#2{\raisebox{-0.06ex}[0ex][0ex]{$\stackrel{#1}{\mathrm{#2}}$}}
+\def\vl{\rule{0.05em}{0.30em}}
+\def\|#1{\ifmmode\vert#1\else\bovenop{\vl}{#1}\fi}