summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:58:05 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:58:05 +0000
commit1a113fd171e6547a74bd0693796692fac7494d63 (patch)
tree58f7fc77c1c8f3f96ede7b25fbf7d9853c3fef76 /Master/texmf-dist/tex
parent440d102927608f99ff10892dc8754b4f432f4aab (diff)
linguex
git-svn-id: svn://tug.org/texlive/trunk@1042 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/linguex/cgloss4e.sty165
-rw-r--r--Master/texmf-dist/tex/latex/linguex/linguex.sty351
-rw-r--r--Master/texmf-dist/tex/latex/linguex/linguho.sty130
-rw-r--r--Master/texmf-dist/tex/latex/linguex/ps-trees.sty82
4 files changed, 728 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/linguex/cgloss4e.sty b/Master/texmf-dist/tex/latex/linguex/cgloss4e.sty
new file mode 100644
index 00000000000..eedaf886e00
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/linguex/cgloss4e.sty
@@ -0,0 +1,165 @@
+% -*- LaTeX -*-
+% Following borrows from Covington's style files inspired by Midnight by M.
+% de Groot, 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
+
+\@ifundefined{eachwordone}{\let\eachwordone=\rm}{\relax}
+\@ifundefined{eachwordtwo}{\let\eachwordtwo=\rm}{\relax}
+\@ifundefined{eachwordthree}{\let\eachwordthree=\rm}{\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/Master/texmf-dist/tex/latex/linguex/linguex.sty b/Master/texmf-dist/tex/latex/linguex/linguex.sty
new file mode 100644
index 00000000000..b0d7eba7b50
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/linguex/linguex.sty
@@ -0,0 +1,351 @@
+%% Copyright 1996, 2002 by Wolfgang Sternefeld
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt; either
+%% version 1 of the License, or any later version.
+%% linguex.sty version 3.3, revised 2000/12/22, compatability with
+%% lucida fonts: Defaults defined \AtBeginDocument
+%% linguex.sty version 3.4, revised 2001/04/30, corrected vspacing for
+%% \ex. embedded in \a.
+%% linguex.sty version 3.5, revised 2002/01/26, corrected hspacing for
+%% \alignSubEx
+%% Author: Wolfgang.Sternefeld@uni-tuebingen.de
+%% status: supported
+%% filedate 01/04/30
+\RequirePackage{xspace,cgloss4e}
+%%%%%%%%%%%%%%%%%%% FOOTNOTES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% to let \ex. know whether or not it is in a footnote
+\newif\if@noftnote\@noftnotetrue
+\let\predefinedfootnotetext=\@footnotetext
+\long\def\@footnotetext#1{\@noftnotefalse\predefinedfootnotetext{#1}%
+ \@noftnotetrue}
+%
+%%%%%%%%%%%%%%% COUNTERS FOR LABELLING %%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@ifundefined{chapter}{\newcounter{ExNo}}{\newcounter{ExNo}[chapter]}
+\newcounter{SubExNo}[\if@noftnote ExNo\else FnExNo\fi]
+\newcounter{SubSubExNo}[SubExNo]
+\newcounter{FnExNo}[footnote]
+\newcounter{ABC}
+\renewcommand{\theExNo}{(\arabic{ExNo})}
+\renewcommand{\theFnExNo}{(\roman{FnExNo})}
+\newcommand{\refdash}{-}
+\newcommand{\SubSubExLeftBracket}{(}
+\newcommand{\SubSubExRightBracket}{)}
+\newcommand{\SubExLeftBracket}{}
+\newcommand{\SubExRightBracket}{.}
+\renewcommand{\theSubExNo}{\hbox{(\if@noftnote\arabic{ExNo}\else
+ \roman{FnExNo}\fi\refdash\alph{SubExNo})}}
+\renewcommand{\theSubSubExNo}{%
+ \hbox{(\if@noftnote\arabic{ExNo}\else\roman{FnExNo}\fi
+ \refdash\alph{SubExNo}\refdash\if@noftnote\roman{SubSubExNo}%
+ \else\arabic{SubSubExNo}\fi)}}
+%
+%%%%%%%%%%%%%% LENGTHS FOR SPACING %%%%%%%%%%%%%%%%%%%%%%%%%%
+\newlength{\currentlabel}
+\newlength{\lessthanten}
+\newlength{\lessthanhundred}
+\newlength{\lessthanthousand}
+\newlength{\@Exleftmargin}
+\newlength{\Exlabelwidth}
+\newlength{\Extopsep}
+\newlength{\Exindent}
+\newlength{\SubExleftmargin}
+\newlength{\SubSubExleftmargin}
+\newlength{\Exlabelsep}
+\newlength{\alignSubExnegindent}
+\newif\ifalignSubEx
+\newcommand{\resetExdefaults}{%
+ \setlength{\Exlabelsep}{1.3em}%
+ \setlength{\Extopsep}{.66\baselineskip}%
+ \setlength{\SubSubExleftmargin}{2.4em}%
+ \setlength{\SubExleftmargin}{2em}%
+ \setlength{\Exindent}{0pt}%
+ \setlength{\Exlabelwidth}{4em}%
+ \setlength{\alignSubExnegindent}{\Exlabelsep}
+ \ifalignSubEx\addtolength{\Exlabelsep}{.7em}%
+ \addtolength{\alignSubExnegindent}{.7em}\fi
+}
+\AtBeginDocument{\resetExdefaults}
+%%%%%%%%%%%%%%%%%%% DEFINITION OF \ex. %%%%%%%%%%%%%%%%%%%%%%%%%%
+\newif\ifembedded
+\newif\ifExWarning
+\newcounter{ExDepth}
+\newcounter{TempExDepth}\setcounter{TempExDepth}{0}
+\def\trivex.#1\par{\ifdim\lastskip=.66\baselineskip\vspace{-\baselineskip}\fi
+ \begin{list}{}{\leftmargin\z@%
+ \labelwidth\z@\labelsep\z@\partopsep\z@\topsep\Extopsep}%
+ \item{}#1%
+ \refstepcounter{ExDepth}\ExEnd}
+\def\ex.#1\par{%
+ \ifnum\theExDepth>0 \setcounter{TempExDepth}{\theExDepth}%
+ \setcounter{ExDepth}{0}
+ \embeddedtrue\fi
+ \ifembedded\else
+ \ifdim\lastskip=.66\baselineskip\vspace{-\baselineskip}\fi
+ \fi
+ \refstepcounter{ExDepth}%
+ \my@ifnextchar[{\OptArgEx}{\ifindex\expandafter\lookforwords\fi
+ \NormalEx\testforgramm}%
+ #1%
+ \addtocounter{ExDepth}{\theTempExDepth}\setcounter{TempExDepth}{0}%
+ \embeddedfalse\global\ExWarningfalse\ExEnd}
+\newcommand{\NormalEx}{\ifExWarning
+ \PackageWarning{linguex}{Check example numbering (screwed up?),
+ check number of empty lines at end of examples.
+ Detected}\fi\ExWarningtrue
+ \if@noftnote\refstepcounter{ExNo}%
+ \Exformat[(\arabic{ExNo})]%
+ \else
+ \refstepcounter{FnExNo}\Exformat[(\roman{FnExNo})]%
+ \fi}
+\def\OptArgEx[#1]{\Exformat[#1]\expandafter\testforgramm\ifindex\expandafter
+ \lookforwords\fi}
+\newcommand{\ExEnd}{%
+ \ifnum\theExDepth=0\global\unembeddedfalse\else%
+ \end{list}\addtocounter{ExDepth}{-1}\ExEnd\fi}
+\newcommand{\listdecl}{\parsep\z@\itemsep\z@\partopsep\z@\labelsep\z@
+ \@Exleftmargin\z@\settowidth{\lessthanthousand}{(1100)}%
+ \ifdim\currentlabel<\lessthanthousand\leftmargin\Exlabelsep
+ \ifdim\lessthanthousand<\Exlabelwidth\Exlabelwidth\Exlabelsep%
+ \settowidth{\lessthanten}{(11)}%
+ \settowidth{\lessthanhundred}{(110)}%
+ \ifdim\currentlabel<\lessthanten\leftmargin\lessthanten%
+ \else
+ \ifdim\currentlabel<\lessthanhundred\leftmargin\lessthanhundred%
+ \else
+ \ifdim\currentlabel<\lessthanthousand\leftmargin\lessthanthousand%
+ \fi\fi\fi\fi
+ \else
+ \Exlabelwidth\z@
+ \fi%
+ \@Exleftmargin\Exlabelwidth
+ \labelwidth\leftmargin
+ \ifembedded\relax\else
+ \addtolength{\Exlabelwidth}{\Exindent}
+ \fi
+ \addtolength{\leftmargin}{\Exlabelwidth}%
+ \addtolength{\labelwidth}{\@Exleftmargin}%
+}
+\def\Exformat[#1]{%
+ \settowidth{\currentlabel}{#1}%
+ \begin{list}{\makebox[\labelwidth][l]{#1}}{%
+ \setlength{\leftmargin}{\currentlabel}%
+ \listdecl%
+ \if@noftnote\relax\else\addtolength{\topsep}{-.5\topsep}\fi
+ \ifembedded\topsep=.3\Extopsep\else\topsep=\Extopsep\fi
+ }%
+ \ifindex\firstwordtrue\fi\item{}}
+%
+%%%%%%%% the `[' of OPTIONAL ARGUMENTS must immediately follow \ex. %%%%%%
+%%%% redefinition of \@ifnextchar which does NOT ignore spaces %%%%%%%%%%%
+\def\my@ifnextchar#1#2#3{\let\reserved@d=#1%
+ \def\reserved@a{#2}\def\reserved@b{#3}%
+ \futurelet\@let@token\my@ifnch}
+\def\my@ifnch{\ifx\@let@token\@sptoken%
+ % \let\reserved@c\@xifnch
+ \let\reserved@c\reserved@b%
+ \else
+ \ifx\@let@token\reserved@d%
+ \let\reserved@c\reserved@a%
+ \else
+ \let\reserved@c\reserved@b%
+ \fi\fi
+ \reserved@c}% cf. definition of \@ifnextchar in latex2e.ltx %%
+%
+%%%%%%%%%%%%%% PROCESSING OF GRAMMATICALITY JUDGMENTS %%%%%%%%%%%%%
+\newtoks\CollectTokens
+\newcommand\AddInfo[1]{\expandafter\expandafter\expandafter
+ \CollectTokens\expandafter{%
+ \the\CollectTokens#1}}
+\def\testforgramm{\GTest{}{\printGramm}}
+\def\printGramm{\makebox[0pt][r]{\normalfont\the\CollectTokens}\ignorespaces}
+\def\GTest#1#2{%
+ \def\TestForGramm{\CollectTokens={}%
+ \@ifnextchar *{\AddInfo{*}\@firstoftwo\recTestForGramm}{%
+ \@ifnextchar ?{\AddInfo{\char63}\@firstoftwo\recTestForGramm}{%
+ \@ifnextchar \#{\AddInfo{\#}\@firstoftwo\recTestForGramm}{%
+ \@ifnextchar \%{\AddInfo{\%}\@firstoftwo\recTestForGramm}%
+ {#1}}}}}%
+ \def\recTestForGramm{\@ifnextchar *{\AddInfo{*}\@firstoftwo%
+ \recTestForGramm}{%
+ \@ifnextchar ?{\AddInfo{\char63}\@firstoftwo\recTestForGramm}{%
+ \@ifnextchar \#{\AddInfo{\#}\@firstoftwo\recTestForGramm}{%
+ \@ifnextchar \%{\AddInfo{\%}\@firstoftwo\recTestForGramm}%
+ {#2}}}}}%
+ \TestForGramm}
+%
+%%%%%%%%%%%%%%%% SUBLISTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newif\ifunembedded
+\newcommand{\SubExlabel}{\SubExLeftBracket\alph{SubExNo}\SubExRightBracket}
+\def\a.{\ifindex\firstwordtrue\fi
+ \ifnum\theExDepth=0 \unembeddedtrue
+ \trivex.\fi
+ \refstepcounter{ExDepth}%
+ \begin{list}{\makebox[\labelwidth][l]{%
+ \ifnum\theExDepth=1 \SubExLeftBracket\alph{ABC}\SubExRightBracket%
+ \else
+ \ifnum\theExDepth=2 %
+ \ifdim\currentlabel<\lessthanthousand%
+ \ifalignSubEx
+ \llap{\hbox to \alignSubExnegindent{\ifunembedded%
+ \SubExLeftBracket\alph{SubExNo}\SubExRightBracket
+ \else\SubExlabel\fi\hss}}%
+ \else\SubExlabel\fi%
+ \else\ifunembedded%
+ \SubSubExLeftBracket\roman{SubExNo}\SubSubExRightBracket
+ \else\SubExlabel\fi\fi
+ \else
+ \ifnum\theExDepth=3 %
+ \if@noftnote%\ifunembedded\mbox{$\bullet$!}\else
+ \SubSubExLeftBracket\roman{SubSubExNo}\SubSubExRightBracket
+ %\fi
+ \else\arabic{SubSubExNo}\SubSubExRightBracket\fi
+ \fi\fi\fi}}%
+ {\labelsep\z@
+ \ifnum\theExDepth=2\topsep .3\Extopsep\else\topsep 0pt\fi
+ \parsep\z@\itemsep\z@
+ \ifnum\theExDepth=1 %
+ \usecounter{ABC}%
+ \settowidth{\currentlabel}{\theExNo}%
+ \listdecl%
+ \else
+ \ifnum\theExDepth=2 %
+ \usecounter{SubExNo}%
+ \ifalignSubEx\ifdim\currentlabel<\lessthanthousand%
+ \leftmargin\z@\else\leftmargin=\SubExleftmargin\fi%
+ \else\leftmargin=\SubExleftmargin\fi%
+ \else
+ \ifnum\theExDepth=3 \usecounter{SubSubExNo}\fi
+ \leftmargin=\SubSubExleftmargin%
+ \fi
+ \labelwidth=\leftmargin%
+ \fi}%
+ \ifnum\theExDepth=1 \setlength{\Exlabelwidth}{4em}\fi%
+ %previous line added 2000/12/22
+ \b.}
+%
+%%%%%%%%%%%%%%%%% ITEMS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\newExitem[#1]{\ifnum\theExDepth=2 %
+ \ifdim\currentlabel<\lessthanthousand%
+ \ifalignSubEx
+ \item[\llap{\hbox to \alignSubExnegindent{#1\hfill}}]%
+ \else
+ \item[#1\hfill]\fi
+ \else\item[#1\hfill]%
+ \fi
+ \else\item[#1\hfill]%
+ \fi\testforgramm}
+\let\oldb=\b
+\DeclareRobustCommand{\b}{\@ifnextchar.{\newb}{\oldb}}
+\def\newb.{\ifindex\firstwordtrue\fi
+ \my@ifnextchar[{\newExitem}{\item\testforgramm}}
+\let\oldc=\c
+\DeclareRobustCommand{\c}{\@ifnextchar.{\b}{\oldc}}
+\let\oldd=\d
+\DeclareRobustCommand{\d}{\@ifnextchar.{\b}{\oldd}}
+\let\e=\b
+\let\f=\b
+\def\z.{\end{list}\addtocounter{ExDepth}{-1}}
+%
+%%%%%%%%%%%%%%%%%%%% INDEXED BRACKETS %%%%%%%%%%%%%%%%%%%%%%%%
+\newif\ifindex
+\newif\iffirstword
+\def\I#1#2 {#1\labelBr#2 }
+\def\exi.#1\par{\indextrue\ex.#1 | blabla | \indexfalse\par}
+\def\ai.#1 \par{\indextrue
+ \a.#1 | blabla |
+ \par
+ \indexfalse}
+\def\finish|#1|{\ExEnd}
+\newcommand{\testGrAndBr}{\GTest{}{\printGramm\checkforbr}}
+\def\doaword#1 {%
+ \iffirstword\firstwordfalse\expandafter\testGrAndBr\fi%
+ #1
+ \ifgloss\expandafter\checkforbrorstar\else
+ \expandafter\lookforwords\fi}
+\newcommand{\checkforbrorstar}{\GTest{\checkforbr}{\printGramm\checkforbr}}
+\newcommand{\lookforwords}{\@ifnextchar]{\firstwordfalse\@aber}%
+ {\@ifnextchar[{\firstwordfalse\@aber}%
+ {\@ifnextchar|{\firstwordfalse\finish}{\doaword}}}}
+\def\labelBr#1 {\mbox{$\hspace{.05em}_{\mbox{\scriptsize\rm#1}}$} }
+\newcommand{\jetzt}{\my@ifnextchar[{\@aber}{\my@ifnextchar]{\@aber}%
+ {\@schnell}}}
+\def\@aber#1#2 {#1\jetzt#2 }
+\def\@schnell#1 {\labelBr#1 \lookforwords}
+\newcommand{\checkforbr}{\@ifnextchar[{\recurseonbr}%
+ {\@ifnextchar]{\recurseonbr}{}}}
+\newcommand{\recurseonbr}{\my@ifnextchar[{\stripoffbr}%
+ {\my@ifnextchar]{\stripoffbr}{\labelBr}}}
+\def\stripoffbr#1#2 {\rm #1\recurseonbr#2 }
+%
+%%%%%%%%%%%%%%%%%%%% GLOSSES %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newif\ifgloss
+%%% modification of cgloss4e %%%%
+\def\getwords(#1,#2)#3 #4\\% #1=linebox, #2=\each, #3=1st word, #4=remainder
+ {\setbox#1=\vbox{\hbox{#2\strut\ifindex\expandafter\checkforbr\fi#3 }%
+ \unvbox#1}%
+ \def\more{#4}%
+ \ifx\more\empty\let\more=\donewords
+ \else\let\more=\getwords
+ \fi
+ \more(#1,#2)#4\\%
+ }
+\def\gl@stop{{\hskip -\glossglue}\unhbox\gline\end{flushleft}%
+ \global\glossfalse%
+ \ifindex\expandafter\lookforwords\fi {} }
+%%%
+\newcommand{\newgll}{\glosstrue\GTest{\gll}{\gll\printGramm}}
+\def\exg.{\my@ifnextchar[{\newglossex}{\ex.\newgll}}
+\def\newglossex[#1]{\ex.[#1]\newgll}
+\def\ag.{\my@ifnextchar[{\newglossa}{\a.\newgll}}
+\def\newglossa[#1]{\a.[#1]\newgll}
+\def\newglossitem[#1]{\ifalignSubEx%\ifdim\currentlabel<\lessthanthousand%
+ \item[\llap{\hbox to \alignSubExnegindent{#1\hfill}}]%
+ \else
+ \item[#1\hfill]%
+ \fi
+\newgll}
+\def\bg.{\my@ifnextchar[{\newglossitem}{\item\newgll}}
+\def\cg.{\bg.}
+\def\dg.{\bg.}
+\def\eg.{\bg.}
+\def\fg.{\bg.}
+%
+%%%%%%%%%%%%%%%%%%%% GLOSSES WITH INDEXED BRACKETS %%%%%%%%%%%%
+\def\exig.{\my@ifnextchar[{\newglossexi}{\exi.\newgll}}
+\def\newglossexi[#1]{\exi.[#1]\newgll}
+\let\exgi=\exig
+\def\aig.{\my@ifnextchar[{\newglossai}{\ai.\newgll}}
+\def\newglossai[#1]{\ai.[#1]\newgll}
+\let\agi=\aig
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CROSS REFERENCES %%%%%%%%%%%%%%
+\newcounter{tmpaEx}
+\newif\ifNoFnRef
+\newcommand{\Next}{\if@noftnote\NoFnReftrue\else\NoFnReffalse\fi
+ \copyExNo\refstepcounter{tmpaEx}\printExNo}
+\newcommand{\NNext}{\if@noftnote\NoFnReftrue\else\NoFnReffalse\fi
+ \copyExNo\addtocounter{tmpaEx}{2}\printExNo}
+\newcommand{\TextNext}{\NoFnReftrue\copyExNo\refstepcounter{tmpaEx}\printExNo}
+\newcommand{\Last}{\if@noftnote\NoFnReftrue\else
+ \ifnum\arabic{FnExNo}=0 \NoFnReftrue\else\NoFnReffalse\fi
+ \fi
+ \copyExNo\printExNo}
+\newcommand{\LLast}{\if@noftnote\NoFnReftrue\copyExNo%
+ \addtocounter{tmpaEx}{-1}%
+ \else
+ \ifnum\arabic{FnExNo}=0 \NoFnReftrue\copyExNo%
+ \addtocounter{tmpaEx}{-1}%
+ \else
+ \ifnum\arabic{FnExNo}=1 \NoFnReftrue\copyExNo%
+ \else
+ \NoFnReffalse\copyExNo\addtocounter{tmpaEx}{-1}%
+ \fi\fi\fi
+ \printExNo}
+\newcommand{\copyExNo}{\strut\ifNoFnRef\setcounter{tmpaEx}{\value{ExNo}}%
+ \def\thetmpaEx{\arabic{tmpaEx}}%
+ \else
+ \setcounter{tmpaEx}{\value{FnExNo}}\def\thetmpaEx{\roman{tmpaEx}}%
+ \fi}
+\def\complexExNo[#1]{\hbox{(\thetmpaEx\refdash#1)}}
+\newcommand{\printExNo}{\@ifnextchar[{\complexExNo}{(\thetmpaEx)\xspace}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%% END %%%%%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/linguex/linguho.sty b/Master/texmf-dist/tex/latex/linguex/linguho.sty
new file mode 100644
index 00000000000..9d11cbb14a3
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/linguex/linguho.sty
@@ -0,0 +1,130 @@
+%% Copyright 1999 Wolfgang Sternefeld
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt; either
+%% version 1 of the License, or any later version.
+%% linguho.sty for linguex.sty
+%% Author: Wolfgang.Sternefeld@uni-tuebingen.de
+%% fileversion 2.0
+%% filedate 99/05/04
+
+\RequirePackage{linguex}
+\newif\ifcopytohandout
+\DeclareOption{*}{\copytohandouttrue}
+\ProcessOptions
+\let\copyoflabel=\label
+\let\copyofex=\ex
+\let\copyofexi=\exi
+\let\copyofexg=\exg
+\let\copyofexig=\exig
+\let\copyofexgi=\exgi
+\let\copyofa=\a
+\let\copyofag=\ag
+\let\copyofai=\ai
+\let\copyofaig=\aig
+\let\copyofagi=\agi
+\let\copyofsection=\section
+\let\copyofsubsection=\subsection
+\let\copyofsubsubsection=\subsubsection
+\let\copyofsetlength=\setlength
+\let\copyofsettowidth=\settowidth
+\let\copyofresetExdefaults=\resetExdefaults
+\let\copyofmaketitle=\maketitle
+\let\copyofA=\A
+\newwrite\han\immediate\openout\han=\jobname.han
+\def\MakeOther #1{\catcode`#1 = 12}
+\def\MkOthersSpecial{%
+ %\MakeOther{\§}%to be copied for all active characters
+ %\MakeOther{\Š}
+ %\MakeOther{\š}
+ %\MakeOther{\€}
+ %\MakeOther{\…}
+ %\MakeOther{\†}
+ %\MakeOther{\Ÿ}
+ %\MakeOther{\"}
+ }%This definition must be uncommented if any of\
+ %% the characters in the above definition are \active
+%\def\MkOthersSpecial{}%This line must be uncommented if any of
+%% the characters in the above definition are \active
+\def\ChangeCatCodes{\begingroup%
+ \immediate\write\han{ }%
+ \MkOthersSpecial%
+ \def\do##1{\catcode`##1=12}\dospecials%
+ %\catcode`\%=14
+ \catcode`\{=1\catcode`\}=2%
+ \catcode`\^^M=12\newlinechar=`\^^M}%
+{\catcode`\^^M=12%
+ \gdef\@WriteEx#1#2^^M^^M{\catcode`\^^M=5%
+ \immediate\write\han{\noexpand#1#2}\endgroup%
+ \immediate\write\han{\string\par}}%
+}
+\def\maketitle{\relax}
+\def\a.#1\par{\relax}
+\def\ag.#1\par{\relax}
+\def\ai.#1\par{\relax}
+\def\agi.#1\par{\relax}
+\def\aig.#1\par{\relax}
+\def\exi.#1\par{\relax}
+\def\exig.#1\par{\relax}
+\def\exgi.#1\par{\relax}
+\def\A.#1\par{\relax}
+\def\ex{\ChangeCatCodes\@WriteEx{\ex}}
+\def\exg{\ChangeCatCodes\@WriteEx{\exg}}
+\def\a{\ChangeCatCodes\@WriteEx{\a}}
+\def\ag{\ChangeCatCodes\@WriteEx{\ag}}
+\def\ai{\ChangeCatCodes\@WriteEx{\ai}}
+\def\agi{\ChangeCatCodes\@WriteEx{\agi}}
+\def\aig{\ChangeCatCodes\@WriteEx{\aig}}
+\def\exi{\ChangeCatCodes\@WriteEx{\exi}}
+\def\exig{\ChangeCatCodes\@WriteEx{\exig}}
+\def\exgi{\ChangeCatCodes\@WriteEx{\exgi}}
+\def\A{\ChangeCatCodes\@WriteEx{\A}}
+\def\resetExdefaults{\immediate\write\han{\noexpand\resetExdefaults}}
+{\catcode`\^^M=12%
+ \gdef\@WriteCommand#1#2{\catcode`\^^M=5%
+ \immediate\write\han{\noexpand#1{#2}}\endgroup}%
+}
+{\catcode`\^^M=12%
+ \gdef\@WriteTwoArgCommand#1#2#3{\catcode`\^^M=5%
+ \immediate\write\han{\noexpand#1{#2}{#3}}\endgroup}%
+}
+\def\subsubsection{\@ifstar{\subsubsectionstar}%
+ {\ChangeCatCodes\@WriteCommand{\subsubsection}}}
+\def\subsection{\@ifstar{\subsectionstar}%
+ {\ChangeCatCodes\@WriteCommand{\subsection}}}
+\def\section{\@ifstar{\sectionstar}{\ChangeCatCodes\@WriteCommand{\section}}}
+\def\setlength{\ChangeCatCodes\@WriteTwoArgCommand{\setlength}}
+\def\settowidth{\ChangeCatCodes\@WriteTwoArgCommand{\settowidth}}
+\ifcopytohandout
+ \def\subsubsectionstar{\ChangeCatCodes\@WriteCommand{\subsubsection*}}
+ \def\subsectionstar{\ChangeCatCodes\@WriteCommand{\subsection*}}
+ \def\sectionstar{\ChangeCatCodes\@WriteCommand{\section*}}
+\else
+ \def\subsubsectionstar{\relax}
+ \def\subsectionstar{\relax}
+ \def\sectionstar{\relax}
+\fi
+\long\def\footnote#1{\relax}
+\def\makehandout{\immediate\closeout\han\newpage%
+ \setcounter{page}{1}\setcounter{ExNo}{0}%
+ \def\maketitle{\copyofmaketitle}
+ \def\a{\copyofa}
+ \def\ag{\copyofag}
+ \def\ai{\copyofai}
+ \def\aig{\copyofaig}
+ \def\agi{\copyofagi}
+ \def\ex{\copyofex}
+ \def\exg{\copyofexg}
+ \def\exi{\copyofexi}
+ \def\exig{\copyofexig}
+ \def\exgi{\copyofexgi}
+ \def\resetExdefaults{\copyofresetExdefaults}
+ \def\subsubsection{\copyofsubsubsection}
+ \def\subsection{\copyofsubsection}
+ \def\section{\copyofsection}
+ \def\setlength{\copyofsetlength}
+ \def\settowidth{\copyofsettowidth}
+ \def\A{\copyofA}
+ \maketitle%
+ \input \jobname.han}
+\endinput
diff --git a/Master/texmf-dist/tex/latex/linguex/ps-trees.sty b/Master/texmf-dist/tex/latex/linguex/ps-trees.sty
new file mode 100644
index 00000000000..00855bd4417
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/linguex/ps-trees.sty
@@ -0,0 +1,82 @@
+%% Copyright 1999 Wolfgang Sternefeld
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt; either
+%% version 1 of the License, or any later version.
+%% ps-trees.sty version 2
+%% Author: Wolfgang.Sternefeld@uni-tuebingen.de
+%% filedate 99/27/04
+\RequirePackage{tree-dvips}
+\newtoks\AllNodes
+\newtoks\CollectedNodes
+\newtoks\CollectedTNodes
+\newif\ifIsElement
+\newlength{\MinNodeWidth}
+\newlength{\NodeWidth}
+\newcommand{\NodeWidthNo}[1]{\setlength{\MinNodeWidth}{\the\wd#1}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newif\ifTNode
+\newcommand{\AddToToks}[2]{%
+ \expandafter\expandafter\expandafter%
+ \global#1\expandafter{%
+ \the#1#2}}
+\def\TestAndAdd#1{\def\yy{#1}%
+ \ifx\yy\empty\relax\else%
+ \ifTNode\AddToToks{\CollectedTNodes}{\\{#1}}%
+ \else\AddToToks{\CollectedNodes}{\\{#1}}\fi\fi
+ \IfIsNodeName{#1}%
+ \typeout{*** Warning: Node Name `#1' already exists ***}\fi
+ }
+\let\oldnode=\node
+\newenvironment{psTree}{\tabcolsep0pt\nodemargin0pt%
+ \def\node##1##2{\AddToToks{\AllNodes}{\\{##1}}\oldnode{##1}{##2\strut}}%
+ }%
+ {\let\\=\EveryNode\the\CollectedNodes%
+ \let\\=\EveryTNode\the\CollectedTNodes%
+ \global\AllNodes={}\global\CollectedNodes={}\global\CollectedTNodes={}%
+ \global\setlength{\MinNodeWidth}{0pt}%\hspace{\fill}
+ }
+\newcommand{\EveryNode}[1]{\ConnectNode#1 }
+\newcommand{\EveryTNode}[1]{\ConnectTNode#1 }
+\def\ConnectNode#1#2 {\IfIsNodeName{#2}\nodeconnect{#2}{#1#2}%
+ \else\NoNodeWarning{#2}\fi}
+\def\ConnectTNode#1#2 {\IfIsNodeName{#2}\nodeconnect{#2}[tl]{#1#2}%
+ \nodeconnect{#2}[tr]{#1#2}\nodeconnect[tl]{#1#2}[tr]{#1#2}%
+ \else\NoNodeWarning{#2}\fi}
+\newcommand{\IsElementOf}[2]{\IsElementfalse\def\xx{#1}\bgroup
+ \let\\=\Compare\the#2\egroup}
+\newcommand{\IfIsNodeName}[1]{\IsElementOf{#1}{\AllNodes}\ifIsElement}
+\newcommand{\Compare}[1]{\def\yy{#1}\ifx\yy\xx\global\IsElementtrue\fi}
+\newcommand{\NoNodeWarning}[1]{\typeout{*** Fatal Error. Node Name `#1'
+ does'nt exist ***}}
+\newenvironment{treetab}{\begin{psTree}\begin{tabular}}{\end{tabular}%
+ \end{psTree}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\Node}{\@ifnextchar[{\OptionNode}{\@Node}}
+\newcommand{\@Node}[2]{\TestAndAdd{#1}\settowidth{\NodeWidth}{#2}%
+ \ifdim\NodeWidth<\MinNodeWidth%
+ \makebox[\MinNodeWidth]{\hfill\node{#1}{#2}\hfill}%
+ \else\node{#1}{#2}%
+ \fi}
+\def\OptionNode[#1]#2#3{\TestAndAdd{#2}\makebox[\the\wd#1]{\hfill
+ \node{#2}{#3}\hfill}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\NodeNo}[1]{\@ifnextchar[{\OptionNodeNo{#1}}{\@NodeNo{#1}}}
+\newcommand{\@NodeNo}[2]{\@Node{#2}{\unhcopy#1}}
+\def\OptionNodeNo#1[#2]#3{\TestAndAdd{#3}%
+ \makebox[\the\wd#2]{\hfill\node{#3}{\unhcopy#1}\hfill}}
+\newcommand{\NodeZ}[2]{\TestAndAdd{#1}%
+ \hfill\node{#1}{\makebox[0pt]{#2\strut}}}
+\newcommand{\NodeT}[2]{\TNodetrue
+ \Node{#1}{#2}\TNodefalse}
+\newcommand{\NodeZT}[2]{\TNodetrue\TestAndAdd{#1}%
+ \hfill\makebox[0pt]{\node{#1}{#2\strut}}\TNodefalse}
+\let\NodeTZ=\NodeZT
+\newcommand{\NodeTNo}[2]{\TNodetrue\NodeNo{#1}{#2}\TNodefalse}
+\newcommand{\NodeZTNo}[2]{\hfill\makebox[0pt]{\NodeTNo{#1}{#2}}}
+\let\NodeTZNo=\NodeZTNo
+\newcommand{\nodeZ}[2]{\IfIsNodeName{#1}%
+ \typeout{*** Warning: Node Name `#1' already exists ***}\fi
+ \hfill\node{#1}{\makebox[0pt]{#2}}}
+%%%%%%%%%%%%%%%%%%%% END %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+