blob: b212ba00f618867aa72fbd8e3491af30b67c0aa5 [file] [log] [blame]
% -*- 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 <[email protected]>).
\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}