diff options
author | Karl Berry <karl@freefriends.org> | 2007-12-25 19:59:46 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-12-25 19:59:46 +0000 |
commit | 45330fd64d73a7d3af25462ac003ac49e56f7a09 (patch) | |
tree | 11af70d833f6fbafe2f3a5e2f1c6b9bcb240bc22 /Master/texmf-dist | |
parent | dc73e95749999fd0f8f29353c34a46010f26c643 (diff) |
add package gb4e (05dec05)
git-svn-id: svn://tug.org/texlive/trunk@5907 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/gb4e/gb4e-doc.pdf | bin | 0 -> 166818 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/gb4e/gb4e-doc.tex | 439 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/gb4e/cgloss4e.sty | 165 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/gb4e/gb4e.sty | 316 |
4 files changed, 920 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/gb4e/gb4e-doc.pdf b/Master/texmf-dist/doc/latex/gb4e/gb4e-doc.pdf Binary files differnew file mode 100644 index 00000000000..1786e246ade --- /dev/null +++ b/Master/texmf-dist/doc/latex/gb4e/gb4e-doc.pdf diff --git a/Master/texmf-dist/doc/latex/gb4e/gb4e-doc.tex b/Master/texmf-dist/doc/latex/gb4e/gb4e-doc.tex new file mode 100644 index 00000000000..d9293034a94 --- /dev/null +++ b/Master/texmf-dist/doc/latex/gb4e/gb4e-doc.tex @@ -0,0 +1,439 @@ +% -*- LaTeX -*- +%%%% Latex2e: +\documentclass[11pt,a4paper]{article} +\usepackage{gb4e} +%%%% LaTeX209: +%\documentstyle[a4,11pt,gb4e]{article} +%% +\def\bs{$\backslash$} +\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.~deGroot, + 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.~de Groot's plain\TeX{} Midnight gloss + macros.} and {\tt cgloss\gbVersion.sty}} +\author{hans-peter kolb $<${\sf kolb@sfs.nphil.uni-tuebingen.de}$>$\\ +Craig Thiersch $<${\sf thiersch@kub.nl}$>$} +\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}. + + As time permits, we'd like to revise the rest of {\tt + gb\gbVersion.sty}, so please experiment and let us know about + bugs and/or suggestions.} + 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 the +\verb'documentstyle' and the \verb'\begin{document}' lines). + +\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 is governed by the +\verb,\judgewidth{<string>}, command 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.\ deGroot'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 \verb"\it" if required for a particular journal), just put +the appropriate lines in the preamble of your document, e.g., +\verb"\let\eachwordone=\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}} 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. +\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/Master/texmf-dist/tex/latex/gb4e/cgloss4e.sty b/Master/texmf-dist/tex/latex/gb4e/cgloss4e.sty new file mode 100644 index 00000000000..eedaf886e00 --- /dev/null +++ b/Master/texmf-dist/tex/latex/gb4e/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/gb4e/gb4e.sty b/Master/texmf-dist/tex/latex/gb4e/gb4e.sty new file mode 100644 index 00000000000..b212ba00f61 --- /dev/null +++ b/Master/texmf-dist/tex/latex/gb4e/gb4e.sty @@ -0,0 +1,316 @@ +% -*- 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. de Groot en M. +% Covington. Full documentation soon to come in gb4doc.tex. Bug-reports +% and suggestions for improvements, other used features, please! +% +% 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. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%% +% 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 lazyness (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 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\@ifundefined{new@fontshape}{\def\reset@font{}\let\mathrm\rm\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{\bf} %Introduction of technical terms with alternative style: +%\def\tx{\em} + +\input{cgloss\gbVersion.sty} + +%%% NEWSTUFF: +\newcommand{\indexgroupmark}[1]{\item{\bf #1}} % ?? -CT + +% this allows _ to be used in horizontal mode (from J.Frampton): +\catcode`_=\active +\def_#1{\ifmmode\mathit{\sb{#1}}\else${}\sb{#1}$\fi} +\catcode`^=\active +\def^#1{\ifmmode\mathit{\sp{#1}}\else${}\sp{#1}$\fi} + +\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} + +%%%% adapted from latex.tex to get examples in footnotes right +\long\def\@footnotetext#1{% + \@noftnotefalse\setcounter{fnx}{0}% + \insert\footins{\reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext + {\rule{\z@}{\footnotesep}\ignorespaces + #1\strut}}\@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} |