| % -*- 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 ([email protected]). |
| % 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 |