diff options
Diffstat (limited to 'macros/plain/contrib/lextex')
-rw-r--r-- | macros/plain/contrib/lextex/example1.tex | 215 | ||||
-rw-r--r-- | macros/plain/contrib/lextex/lextex.tex | 4273 | ||||
-rw-r--r-- | macros/plain/contrib/lextex/ltman.tex | 1656 | ||||
-rw-r--r-- | macros/plain/contrib/lextex/read.me | 103 | ||||
-rw-r--r-- | macros/plain/contrib/lextex/rhlocal.tex | 31 | ||||
-rw-r--r-- | macros/plain/contrib/lextex/ruled.tex | 62 | ||||
-rw-r--r-- | macros/plain/contrib/lextex/solicit.tex | 112 | ||||
-rw-r--r-- | macros/plain/contrib/lextex/txs.doc | 569 | ||||
-rw-r--r-- | macros/plain/contrib/lextex/txsruled.tex | 409 |
9 files changed, 7430 insertions, 0 deletions
diff --git a/macros/plain/contrib/lextex/example1.tex b/macros/plain/contrib/lextex/example1.tex new file mode 100644 index 0000000000..4f673d6aec --- /dev/null +++ b/macros/plain/contrib/lextex/example1.tex @@ -0,0 +1,215 @@ +% This is a demonstration file, intended to show what LeXTeX does. +% The method of processing it depends upon whether you have turned +% LeXTeX into a format file or not. If you have not you should type +% +% TEX &PLAIN EXAMPLE1 +% +% If LeXTeX has been converted into a format file the command is +% TEX &LEXTEX EXAMPLE1 +% +% In the latter case the line further down which reads +% "\input lextex" can be deleted although leaving it alone will +% not cause any problem. +% +% In TeX everything that follows a percent sign (%) is a comment. +% As a result, these lines will not show up in the final +% printed document. +% You can, of course, amend the file in whatever way you choose +% (although some amnedments are likely to have odd effects) +% +% The next few lines provide some information used in processing +% the file. The command \bstitle need only be used when formatting +% an Opinion or a draft in a non-litigious matter. It sets the +% title to be used on the backsheet. +% +% \solsref is the Solicitors' internal refererence. +% +% \colsref is the ACE case reference, omitting Counsel's initials. +% +% (These will be set by the command \col{XYZ} in the rhlocal.tex +% file which accompanies LeXTeX. The signature at the end is +% produced by the command \counsel{JOHN SMITH} in the same file.) +% +% The remaining commands provide information to the Clerks for +% charging purposes. +% +% It may be found useful to keep a copy of these commands in a +% separate file or in a macro. +% +% Note that in the clauses which follow various commands are +% surrounded by vertical bar characters (|). Do not type +% these bars. They are there simply to enable the command name +% to be printed in the file instead of being interpeted +% by LeXTeX. + + +\input lextex +\bstitle{} +\solsref{} +\colsref{SUEGRA/2} % Omit Counsel's initials +\timetaken{} % hours \casetype{} +\value{} % omit pound sign +\difficulty{} % out of 10 +\proposedfee{} % omit pound sign +\legalaidno{} +\comment{} + +% The next command tells LeXTeX that the case is in the Chancery +% Division. It can be altered to \qb or \family. It can also be +% given the full (or partial) case reference, eg \ch{1991 X 1234} +% or \qb{1989}. + +\ch + +\plaintiff{ANTHONY ARCHER} + +\plaintiff{JOSEPH GRUNDY} + +\defendant{BRIAN ALDRIDGE} + +\defendant{JENNIFER ALDRIDGE} +\defendant{FRED BLOGS} + +\writ + +\cl This file is intended to demonstrate various things, +such as the way in which the names and addresses of the +parties are formatted. If the command |\writ| immediately +above this clause is changed to |\os| the file will be +formatted as an Originating Summons. + +\cl The addresses of the parties will be left blank in the +writ or originating summons. If they are know they can be +inserted by using the command |\of{Brookfield Farm, +Ambridge}|. Two parties having the same address can be linked +by the word |\and|; this will, as might be expected, insert +``and'' between their names. If there are, say, three +parties having the same address the first two can be linked +by |\nand| and the second and third by |\and|. (The macros +which achieve this are not yet perfect, however.) If one +address is given, then an address must be given for all +parties, even if it takes the form |\of{\noaddr}|. + + +\cl \TeX\ can produce various accents, although there are +not, of course, many accented English words. Here are a few +accents. Pr\^et \`a na\"\i ve. + +\cl The Plaintiffs were induced to enter into an agreement +by the representation of the Defendants that the Defendants +had an account at the Borchester Branch of B.C.C.I. from +which a certain sum would be paid. The representation was +implied by the drawing of a cheque by the Defendants. The +representation was untrue in that the Defendants had no such +account. The representation was made falsely and +fraudulently by the Defendants in order to induce the +Plaintiffs to deliver a motor car to the Defendants. This +paragraph has been adapted from Volume~39 of \bo Atkin's +Court Forms\ok and is as such is no doubt copyright +(\copyright) Butterworths. + +\cl Note that one of the items set out at the top of the +file and referred to above is |\colsref{SUEGRA/2}|. This is +the case reference as it appears in the ACE accounting +system. \LeXTeX\ extracts Sue Grabbit \& Runne's name and +address from a file and inserts it into the proper place in +this document. Note that |SUEGRA| must be in capitals and +that the initials of the Counsel concerned are set in the +|RHLOCAL| file which accompanies \LeXTeX. + +\cl If this is an Originating Summons then of course the +next command should be removed. + +\claim + +\cl An Order that the Defendants should do something or +other + +\cl Liberty to apply + +\cl Costs + +\amended\soc + +\cl The command |\soc| produceds a Statement of Claim. If it +is changed to, for example, |\defence| the format of the +document will change. (Note that if a Writ and a Defence are +inclided in the same file \LeXTeX\ may become slightly confused +as to which party you are acting.) The command |\amended| +produces an amended Statement of Claim or other document. + +\cl The \forwhom\ \wants\ that the statements of the +\notforwhom\ are a load of piffle. (It is not, of course, +normal to use {\tt\string\forwhom}, {\tt\string\notforwhom} +and {\tt\string\wants} in this way; you are expected to +know for whom you act.) + +\cl How about an accent or two? Pr\^et \`a na\"\i ve. + +\cl The Plaintiffs were induced to enter into an agreement +by the representation of the Defendants that the Defendants +had an account at the Borchester Branch of B.C.C.I. from +which a certain sum would be paid. {\xo The representation +was implied by the drawing of a cheque by the Defendants.} +{\ul The representation was contained in a letter from the +Defendants to the Plaintiffs dated the 20th July 1991.} The +representation was untrue in that the Defendants had no such +account. The representation was made falsely and +fraudulently by the Defendants in order to induce the +Plaintiffs to deliver a motor car to the Defendants. This +paragraph has been adapted from Volume~39 of \bo Atkin's +Court Forms\ok and is as such no doubt copyright +(\copyright) Butterworths. + +{\ul\acl This is an additional clause + +\acl This is another} + +\claim + +\cl An Order that the Defendants should do something or +other + +\cl Liberty to apply + +\cl Costs + +\deponent{JACK WOOLEY} + \of{Gray Gables, Ambridge, Borchester} + \occupation{Hotel Proprietor} + +\affidavit + +\cl The command |\deponent| must precede the command +|\affidavit|. The commands |\of{[address]}| and +|\occupation{[Occupation]}| are optional; if they are +omitted a suitable comment will be added. + +\cl I am the owner of the above-mentioned hotel. + +\cl There is now \exhibited the Conveyance of it to me dated +the 1st April 1955. Note that the exhibits are automatically +numbered by the cfommand |\exhibited| and the similar +command |\bundled|. + +\cl The accounts for the last five years are now \bundled. + +\cl If an affidavit is the only document in the file \LeXTeX\ +will assume that it is to be filed on behalf of the +Defendant(s). If this is not the case it should be preceded +by the command |\clientpltrue|. + +\cl This paragraph is included simply to bulk things out a +little bit so that the affidavit extends over onto the next +page. + +\opinion +I have settled the appropriate documents for the +consideration of my Instructing Solicitors. I have no +comments to make on them. + +To change this Opinion into an Advice, simply change |\opinion| +at the top of the file to |\advice|. + +\bye + diff --git a/macros/plain/contrib/lextex/lextex.tex b/macros/plain/contrib/lextex/lextex.tex new file mode 100644 index 0000000000..e6c82ec134 --- /dev/null +++ b/macros/plain/contrib/lextex/lextex.tex @@ -0,0 +1,4273 @@ +%$Log: TeX $ +%Revision 1.1 91/10/30 15:08:24 RC-HH +%Initial revision +% Amendments made 08/11/91 +% \colsref amended (/ deleted) +% \getaddress amended (/ added) +% \bsdft altered by adding conditionals (ifx sols, sref, cref) +% \nsnbp changed to \nsnbps (\space added) and \nsn added +% The names of these should, perhaps be changed to include @ +% Alterations to \xref and \newxref to ensure correct updating +% Alteration to \arrangement +% \global added in \party in one place. May need adding in others +% Alterations to \chittitle (for use in \faxsheet) +% Minor alteration to \advising +% Alteration to \familydivision and to \family and assoc macros +% \pleadingtrue added to \ch etc, \pleading false as default +% Alteration to affidavit to correct error +% \clientpltrue added in \specialwrit +% \sjsummons altered: do same to others +% \origprocess : \par added after #2 +% \widowpenalty added to \pageparameters and \draftparameters +% \string added in \write statement in \schedule +% Alterations to \schedref and \appendref to deal with singles +% Added \pararef = to \clref +% Minor alterations to correct pagenumbering---check +% Duplicate definition of \faxsheet removed +% \everyjob added +% Minor alterations re \workdone +% Minor alteration to \plainoutput. \count1 & 2 swapped +% 12 Nov 91 Alteration made to \maxpartywidth +% and to \resetpleadingdefaults +% Many %% removed +% 20 Nov 1991 +% Minor alterations to \today and \everyjob +% \makeatletter \makeatother added +% time macros (taken from gentle.tex) added +% 21 Nov 1991 +% TUBboat.sty macros added to remove spaces +% \oldquotes and ancilliary macros added +% \futureday etc and \dayofweek added + + +% This is LeXTeX, by Roger C-H. Horne. +% Some of it is original, and some is not. +% e.g., it takes chunks from manmac.tex relating to font sizing +% and amends those to include poundsigns +% It also takes footnotes from AMSptt.sty +% And uses a number of macros that have appeared in TUGboat +% +% The present version is an amalgamation of two files---and it shows. +% +% Last modified 21th November 1991 + +% Introduction (ie general purpose stuff) +% +\newif\ifdebugging +\def\dbhelp#1{\ifdebugging\inform{#1}\fi} +\debuggingfalse + +\ifx\lextexisloaded\relax\message{ - already loaded} + \afterassignment\endinput + \else\let\lextexisloaded=\relax + \fi + +\def\fmtname{LeXTeX}\def\fmtversion{1.005} +\message{Version \fmtversion} + +\catcode`@=11 % Turn the `at' sign into a letter. +\catcode`\^=7 % Ensure that ^ is superscript. +%\catcode`\|=12% Ensure that | is `other'. + +% time macros +\newcount\hour \newcount\minute +\def\mm@{\ifnum \minute<10 0\fi\number\minute} +\def\writetime{\hh@\mm@\space\am@pm} + +\everyjob{% + \hour=\time \divide \hour by 60 + \minute=\time + \loop \ifnum \minute > 59 \advance \minute by -60 \repeat + \ifnum \hour<13 + \def\hh@{\number\hour:}% % supresses leading 0's + \def\am@pm{\ifnum \hour < 12 a.m.\else p.m.\fi} + \else \advance \hour by -12 + \def\hh@{\number\hour:}% % supresses leading 0's \fi + \def\am@pm{\ifnum \hour > 11 a.m.\else p.m.\fi} + \fi + \inform{}% + \inform{This is LeXTeX, Version \fmtversion, running at \writetime}% + \inform{\space\space on the \today.}% + \inform{}% + \inform{Comments and bug reports to}% + \inform{}% + \inform{\space\space Roger Horne}% + \inform{\space\space 7 New Square}% + \inform{\space\space Lincoln's Inn}% + \inform{\space\space London WC2A 3QS}% + \inform{\space\space rhorne@cix.compulink.co.uk}% + \inform{}% + } + +% LeX TeX logo---looking distinctly similar to \LaTeX... +% +\def\LeXTeX{L\kern-.25em\raise.5ex\hbox{ex}T\kern-.1667em\lower + .5ex\hbox{E}\kern-.125emX} +% The LaTeX logo sometimes looks like this (it varies a little) +\def\LaTeX{{\rm L\kern-.36em\raise.3ex\hbox{\scaps a}\kern-.15em + T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} + + +% Part 1 - Fonts etc--- + +% Main maths + roman--- + +\font\tentex=cmtex10 +\font\twelverm=cmr12 +\font\ninerm=cmr9 +\font\eightrm=cmr8 +\font\sixrm=cmr6 +\font\fiverm=cmr5 + +% Maths italic--- + +\font\twelvei=cmmi12 +\font\ninei=cmmi9 +\font\eighti=cmmi8 % This is used as a scriptfont +\font\sixi=cmmi6 % reinstated for the time being +\skewchar\twelvei='177 +\skewchar\ninei='177 \skewchar\eighti='177 +\skewchar\sixi='177 + +% Math symbols--- + +\font\twelvesy=cmsy10 scaled \magstep1 +\font\ninesy=cmsy9 +\font\eightsy=cmsy8 % used as a scriptfont +\font\sixsy=cmsy6 % reinstated +\skewchar\twelvesy='60 +\skewchar\ninesy='60 +\skewchar\eightsy='60 +\skewchar\sixsy='60 + +% Bold extended--- + +\font\twelvebf=cmbx12 +\font\ninebf=cmbx9 + +% Typewriter style--- + +\font\twelvett=cmtt12 % Now not using proportional version +%\font\twelvett=cmvtt10 scaled \magstep1 +%\font\tentt=cmvtt10 +\font\tentt=cmtt10 +\font\ninett=cmtt9 + +% Slanted type--- + +\font\twelvesl=cmsl12 +\font\ninesl=cmsl9 + +% Italic--- + +\font\twelveit=cmti12 +\font\nineit=cmti9 + +% Odd fonts--- + +\font\headerfont=cmr12 scaled \magstep1 +\font\titlefont=cmr12 scaled \magstephalf + +% Now the poundsign fonts: + +\font\tenu=cmu10 % unslanted text italic +\font\twelveu=cmu10 scaled \magstep1 +\font\tentiit=cmitt10 + +% And the caps and small caps fonts: + +\font\fourteencaps=cmcsc10 scaled \magstep2 +\font\twelvecaps=cmcsc10 scaled \magstep1 +\font\tencaps=cmcsc10 + +% The underline and cross-out macros + +\def\gobble#1{} + +\def\changefont#1{% + \edef\testfontname{#1\fontname\font}% + \edef\testfont{\expandafter\string\the\font}% + \edef\testtwo{#1\expandafter\gobble\testfont}% + \edef\testthree{\csname\testtwo\endcsname}% + \expandafter\ifx\csname\testtwo\endcsname\relax + \global\expandafter\font\testthree\expandafter=\testfontname + \fi\ignorespaces + \let\temppounds=\pounds + \testthree\ignorespaces} + +\gdef\ul{\changefont{u} + \def\pounds{% + \setbox1\hbox{\temppounds}% + \setbox2\hbox{p}% + \copy1\kern-\wd1 + \vrule depth .6\dp2 height -.45\dp2 width\wd1 + \relax}% + } + +\gdef\xo{\changefont{x} + \def\pounds{% + \setbox1\hbox{\temppounds}% + \setbox2\hbox{p}% + \copy1\kern-\wd1 + \vrule depth -.35ex height .45ex width\wd1 + \relax}% + } + +\def\xu{\changefont{xu}} +\let\xul\xu + +% The next ones are at present somewhat abbreviated +% ie, poundsigns will not be crossed-out or underlined properly + +\gdef\uul{\changefont{uu}} +\gdef\xxo{\changefont{xx}} +\gdef\uuul{\changefont{uuu}} +\gdef\xxxo{\changefont{xxx}} + +% It will also be necessary in due course to define +% \def\xxu - inserted by am1, deleted by am2 +% \def\xxxu - inserted by am1, deleted by am3 +% \def\xxxuu - inserted by am2, deleted by am3 + +% Part 2 - Dimensions, etc. + +\newdimen\footindent % fn indentation +\newdimen\clindent % clause indentation +\newdimen\sclindent % sub-clause indentation +\newdimen\ssclindent +\newdimen\sssclindent +\newdimen\ssssclindent +\newdimen\sssssclindent +\newdimen\cnindent % "computer-numbering" indentation +\newdimen\hclindent % hanging indentation +\newdimen\hsclindent +\newdimen\hssclindent +\newdimen\hsssclindent +\newdimen\hssssclindent +\newdimen\hsssssclindent +\newdimen\quoteindent % indentation of quotations +\newdimen\quoteparindent % \parindent in quotes +\newdimen\clbox % box holding \cl in \clcont +%\newdimen\sclbox % not used yet +%\newdimen\ssclbox +%\newdimen\sssclbox +%\newdimen\ssssclbox +%\newdimen\sssssclbox +\newdimen\signindent % indentation of signature +\newdimen\rbracketsize % size of brackets round sworn, etc +\newdimen\lbracketsize +\newdimen\brackdepth % Depth of space in sworn etc +\newdimen\notespace % space marginal notes--text +\newdimen\maxnote % width of marginal note +\newdimen\clnamelength % length of "clause" in contents macros +\newdimen\pagewidth % alternative name for \hsize +\newdimen\pageheight % alternative name for \vsize + +\newcount\footmarkcount@ % No. of footnotes +\newcount\recno % recitals +\newcount\clno % clauses and sub-clauses +\newcount\sclno +\newcount\ssclno % sub-sub etc +\newcount\sssclno +\newcount\ssssclno +\newcount\sssssclno +\newcount\greekno % see \ssscl & \sssscl +\newcount\cardno % see \sssscl & \ssssscl +\newcount\exno % Exhibits in affidavits +\newcount\clauselevel +\newcount\ssdcount \ssdcount=0 % new +\newcount\schedcount \schedcount=0 +\newcount\partcount \partcount=0 + +\newskip\quoteparskip %parskip in quotes +\newskip\ttglue +\newskip\blankskip % Used in \noaddr etc +\newskip\twelvebase % \normalbaselines (12pt type) +\newskip\tenbase % \normalbaselines (10pt type) +\newskip\ninebase % \normalbaselines (9pt type) +\newskip\twelvesmallskipamount % TB p. 349 +\newskip\tensmallskipamount +\newskip\ninesmallskipamount +\newskip\twelvemedskipamount +\newskip\tenmedskipamount +\newskip\ninemedskipamount +\newskip\twelvebigskipamount +\newskip\tenbigskipamount +\newskip\ninebigskipamount +\newskip\settledgap % distance between settled & sig. +\newskip\clskip % vskip for clauses +\newskip\sclskip % vskip for sub-clauses +\newskip\ssclskip % ditto ss-clauses +\newskip\sssclskip % ditto sss-clauses + +\newif\ifgreek % see \sssscl +\newif\ifcard % see \ssssscl +\newif\ifclind % hanging indentation in clauses +\newif\ifcontents % table of contents produced +\newif\ifnocommaindate % used in \today +\newif\ifq % Used (?) in the quote macros +\newif\ifxrfmissing % cross-refs file +\newif\ifvisible % used in contents +\newif\ifmarginalnotes % if true, notes in margin +\newif\ifxrefs % check this +\newif\ifoldxrffile % +\newif\ifindex +\newif\iffullsize \fullsizefalse% Whether fullsize backsheet +\newif\ifdraft \drafttrue% Draft or engrossment +\newif\ifpleading % No date req'd for pleadings +\newif\ifucfirstline % \ucfirstlinetrue +\newif\ifchit % print a fee chit +\newif\ifendorsement \endorsementfalse + +\newread\xrf +\newread\inx + +\newwrite\cont +\newwrite\inx +\newwrite\xrf + + +% Part 3 - Now add the poundsign macros: + +\def\rmpo{\leavevmode\lower.055ex\hbox{\$}\kern-.0em} +\def\itpo{\leavevmode\lower.055ex\hbox{\$}\kern-.09em} +\def\slpo{\leavevmode\lower.055ex\hbox{\$}\kern-.07em} +\def\bfpo{\leavevmode\pmb{\lower.025ex\hbox{\$}\kern-.04em}} +\def\ttpo{\leavevmode\lower.0ex\hbox{\$}\kern0em} +\def\ttkludgepo{\leavevmode\epmb{\lower.0ex\hbox{\$}\kern-.0em}} + +\def\pmb#1{\setbox0=\hbox{#1}% Poor man's bold + \kern-.025em\copy0\kern-\wd0 + \kern.05em\copy0\kern-\wd0 + \kern-.025em\raise.0003em\box0 } + +\def\epmb#1{\setbox0=\hbox{#1}% Extremely poor man's bold + \kern-.005em\copy0\kern-\wd0 + \raise.015em\copy0\kern-\wd0 + \kern.01em\copy0\kern-\wd0 + \kern-.005em\raise.015em\box0 } + + +% Part 4 - The size-changing macros + +% These are adapted from the 10-point manmac macros +% Script and scriptscrip removed except in \rm + +\def\twelvepoint{\def\rm{\def\pounds{{\twelveu\rmpo}}\fam0\twelverm}% + \textfont0=\twelverm \scriptfont0=\eightrm \scriptscriptfont0=\sixrm + \textfont1=\twelvei \scriptfont1=\eighti \scriptscriptfont1=\sixi + \textfont2=\twelvesy \scriptfont2=\eightsy \scriptscriptfont2=\sixsy + \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex + \def\it{\def\pounds{{\itpo}}\fam\itfam\twelveit}% + \textfont\itfam=\twelveit + \def\sl{\def\pounds{{\twelveit\slpo}}\fam\slfam\twelvesl}% + \textfont\slfam=\twelvesl + \def\bf{\def\pounds{{\twelveu\bfpo}}\fam\bffam\twelvebf}% pmb poundsign + \textfont\bffam=\twelvebf + \def\tt{\def\pounds{{\tenu\ttkludgepo}}\fam\ttfam\twelvett}% ! poundsign + \textfont\ttfam=\twelvett + \tt \ttglue=.5em plus.25em minus.15em % not needed for cmvtt fonts + \normalbaselineskip=\twelvebase + \smallskipamount=\twelvesmallskipamount + \medskipamount=\twelvemedskipamount + \bigskipamount=\twelvebigskipamount + \def\caps{\def\pounds{~}\fourteencaps}% don't use the pound sign + \def\scaps{\def\pounds{{\twelveu\rmpo}}\twelvecaps}% + \setbox\strutbox=\hbox{\vrule height.7\normalbaselineskip + depth.3\normalbaselineskip width\z@}% + \normalbaselines\rm} +% consider changing normalbaselineskip to \the\twelvebase + +\def\tenpoint{\def\rm{\def\pounds{{\tenu\rmpo}}\fam0\tenrm}% + \textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm + \textfont1=\teni + \textfont2=\tensy + \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex + \def\it{\def\pounds{{\itpo}}\fam\itfam\tenit}% + \textfont\itfam=\tenit + \def\sl{\def\pounds{{\tenit\slpo}}\fam\slfam\tensl}% + \textfont\slfam=\tensl + \def\bf{\def\pounds{{\tenu\bfpo}}\fam\bffam\tenbf}% + \textfont\bffam=\tenbf + \def\tt{\def\pounds{{\tentiit\ttpo}}\fam\ttfam\tentt}% + \textfont\ttfam=\tentt + \tt \ttglue=.5em plus.25em minus.15em + \smallskipamount=\tensmallskipamount + \medskipamount=\tenmedskipamount + \bigskipamount=\tenbigskipamount + \normalbaselineskip=\tenbase + \def\caps{\def\pounds{{\twelveu\rmpo}}\twelvecaps}% + \def\scaps{\def\pounds{{\tenu\rmpo}}\tencaps}% + \setbox\strutbox=\hbox{\vrule height10pt depth5pt width\z@}% + \normalbaselines\rm} + +\def\ninepoint{\def\rm{\def\pounds{{\nineit\slpo}}\fam0\ninerm}% + \textfont0=\ninerm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm + \textfont1=\ninei + \textfont2=\ninesy + \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex + \def\it{\def\pounds{{\nineit\itpo}}\fam\itfam\nineit}% + \textfont\itfam=\nineit + \def\sl{\def\pounds{{\nineit\slpo}}\fam\slfam\ninesl}% + \textfont\slfam=\ninesl + \def\bf{\def\pounds{~}\fam\bffam\ninebf}% pound sign to be added + \textfont\bffam=\ninebf + \def\tt{\def\pounds{~}\fam\ttfam\ninett}% no pound sign + \textfont\ttfam=\ninett + \tt \ttglue=.5em plus.25em minus.15em + \smallskipamount=\ninesmallskipamount + \medskipamount=\ninemedskipamount + \bigskipamount=\ninebigskipamount + \normalbaselineskip=\ninebase + \setbox\strutbox=\hbox{\vrule height8pt depth3pt width\z@}% + \normalbaselines\rm} + + +% Part 5 - Footnotes + +% These are adapted from the AMSTeX macros +% For details of usage see "The Joy of TeX" by Spivak M.D. + +\def\relaxnext@{\let\next\relax} + +% This is new. Adaption of \hang etc (Vol.B p.355) + +\def\fang{\hangindent\footindent} +\def\fitem{\par\fang\toeindent} +\def\toeindent#1{\noindent\hbox to \footindent{\hss#1\thinspace}} + +% This is where AMSPPT.STY is added: + +\def\footmarkform@#1{$^{#1}$} +\let\thefootnotemark\footmarkform@ +\def\makefootnote@#1#2{\insert\footins + {\interlinepenalty\interfootnotelinepenalty +% The original (AMSTeX) uses 8-point: + \ninepoint\splittopskip\ht\strutbox\splitmaxdepth\dp\strutbox + \floatingpenalty\@MM\leftskip\z@\rightskip\z@ + \spaceskip\z@\xspaceskip\z@ +% This differs from the original: + \fitem{#1}\footstrut\ignorespaces#2\unskip\lower\dp\strutbox + \vbox to\dp\strutbox{}}} + \footmarkcount@\z@ +\def\footnotemark{% + \let\@sf\empty\relaxnext@\ifhmode\edef + \@sf{\spacefactor\the\spacefactor}\/\fi + \def\next@{\ifx[\next\let\next\nextii@\else + \ifx"\next\let\next\nextiii@\else + \let\next\nextiv@\fi\fi\next}% and from here + \def\nextii@[##1]{\footmarkform@{##1}\@sf}% + \def\nextiii@"##1"{{##1}\@sf}% + \def\nextiv@{{\scriptfont0=\sevenrm % scriptfont changed to 7pt + \global\advance\footmarkcount@\@ne + \footmarkform@{\number\footmarkcount@}\@sf}}% + \futurelet\next\next@} +\def\footnotetext{\relaxnext@ + \def\next@{\ifx[\next\let\next\nextii@\else + \ifx"\next\let\next\nextiii@\else + \let\next\nextiv@\fi\fi\next}% + \def\nextii@[##1]##2{\makefootnote@{% + \footmarkform@{##1}}{{\frenchspacing##2}}}% {\frenchspacing} added + \def\nextiii@"##1"##2{\makefootnote@{##1}{{\frenchspacing##2}}}% + \def\nextiv@##1{\makefootnote@{% + \footmarkform@{\number\footmarkcount@}}{{\frenchspacing}##1}}% + \futurelet\next\next@} +\def\footnote{\let\@sf\empty\relaxnext@\ifhmode\edef + \@sf{\spacefactor\the\spacefactor}\/\fi + \def\next@{\ifx[\next\let\next\nextii@\else + \ifx"\next\let\next\nextiii@\else + \let\next\nextiv@\fi\fi\next}% + \def\nextii@[##1]##2{% + \footnotemark[##1]\footnotetext[##1]{{\frenchspacing##2}}}% + \def\nextiii@"##1"##2{% + \footnotemark"##1"\footnotetext"##1"{{\frenchspacing##2}}}% + \def\nextiv@##1{\footnotemark\footnotetext{{\frenchspacing##1}}}% + \futurelet\next\next@} +\def\adjustfootnotemark#1{\advance\footmarkcount@#1\relax} + +\def\ref{\unskip\footnote}% Remove space from \se if necessary + +% Prevent footnote splitting + +\interfootnotelinepenalty=10000 % No splitting of footnotes +\skip\footins=12pt plus 2pt minus 4pt +% space added when footnote is present - taken from manmac + + +% Part 6 - Macros to set all counts to zero + +\def\clearnotenumber{\footmarkcount@\z@} % footnote counter +\def\clearrecno{\recno=64} % Recital counter: 65 is `A' +\def\clearclno{\clno=0} % Clause etc counters +\def\clearsclno{\sclno=0} +\def\clearssclno{\ssclno=96} % 97 is `a' +\def\clearsssclno{\sssclno=0} +\def\clearssssclno{\ssssclno=96} +\def\clearsssssclno{\sssssclno=96} +\def\cleargreekno{\greekno="010A} % "010B is alpha "027C is heart +\def\clearcardno{\cardno="027B} % "027C is heart-suit +\def\clearexno{\exno=0} % exhibits +\def\clearpageno{\pageno=1 \footline={\hss\tenrm\folio\hss}} + +\def\reset{% + \clearrecno + \clearclno + \clearsclno + \clearssclno + \clearsssclno + \clearssssclno + \clearsssssclno + \cleargreekno + \clearcardno + \clearexno + \clearnotenumber + \clearpageno + \clauselevel=0} + + +% Part 7 - Automatic clause numbering + +% The #1 in \xcl etc. is the clause number +% These macros do not increase the count regs. +% \ignorespaces is used to excess since these macros +% can be abused somewhat - leading to odd spaces +% appearing in unexpected places! + +\def\xcl#1{\clearsclno% Set scl counter to zero + \dimen0=\the\parindent\parindent=0pt% store current setting + \ifclind \hangindent=\clindent \else\hangindent=\hclindent\fi + \clauselevel=1 + \hangafter=1 + \vskip\clskip + \edef\testit{#1}% + \ifx\testit\empty\hangafter0\noindent + \else + \leavevmode\hbox to\clindent{% + \ignorespaces#1\hfil}\ignorespaces + \fi + \parindent=\the\dimen0\relax + \ignorespaces} + +\def\xscl#1{\clearssclno % + \dimen0=\the\parindent \parindent=0pt + % Note the difference between next line and same in \xsscl + % This seems to be essential + \ifnum\prevgraf=0\kern-\clindent\else\vskip\sclskip\fi + \ifclind \hangindent=\sclindent \else\hangindent=\hsclindent\fi + \clauselevel=2 + \hangafter=1 + \edef\testit{#1}% + \ifx\testit\empty\hangafter0\noindent + \else\leavevmode\unskip\hbox to \sclindent{% + \hskip\clindent\ignorespaces #1\hfil}% + \ignorespaces + \fi + \parindent=\the\dimen0\relax + \unskip\ignorespaces} + +\def\xsscl#1{\clearsssclno % \advance\ssclno by 1 + \dimen0=\the\parindent \parindent=0pt + \ifdim\hangindent>0pt \kern-\sclindent\else\vskip\ssclskip\fi + \ifclind \hangindent=\ssclindent \else\hangindent=\hssclindent\fi + \clauselevel=3 + \hangafter=1 + \edef\testit{#1}% + \ifx\testit\empty\hangafter0\noindent + \else + \leavevmode\unskip\hbox to \ssclindent{% + \hskip\sclindent + \ignorespaces #1\hfil}\ignorespaces + \fi + \parindent=\the\dimen0\relax + \unskip\ignorespaces} + +\def\xssscl#1{\clearssssclno \cleargreekno % \advance\sssclno by 1 + \dimen0=\the\parindent \parindent=0pt + \ifdim\hangindent>0pt \kern-\ssclindent\else\vskip\sssclskip\fi + \ifclind \hangindent=\sssclindent \else\hangindent=\hsssclindent\fi + \clauselevel=4 + \hangafter=1 + \edef\testit{#1}% + \ifx\testit\empty\hangafter0\noindent + \else + \leavevmode\unskip\hbox to \sssclindent{% + \hskip\ssclindent + \ignorespaces #1\hfil}\ignorespaces + \fi + \parindent=\the\dimen0\relax + \aftergroup\ignorespaces} + +\def\xsssscl#1{\clearsssssclno \clearcardno + \dimen0=\the\parindent \parindent=0pt + \ifdim\hangindent>0pt \kern-\sssclindent\fi + \ifclind \hangindent=\ssssclindent \else\hangindent=\hssssclindent\fi + \clauselevel=5 % This is not used as yet + \hangafter=1 + \edef\testit{#1}% + \ifx\testit\empty\hangafter0\noindent + \else + \leavevmode\unskip\hbox to \ssssclindent{% + \hskip\sssclindent + \ignorespaces #1\hfil}\ignorespaces + \fi + \parindent=\the\dimen0\relax + \aftergroup\ignorespaces} + +\def\xssssscl#1{% Nothing to clear! + \dimen0=\the\parindent \parindent=0pt + \ifdim\hangindent>0pt \kern-\ssssclindent\fi + \ifclind \hangindent=\sssssclindent + \else\hangindent=\hsssssclindent\fi + \clauselevel=6 + \hangafter=1 + \edef\testit{#1}% + \ifx\testit\empty\hangafter0\noindent + \else + \leavevmode\unskip\hbox to \sssssclindent{% + \hskip\ssssclindent + \ignorespaces #1\hfil}\ignorespaces + \fi + \parindent=\the\dimen0\relax + \aftergroup\ignorespaces} + +% The Recital macros use \xcl and \xscl +% Recitals have the same indentation as Clauses. + +\def\rec{\clauselevel=0% + \advance\recno by1 \xcl{(\char\the\recno)}}% Letter A +\def\srec{\clauselevel=0 + \advance\sclno by1 \xscl{(\romannumeral\the\sclno)}}% Small Roman i + +% Now Clauses etc + +\def\normalnumbering{% + \def\cl{\advance\clno by1\xcl{\the\clno.}}% + \def\scl{\advance\sclno by1\xscl{(\the\sclno)}}% + \def\sscl{\advance\ssclno by1\xsscl{(\char\the\ssclno)}}% + \def\ssscl{\advance\sssclno by1\xssscl{% + (\romannumeral\the\sssclno)}}% + \def\sssscl{\advance\ssssclno by1 \advance\greekno by1\xsssscl{% + \ifgreek($\mathchar\the\greekno$) + \else(\char\the\ssssclno\char\the\ssssclno)\fi}}% + \def\ssssscl{\advance\sssssclno by1 \advance\cardno by1\xssssscl{% + \ifcard($\mathchar\the\cardno$) + \else\ifgreek(\char\the\sssssclno\char\the\sssssclno) + \else(\char\the\sssssclno\char\the\sssssclno + \char\the\sssssclno)\fi\fi}}} + +\def\computernumbering{% + \clindent=\the\cnindent + \sclindent=\the\cnindent + \ssclindent=\the\cnindent + \sssclindent=\the\cnindent + \ssssclindent=\the\cnindent + \sssssclindent=\the\cnindent + \hclindent=0pt % Indentation of clauses if clindfalse + \hsclindent=0pt + \hssclindent=0pt + \hsssclindent=0pt + \hssssclindent=0pt + \hsssssclindent=0pt + \def\clearssclno{\ssclno=0}% 97 is `a' + \def\clearssssclno{\ssssclno=0}% + \def\clearsssssclno{\sssssclno=0}% + \def\clearrecno{\recno=0}% + \def\cl{\advance\clno by1\xcl{\the\clno.}}% + \def\scl{\advance\sclno by1\xscl{\unskip\the\clno.\the\sclno.}}% + \def\sscl{\advance\ssclno by1\xsscl{% + \unskip\the\clno.\the\sclno.\the\ssclno.}}% + \def\ssscl{\advance\sssclno by1\xssscl{% + \unskip\the\clno.\the\sclno.\the\ssclno.\the\sssclno.}}% + \def\sssscl{\advance\ssssclno by1\xsssscl{% + \unskip\the\clno.\the\sclno.\the\ssclno.\the\sssclno\the\ssssclno.}}% + \def\ssssscl{\advance\sssssclno by1\xssssscl{% + \unskip\the\clno.\the\sclno.\the\ssclno.% + \the\sssclno\the\ssssclno.\the\sssssclno.}}% + \def\rec{\clauselevel=0% + \advance\recno by1 \xcl{\unskip\the\recno.}}% + \def\srec{\clauselevel=0 + \advance\sclno by1 \xscl{\unskip\the\recno.\the\sclno.}}% + \def\hcl##1\par{\cl{\bf##1}\par\nobreak}% + } + +% The \ncl "clauses" have the same indentation - but no numbers + +\def\ncl{\xcl{}} +\def\nscl{\xscl{}} +\def\nsscl{\xsscl{}} +\def\nssscl{\xssscl{}} +\def\nsssscl{\xsssscl{}} +\def\nssssscl{\xssssscl{}} + +\def\tcl#1{% For use with text or numbers longer than \clindent. + \clearsclno% Set scl counter to zero + \dimen0=\the\parindent\parindent=0pt% store current setting + \ifclind \hangindent=\clindent \else\hangindent=\hclindent\fi + \clauselevel=1 + \hangafter=1 + \vskip\clskip + \leavevmode\hbox{% to\clindent{% + \ignorespaces#1\space}\ignorespaces + \parindent=\the\dimen0\relax + \ignorespaces} + +% \def\tscl etc to follow + + +% Part 8 + +% The contents, index and cross-reference macros +% First, the commands to use them + +\def\contents{\contentstrue \writecontents} +\def\marginalnotes{\marginalnotestrue} + +% Minor definitions + +\def\ctstitle#1{\gdef\titlename{\vtop{#1}}}% Title used on Contents page +\ctstitle{}% Default is nothing + +% Use this for sub-headings in Table of Contents +\def\stitle#1{% + \xdef\next{\write\cont{\string\centerline{% + \string\vtop{\string#1}}\par + \string\nobreak\string\medskip}}\next + \inform{#1}} + +\def\contentsname{Table of Contents}% Obvious. + +\gdef\topofcontents{\centerline{\titlefont\titlename} + \bigskip\centerline{\titlefont\contentsname} + \vfill} % this material will start the table of contents page +\def\botofcontents{\vfill\eject} % this material will end it +\def\contentspagenumber{-1} % default page number for table of contents +\def\contentsreadfile{\jobname.cts} % file that gets table of contents info +\def\contentswritefile{\jobname.cts} % file that takes it +\def\writecontents{\inform{Opening contents file: } + \openout\cont=\contentswritefile} +\def\readcontents{\input \contentsreadfile} +\def\leaderfill{\leaders\hbox to .75em{\hss.\hss}\hfil} +\def\clname{Clause} +\def\xreffile{\jobname.xrf} +\def\raggedleft{\leftskip=0pt plus 4em% see tb p101 + \spaceskip=.3333em \xspaceskip=.5em } % Can be used in mnote +\def\bigpenalty{\penalty10000\ } +\def\xrfwarn#1{% + \xrfmissingtrue + \warn{This cross-reference (#1) does not exist.} + \inform{Re-run TeX on the file.} + } + +% Now the contents macros themselves. + +\def\printcontents{% Print the contents + \write\cont{}% ensure that the contents file isn't empty + \immediate\closeout\cont% contents information has been fully gathered + \pageno=\contentspagenumber + \inform{Table of contents: }% + \topofcontents + \line{\hfill Page}% + \medskip + \advance\baselineskip by0pt plus1pt minus0pt % add some give + \readcontents\relax % read the contents info + \botofcontents }% print the contents page(s), don't terminate + +% TUGboat 1987/3/310 + tb p 423 + +\let\hat=\^ % Is this necessary? + +% Note that the order of the lines in \specialhat is critical + +\def\specialhat{\ifmmode\def\next{^} + \else\let\next=\checkit\fi\next} +\def\checkit{\futurelet\next\testdoublehat} +\def\testdoublehat{\ifx\next\specialhat\let\next=\silentnote + \else\visibletrue\let\next=\anote\fi \next}% +\catcode`\^=\active \let ^=\specialhat +\def\silentnote^{\visiblefalse\anote}% +\def\mnote#1{% + \strut\vadjust{% + \kern-\dp\strutbox + \vtop to \dp\strutbox{% + \vss\baselineskip=\dp\strutbox +% \moveleft\notespace + \moveright\notespace\rightline{% + \rlap{% + \hbox{% + \ninebase=12pt \ninepoint + \vbox to \ht\strutbox{% + \hsize\maxnote \raggedright + \tolerance=1000 + \leftskip=0pt + \rightskip=0pt plus.6\maxnote + \noindent\bf\strut#1% \strut + \vss + }% end of \vbox to \ht\strutbox + }% end of \hbox + }% end of \rlap + } % end of \rightline + \null + }% end of \vtop tp \dp\strutbox + }% end of \vadjust + }% end of \mnote + +% Note that this now works on the basis that a space before the +% macro is neutral, ie printed unless it follows a macro +% and a space following the macro is ignored. Therefore no added \space +% at the beginning of \silentnote and ignorespaces at the end of \anote +% and possibly also of \mnote. + +\def\anote#1{% + \ifvisible\null\fi + \ifmarginalnotes\ignorespaces\mnote{#1}\fi + \ifcontents\ifcase\number\clauselevel% + \contentsentry{#1}% \clauselevel=0 + \or\clcont{#1}% \clauselevel=1 + \or\sclcont{#1}% \clauselevel=2 + \or\ssclcont{#1}% \clauselevel=3 + \or\sssclcont{#1}% \clauselevel=4 + \or\inform{This (#1) will not appear in the table of contents}% =5 + \or\inform{This (#1) will not appear in the table of contents}% =6 + \fi\fi% + \ifvisible#1\else\unskip\ignorespaces\fi +}% + +% Now the macros to deal with \cl etc in contents + +\def\clcont#1{% + \xdef\next{\write\cont{\string\line{% + \setbox0=\hbox{\clname\ \hbox to 20pt{\testit\hfil}}% + \global\clnamelength=\wd0\copy0#1 + \string\leaderfill\noexpand\number\pageno}}}\next + \inform{\testit\space#1}}% + +\def\sclcont#1{% + \xdef\next{\write\cont{\line{\hskip\clnamelength% + \hbox to 25pt{\testit\hfil}#1 + \string\leaderfill\noexpand\number\pageno}}}\next% + \inform{ \testit\space#1}}% + +\def\ssclcont#1{% + \xdef\next{\write\cont{\line{\hskip\clnamelength\hskip25pt% + \hbox to 20pt{\testit\hfil}#1 + \string\leaderfill\noexpand\number\pageno}}}\next% + \inform{ [ascii \testit] #1}} + +\def\sssclcont#1{% + \xdef\next{\write\cont{\line{\hskip\clnamelength\hskip45pt% + \hbox to 20pt{\testit\hfil}#1 + \string\leaderfill\noexpand\number\pageno}}}\next% + \inform{ (\romannumeral\the\sssclno) #1}} + +\def\contentsentry#1{% + \xdef\next{\write\cont{\line{#1 + \string\leaderfill\noexpand\number\pageno}}}\next% + \inform{#1}} % Use this as eg \contentsentry{Parties} + + +% These are the cross-ref macros by S v. B (adapted) + +% First, do we have xrefs? + +\def\checkoldxrf{% + \ifoldxrffile\let\next\relax\else\let\next\getxrefs\fi\next} + +\gdef\getxrefs{% + \null\global\oldxrffiletrue\inform{Opening xrf file }% + \immediate\openin\xrf=\xreffile\relax + \ifeof\xrf + \xrfmissingtrue + \inform{}% + \inform{WARNING: \xreffile\space is empty, or does not exist.}% + \inform{Re-run TeX on the file.}% + \inform{}% + \else\xrefstrue\fi + \immediate\closein\xrf\relax + \ifxrefs\input\xreffile\relax\fi + \immediate\openout\xrf=\xreffile\relax + } + +\def\newxref #1#2#3#4#5#6{% + \expandafter\gdef\csname CLREF-#1\endcsname{#2% + \inform{ (Cross-reference to #2)}}% + \expandafter\gdef\csname PAGEREF-#1\endcsname{#6% + \inform{ (Cross-reference to #6)}}% + \expandafter\gdef\csname NOTEREF-#1\endcsname{#3% + \inform{ (Cross-reference to #3)}}% + \expandafter\gdef\csname SCHEDREF-#1\endcsname{#4% + \inform{ (Cross-reference to #4)}}% + \expandafter\gdef\csname APPREF-#1\endcsname{#5% + \inform{ (Cross-reference to #5)}}% + } + +\def\clref#1{% + \checkoldxrf + \expandafter + \ifx\csname CLREF-#1\endcsname\relax\xrfwarn{#1}\unskip[Clause ???]\fi + \csname CLREF-#1\endcsname + } + +\def\pararef#1{% + \begingroup + \def\clause{Paragraph}% + \def\subclause{sub-paragraph}% + \def\paragraph{sub-sub-paragraph}% + \def\subparagraph{sub-sub-sub-paragraph}% + \clref{#1}% + \endgroup + } + +\def\pageref #1{% + \checkoldxrf + \ignorespaces + \expandafter + \ifx\csname PAGEREF-#1\endcsname\relax\xrfwarn{#1}\unskip[Page ???]\fi + \csname PAGEREF-#1\endcsname + } + +\def\noteref #1{% + \checkoldxrf + \ignorespaces + \expandafter + \ifx\csname NOTEREF-#1\endcsname\relax\xrfwarn{#1}\unskip[Footnote ???]\fi + \csname NOTEREF-#1\endcsname + } + +\def\schedref #1{% + \checkaux + \checkoldxrf + \ignorespaces + \ifmanyscheds + \expandafter + \ifx\csname SCHEDREF-#1\endcsname\relax\xrfwarn{#1}\unskip[Schedule ???]\fi + \csname SCHEDREF-#1\endcsname + \else\xrfwarn{#1} the Schedule % + \fi + } + +\def\appref #1{% + \checkauxref + \checkoldxrf + \ignorespaces + \ifmanyappends + \expandafter + \ifx\csname APPREF-#1\endcsname\relax\xrfwarn{#1}\unskip[Appendix ???]\fi + \csname APPREF-#1\endcsname + \else\xrfwarn{#1} the Appendix % + \fi + } + +\def\xrfwarn#1{% + \xrfmissingtrue + \warn{This cross-reference (#1) does not exist.}% + \inform{Re-run TeX on the file.}% + } + +\def\writexref{\write\xrf} +\def\nsnbps{\noexpand\string\noexpand\bigpenalty\space}% shorthand +\def\nsn{\noexpand\string\noexpand} + +\def\clause{Clause} +\def\subclause{sub-clause} +\def\paragraph{paragraph} +\def\subparagraph{sub-paragraph} + +\def\xref#1{% + \checkoldxrf + \ignorespaces + \xdef\fct{\the\footmarkcount@}% + \xdef\schct{\fullnumbers{\the\schedcount}}% + \xdef\appct{\fullnumbers{\the\appendixcount}}% + \edef\xreftemp{% + \nsn\ignorespaces% + \nsn\newxref% + {#1}% becomes Parameter 1 to \newxref + {\ifcase\number\clauselevel% + \or \nsn\clause\nsnbps\the\clno% + \or \nsn\subclause\nsnbps(\the\sclno)% + \or \nsn\paragraph\nsnbps(\char\the\ssclno)% + \or \nsn\subparagraph\nsnbps(\romannumeral\the\sssclno)% + \fi}% becomes Parameter 2 to \newxref + {Footnote\nsnbps\fct}% becomes Parameter 3 to \newxref + {the \schct\nsnbps Schedule}% becomes Parameter 4 to \newxref + {the \appct\nsnbps Appendix}% becomes Parameter 5 to \newxref + }% End of \xreftemp + \expandafter\expandafter\expandafter% + \writexref\expandafter{% + \xreftemp{% + Page\noexpand\bigpenalty\the\pageno\noexpand\ignorespaces}% Param 6 to \newxref + \string\unskip}% + \unskip\ignorespaces}% Final unskip now unnec. + +% Gulp + + +% Part 9 - Miscellaneous macros start here: + +\def\hangit{\hangindent\clindent} + +\def\per{\ca per\se} + +\def\ruledtable{% Get TeXsis macros + \input txsruled\relax + \ruledtable} + +\def\nofancystuff{% Get rid of fancy fonts, disliked by \write's + \def\xo{}\def\xxo{}\def\xxxo{}% + \def\ul{}\def\uul{}\def\uuul{}% + \def\setamendcount##1{}% + \def\ignorespaces{}% + \def\bigpenalty{ }} + +\def\inform#1{{\nofancystuff\immediate\write16{#1}}} +\def\warn#1{{\nofancystuff\immediate\write16{}\immediate\write16{WARNING: #1} + \immediate\write16{}}} + +% Manmac macros for verbatim scanning +\chardef\other=12 +\def\ttverbatim{\begingroup + \catcode`\\=\other + \catcode`\{=\other + \catcode`\}=\other + \catcode`\$=\other + \catcode`\&=\other + \catcode`\#=\other + \catcode`\%=\other + \catcode`\~=\other + \catcode`\_=\other + \catcode`\^=\other + \catcode`\*=\other + \obeyspaces \obeylines \tt} + +\outer\def\begintt{$$\let\par=\endgraf \ttverbatim \parskip=\z@ + \catcode`\|=0 \rightskip-5pc \ttfinish} +{\catcode`\|=0 |catcode`|\=\other % | is temporary escape character + |obeylines % end of line is active + |gdef|ttfinish#1^^M#2\endtt{#1|vbox{#2}|endgroup$$}} +\catcode`\|=\active +{\catcode`\^=7 +\obeylines \gdef|{\ttverbatim \spaceskip\ttglue \let^^M=\ \let|=\endgroup}} + +% macros to demarcate lines quoted from TeX source files +\def\beginlines{\par\begingroup\nobreak\medskip\parindent\z@ \obeylines + \hrule\kern1pt\nobreak \everypar{\strut}} +\def\nrbeginlines{\par\begingroup\nobreak\medskip\parindent\z@ \obeylines + \kern1pt\nobreak \everypar{\strut}} +\def\endlines{\kern1pt\hrule\endgroup\medbreak\noindent} +\def\weakendlines{\kern1pt\hrule\endgroup\medskip\noindent} +\def\finalendlines{\kern1pt\hrule\endgroup\medbreak} +\def\nrendlines{\kern1pt\endgroup\smallskip\noindent} + +\gdef\blank{\space\hglue\blankskip}%5 Oct 90 + +\def\noaddr{\phantom{11}\blank\phantom{Rail-}\blank + \phantom{way}\blank\phantom{Cutt-}\blank\phantom{ings} + \blank\phantom{Cheam}\blank + \phantom{Lon-}\blank\phantom{don}\blank\phantom{SW12} + \blank} + +\gdef\noday{\phantom{31st\ }\blank} +\gdef\nomonth{\phantom{January\ }\blank} +\gdef\noyear{\noday\ day of % + \nomonth\ } +\gdef\nodate{\noyear\number\year\penalty-150\maybespace} + +\def\noname{\phantom{Anthony}\blank\phantom{Aloy-} + \blank\phantom{nsius }\blank\phantom{Hancock} + \blank} + +\def\nopounds{\pounds\phantom{50,000}\maybespace} + +\gdef\initials#1{\xdef\inits{#1}} + \initials{} +\def\exhibit{\advance\exno by1 ``\hbox{\ifx\inits{} + \else\inits\,\ignorespaces\fi\the\exno}''} + +\def\exhibited{produced and shown to me marked \exhibit\maybespace} + +\def\bundled{produced and shown to me bundled together % + and marked \exhibit\maybespace} % note maybespace + +\newif\ifversion +\gdef\version#1{% + \versiontrue + \edef\versno{#1} + \footline={\llap{\fiverm\versno}\hss\tenrm\folio\hss}} + +% Amstex oldnos macros: +\def\oldnos#1{\ifmmode{\mathcode`\,="013B \fam\@ne#1}\else + \leavevmode\hbox{$\mathcode`\,="013B \fam\@ne#1$}\fi} + +% minor macros from manmac +\def\bull{\vrule height .9ex width .8ex depth -.1ex } % square bullet +\def\|{\leavevmode\hbox{\tt\char`\|}} % vertical line +\def\]{\leavevmode\hbox{\tt\char`\ }} % visible space + +\def\Filbreak{\par\vskip\bigskipamount % used in \ssd etc. + \vfil\penalty-200\vfilneg} % Adapted from \filbreak + +% \today etc + +\def\st{st} +\def\nd{nd} +\def\rd{rd} +\def\th{th} + +\def\addsuffix#1{#1\ignorespaces\ifcase#1% + \or\st\or\nd\or\rd\or\th\or\th\or\th\or\th\or\th\or\th\or\th + \or\th\or\th\or\th\or\th\or\th\or\th\or\th\or\th\or\th\or\th + \or\st\or\nd\or\rd\or\th\or\th\or\th\or\th\or\th\or\th\or\th\or\st\fi} + +\def\today{% + \addsuffix{\number\day}% + \space + \ifcase\month\or January\or February\or March\or April\or May\or + June\or July\or August\or September\or October\or November\or December\fi + \ifnocommaindate\space\else,\space\fi + \number\year} + +\def\longtoday{% + \addsuffix{\number\day}% + \space + day of\space + \ifcase\month\or January\or February\or March\or April\or May\or + June\or July\or August\or September\or October\or November\or December\fi + \ifnocommaindate\space\else,\space\fi + \number\year} + +\newif\ifwrongmonth +\newcount\feb + +\def\leapcheck{% + \count0=\number\year + \advance\count0 by-1900 + \count1=\the\count0 + \divide\count0 by4 + \multiply\count0 by4 + \ifnum\count0=\number\count1 + \feb=29% + \else\feb=28% + \fi} + +\def\increasedays{% + \ifcase\month% month 0 + \or\daysinmonth{31}% jan + \or\leapcheck\daysinmonth{\feb}% feb. Not a leap year + \or\daysinmonth{31}% mar + \or\daysinmonth{30}% apr + \or\daysinmonth{31}% may + \or\daysinmonth{30}% jun + \or\daysinmonth{31}% jul + \or\daysinmonth{31}% aug + \or\daysinmonth{30}% sep + \or\daysinmonth{31}% oct + \or\daysinmonth{30}% nov + \or\daysinmonth{31}% dec + \fi} + +\def\reducedays{% + \ifcase\month% month 0 + \or\daysinlastmonth{31}% dec + \or\daysinlastmonth{31}% jan + \or\leapcheck\daysinlastmonth{\feb}% feb. Not a leap year + \or\daysinlastmonth{31}% mar + \or\daysinlastmonth{30}% apr + \or\daysinlastmonth{31}% may + \or\daysinlastmonth{30}% jun + \or\daysinlastmonth{31}% jul + \or\daysinlastmonth{31}% aug + \or\daysinlastmonth{30}% sep + \or\daysinlastmonth{31}% oct + \or\daysinlastmonth{30}% nov + \fi} + +\def\daysinmonth#1{% + \ifnum\day>#1 \wrongmonthtrue + \advance\day by-#1 + \advance\month by1 + \ifnum\month=13 \month=1 + \advance\year by1 + \fi + \fi} + +\def\daysinlastmonth#1{% + \ifnum\day<1 \wrongmonthtrue + \advance\day by#1 + \advance\month by-1 + \ifnum\month=0 \month=12 + \advance\year by-1 + \fi + \fi} + +\def\futureday#1{% + {\advance\day by#1 + \loop + \wrongmonthfalse + \begingroup + \ifnum#1<0 + \aftergroup\reducedays + \else + \aftergroup\increasedays + \fi + \endgroup + \ifwrongmonth + \repeat + \today + }} + +\def\tomorrow{% + \futureday{1}} + +\def\yesterday{% + \futureday{-1}} + +% Taken from the LaTeX extensions.sty +\def\@dow{\count2 } % gets day of the week +\def\@leap{\count5 } % leap year fingaler +\def\@x{\count6 } % temp register +\def\@y{\count7 } % another temp register + + +\def\dayofweek{{% +% leap = year + (month - 14)/12; + \@leap=\month \advance\@leap by -14 \divide\@leap by 12 + \advance\@leap by \year +% dow = (13 * (month + 10 - (month + 10)/13*12) - 1)/5 + \@dow=\month \advance\@dow by 10 + \@y=\@dow \divide\@y by 13 \multiply\@y by 12 + \advance\@dow by -\@y \multiply\@dow by 13 \advance\@dow by -1 \divide\@dow by 5 +% dow += day + 77 + 5 * (leap % 100)/4 + \advance\@dow by \day \advance\@dow by 77 + \@x=\@leap \@y=\@x \divide\@y by 100 \multiply\@y by 100 \advance\@x by -\@y + \multiply\@x by 5 \divide\@x by 4 \advance\@dow by \@x +% dow += leap / 400 + \@x=\@leap \divide\@x by 400 \advance\@dow by \@x +% dow -= leap / 100 * 2; +% dow = (dow % 7) + \@x=\@leap \divide\@x by 100 \multiply\@x by 2 \advance\@dow by -\@x + \@x=\@dow \divide\@x by 7 \multiply\@x by 7 \advance\@dow by -\@x + \ifcase\@dow Sunday\or Monday\or Tuesday\or Wednesday\or + Thursday\or Friday\or Saturday\fi}} + + +% The signature macros. These have been simplified & extended. + +\edef\lincoln{\hbox{Lincoln's Inn}} +\def\grays{\hbox{Gray's Inn}} +\def\temple{\hbox{\Temple}} +\def\middletemple{\hbox{Middle Temple}} +\def\innertemple{\hbox{Inner Temple}} +\let\inn=\lincoln + +\def\signed{% + \par\nobreak + \vfill + \hbox{\hskip\signindent\vtop{% + \parindent0pt + \inn + \hbox{\today}}} + \vfill\vfill} + +\def\csettled#1{% + \par\nobreak + \vfill + \hbox{\hskip\signindent\vtop{% + \advance\hsize by-\signindent + \parindent0pt + \raggedright\tolerance=1000 + Settled, \ignorespaces#1 + \vskip\settledgap + \inn + \hbox{\today}}} + \vfill\vfill} + +\def\cresettled#1{% Note the \par + \par\nobreak + \vfill + \hbox{\hskip\signindent\vtop{% + \advance\hsize by-\signindent + \parindent0pt + \raggedright\tolerance=1000 + Re-Settled, \ignorespaces#1 + \vskip\settledgap + \inn + \hbox{\today}}} + \vfill\vfill} + +\gdef\settled{% + \csettled{}} + +\def\resettled{% + \cresettled{}} + +\def\jointsettled{% + \multiply\settledgap by2 + \csettled{}} + + +% Part 10 + +% The signed sealed and delivered macros + +% First, adapt \cases from plain +\def\rcases#1{\left.\vcenter{\normalbaselines\m@th + \ialign{$##\hfil$&\quad##\hfil\crcr#1\crcr}}\,\right\}} + +\def\rbracket#1{\noindent$\rcases{% Put a large bracket at R. + \tolerance=3000\pretolerance=3000\parskip=0pt\hfuzz=1.75pt + \hbadness=9999 + \doublehyphendemerits=200 + \finalhyphendemerits=200 + \adjdemerits=200 + \vbox{\hsize=\rbracketsize{#1}}}$} + +\def\lbracket#1{\noindent $\cases{% Put a large bracket at L. + \tolerance=2000\pretolerance=2000\parskip=0pt\hfuzz=1.75pt + \hbadness=9999 + \doublehyphendemerits=500 + \finalhyphendemerits=200 + \adjdemerits=200 + \vbox{\hsize=\lbracketsize{#1}}}$} + +\def\ssgen#1{\clauselevel=0% + {\raggedright\rbracket{% As \rbracket, but space below text + #1\hfil\break\vtop to\brackdepth{}}}} + +% Text for use in contents macros +\def\attestationtext{Attestation} +\def\electiontext{Fiscal Election} +\def\testimoniumtext{Testimonium} +\def\stampdutytext{Stamp Duty Certificate} + + +\def\ssd#1{% + \clauselevel=0% + \ifnum\ssdcount>0\Filbreak + \else + \par\nobreak\bigskip\bigskip^^{\attestationtext}% + \fi + \advance\ssdcount by1 + \ssgen{\hbox{SIGNED AS A DEED} by % + #1 in the presence of---}% + \par} + +\def\ssc#1{% + \clauselevel=0% + \ifnum\ssdcount>0\Filbreak + \else + \par\nobreak\bigskip\bigskip^^{\attestationtext}% + \fi + \advance\ssdcount by1 + \ssgen{\hbox{THE COMMON SEAL of }% + #1 was affixed hereunto in the presence of---}% + \par} + +\def\ssw#1{% + \par\nobreak\bigskip\bigskip^^{\attestationtext}% + \ssgen{\brackdepth=1in SIGNED by #1 % + the Testator as and for his last Will + and Testament in our presence and by us in his---}% + \par} +% +\def\witness{% + \par\clauselevel=0 + \nobreak\vbox{\bigskip IN WITNESS whereof the parties hereto have signed + this instrument as a deed in the presence of the persons mentioned + below}^^{\testimoniumtext}% + \par} + +\def\singlewitness{% + \par\clauselevel=0 + \nobreak + \vbox{\bigskip IN WITNESS whereof this instrument has been signed as + a deed in the presence of the person mentioned + below}^^{\testimoniumtext}% + \par} + +\def\sworn{% + \clauselevel=0^^{\attestationtext}% + \par\nobreak\vskip3\clskip + \vtop{\rbracket{% + SWORN at\hfil\break + \vtop to\normalbaselineskip{}\hfil\break + in the County of\hfil\break + this \nodate\break + before me---\hfil\break + \vtop to\brackdepth{}\hfil\break + \hbox{A Solicitor empowered to take Oaths}\hfil}\par}} + +\def\whereas{\medskip\clauselevel=0 WHEREAS---} +\def\now{\medbreak\clauselevel=0 NOW THIS DEED WITNESSETH as follows---} +\def\wwhereas{\medskip\clauselevel=0 WHEREAS } +\def\nnow{\medbreak\clauselevel=0 NOW THIS DEED WITNESSETH } + +\def\witnessetc{\clauselevel=0 \par + \nobreak\vbox{\bigskip IN WITNESS, \etc^^{\testimoniumtext}} + } + +\def\swornetc{\clauselevel=0 \par + \nobreak\vbox{\bigskip SWORN, \etc^^{\testimoniumtext}} + } + +\def\election{\par\cl^^{\electiontext}% + \unskip\ignorespaces + The parties hereto hereby elect % + that the provisions of Section~49~(6) of the % + Capital Gains Tax Act~1979 % + and Section~142~(1) of the Inheritance Tax Act~1984 % + shall apply to the variation hereby made\par} + +\def\sdcert#1{\par + \cl^^{\stampdutytext}It is hereby certified % + that this instrument % + falls within category #1 in the Schedule to the % + Stamp Duty (Exempt Instruments) Regulations~1987\par} + +\def\dovcert{\sdcert{L}} +\def\giftcert{\sdcert{M}} + +% Somewhat complicated macros to produce automatically +% numbered Schedules and Appendixes + +\newcount\appendixcount +\gdef\appendix{% + \checkaux + \ifnum\appendixcount=1 + \write\aux{\noexpand\manyappendstrue}% + \fi + \clauselevel=0 + \clearclno + \ifnum\appendixcount>0 + \bigbreak + \else + \par\nobreak\bigskip + \fi + \advance\appendixcount by1 + \ifmanyappends + \centerline{^{THE \ucfullnumbers{\the\appendixcount} + \unskip\space APPENDIX}} + \else + \centerline{^{THE APPENDIX}} + \fi + \nobreak + \smallskip} + +\gdef\schedule{% + \checkaux + \ifnum\schedcount=2 + \write\aux{\string\manyschedstrue}% + \fi + \clauselevel=0 + \clearclno + \ifnum\schedcount>0 + \bigbreak + \else + \par\nobreak\bigskip + \fi + \advance\schedcount by1 + \ifmanyscheds + \centerline{^{THE \ucfullnumbers{\the\schedcount} + \unskip\space SCHEDULE}} + \else + \centerline{^{THE SCHEDULE}} + \fi + \nobreak + \smallskip} + +\def\fullnumbers#1{% + \ifcase#1% = zeroth + \or First% + \or Second% + \or Third% + \or Fourth% + \or Fifth% + \or Sixth% + \or Seventh% + \or Eighth% + \or Ninth% + \or Tenth% + \else \blank + \fi} + + \def\ucfullnumbers#1{% + \expandafter\expandafter\expandafter\uppercase% + \expandafter{\fullnumbers{#1}} + } + +\newif\ifmanyappends +\newif\ifmanyscheds +\newif\ifauxmissing +\newif\ifauxfile +\newif\ifaux + +\def\auxfile{\jobname.aux} + +\newread\aux +\newwrite\aux + +\def\checkaux{% + \ifauxfile\let\next\relax\else\let\next\getaux\fi\next} + +\gdef\getaux{% + \null\global\auxfiletrue\inform{Opening aux file }% + \immediate\openin\aux=\auxfile\relax% + \ifeof\aux% + \auxmissingtrue% + \inform{}% + \inform{WARNING: \auxfile\space is empty, or does not exist.}% + \inform{It may be necessary to re-run TeX on the file.}% + \inform{}% + \else\auxtrue + \fi% + \immediate\closein\aux\relax% + \ifaux\input\auxfile\relax\fi% + \immediate\openout\aux=\auxfile\relax% + } + +\def\part#1{% note no \par + \ifnum\partcount>0\filbreak\else + \par\nobreak\bigskip\fi + \advance\partcount by1 + \centerline{^{Part #1}}\smallskip\nobreak} + +\def\centertext#1{{\skip0=0pt plus.25\hsize + \advance \leftskip by \skip0 \advance \rightskip by \skip0 + \parfillskip=0pt \spaceskip=.3333em \xspaceskip=.5em + \pretolerance=9999 \tolerance=9999 + \hyphenpenalty=9999 \exhyphenpenalty=9999 #1\par}} + +\def\maybespace{% + \futurelet\next\testforother} + +\def\testforother{% \noexpand is required to avoid \ref being expanded + \if\noexpand\next[\let\next=\space % if [ add space + \else\if\noexpand\next(\let\next=\space % if ( add space + \else\ifcat\noexpand\next.\let\next=\empty % if . no space +%\else\ifcat\noexpand\next\noexpand\\next=\empty % if \ no space +% Don't use. It could cause problems if \space followed \ok or \se +% It is not required for \ref + \else\let\next=\space +%\fi % relates to \ifcat\\ + \fi\fi\fi\next}% Note that \ref still generates a space-then eats it + +\def\ca{% + \begingroup\it\frenchspacing % This deals with, eg. Ltd. and v. + } +\def\v{\unskip\/\ {\rm v}\maybespace}% taken out of \ca +\def\se{\unskip\/\endgroup\maybespace}% mod aftergroup + +\def\bo{\def\on{\unskip\/\ {\rm on }}\begingroup\sl\frenchspacing} +\def\ok{\unskip\/\endgroup\maybespace} + +% U.C. hyphens +\def\uc-{\discretionary{\raise.25ex\hbox{-}}{}{\raise.25ex\hbox{-}}} +\def\duc-{\discretionary{\raise.25ex\hbox{-}}{}{}} + +% Quotation macros +\def\beginquote{\vskip\the\parskip \vskip-\quoteparskip + \begingroup\tenpoint + \parskip=\quoteparskip \parindent=\quoteparindent + \clskip=\smallskipamount + \advance\leftskip by \quoteindent \relax + \par\ifq\leavevmode\llap{``}\fi + \prevgraf=1 + \DeleteOptionalSpacesandPars{\noindent\ignorespaces}} + +\def\endquote{\ignorespaces\ifq\rlap{''}\fi\par\endgroup} +\def\beginsclquote{\beginquote\advance\leftskip by-\clindent} +\def\beginssclquote{\beginquote\advance\leftskip by-\sclindent} +\def\beginsssclquote{\beginquote\advance\leftskip by-\ssclindent} + +\newcount\quoteparacount \quoteparacount=0 + +\long\def\OldQuotes#1\par{% + \advance\quoteparacount by1% + {\setbox0=\hbox{``}% + \setbox1=\vbox{% + \storeparindent=\the\parindent + \ifnum\quoteparacount=1 \parindent=0pt\fi + \advance\hsize by -1.5\wd0% + \advance\hsize-\the\leftskip + \leftskip=0pt% + \leavevmode + \llap{\hbox to 1.5\wd0{% + \strut``\hfill}}\unskip#1\unskip\nobreak + \parindent=\the\storeparindent}% + \vfuzz=10pt % suppress overfull warnings + \splittopskip=0pt % no skip at top of bix 1 + \count1=0 % initialise line count + \par\noindent % start new paragraph + \def\rebox{% + \advance\count1 by1 + \ifnum\count1=1\hbox to1.5\wd0{\strut\hfill}\else + \ifnum\count1>1\hbox to1.5\wd0{\strut``\hfill}\fi\fi + \nobreak + \setbox2=\vsplit 1 to6.1pt + \vbox{\unvbox2\unskip}% + \hskip 0pt plus 0pt\relax}% + \loop + \rebox % do one line at a time + \ifdim \ht1>0pt % test if more lines + \repeat + \par}} + +\def\EndOldQuotes{\unskip\nobreak\hbox to 1.5\wd0{\hfill\strut''}} + +\newif\ifosq +\def\newquotes{\osqfalse} +\def\oldquotes{\osqtrue \begindoublequotes} + +% Set " to produce `` and '' and for use in \oldquotes +\catcode`\"=\active% Make " an active character + +\gdef\begindoublequotes{%% \begindoublequotes enables " + \global\catcode`\"=\active% Make " an active character + \global\chardef\dq=`\"% Double-quote char. via \dq + \global\let\dblqu@te=L% Always start with a left double-quote + }% End of macro +\let\xxx=\spacefactor% Save the \spacefactor +\let\dblqu@te=L% +\gdef"{% + \ifinner\else\ifvmode\let\dblqu@te=L\fi\fi + \if L\dblqu@te\ifosq\OldQuotes\else``\fi\global\let\dblqu@te=R% + \else + \let\xxx=\spacefactor% Save the \spacefactor + \ifosq\EndOldQuotes\else''\fi\global\let\dblqu@te=L%% Insert '' and reset \dblqu@te + \spacefactor\xxx% Reset the \spacefactor + \fi% End of \if L\dblqu@te... + }% End of " macro + +\gdef\enddoublequotes{% + \catcode`\"=12%Set " back to other + } + +% Spacing +\def\,{\hskip.2em\relax} + +% top-lap and bottom-lap - previous name of \tlap was \vlap +\def\tlap#1{\vbox to 0pt{\vss#1}} % toplap - 14.12.88 +\def\blap#1{\vtop to 0pt{\vss#1}} % bottomlap - 14.12.88 + +\def\frac#1/#2{\leavevmode\kern.1em + \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em + /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}} + +\def\vfrac#1/#2{\leavevmode$#1\over#2$\space} + +% Whether these are miscellaneous is a moot point +% However, here is as good a place as any + +\def\ifsinglepage{% This pair of macros needs amneding + \edef\tempfootline{\the\footline}% + \ifnum\pageno=1 + \ifnum\vbadness>9999 + \footline=\expandafter{\temptfootline}% + \else\nopagenumbers\inform{No pagenumbers}\fi\fi}% + \def\numberpages{\def\singlepage{}} + +\def\printsp{% + \ifsinglepage + \vfill\supereject + \backmatter\supereject + \fi} % should it go here? + +\outer\def\bye{\par + \signoff % This is the signature + \vfil\supereject + \backmatter\supereject + \ifcontents + \printcontents\contentsfalse\vfill\supereject + \fi + \ifxrefs + \immediate\write\xrf{\noexpand\unskip}% check. Have all writes been written? + \immediate\closeout\xrf + \fi + \ifxrfmissing + \warn{\xreffile\space is missing or incomplete.}% + \inform{Run TeX on the file again.}% + \fi + \ifaux + \immediate\write\aux{\noexpand\relax}% check. Have all writes been written? + \immediate\closeout\aux + \fi + \ifauxmissing + \warn{\auxfile\space is missing or incomplete.}% + \inform{Run TeX on the file again.}% + \fi + \supereject + \iffax\printfaxsheet\fi + \ifchit\chit\fi + \end} + +% A fudged bit here to prevent multiple backsheets +% and additional pages containing rubbish. +% Will be corrected in next release + +\newif\iflpwbs % if last page was backsheet... + +\def\enddoc{\par + \edef\tempfootline{\the\footline}% + \iflpwbs\else\signoff\fi % signature/settled + \vfill\supereject + \iflpwbs\let\backmatter\empty\fi + \ifnum\totalpages>1 + \backmatter\supereject\lpwbstrue + \fi% No backsheet unless text! + \footline=\expandafter{\tempfootline}% + \ifcontents\printcontents\contentsfalse\fi + \ifxrefs\immediate\write\xrf{\string\unskip} + \fi + \ifxrfmissing + \inform{}% + \inform{WARNING: \xreffile\space is missing or incomplete.}% + \inform{}% + \inform{Run TeX on the file again.}% + \inform{}% + \fi + \ifaux\immediate\write\aux{\string\unskip}% + \fi + \ifauxmissing % is this necessary? + \inform{}% + \inform{WARNING: \auxfile\space is missing or incomplete.}% + \inform{}% + \inform{Run TeX on the file again.}% + \inform{}% + \fi + \reset + } + +\def\counsel#1{\edef\counselname{#1}} + +\def\formalcounselname{Mr.~\counselname} + +\def\signature{\par\nobreak\vskip\the\clskip + \hskip\signindent\ifx\counselname\undefined{[{\it Counsel's Name\/}]}% + \else\counselname\fi + \medskip} + +% Other misc macros--- +\def\etc{{\it \&c\/}.} + +\newdimen\surround \surround=5pt +\def\Boxit#1#2{\vbox{\hrule\hbox{\vrule\kern#1 + \vbox{\kern#1#2\kern#1}\kern#1\vrule}\hrule}} + + +% Part 11 - backsheet macros + +% Miscellaneous + +\def\upperc#1{% This enable the first line to be UC + \ifucfirstline\uppercase{#1} \gdef\upperc##1{##1}\else{#1}\fi} + +\def\shift{% Full size or half size backsheets + \iffullsize\null\else{\hskip1in\hskip.5\hsize}\fi} +% The 1in \hskip in the previous line = the margin of the half size page + +\def\xcenterline#1{\line{\shift\hss#1\hss}} +\def\centervers#1{\line{\llap{\fiverm\version}\shift\hss#1\hss}} + +% Macros to extract names from files + +\def\sols{} % Prevents error messages if undefined +\def\solname{} % ditto +\def\sname#1/#2\par{#1} % Used to extract solname from cref + +\def\z:#1:#2\par{% + \def\anyname{#1}\ifx\solname\anyname + \afterassignment\endinput\def\sols{#2}\fi} + +\gdef\getaddress{% + \ifx\cref\empty + \edef\solname{not given, and so} + \else + \edef\solname{\expandafter\sname\cref/\par}% + \fi + \ifx\sols\empty + \ifx\cref\empty\else\input\addressfile\relax\fi + \fi + \ifx\sols\empty + \warn{Reference \solname\space not found in file "\addressfile"}% + \fi} + +% Set up the parameters + +\def\bsparams{% + \tolerance=7500 + \doublehyphendemerits=0 + \finalhyphendemerits=10000 + \hyphenpenalty=100 + \parindent=0pt + \normalbottom + \pageno=0 + \nopagenumbers + \advance\vsize\bstopincrease \advance\vsize\bsbotincrease + \advance\voffset-\bstopincrease + \def\addressfile{solicitors}% name of input file + \twelvebase=12pt\twelvepoint + \inform{Backsheet for \ifdraft draft \fi\doctype}% + } + +% Backsheets for Opinions +\def\bsop{% + \getworkdone + \getbstitlewidth + \begingroup + \capacitytrue + \bsparams + \ifpleading% try adding \gettitle here and pleadingtrue elsewhere + \else\xcenterline{{\sl\today}}\vfil\fi + \xcenterline{\vtop{\openup2\jot + \halign{\hfil\vtop{\hsize=\bstitlewidth + \clindent=0pt % I am not sure why this is required. But it is. + \centertext{##}}\hfil\cr + \title\crcr}}}% + \vfil + \headerfont + \xcenterline{% + \setbox0\hbox{\doctype}% + \ifdim \wd0<\bstitlewidth\copy0 + \else\vtop{\hsize=\bstitlewidth\centertext{\doctype}}\fi}% + \rm + \vfil\vfil + \getaddress + \halign{\def\temp{##}\xcenterline{\upperc{\temp}}\inform{::\temp::}\cr + \sols\crcr}% + \smallskip + \xcenterline{\eightrm Solicitors' Reference: \sref}% + \xcenterline{{\eightrm Counsel's Reference: \col/\cref}}% + \supereject + \endgroup} + +% Not yet working +\def\bscopyop{% + \getworkdone + \getbstitlewidth + \begingroup + \capacitytrue + \bsparams + \ifpleading% try adding \gettitle here and pleadingtrue elsewhere + \else\xcenterline{{\sl\today}}\vfil\fi + \xcenterline{\vtop{\openup2\jot + \halign{\hfil\vtop{\hsize=\bstitlewidth + \clindent=0pt % I am not sure why this is required. But it is. + \centertext{##}}\hfil\cr + \title\crcr}}}% +\vfil + \headerfont + \xcenterline{% + \setbox0\hbox{\doctype}% + \ifdim \wd0<\bstitlewidth\vtop{% + \hbox{\llap{\scaps[copy]}\phantom{\doctype}\strut}% + \hbox{\doctype}} + \else + \vtop{\hsize=\bstitlewidth + \centertext{\llap{\scaps[copy]}\break\doctype}}% + \fi}% + \rm + \vfil\vfil + \getaddress + \halign{\def\temp{##}\xcenterline{\upperc{\temp}}% + \inform{::\temp::}\cr + \sols\crcr}% + \smallskip + \xcenterline{\eightrm Solicitors' Reference: \sref}% + \xcenterline{{\eightrm Counsel's Reference: \col/\cref}}% + \supereject + \endgroup} + +\let\doextras\empty + +\def\bsdft{% + \doextras + \getworkdone + \getbstitlewidth + \begingroup + \capacitytrue + \bsparams +\ifendorsement\bsendorsement\global\endorsementfalse\fi + \ifpleading\null + \else\xcenterline{\underbar{DATED\hskip2in \number\year}}% + \bigskip + \vfil\fi + \xcenterline{\vtop{\openup2\jot + \halign{\hfil\vtop{\hsize=\bstitlewidth + \clindent=0pt % I am not sure why this is required. But it is. + \centertext{##}}\hfil\cr% Are the hfils nec? + \title\crcr}}}% + \vfil + \tabskip=0pt + \headerfont + \xcenterline{\vtop{\openup2\jot + \halign{\hfil##\hfil\cr + \ifdraft \llap{\it draft/}\hfill\fi\cr + \noalign{\smallskip}% + \setbox0\hbox{\doctype}% + \ifdim \wd0<\bstitlewidth\copy0 + \else\vtop{\hsize=\bstitlewidth\centertext{\doctype}}\fi\crcr}}}% + \rm + \smallskip + \vfil\vfil + \getaddress + \halign{\def\temp{##}\xcenterline{\temp}\inform{::\temp::}\cr + \ifx\sols\empty\else\sols\fi\crcr}% + \smallskip + \ifx\sref\empty + \else\xcenterline{{\eightrm Solicitors' Reference: \sref}}\fi + \ifx\cref\empty + \else\xcenterline{{\eightrm Counsel's Reference: \col/\cref}}\fi + \ifversion\leftline{\llap{\fiverm\versno}}\fi + \supereject + \endgroup +%\global\maxp@rtywidth=\the\maxpartywidth +\resetpleadingdefaults} + + +% Fee Chits + +% Chit user macros + +\def\solsref#1{\def\sref{#1}} +\def\colsref#1{\def\cref{#1}} +\def\timetaken#1{\def\timespent{#1}} +\def\casetype#1{\def\typeofcase{#1}} +\def\value#1{\def\amountatstake{#1}} +\def\difficulty#1{\def\howhard{#1}} +\def\proposedfee#1{\def\suggestedfee{#1}} +\def\legalaidno#1{\def\legalaid{#1}} +\def\comments#1{\def\remarks{#1}} + +% Now the chit macros themselves +\def\chit{% + \begingroup + \parindent=0pt + \inform{Fee Chit}% + \pageno=1 + \nopagenumbers + \def\\{ } +\maxp@rtywidth=.5\hsize + \ifpleading\def\title{\chittitle\hfil}\fi + \def\cr{\par}\def\noalign{}% + \tenbase=12.5pt \tenpoint +\def\scriptsize{\let\rm\eightrm}% + \def\chittext{% + \parskip=0pt + \raggedright \tolerance=10000 +\hbadness=10000 + \uchyph=0 + {\bf Date:} \today\quad {\bf cref:} \col/\cref\par + {\bf sref:} \sref\par + {\bf Title:} {\def\hfill{}\frenchspacing\title\strut}\par + {\bf Legal Aid No:} \legalaid\par + {\bf Work Done:} \workdone.\par + {\bf Time Spent:} \ifx\timespent\empty\else\timespent\ hours\fi\par + {\bf Value:} \pounds\amountatstake\par + {\bf Difficulty:} \howhard\par + {\bf Type of Case:} \typeofcase\par + {\bf Suggested Fee:} \pounds\suggestedfee\par + {\bf Filename:} {\tt\jobname}\par + {\bf Remarks:} \remarks\par + }% end of chittext + % + \leftline{{\it Clerk's Copy}\hfil} + \chittext + \vskip1in + \leftline{{\it Counsel's Copy}\hfil} + \chittext + \vfil + \supereject + \endgroup} + +\gdef\getworkdone{% + {\nofancystuff + \tempwd=\expandafter{\workdone}% + \def\temppunct{\expandafter\if\the\tempwd\empty\else, \fi}% + \xdef\workdone{\the\tempwd\temppunct + \ifx\signoff\settled\ draft \fi\doctype + \ifversion\space(\versno)\fi}}} + + +% Part 12---Advisory and non-litigious drafting + +% The TUG macros (taken from tugboat.sty) which delete spaces etc +\def\if@baseis@next{\ifx\@basetoken\@nexttoken} + +\long\def\@checknexttoken #1#2#3{% + \futurelet\@basetoken\iffalse#1\fi + \long\def\@next{% + \if@baseis@next + \long\def\@@next{#2}% + \else\long\def\@@next{#3}\fi + \@@next}% + \futurelet\@nexttoken\@next} + +% execute #2 after ignoring (possibly) one occurrence of #1 +\long\def\@ignoreone#1#2{% + \def\@ignoreform#1{#2}% + \@checknexttoken{#1}{\@ignoreform}{#2}% + } + +% execute #2 after ignoring all occurrences of #1 +\long\def\@ignoreall#1#2{% + \def\@ignoreform#1{\@ignoretest}% + \def\@ignoretest{\@checknexttoken{#1}{\@ignoreform}{#2}}% + \@ignoretest + } + +% execute #1 after ignoring spaces +\def\DeleteOptionalSpaces#1{% + \@ignoreall{ }{#1}% + } + +% execute #1 after ignoring spaces and \pars +\def\DeleteOptionalSpacesandPars#1{% + \@ignoreall{ }{\@ignoreall{\par}{#1}}% + } + +% Checking and reading options. +% To check for the next optional argument, the macros must look +% ahead to the next character. If the next character is a `[', +% the option-reading mechanism is invoked. This check may be suppressed if +% the user has executed the \lastoption option. If \@lastoption is +% "true" or if the [ is NOT next, the macro goes on to reading any +% arguments and executing appropriately. + +\def\@checkoptions{% + \if@lastoption + \def\@next{\@executetoend}% + \else + \def\@next{\@checknexttoken {[}{\@readoptions}{\@executetoend}}% + \fi + \@next + } + +% The default parameters used in advisory work + +\def\pageparameters{% + \widowpenalty=7500 + \def\footnoterule{}% + \parindent=20pt + \quoteindent=20pt + \twelvepoint + } + +\def\advising#1{% + \enddoc + \ifpleading\gettitle\fi + \pageparameters + \inform{#1}% + \chittrue % print a fee chit + \def\doctype{#1}% + \let\backmatter=\bsop + \let\signoff=\signed + \clindfalse + \centerline{\headerfont #1} + \nobreak\vskip10pt + \DeleteOptionalSpacesandPars{\noindent\ignorespaces}} + + +\def\opinion{% + \advising{Opinion}} +\def\note{% + \advising{Note}} +\def\advice{% + \advising{Advice}} +\def\jopinion{% + \let\signed\jsigned + \advising{Joint Opinion}} +\def\nopinion{% + \advising{}} +\def\jnote{% + \let\signed\jsigned + \advising{Joint Note}} + +\def\draftparameters{% + \widowpenalty=7500 + \def\footnoterule{}% + \parindent=0pt + \quoteindent=\the\clindent + \twelvepoint +} + +\gdef\draft#1{% + \ifended\endedfalse + \else\enddoc + \fi + \begingroup + \amendtextfalse + \gdef\doctype{#1}% + \inform{\ifdraft draft \fi#1}% + \endgroup + \draftparameters + \chittrue + \let\backmatter=\bsdft + \ifdraft\let\signoff\settled % see \chit + \else\let\signoff\empty\fi + \clindtrue + \lpwbsfalse}% + +\def\conference{% + \inform{Conference}% + \chittrue + \def\doctype{Conference}% + \getworkdone}% normally set by backsheet + +\def\telcon{% + \inform{Telephone Conference}% + \chittrue + \def\doctype{Telephone Conference}% + \getworkdone} + + +% Part 13---Pleadings + +% Note: The pleadings macros are in the process of being rewritten. +% As a result they contain a blend of stuff from the old and new +% systems and some macros have been left in order to provide continuity. +% In other words, they are a mess at the moment. + +% First a whole block of defs, some of which are no longer needed +\newdimen\storeparindent + +\def\solicitors{Solicitors} % change to single for sole practitioner +\def\plaintiffs{} % List macro (tb 378), names of plaintiffs +\def\defendants{} % ditto, defendants +\def\thirdparties{} % ditto +\def\plaintiffsaddrs{} % ditto; addresses +\def\defendantsaddrs{} +\def\thirdpartiesaddrs{} +\def\matters{} % List macro +\def\partyname{} % Temporary storage of individual party's name. +\def\outofrange{\noaddr} % If too few \of's, use blank address. +\def\courtname{\phantom{BORCHESTER}}% +\def\issuer{} +\def\chambers{\blank in \blank,} % Is this necessary? +\def\depsname{\blank} % name of deponent in aff endorse. +\def\shortname#1{\def\depsname{#1}} +\def\capacity#1{\ifcapacity ({\it #1\/})\else\unskip\fi} + +\def\firm{\capacity{a firm}} +\def\widow{\capacity{Widow}\female} +\def\minor{\capacity{a Minor}} +\def\patient{\capacity{a Patient}} +\def\mw{\capacity{Married Woman}\female} +\def\co{\capacity{a Company}} +\def\tradingas#1{\capacity{Trading as #1}} +\def\as#1{\capacity{#1}} +\def\female{\unskip + \ifplaintiff\femalepltrue\fi + \ifdefendant\femaledeftrue\fi + \ifthirdparty\femaletptrue\fi} +%\def\re{} +%\def\res{} +\def\theirsols{\noname} % redefine if necessary +\def\theirsolsaddr{\noaddr} % ditto +\def\doctype{} +\def\appellant{\global\appealtrue \plaintiff} +\def\applicant{\global\applicationtrue \plaintiff} +\def\respondent{\defendant} +\def\petitioner{} +\def\petitioner#1{\global\petitiontrue \def\petitioner{#1}} +\def\amend{} +\def\address#1{\def\address{#1}} +\def\petitionersaddress#1{\def\petitionersaddress{#1}} +\def\xheading#1{\removelastskip\medskip\goodbreak + \noindent{\bf #1}\nobreak} + +\newif\ifappeal +\newif\ifcountycourt +\newif\ifcourtofappeal +\newif\ifpetition +\newif\ifapplication + +\newif\ifplaintiff +\newif\ifdefendant +\newif\ifthirdparty +\newif\iffourthparty +\newif\ifappellant +\newif\ifrespondent +\newif\ifapplicant + +\newif\ifpluralplaintiff +\newif\ifpluraldefendant +\newif\ifpluralthirdparty +\newif\ifpluralfourthparty +\newif\ifpluralappellant +\newif\ifpluralrespondent +\newif\ifpluralapplicant + +\newif\ifclientpl +\newif\ifnoparties +\newif\ifcapacity +\newif\ifintendedaction +\newif\ifaffidavit % check this +\newif\iffemalepl +\newif\iffemaledef +\newif\iffemaletp + +\def\intendedparties{\global\intendedactiontrue} + +\def\whenadded{\quad ~~/~~/91} +\def\added{(added\whenadded)} + +\newcount\plcount % total number of plaintiffs +\newcount\dfcount % total number of defendants +\newcount\tpcount % total number of third parties +\newcount\partyno % This party - temporary storage +\newcount\testone % Temporary storage +\newcount\testtwo % Temporary storage +\newcount\mattercount % No. of Matters. + +\def\claims{% + \vskip\the\clskip + \clearclno + {\scaps And the \plaintfs}\ \wants---} +\def\claim{\claims} + +% List macros, taken from the T.B. page 378 ff. + +\toksdef\ta=0 \toksdef\tb=2 % token list registers for temp use +\newcount\cardcount + +\def\rightappenditem#1\to#2{\ta={\\{#1}}\tb=\expandafter{#2}% + \edef#2{\the\tb\the\ta}}% +\def\select#1\of#2\to#3{\def#3{\outofrange}% + \long\def\\##1{\advance#1-1 \ifnum#1=0 \def#3{\relax##1}\fi}#2}% +\def\cardinality#1\to#2{#2=0 \long\def\\##1{\advance#2 by 1 }#1} + + +% Some dimensions to help with formatting of parties + +\newdimen\plwidth \plwidth=0pt +\newdimen\dfwidth \dfwidth=0pt +\newdimen\tpwidth \tpwidth=0pt +\newdimen\allwidths \allwidths=0pt +\newdimen\maxp@rtywidth \maxp@rtywidth=4.5in +\newdimen\partyhang \partyhang=0pt + +% Macros that add plaintiff's name etc to the list +% These macros are quite complicated since they use \csname +% and \endcsname, sometimes to excess + +\def\plaintiffsstuff{} +\def\defendantsstuff{} +\def\thirdpartiesstuff{} +\def\currentpartyaddrs{} + +\newcount\andcount +\newcount\testthree +\newcount\testfour + +\newtoks\tc +\newtoks\tx +\newtoks\cpatoks +\newtoks\cpstoks +\newtoks\cpsctoks +\newtoks\cpfctoks +\newtoks\cpntoks +\newtoks\cpwtoks + +\def\upit{\global\advance\testtwo by-1 + \global\advance\testthree by-1} + +\def\uupit{\global\advance\testtwo by0 + \global\advance\testthree by-2} + +\def\downit{\unskip} + +\def\of#1{% Address of party + \advance\andcount by1 + \edef\abode{% + \ifcase\andcount% + \or{of} + \or{both of} + \else{all of} + \fi} + \ta={\\} \tb=\expandafter{\currentpartyaddrs}% + \tc=\expandafter{\abode#1\, }% + \expandafter\edef\csname\expandafter + \gobble\the\cpatoks\endcsname{\the\tb\the\ta{\the\tc}}% + \ta={\\} \tb=\expandafter{\currentpartystuff}% + \tc=\expandafter{\downit}% + \expandafter\edef\csname\expandafter\gobble\the\cpstoks + \endcsname{\the\tb\the\ta{\the\tc}}% + \andcount=0 + } + +\def\and{% For use where two parties have same address + \advance\andcount by1 + \ta={\\} \tb=\expandafter{\currentpartyaddrs}% + \tc=\expandafter{and}% + \expandafter\edef\csname\expandafter\gobble\the\cpatoks + \endcsname{\the\tb\the\ta{\the\tc}}% + \ta={\\} \tb=\expandafter{\currentpartystuff}% + \tc=\expandafter{\upit}% + \expandafter\edef\csname\expandafter\gobble\the\cpstoks + \endcsname{\the\tb\the\ta{\the\tc}}% + \expandafter\advance\csname\expandafter\gobble\the\cpsctoks + \endcsname by-1 + } + +% The \, in \tc may not be working +\def\nand{% For use where more than two parties have same address + \advance\andcount by1 + \ta={\\} \tb=\expandafter{\currentpartyaddrs}% + \tc=\expandafter{\, }% + \expandafter\edef\csname\expandafter\gobble\the\cpatoks + \endcsname{\the\tb\the\ta{\the\tc}}% + \ta={\\} \tb=\expandafter{\currentpartystuff}% + \tc=\expandafter{\upit}% Formerly \uupit + \expandafter\edef\csname\expandafter\gobble\the\cpstoks + \endcsname{\the\tb\the\ta{\the\tc}}% + \expandafter\advance\csname\expandafter\gobble\the\cpsctoks + \endcsname by-1 + } + +\def\converttc#1#2{% let <control word> = other word... + \expandafter\expandafter\let\expandafter#1% + \csname\expandafter\gobble\the#2\endcsname + } + +% If this macro is called eg with the parameter \plaintiff +% it lets eg \currentpartyshortcount=\plaintiffshortcount + +\def\converttokens#1{% A general purpose macro... + \cpsctoks=\expandafter{\string#1shortcount}% + \converttc{\currentpartyshortcount}{\cpsctoks}% + \cpfctoks=\expandafter{\string#1fullcount}% + \converttc{\currentpartyfullcount}{\cpfctoks}% + \cpatoks=\expandafter{\string#1addrs}% + \converttc{\currentpartyaddrs}{\cpatoks}% + \cpstoks=\expandafter{\string#1stuff}% + \converttc{\currentpartystuff}{\cpstoks}% + \cpntoks=\expandafter{\string#1}% + \converttc{\currentpartynames}{\cpntoks}% + \cpwtoks=\expandafter{\string#1width}% + \converttc{\currentpartywidth}{\cpwtoks}% + } + +% This macro is calld by eg \plaintiff +% In that case #1 is \plaintiff and #2 the actual name of the +% Plaintiff in question (eg JOHN SMITH) +% In the next edition it will do rather more than it does now. + +\def\party#1#2{%#1=party, #2=name + \converttokens{#1}% + \unskip + \cardinality\currentpartyaddrs\to\cardcount + \ifnum\currentpartyfullcount>\the\cardcount + \of{\noaddr}% + \fi + \global\expandafter\advance\csname\expandafter\gobble\the\cpfctoks + \endcsname by1 + \global\expandafter\advance\csname\expandafter\gobble\the\cpsctoks + \endcsname by1 + \setbox0=\hbox{#2}% + \ifdim\wd0>\the\maxp@rtywidth + \global\csname\expandafter\gobble\the\cpwtoks + \endcsname=\the\maxp@rtywidth + \else\ifdim\currentpartywidth<\wd0% + \csname\expandafter\gobble\the\cpwtoks\endcsname=\wd0 + \fi\fi + \converttc{\currentpartywidth}{\cpwtoks}% Reset + \unskip + \ifdim\allwidths<\currentpartywidth + \allwidths=\the\currentpartywidth\fi + \ta={\\} \tb=\expandafter{\currentpartynames}% + \tc=\expandafter{#2}% + \expandafter\edef\csname\expandafter\gobble\the\cpntoks + \endcsname{\the\tb\the\ta{\the\tc}}% + \ifnum\currentpartyfullcount=1 \andcount=0\fi + } + + +% This macro recovers the parties so that their names can be formatted +% The logic in it is still far from perfect +% It is intended to put "and" in the right place, but sometimes fails... + +\newif\ifnoandneeded +\edef\testand{\relax and} + +\def\getparties#1#2{% #1=partylist,#2=partytext + \converttokens{#1}% + \unskip% + \testone=0\testtwo=0% + \testthree=\the\currentpartyfullcount% + \testfour=\the\currentpartyshortcount% + \ifnum\currentpartyfullcount>\the\cardcount% + \advance\andcount by1% + \edef\abode{% Print addresses + \ifcase\andcount% + \or{of}% + \or{both of}% + \else{all of}% + \fi}% + \rightappenditem\abode\to\currentpartyaddrs% + \rightappenditem{}\to\currentpartystuff% + \fi% + \unskip + \loop + \begingroup + \global\advance\testone by1% + \global\advance\testtwo by1% + \partyno=\the\testone% + \select\partyno\of\currentpartynames\to\partyname% + \partyno=\the\testone% reset the counter% + \select\partyno\of\currentpartyaddrs\to\partyaddress% + \partyno=\the\testone% reset the counter + \select\partyno\of\currentpartystuff\to\partystuff% + \partystuff\unskip\relax% + \ifnum\testone>1 + {\ifnum\testtwo=\the\currentpartyshortcount + {\ifnoandneeded + \else\unskip\ and% + \fi + }% + \global\advance\testtwo by1 + \fi + }% + \fi + \ifx\partyaddress\testand \global\noandneededtrue + \else\global\noandneededfalse + \fi + \ifx\partyaddress\empty\let\partyaddress\noaddr\fi%fudge + \unskip\ \partyname\ \partyaddress% + \endgroup + \ifnum\testone<\the\currentpartyfullcount% + \repeat% + #2} + +% A number of these are not yet used +% (and may never be used) + +\def\getpls{\getparties{\plaintiffs}{\pltext}} +\def\getdefs{\getparties{\defendants}{\dftext}} +\def\gettps{\getparties{\thirdparties}{\tptext}} +\def\getfps{\getparties{\fourthparties}{\fptext}} +%\def\getaps{\getparties{\appellants}{\aptext}} +%\def\getresp{\getparties{\respondents}{\rptext}} +%\def\getapplics{\getparties{\applicants}{\altext}} + +\newcount\plshortcount +\newcount\dfshortcount +\newcount\tpshortcount +\newcount\fpshortcount +%\newcount\apshortcount +%\newcount\rpshortcount +%\newcount\alshortcount + +\newcount\plaintiffsshortcount +\newcount\defendantsshortcount +\newcount\thirdpartiesshortcount +\newcount\fourthpartiesshortcount +%\newcount\appellantsshortcount +%\newcount\respondentsshortcount +%\newcount\applicantsshortcount + +\newcount\plaintiffsfullcount +\newcount\defendantsfullcount +\newcount\thirdpartiesfullcount +\newcount\fourthpartiesfullcount +%\newcount\appellantsfullcount +%\newcount\respondentsfullcount +%\newcount\applicantsfullcount + +\newdimen\plaintiffswidth +\newdimen\defendantswidth +\newdimen\thirdpartieswidth +\newdimen\fourthpartieswidth +%\newdimen\appellantswidth +%\newdimen\respondentswidth +%\newdimen\applicantswidth + +\def\unsetallparties{% + \plaintifffalse + \defendantfalse + \thirdpartyfalse + \fourthpartyfalse + } + +\def\plaintiff#1{\unsetallparties\plaintifftrue + \party{\plaintiffs}{#1}} +\def\defendant#1{\unsetallparties\defendanttrue + \party{\defendants}{#1}} +\def\thirdparty#1{\unsetallparties\thirdpartytrue + \party{\thirdparties}{#1}} +\def\fourthparty#1{\unsetallparties\fourthpartytrue + \party{\fourthparties}{#1}} +%\def\appellant#1{\unsetallparties\appellanttrue +% \party{\appellants}{#1}} +%\def\respondent#1{\unsetallparties\respondenttrue +% \party{\respondents}{#1}} +%\def\applicant#1{\unsetallparties\applicanttrue +% \party{\applicants}{#1}} + +\def\listpls{\listparties{\plaintiffs}} +\def\listdfs{\listparties{\defendants}} +\def\listtps{\listparties{\thirdparties}} +\def\listfps{\listparties{\fourthparties}} +%\def\listaps{\listparties{\appellants}} +%\def\listrps{\listparties{\respondents}} +%\def\listapplics{\listparties{\applicants}} + +\def\slistpls{\slistparties{\plaintiffs}} +\def\slistdfs{\slistparties{\defendants}} +\def\slisttps{\slistparties{\thirdparties}} +\def\slistfps{\slistparties{\fourthparties}} +%\def\slistaps{\slistparties{\appellants}} +%\def\slistrps{\slistparties{\respondents}} +%\def\slistapplics{\slistparties{\applicants}} + +\gdef\pluraltext{% + \gdef\addressis{addresses are}% + \gdef\seek{seek}% + \gdef\wants{claim}% + \gdef\respectively{respectively}% + \gdef\them{them}% + \gdef\do{do}% + } + +\gdef\singulartext{% + \gdef\addressis{address is}% + \gdef\seek{seeks}% + \gdef\wants{claims}% + \gdef\respectively{\unskip}% + \gdef\do{does}% + \gdef\them{him}% + } + +\gdef\pltext{% + \ifnum\plaintiffsfullcount>1% + \gdef\plaintfs{\Plaintiffs}% + \pluraltext + \else% + \ifpluralplaintiff% + \gdef\plaintfs{\Plaintiffs}% + \pluraltext + \else% + \gdef\plaintfs{\Plaintiff}% + \singulartext + \fi\fi} + +\gdef\dftext{% + \ifnum\defendantsfullcount>1% + \gdef\dfdants{\Defendants}% + \pluraltext + \else% + \ifpluraldefendant% + \pluraltext + \else% + \gdef\dfdants{\Defendant}% + \singulartext + \gdef\them{\iffemaledef her\else him\fi}% + \fi\fi}% + +\gdef\tptext{% + \ifnum\thirdpartiesfullcount>1% + \gdef\thirdparts{Third Parties}% + \pluraltext + \else% + \ifpluralthirdparty% + \gdef\thirdparts{Third Parties}% + \pluraltext + \else% + \gdef\thirdparts{Third Party}% + \singulartext + \fi\fi} + +\gdef\fptext{% + \ifnum\fourthpartiesfullcount>1% + \gdef\fourthparts{Fourth Parties}% + \pluraltext + \else% + \ifpluralfourthparty% + \gdef\fourthparts{Fourth Parties}% + \pluraltext + \else% + \gdef\fourthparts{Fourth Party}% + \singulartext + \fi\fi} + +%\gdef\aptext{% +% \ifnum\appellantsfullcount>1% +% \gdef\plaintfs{Appellants}% +% \pluraltext +% \else% +% \ifpluralappellant% +% \gdef\plaintfs{Appellants}% +% \pluraltext +% \else% +% \gdef\plaintfs{Appellant}% +% \gdef\addressis{address is}% +% \pluraltext +% \fi\fi} +%% +%\gdef\rptext{% +% \ifnum\respondentsfullcount>1% +% \gdef\dfdants{Respondents}% +% \pluraltext +% \else% +% \ifpluralrespondent% +% \gdef\dfdants{Respondents}% +% \pluraltext +% \else% +% \gdef\dfdants{Respondent}% +% \singulartext +% \fi\fi}% +%% +%\gdef\altext{% +% \ifnum\applicantsfullcount>1% +% \gdef\plaintfs{Applicants}% +% \pluraltext +% \else% +% \ifpluralappellant% +% \gdef\plaintfs{Applicants}% +% \pluraltext +% \else% +% \gdef\plaintfs{Applicant}% +% \singulartext +% \fi\fi} +%% +% Phew. I reckon those need amending... + +% This is one macro that will soon go, being replaced by +% \pleading and \spleading + +\def\topofpleading#1#2{% doctype & ct + \reset + \storeparindent=\the\parindent + \global\parindent=0pt + \def\doctype{#1} + \ct=#2 + \pleadingtrue + \clientpltrue + \gettitle + \def\backsheet{\enddoc\bsdft} + \heading + \parties} + +% So will this. It will be \let equal to \pleading + +\def\generic#1{% + \reset + \def\doctype{\vtop{\centertext{#1}}} + \heading + \ifnoparties\else\parties\fi + \centertext{#1} + \medskip} + +\def\am@nd{% + \ifnum\amendcount>2{\uuul RE-}\fi + \ifnum\amendcount>1{\uul RE-}\fi + \ifnum\amendcount>0{\ul AMENDED }\fi + } + +\def\pleading#1{% doctype + \storeparindent=\the\parindent + \global\parindent=0pt + \draft{\am@nd#1} + \pleadingtrue + \gettitle + \heading + \parties + \ifdraft + \def\signoff{\endofpleading\settled}% + \else\let\signoff\endofpleading\fi + \medbreak + \leavevmode + \centertext{\am@nd#1}% + \nobreak + \amendnote} + +\def\spleading#1{% doctype + \storeparindent=\the\parindent + \global\parindent=0pt + \draft{\am@nd#1} + \pleadingtrue + \gettitle + \heading + \sparties + \ifdraft + \def\signoff{\endofpleading\settled}% + \else\let\signoff\endofpleading\fi + \medbreak + \centertext{\am@nd#1}% + \nobreak + \amendnote} + +\def\gettitle{% This needs a lot of work + \pltext\dftext\tptext % added to deal with ops on their own + \getbstitlewidth + \gdef\title{% + \global\maxp@rtywidth=\the\bstitlewidth + \centerline{\court}\cr + \scaps + \division\cr + \regis\cr + \reference\cr + \noalign{\bigskip}% + \rm + \centertext{\inthematter}\cr + \noalign{\medskip}% + \slistpls\cr + \hfill\it\plaintfs\cr + \against\cr + \strut\cr + \slistdfs\cr + \hfill\it\dfdants\cr}% + \global\maxp@rtywidth=\the\maxpartywidth} + +\def\headingskip{\vskip-\lastskip\smallskip} + +\gdef\heading{% Can this be broken down further? + \vbox{\baselineskip=15pt + \line{\court\hfil\reference}% + \headingskip + \scaps % Turn on caps and smallcaps + \apcourt + \headingskip + \division + \headingskip + \regis + \headingskip + \subdivision + \headingskip + \judgename + \headingskip + \rm % Back to roman + \Writissued + \headingskip + \inthematter + }% end of vbox + \medskip} + +\def\parties{% + \capacitytrue + \pltext% set up the alternative text for `his', `their', etc. + \dftext + \tptext + {\noindent\leftline{BETWEEN\raise.15ex\hbox{---}} + \bigskip + % The next few lines box up the parties. + \centerline{\hbox{\vtop{\baselineskip=15pt %Baselineskip in parties + \halign{\hfill ##\hfill\cr + \listpls\cr + \relax\hidewidth\rightline{\hfil\it + \ifintendedaction Intended\ \fi\plaintfs} + \hidewidth\relax\cr + \hfill \against\hfill\cr + \strut\cr + \listdfs\cr + \relax\hidewidth\rightline{\it + \ifintendedaction Intended\ \fi\dfdants} + \hidewidth\relax\cr + \ifthirdparty + \hfill \against\hfill\cr + \strut\cr + \listtps\cr + \relax\hidewidth\rightline{\it + \ifintendedaction Intended\ \fi\thirdparts} + \hidewidth\relax\cr\fi + }}}}}% + \twelvepoint\bigskip + \capacityfalse} + +% Short version of parties for affy's, etc. + +\def\sparties{% + \capacitytrue + \pltext % set up the alternative text for `his', `their', etc. + \dftext + \tptext + {\noindent\leftline{BETWEEN\raise.15ex\hbox{---}} + % The next few lines box up the parties. + \centerline{\hbox{\vtop{\baselineskip=15pt + \halign{\hfill ##\hfill\cr + \slistpls\cr + \relax\hidewidth\rightline{\hfill\it + \ifintendedaction Intended\ \fi\plaintfs} + \hidewidth\relax\cr + \hfill \against\hfill\cr + \strut\cr + \slistdfs\cr + \relax\hidewidth\rightline{\hfill\it + \ifintendedaction Intended\ \fi\dfdants} + \hidewidth\relax\cr + \ifthirdparty + \hfill \against \hfill\cr + \strut\cr + \slisttps\cr + \relax\hidewidth\rightline{\hfill\it + \ifintendedaction Intended\ \fi\thirdparts} + \hidewidth\relax\cr\fi}}% + }}}% + \bigskip + \capacityfalse}% + +\def\listparties#1{% #1=partylist (eg \plaintiffs) + \converttokens{#1}% + \testone=0\def\\##1{\relax##1\cr}% + \tabskip=0pt + \vtop{\hsize=\the\maxp@rtywidth + \hyphenpenalty=10000\tolerance=2750 + \ifnum\currentpartyfullcount>1 + \halign{\global\advance\testone by1 + \hfil + \llap{(\the\testone)\quad} + \vtop{% + \hsize=\the\currentpartywidth + \hangafter1\hangindent\the\partyhang + \strut##\strut}% end of \vtop + \hfil\cr#1}% end of \halign + \else + \ifnum\currentpartyfullcount=1 + \partyno=1 + \select\partyno \of#1 \to\partyname + \centertext{\partyname}% + \fi\fi}} + +\def\slistparties#1{% #1=\plaintiffs + \converttokens{#1}% + \partyno=1\def\\##1{\relax##1\cr}% + \tabskip=0pt + \select\partyno \of#1 \to\partyname + \vtop{\hsize=\the\maxp@rtywidth + \hyphenpenalty=10000\tolerance=2750 + \ifnum\currentpartyfullcount>2 + \centertext{\partyname{ \it \&~Ors.\/}}% + \else\ifnum\currentpartyfullcount=2 + \centertext{\partyname{ \it \&~Anor.\/}}% + \else\ifnum\currentpartyfullcount=1 + \centertext{\partyname}% + \fi\fi\fi}} + +% This is a default definition. +\long\def\bottomofpleading#1{%#1=text + \def\addressfile{solicitors} + \getaddress + {\def\cr{ of \def\cr{, }}% + \medskip + #1}% + \global\parindent=\the\storeparindent} + +\def\inthematter{% + \ifx\matters\empty + \else\testone=0\def\\##1{\relax\global\advance\testone by1% + \def\and{\ifnum\testone<2{}% + \else{And\ }\fi}% Now do the work + {\scaps \and}##1\strut\cr + \ifnum\testone<\the\mattercount \noalign{\smallskip}\fi}% + \halign{% + \vtop{\twelvebase=15pt\twelvepoint + \hangafter1 \hangindent\clindent ##\strut}\hfil\cr + \matters\crcr}% + \fi} + +% Now some other pleading stuff, esp. amendments + +\def\served#1{\getservicedate{#1}{\dateofservice}} +\def\reserved#1{\getservicedate{#1}{\dateofreservice}} +\def\rereserved#1{\getservicedate{#1}{\dateofrereservice}} +\def\rerereserved#1{\getservicedate{#1}{\dateofrerereservice}} + +\def\writissued#1{% + \getservicedate{#1}{\datewritissued}% + \gdef\Writissued{Writ issued the \nodate}% + } + +\def\getservicedate#1#2{{% + \def\sserved##1/##2/##3roger{% + \def\day{##1}% + \def\month{##2}% + \def\year{\ifnum##3<100 19##3\else##3\fi}% + \expandafter\xdef\csname\expandafter\gobble\string#2\endcsname{\longtoday}% + }% + \sserved#1roger + }} + +\newif\ifamendtext\amendtexttrue +\def\setamendcount#1{\global\amendcount=#1} + +\newcount\amendcount +\newcount\aamct \aamct=0 + +\gdef\amended{% + \enddoc + \setamendcount{1}% + \ifamendtext\amendstuff\fi} + +\gdef\reamended{% + \enddoc + \setamendcount{2} + \ifamendtext\amendstuff\fi} + +\gdef\rereamended{% + \setamendcount{3}% + \ifamendtext\amendstuff\fi} + +\def\amendstuff{%This overlong macro deals with amendment formal parts + \gdef\amendnote{% + \ifnum\amendcount<2% First amendment + \tcl{\scaps Note:} Text inserted by this amendment to this + pleading is shown underlined, {\ul thus}; text deleted by + this amendment is shown crossed-out, {\xo thus}. + \else % Second and subsequent amendments + \tcl{\scaps Note 1:} Text inserted by the first amendment + is shown underlined, {\ul thus}; text deleted by the + first amendment is shown crossed-out, {\xo thus}; + \par + \tcl{\scaps Note 2:} Text inserted by the second amendment + is shown underlined twice, {\uul thus}; text deleted by the + second amendment is shown crossed-out twice, {\xxo thus}. + \fi + \par + \ifnum\amendcount=3% re-re-amendment + \tcl{\scaps Note 3:} Text inserted by the third amendment + is shown underlined thrice, {\uuul thus}; text deleted by + the third amendment is shown crossed-out thrice, {\xxxo thus}. + \fi + }% + \ifnum\ct=1\ccendofpleading\else\hcendofpleading\fi + \global\amendtextfalse + } + +\def\hcendofpleading{% End of pleading for High Court + \gdef\endofpleading{% + \signature + {\ul \signature} + \ifnum\amendcount>1{\uul \signature}\fi + \ifnum\amendcount>2{\uuul \signature}\fi + \bottomofpleading{% + Served the \ifx\dateofservice\empty{\nodate}% + \else{\dateofservice}\fi + \unskip + \ifnum\amendcount=1{\ul\ and }\fi% Amend + \ifnum\amendcount>1{\ignorespaces\ul\unskip, }\fi + {\ul re-served the \ifx\dateofreservice\empty{\nodate}% + \else{\dateofreservice}\fi\unskip} + \ifnum\amendcount=2{\ul\ and }\fi% Reamend + \ifnum\amendcount>2{\ignorespaces\ul\unskip, }\fi + \ifnum\amendcount>1% ie \amendcount is 2 or more + {\uul re-re-served the + \ifx\dateofrereservice\empty{\nodate}% + \else{\dateofrereservice}\fi\unskip} + \fi + \ifnum\amendcount=3{\ul\ and }\fi% Re-re-amend + \ifnum\amendcount>2% ie \amendcount is 3 or more + {\uuul re-re-re-served the + \ifx\dateofrerereservice\empty{\nodate}% + \else{\dateofrerereservice}\fi} + \fi + by \ignorespaces\sols \solicitors\ for the\forwhom\par + }% + }% + } + +\def\ccendofpleading{% End of pleading for county court + \gdef\endofpleading{% + \medskip + Dated the \ifx\dateofservice\empty{\nodate}% + \else{\dateofservice}\fi + \signature + {\ul Dated the \ifx\dateofreservice\empty{\nodate}% + \else{\dateofreservice}\fi\unskip} + {\ul \signature} + \ifnum\amendcount>1 + {\uul Dated the \ifx\dateofrereservice\empty{\nodate}% + \else{\dateofrereservice}\fi\unskip} + {\uul \signature} + \fi + \ifnum\amendcount>2% ie \amendcount is 3 or more + {\uuul Dated the \ifx\dateofrerereservice\empty{\nodate}% + \else{\dateofrerereservice}\fi} + {\uuul\signature} + \fi + \bottomofpleading{% + \rightline{\vtop{\hsize=.6\hsize + The \forwhom's \solicitors\ are \sols + where they will accept service of proceedings + on behalf of the \forwhom.}} + \bigskip + \leftline{\vtop{\hsize=.6\hsize + To the District Judge of the \courtname\ + COUNTY COURT and to the \notforwhom.}} + }% + }% + } + +% Clause numbering for use inside amendments + +\def\acl{\clauselevel=1 + \advance\recno by1 \xcl{\hss\the\clno\char\the\recno.\enspace}} + +\def\aacl{\clauselevel=1 + \advance\recno by1 \xcl{\hss\the\clno\char\the\recno\char + \the\recno.\enspace}} + +\def\aaacl{\clauselevel=1 + \advance\recno by1 \xcl{\hss\the\clno\char\the\recno\char\the\recno% + \char\the\recno.\enspace}} + +\def\ascl{\clauselevel=2 + \advance\recno by1 \xcl{\hss(\the\sclno\char\the\recno)\enspace}} + +\def\aascl{\clauselevel=2 + \advance\recno by1 \xcl{\hss(\the\sclno\char\the\recno% + \char\the\recno)\enspace}} + +\def\aaascl{\clauselevel=2 + \advance\recno by1 \xcl{\hss(\the\sclno\char\the\recno\char\the\recno% + \char\the\recno)\enspace}} + +\let\dateofservice\empty +\let\dateofreservice\empty +\let\dateofrereservice\empty +\let\dateofrerereservice\empty +\let\datewritissued\empty + +\def\resetpleadingdefaults{% + \ifnum\ct=1 + \def\endofpleading{% + \medskip + Dated this \nodate\par\signature + \bottomofpleading{% + \rightline{\vtop{\hsize=.6\hsize + The \forwhom's \solicitors\ are \sols + where they will accept service of proceedings + on behalf of the \forwhom.}} + \bigskip + \leftline{\vtop{\hsize=.6\hsize + To the District Judge of the \courtname\ + COUNTY COURT and to the \notforwhom.}} + }}% + \else + \def\endofpleading{% + \signature + \bottomofpleading{% + Served the \nodate by \ignorespaces\sols \solicitors\ + for the \forwhom}} + \fi + \gdef\amendnote{}% Reset it. + \let\dateofservice\empty + \let\dateofreservice\empty + \let\dateofrereservice\empty + \let\datewritissued\empty + \setamendcount{0}% + \global\maxp@rtywidth=\the\maxpartywidth} + +% These may change. They set up names. + +\gdef\Plaintiffs{\ifappeal Appellants\else\ifapplication Applicants% + \else Plaintiffs\fi\fi} +\gdef\Plaintiff{\ifappeal Appellant\else\ifapplication Applicant% + \else Plaintiff\fi\fi} +\gdef\Defendants{\ifappeal Respondents\else\ifapplication Respondents% + \else Defendants\fi\fi} +\gdef\Defendant{\ifappeal Respondent\else\ifapplication Respondent% + \else Defendant\fi\fi} +\gdef\Thirdparty{Third Party} +\gdef\Thirdparties{Third Parties} + +% examples of use + +% This assumes that \clientpl has already been set true or false +\def\arrangement{% + \def\endofpleading{} + \spleading{ARRANGEMENT}} + +\def\soc{% + \ifx\Writissued\empty\def\Writissued{Writ issued the \nodate}\fi + \clientpltrue + \pleading{STATEMENT OF CLAIM}} + +\def\defence{% + \let\Writissued\empty + \clientplfalse + \pleading{DEFENCE}} + +\def\dacc{% + \gdef\counterclaim{% + \vskip\the\clskip + \centerline{COUNTERCLAIM} + \nobreak} + \let\Writissued\empty + \clientplfalse + \pleading{DEFENCE AND COUNTERCLAIM} + \smallskip + \centerline{DEFENCE} + \nobreak} + +\def\counterclaim{% Counterclaim on its own + \let\Writissued\empty + \clientplfalse + \pleading{COUNTERCLAIM}} + +\def\reply{% Reply on its own + \let\Writissued\empty + \clientpltrue + \pleading{REPLY}} + +\def\rdcc{% Reply and Defence to Counterclaim + \let\Writissued\empty + \clientpltrue + \pleading{REPLY AND DEFENCE TO COUNTERCLAIM}} + +% County Court. Note: These macros do not yet reproduce +% all (or indeed any) of the batty prescribed forms, although +% it would not be difficult to achieve this. +% Most macros are the same as the HC macros + +\def\poc{% + \let\Writissued\empty + \clientpltrue + \pleading{PARTICULARS OF CLAIM}} + +% The Affidavit macros. These are fairly complicated +% First, some general bits and pieces + +\newtoks\shortinitials \shortinitials={} +\newtoks\tempinitials \tempinitials={} +\newtoks\surname \surname={} +\newif\ifsomeletters \somelettersfalse +\newif\ifspace \spacefalse +\newif \ifpunct +\newtoks\firstletter \firstletter={} +\newif\ifmac \macfalse +\newtoks\longinitials \longinitials={} + +\newcount\lettercount +\newcount\surnamecount +\newcount\front + +\def\affyno#1{% + \def\affno{\addsuffix{#1}}} +\affyno{1}% set 1st as default + +% Now some stuff to extract initials from fullnames + +\def\itsaspace{% +\dbhelp{It is a space}% + \ifsomeletters% + \edef\tin{\the\shortinitials\the\firstletter.}% + \shortinitials=\expandafter{\tin}% + \somelettersfalse\fi% + \lettercount=0\surnamecount=0\relax\unskip} + +\def\itsaletter#1{% +\dbhelp{It is a letter-"#1"}% + \advance\lettercount by1% #1 is a letter + \advance\surnamecount by1\relax% + \ifnum\lettercount=1 \firstletter={#1} + \someletterstrue\fi + \ifnum\surnamecount=1\surname=\expandafter{#1}% + \tempinitials=\expandafter{#1}% + \else\ifnum\surnamecount>1% + \tempinitials=\expandafter{\the\tempinitials#1} + \maccheck{#1}% + \fi\fi} + +\def\maccheck#1{% +\dbhelp{Doing MacCheck}% + \ta={Mc} + \edef\tone{\the\ta}% + \edef\ttwo{\the\tempinitials}% + \ifx\tone\ttwo + \mactrue + \surname=\expandafter{\the\tempinitials}% + \else\ifpunct\punctfalse\surname=\expandafter{\the\surname#1}% + \firstletter=\expandafter{\the\firstletter#1}% + \else\ifmac\macfalse\surname=\expandafter{\the\surname#1}% + \firstletter=\expandafter{\the\tempinitials}% + \else\surname=\expandafter{\the\surname\lowercase{#1}}% + \fi\fi\fi} + +\def\itspunctuation#1{% +\dbhelp{It is punctuation-"#1"}% +%\def\temppunct#1{\if#1\noexpand~-\else#1\fi}% + \somelettersfalse + \edef\tin{\the\tempinitials#1} + \tempinitials=\expandafter{\tin}% + \surname=\expandafter{\the\surname#1}% + \someletterstrue + \if#1\space\firstletter=\expandafter{\the\firstletter.}\else + \firstletter=\expandafter{\the\firstletter#1}\fi + \advance\surnamecount by1\puncttrue\relax} + +\gdef\length#1{\lettercount=0\surnamecount=0 +\unskip\ignorespaces\getlength#1!} + +\gdef\getlength#1{% +\dbhelp{Character="#1"} + \unskip\ignorespaces + \if#1! + \let\next=\relax + \edef\tin{\the\shortinitials\the\firstletter.}% + \longinitials=\expandafter{\tin}% + \else% ie if not end of name + \edef\fullname{\fullname#1}% + \dbhelp{Fullname="\fullname"}% + \ifcat\noexpand#1\noexpand~ \itsaspace\fi% + \if#1\noexpand_\itspunctuation{ }\else + \ifcat#1-\itspunctuation{#1}\fi\fi% + \ifcat#1a \itsaletter{#1}\fi% + \let\next=\getlength% + \fi% it is an exclamation mark + \unskip\next} + +\gdef\deponent{% + \enddoc \endedtrue + \def\clearexno{\exno=0 \front=0}%Use \setexno{n} to reset to other number. + \shortinitials={}%reset the lot + \surname={} + \longinitials={} + \def\of##1{\def\hisaddr{##1}% + \ifx\hisaddr\empty\def\hisaddr{[{\it address\/}]}\fi}% + \def\occupation##1{\def\hisoccupation{##1}% + \ifx\hisoccupation\empty + \def\hisoccupation{[{\it occupation\/}]}\fi + \def\comma{, }}% + \of{}\occupation{}% set up the defaults + \def\nooccupation{\def\hisoccupation{}% + \def\comma{}}% + \catcode`\ =\active % Make spaces active ftb. + \global\catcode`\_=\other % Make underlines into letters + \let\tempt=~ \catcode`\~=\other \let\tilde=~ % check tilde + \let\tempb=\blank \let\blank=\space + \whatsnext} + +\def\whatsnext#1{% + \ifx#1\noname + \shortinitials={\blank}% + \surname={\blank\blank}% + \longinitials={\blank\blank}% + \def\fullname{\noname}% + \else + \edef\fullname{}% + \length{#1}% + \fi + \def\depsname{\hbox{\ignorespaces% + \the\shortinitials\space\the\surname}}% + \xdef\inits{\the\longinitials}% + \catcode`\ =10% reset the catcodes + \catcode`\~=\active + \catcode`\_=8 + \let~=\tempt + \let\blank=\tempb + \gdef\deplname{I, \fullname, of \hisaddr\comma + \hisoccupation, make oath and say as follows---}} + +\def\affidavit{\par% Note: This does NOT set \clientpl + \clearexno + \draft{AFFIDAVIT}% This has been moved + \gettitle + \pleadingtrue + \endorsementtrue + \ifdraft + \def\signoff{\endofpleading\settled}% + \else\let\signoff\endofpleading\fi + \def\endofpleading{% + \bottomofpleading{\sworn}}% + \ifdraft\else + \def\doextras{\getfrontsheets\let\doextras\empty} + \fi + \endorsement + \heading + \sparties + \deplname % produces I, etc, make oath, etc. + \medskip} + +\def\endorsement{\tlap{\rightline{% + \baselineskip=13pt\tenbf\getendorsement}\medskip}} + +\def\bsendorsement{\tlap{\xcenterline{% + \baselineskip=10pt\ninebf\getendorsement}}} + +\def\getendorsement{% + \setbox0\hbox{Deponent}\dimen1=.4\wd0 + \setbox0\hbox{Party\hskip\dimen1\forwhom}\dimen2=\wd0 + \setbox0\hbox{Deponent\hskip\dimen1\depsname}% + \ifdim\wd0>\dimen2 \dimen2=\wd0\fi + \setbox0\hbox{No.\ of Affidavit\hskip\dimen1\affno}% + \ifdim\wd0 >\dimen2 \dimen2=\wd0\fi + \setbox0\hbox{Date Sworn\hskip\dimen1\whensworn}% + \ifdim\wd0>\dimen2 \dimen2=\wd0\fi + \vbox{% + \hbox to \dimen2{Party\dotfill\ignorespaces\forwhom}% + \hbox to \dimen2{Deponent\dotfill\ignorespaces\depsname} + \hbox to \dimen2{No.\ of Affidavit\dotfill% + \hbox{\ignorespaces\affno}}% + \hbox to \dimen2{Date Sworn\dotfill\whensworn}% + }} + +\def\frontsheet#1{% Produces frontsheets for exhibits + \vfil\eject + \endorsement + \heading + \sparties + \pageno=0 + \nopagenumbers + \inform{Frontsheet for Exhibit "\inits \number#1"}% + \vtop{\raggedright\uchyph=0 + This is the Exhibit marked ``\inits\,\number#1'' referred to + in the Affidavit of \fullname\ sworn before me this \nodate + \vskip1.5in + \hskip.6\hsize\nobreak Solicitor }% + \vfil\eject} + +\def\getfrontsheets{% + \ifnum\exno=0 + \else + \loop + \advance\front by1 + \frontsheet{\number\front}% + \ifnum\exno>\number\front\repeat + \fi} + +% End of affidavit macros + + +% Originating Summons - long form + +%\gdef\os{% +% \topofpleading{ORIGINATING SUMMONS}{0} +% \def\endos{\bottomofpleading{\endostext}} +% \ostext} +% +% Originating Summons - short form +% +% Minutes of Order +% +%\def\minutes{% +% \topofpleading{MINUTES OF ORDER}{0} +% \medskip +% \centerline{MINUTES OF ORDER} +% \medskip +% {\scaps This Application}, \etc\par +% {\scaps And Upon Hearing}, \etc\par +% {\scaps And Upon Reading}, \etc\par} +% +\def\order{% + \topofpleading{ORDER}{0} + \medskip + \centerline{ORDER} + \medskip} + +% Other macros take the same form. (More will be added.) + +\def\statementofclaim{% + \topofpleading{\amend STATEMENT OF CLAIM}{0} + \medskip + \centerline{\amend STATEMENT OF CLAIM} + \par\nobreak\medskip} + +\def\endwrittext{% + {\scaps This Writ} was issued by \ignorespaces\sols \solicitors\ for + the said \plaintfs\ whose \addressis\ as stated above} + +\def\endgenwrit{% This can be removed +% \signature + \bottomofpleading{% + {\scaps This Writ} was issued by \ignorespaces\sols \solicitors\ for + the said \plaintfs\ whose \addressis\ as stated above}} + +\def\sjsummons{% O.14. It may be necessary to set \clientpl + \origprocess{SUMMONS}{\summarytext}{}{}{\endsummarytext}% + } + +\def\spsummons{% O.86. It may be necessary to set \clientpl + \topofpleading{SUMMONS}{0} + \specifictext} + +\def\summons{% This is an ordinary summons + \topofpleading{SUMMONS}{0} + \summonstext} + +\def\endsummons{% + {\scaps Dated} \nodate + \bottomofpleading{This Summons was taken out by\sols \solicitors\ for + the above-named \forwhom\par + \medskip + To the \notforwhom\ and to \theirsols, of \theirsolsaddr, Solicitors + for the above-named \notforwhom.}} + +\def\defenceandcounterclaim{% + \reset + \def\doctype{DEFENCE AND COUNTERCLAIM} + \pleadingtrue + \clientplfalse + \draftparameters + \gettitle + \def\backsheet{\enddoc\bsdft} + \heading + \parties + \centerline{\amend DEFENCE} + \medskip} + +\def\reply{% + \reset + \def\doctype{\amend REPLY} + \clientpltrue + \heading + \ifnoparties\else\parties\fi + \centerline{\amend REPLY} + \medskip} + +\def\replyanddefencetocounterclaim{% + \reset + \def\doctype{\vtop{\hsize=2.5in + \centertext{\amend REPLY AND DEFENCE + TO COUNTERCLAIM}}} + \clientpltrue + \heading + \ifnoparties\else\parties\fi + \centerline{\amend REPLY AND DEFENCE TO COUNTERCLAIM} + \medskip + \centerline{\amend REPLY} + \medskip} + +\def\counterclaim{% This is for use in a Defence & Counterclaim + \bigbreak\centerline{\amend COUNTERCLAIM}\nobreak\medskip} + +\def\particulars{\clno=0 + \par\smallskip\centerline{PARTICULARS}\par} + +\def\served{% + \bottomofpleading{% + Served the \nodate by \ignorespaces\sols \solicitors\ + for the \dfdants}} + +% backsheet macros + +% Misc + +\edef\workdone{} +\newtoks\tempwd \tempwd={} +\newdimen\bstopincrease \bstopincrease=.5in +\newdimen\bsbotincrease \bsbotincrease=.5in +\def\chittitle{% + \slistpls\cr + \ v.\cr + \slistdfs\cr} +\newdimen\storeparindent + +\def\osinhtext{LET\ignorespaces\getdefs\ attend + before Master \nomonth at Chancery Chambers, + Room No.\noday, Royal Courts of Justice, Strand, + London, WC2A2LL on a day to be fixed on the hearing + by the \plaintfs \getpls for the following relief, + that is to say---\par +\medskip} + +\def\endosinhtext{And let the \dfdants\ within [14 days] + after service of this summons on \them\ counting the + day of service, return the accompanying Acknowledgment + of Service to the appropriate Court Office.\par + \nobreak\smallskip + Dated the \nodate + + {\bf Note---}This summons may not be served later than 12 + calendar months beginning with the above date unless + renewed by order of the Court.\par + \medskip + This summons was taken out by \ignorespaces\sols \solicitors\ + for the said \plaintfs\ whose \addressis\ as stated above + \medskip + + {\bf Note---}If a defendant does not attend personally + or by his counsel or solicitor at the time and place + above-mentioned such order will be made as the Court may + think fit just and expedient.\par + \medskip + A defendant who is a personal representative must, + within 21 days after service of this summons on him, + counting the day of service, lodge with the court an + affidavit in answer, stating the particulars required by + Order 99, rule 5 of the Rules of the Supreme Court.\par + \medskip + \centerline{\bf IMPORTANT}\par\nobreak + Directions for Acknowledgment of Service are given with the + accompanying form.\par + } + +\def\summarytext{% Spacing reduced to get it on one page + \twelvebase=17pt\twelvepoint + \smallskip + {\scaps Let all parties} concerned attend \chambers\ + Royal Courts of Justice, Strand, London WC2A 2LL, + on \phantom{[Mon]}day the \nodate\ at \noname on + the hearing of an application on the part of the \plaintfs\ + for the relief claimed in the Statement of Claim + \smallskip + {\scaps Take Notice} that a party intending to oppose + this application or to apply for a stay of execution + should send to the opposite party or his Solicitor to + reach him not less than three days before the date + above mentioned a copy of any affidavit intended to be used.} + +\def\endsummarytext{% + {\scaps Dated} \nodate + \smallskip + This summons was taken out by \ignorespaces\sols \solicitors\ + for the \plaintfs. + \smallskip + TO \noname, of \noaddr, \solicitors\ for the \dfdants.\par} + +\def\specifictext{% + \smallskip + {\scaps Let all parties} concerned attend before Master + \if\mast\empty\blank\blank\else\mast\ \fi + at the Chambers of the Judge, Room No.~\phantom{100}, Royal + Courts of Justice, Strand, London WC2A 2LL, on + \phantom{Wednesday} the \nodate\ at \phantom{12}~o'clock in + the \phantom{after}noon on the hearing of an application on + the part of the \plaintfs\ for the following relief--- + + \cl An order pursuant to Order 86 of the Rules of the Supreme Court + for specific performance of the agreement in the Writ in this action + mentioned in the terms of the Minutes set out in the Schedule hereto + + \cl All necessary and further inquiries and accounts + + \cl In the alternative Directions as to the pleading in and further + conduct of this action + \schedule\par} + +\def\summonstext{% + {\scaps Let all parties} concerned attend before Master \blank + at the Chambers of the Judge, Room No.~\phantom{100}, Royal + Courts of Justice, Strand, London WC2A 2LL, on + \phantom{Wednesday} the \nodate\ at \phantom{12}~o'clock in + the \phantom{after}noon on the hearing of an application on + the part of the \plaintfs\ for the following + relief---\par\nobreak\medskip} + +\def\ostext{% + TO\ignorespaces\getdefs + \smallskip + {\scaps Let The \expandafter{\dfdants}}\ within [14] days after + service of this summons on \them\ \respectively, counting the day + of service, return the accompanying Acknowledgment of Service + to the appropriate Court Office + \smallskip + {\scaps By This Summons}, which is issued on the application of the + \plaintfs\unskip\space\getpls\unskip\space the \plaintfs\ \seek\ the + following relief, that is to say---\hfil\par} + +\def\endostext{% + If the \dfdants\ \do\ not acknowledge service, such judgment may + be given or order made against or in relation to \them\ as the + Court may think just and expedient + \medskip + Dated the \nodate + \medskip + {\bf Note}---This summons may not be served later than 4~calendar + months beginning with the above date unless renewed by order of + the Court. + \medskip + This summons was taken out by \ignorespaces\sols \solicitors\ + for the said \plaintfs\ whose \addressis\ as stated above + \medskip + \centerline{\bf IMPORTANT}\par\nobreak + Directions for Acknowledgment of Service are given with the + accompanying form.\par + } + +\def\subjectmatter#1#2{%#1=matter,#2=text + \global\advance\mattercount by1 + \rightappenditem{\scaps#1 \rm of} #2\to\matters} + +\def\matter#1{\subjectmatter{In the Matter}{#1}} +\def\estate#1{\subjectmatter{In the Estate}{#1}} + +\def\re#1{\nopartiestrue\def\res{\vbox{\hsize=2.8in + \centertext{#1}}}} + +% Set up the parties + +\def\forwhom{\pltext\dftext%\unskip + \ifclientpl\plaintfs\else\dfdants\fi} + +\def\notforwhom{\pltext\dftext%\unskip + \ifclientpl\dfdants\else\plaintfs\fi} + +\newcount\ct % courts +\def\court{\ifcase\ct IN THE HIGH COURT OF JUSTICE + \or IN THE \courtname\ COUNTY COURT + \or IN THE COURT OF APPEAL + \or IN THE HOUSE OF LORDS + \else IN THE HIGH COURT OF JUSTICE + \fi} + +\def\highcourt{\ct=0} + +\def\countycourt{%\ct=1 \div=0 \dref=0 + \morecountycourtdefaults\countycourtstuff\getcourtname} + +\def\getcourtname{% adapted from \setupccrefs below + \begingroup\obeylines + \aftergroup\getnameofcase\casereferences} + +\def\getnameofcase{% + \def\dateref{}% + \def\caseref{}% + \def\courtname{\argument1}% + } + + +\def\courtofappeal{\ct=2\def\appealtext{\courtofappealtrue}} +\def\houseoflords{\ct=3} + +\newcount\div +\newcount\dref + +\def\chancery{\div=1 \dref=1 + \def\divref{CH\ } + \def\issuer{Chancery Chambers} + \def\chambers{Master + \if\mast\empty \blank + \else\mast\ \fi in Chancery + Chambers, Room No.\noday, }} + +\def\queensbench{\div=2 \dref=2 + \def\divref{QB\ } + \def\issuer{Central Office} + \def\chambers{the Master in Chambers in Room No.\noday, + Central Office, }} + +\def\familydivision{\div=3 \dref=3 + \def\divref{No.\ } + \def\issuer{The Principal [{\it or\/} + \blank District Probate] Registry} + \def\chambers{}} + +\newcount\subdiv +\def\subdivision{\ifcase\subdiv + \or Companies Court + \or Commercial Court + \or Official Referee's Court + \or The Principal [{\it or\/} \blank District Probate] + Registry + \fi} +\def\companiescourt{\subdiv=1} +\def\commercialcourt{\subdiv=2} +\def\OR{\subdiv=3} +\def\probateregistry{\subdiv=4} + +\def\mrjustice{} +\def\judge#1{\def\mrjustice{#1}} +\def\judgename{\if\mrjustice\empty\else Mr Justice \mrjustice\fi} + +\def\mast{} +\def\master#1{\def\mast{#1}} +\def\mastername{\if\mast\empty\else Master \mast\fi} + +\def\divref{\ifcase\dref + \or CH\ + \or QB\ + \or Fam.\ + \fi} + +\def\dateref{\ifcountycourt\else\number\year\fi} +\def\caseref{\ifcountycourt\else --\phantom{A}--\fi} +\def\casenumber{No.~\phantom{1234}} +\def\issued{} +\def\writissued{} +\def\issued#1 #2 #3 {\def\writissued{% + Writ issued the #1 day of #2 #3}} + +\def\no#1 {\def\casenumber{No.\ #1} + \def\dateref{} + \def\caseref{}} + +\def\reference{\divref\dateref\caseref\casenumber} + +% Can't remember what these did... +%\def\sref#1{\def\sref{#1}} +%\def\cref#1{\creftrue\def\cref{#1}} + +\def\attention#1{\def\attentionof{#1}} +\attention{} +\long\def\comment#1{\def\faxtext{\if#1\empty + \else\medskip#1\fi}} +\comment{} + +\def\backsheet{\enddoc\bsdft}% default +\let\beginos\os + +% Here are all the default parameters set by LeXTeX--- + +\greektrue % Used in \sssscl +\cardtrue % Used in \ssssscl +\clindtrue % hanging indentation in clauses +\nocommaindatefalse % Comma in the date +\qfalse % No quotes in quotations + +\footindent=10pt % Indentation of footnotes +\clindent=23pt % Indentation of clauses +\sclindent=46pt % Indentation of sub-clauses +\ssclindent=69pt % Indentation of sub-sub-clauses +\sssclindent=92pt % Indentation of sub-sub-sub-clauses +\ssssclindent=115pt % Etc +\sssssclindent=138pt % Etc +\cnindent=65pt % indentation of "computer-numbered" clauses + +\hclindent=0pt % Indentation of clauses if clindfalse +\hsclindent=\clindent % Ditto of sub-clauses +\hssclindent=\sclindent % Etc +\hsssclindent=\ssclindent +\hssssclindent=\sssclindent +\hsssssclindent=\ssssclindent + +\parindent=20pt % indentation of paragraphs +\quoteindent=20pt % indentation of quotations +\quoteparindent=20pt % \parindent in a quotation +\rbracketsize=2.85in % The width of the \vbox used for \ssd etc +\lbracketsize=2.225in % The width of a left bracket \vbox +\brackdepth=.5in % The space left under "in the presence of---" +\hfuzz=1.5pt +\hsize=5.35in +\vsize=8.5in +\hoffset0.5in +\voffset.5in +\parskip=3pt plus .75pt minus .75pt +\def\footnoterule{} + +\quoteparskip=1.5pt plus 1pt % The amount of \parskip in quotes +\blankskip=10pt plus20pt minus 0pt % Used in \noaddr etc +\signindent=3.5in % Indentation of signature + +\settledgap=1in plus.3fill minus.5in % v. space Settled, \inn +\clskip=\medskipamount % amount of skip before a clause +\sclskip=\smallskipamount % amount of skip before a \scl +\ssclskip=0pt plus1pt minus0pt % amount of skip before a \sscl +\sssclskip=0pt plus.5pt minus0pt % ditto before a \ssscl + +\twelvebase=18pt % \normalbaselines in \twelvepoint +\tenbase=15pt % \normalbaselines in \tenpoint +\ninebase=11pt % \normalbaselines in \ninepoint + +\twelvesmallskipamount=4.5pt plus1pt minus1pt +\twelvemedskipamount=9pt plus2pt minus2pt +\twelvebigskipamount=18pt plus4pt minus4pt +% The next three are set by PLAIN +%\tensmallskipamount=3pt plus1pt minus1pt +%\tenmedskipamount=6pt plus2pt minus 1pt +%\tenbigskipamount=12pt plus4pt minus4pt +\ninesmallskipamount=2pt plus.5pt minus.5pt +\ninemedskipamount=4pt plus1pt minus 1pt +\ninebigskipamount=8pt plus2pt minus 2pt + +% The next three are used by xref/contents macros +\notespace=0.2in % space marginal notes--text +\maxnote=1.0in % width of note +\clnamelength=0pt % Default width in table of contents +\pagewidth=\hsize % used by the index macros +\pageheight=\vsize + +\def\against{and} % the "and" between parties in pleadings + +\tolerance=750 + +\def\engrossment{% + \draftfalse + \def\csettled##1{} + \def\cresettled##1{}} + +\def\setexno#1{\def\clearexno{\exno=#1 \front=#1}\clearexno} + +\countdef\totaldocuments=1 \totaldocuments=0 +\countdef\totalpages=2 \totalpages=1 + +\def\advancepageno{\ifnum\pageno<\z@ \global\advance\pageno\m@ne + \else\global\advance\pageno\@ne\fi + \global\advance\totalpages\@ne} + \output{\plainoutput} + +\def\plainoutput{\ifnum\pageno=1 \global\advance\totaldocuments\@ne\fi + \message{Shipping out page} + \shipout\vbox{\makeheadline\pagebody\makefootline}% + \inform{(\ifnum\pageno=0 Unnumbered page\else Page \the\pageno\fi + \space of Document \the\totaldocuments, + Total of \the\totalpages\space\ifnum\totalpages=1 page\else pages\fi\space so far)}% + \inform{}% + \advancepageno + \ifnum\outputpenalty>-\@MM \else\dosupereject\fi} + +\let\backmatter=\empty +\let\signoff=\empty + +\def\bstitle#1{% + \getbstitlewidth + \def\title{\setbox0\hbox{#1} + \ifdim\wd0<\bstitlewidth\copy0 + \else\vtop{\hsize=\bstitlewidth\centertext{#1}}\fi + }} % used for backsheets + +\newdimen\maxpartywidth + +% These slightly complicated macros were derived from some suggestions made +% by Amy Hendrickson in TUGboat Vol 11, No 3, p359. +% \default defines eg \argument1 to be parameter 2. +% Unfortunately it would not be possible to call \argument1 directly. +% It would be necessary to use \csname argument1\endcsname[parameter 2] +% The macro \argument gets round this difficulty; \argument{1} (or \argument1 +% if there is only one token to be used) converts to \argument1 (all one word). +% So \argument12 converts to \argument1{2}. Clear? + +\def\default#1#2{\expandafter\def\csname argument#1\endcsname{#2}} +\def\argument#1{\csname argument#1\endcsname} + +\def\highcourtdefaults{% + \resetpleadingdefaults + \ct=0% I think this should be elsewhere + \default1{\number\year} + \default2{\phantom{W}} + \default3{\phantom{4321}} + \def\divref{CH~} + } + +% get rid of old defs +\def\dateref{} +\def\caseref{} +\def\casenumber{} + +\def\probatedefaults{% + \resetpleadingdefaults + \default1{} + \default2{} + \default3{} + \def\divref{File No.~} + \def\sparties{}} + +\def\countycourtdefaults{% + \resetpleadingdefaults + \default1{\phantom{1234}} + \def\divref{} + } + +\def\morecountycourtdefaults{% + \resetpleadingdefaults + \default1{\phantom{BORCHESTER}} + \def\divref{} + } + +\def\division{\ifcase\div% \blank Division + \or Chancery Division% 1 + \or Queen's Bench Division% 2 + \or Family Division% 3 + \or\or\or\or\or\or\or% 10 + \or Chancery Division (Probate)% 11 + \else \blank Division + \fi} + +\def\chanceryp{\div=11 \dref=1 + \def\divref{CH\ } + \def\issuer{Chancery Chambers} + \def\chambers{Master + \if\mast\empty \blank + \else\mast\ \fi in Chancery + Chambers, Room No.\noday, }} + +\def\countycourtstuff{% + \ct=1 \div=0 \dref=0 + \countycourttrue + }% + +\gdef\ch{% + \pleadingtrue\highcourtdefaults + \chancery\setuphcrefs} +\gdef\qb{% + \pleadingtrue\highcourtdefaults + \queensbench\setuphcrefs} +\gdef\family{% + \pleadingtrue\highcourtdefaults + \familydivision\setupfamrefs} +\gdef\case{% + \pleadingtrue\countycourtdefaults + \countycourtstuff\setupccrefs} +\gdef\chp{% + \pleadingtrue\highcourtdefaults + \chanceryp\setuphcrefs} +\def\probate{% + \pleadingtrue\probatedefaults + \familydivision\begingroup} + +\def\setuphcrefs{% The \endgroup is given by \lookatarg + \begingroup\obeylines + \aftergroup\setuphighcourt\casereferences} + +\def\setupfamrefs{% The \endgroup is given by \lookatarg + \begingroup\obeylines + \aftergroup\setupfamcourt\casereferences} + +\def\setupccrefs{% +% \countycourtdefaults + \begingroup\obeylines + \aftergroup\setupcountycourt\casereferences} + +\def\setuphighcourt{% + \def\dateref{\argument1}% + \def\caseref{---\argument2---}% + \def\casenumber{No.~\argument3}% + } + +\def\setupfamcourt{% + \def\dateref{\argument1}% + \def\caseref{ of~\argument2}% + \def\casenumber{}% + } + +\def\setupcountycourt{% + \def\dateref{}% + \def\caseref{}% + \def\casenumber{Case No.~\argument1}% + } + +% Note: Do not concatenate the next two lines +% The end of line is the delimiter of #1 of \casereferences. +% roger is the delimiter of #1 of \lookatarg. See Amy Hendrickson's +% Article in TUGboat for an explanation. + +{\obeylines\gdef\casereferences#1 +{\expandafter\lookatarg#1 roger }} + +\newcount\argcount \argcount=0 +\def\endofargs{roger} + +\def\lookatarg#1 {\def\thisarg{#1} + \ifx\thisarg\empty \let\go\lookatarg\else + \ifx\thisarg\endofargs\let\go\endgroup + \else\unskip\advance\argcount by1 + \expandafter\xdef\csname argument\the\argcount\endcsname{\thisarg} + \let\go=\lookatarg + \fi\fi + \go} + +\def\registry#1{% + \gdef\regis{#1 Registry}} +\let\regis\empty + + +% Move the next def +\def\appealcourt{\def\apcourt{ON APPEAL FROM + \headingskip + \courtappealled}} +\let\apcourt\empty + +\newdimen\bstitlewidth +\def\getbstitlewidth{\iffullsize\bstitlewidth=\hsize + \else\bstitlewidth=.5\hsize\fi} + +% add to counter too many backsheet in multiple affys +\newif\ifended + +\def\datesworn#1{\def\whensworn{#1}} +\datesworn{~~/~~/\number\year} + +\def\origprocess#1#2#3#4#5{%#1=text for \draft, #2=intro text, +% #3=heading of document, #4=signature (if used), #5=end text + \enddoc + \storeparindent=\the\parindent + \global\parindent=0pt + \draft{#1} + \pleadingtrue + \gettitle + \heading + \parties + \def\endofpleading{#4\bottomofpleading{#5}} + \ifdraft + \def\signoff{\endofpleading\settled} % see \chit + \else\let\signoff\endofpleading\fi + \medbreak + \leavevmode + #2\par + \centertext{#3} + \nobreak + \amendnote} + +\gdef\os{% + \origprocess{ORIGINATING SUMMONS}% + {\ostext}{}{}{\endostext}} + +\def\osinheritance{% + \origprocess{ORIGINATING SUMMONS}% + {\osinhtext}{}{}{\endosinhtext}} + +\def\specialwrit{% + \clientpltrue + \origprocess{WRIT OF SUMMONS\break(SPECIALLY ENDORSED)}% + {\writtext}{STATEMENT OF CLAIM}{\signature}{\endwrittext}} + +\def\generalwrit{% No Statement of Claim + \origprocess{WRIT OF SUMMONS\break(GENERALLY ENDORSED)}% + {\writtext}{}{\signature}{\endwrittext}} + +\def\writ{\specialwrit} + +\def\pageparameters{ + \def\footnoterule{} + \parindent=10pt + \quoteindent=20pt + \quoteparindent=10pt + \twelvepoint +} + +% These should be redefined in RHlocal +\def\myaddress{\ouraddress} +\def\ouraddress{} + +\newif\iffax +\def\faxsheet{\faxtrue} + +\def\printfaxsheet{% + \amendtextfalse + \gdef\doctype{Sent by Fax} + \inform{\doctype} + \draftparameters + \draftfalse + \getworkdone + \let\backmatter\empty + \let\signoff\empty + \clindfalse +% \begingroup + \pageno=1 + \nopagenumbers + \parindent=0pt + \centerline{\caps Fax from \counselname} + \centerline{\vtop{\baselineskip=13pt\halign{\hfil##\hfil\cr + \myaddress\crcr}}\strut} + \bigskip + \leftline{\vtop{\tenpoint\halign{##\hfil\cr + \today\cr + \noalign{\medskip} + Solicitors' Reference---\sref\cr + Counsel's Reference---\cref\cr + \if\attentionof\empty\else + \noalign{\medskip} + For the Attention of \attentionof\cr + \fi + }\strut}} + \bigskip + \ifpleading\def\title{\chittitle\hfil}\fi + \centerline{\vtop{\halign{\hfil##\hfil\cr\title\crcr}}} + \vfil + \centerline{\caps This Fax Consists of \the\count1\ Pages} + \centerline{\caps (including this page)} + \faxtext + \vfil + \def\addressfile{solicitors} + \getaddress + \leftline{\vtop{\baselineskip=13pt + \halign{##\hfil\cr + \sols\crcr} + \strut}} + \supereject + % \endgroup + \faxfalse} + +\font\eightsl=cmsl8 +\font\eightit=cmti8 + +\def\ca{% \def\v has been moved since it caused spacing problems +\begingroup\it\frenchspacing % This deals with, eg. Ltd. and v. +} + +\def\v{\unskip\/\ {\rm v}\maybespace}% taken out of \ca +\def\se{\unskip\/\endgroup\maybespace}% mod aftergroup + +\def\signed{% + \inform{signature}% + \par\nobreak + \vskip1in plus 1fill + \hbox{\hskip\signindent\vtop{% + \parindent0pt + \inn + \hbox{\today}}}% + \vskip 1in plus 2fill minus1in} + +\def\jsigned{% + \inform{signatures}% + \par\nobreak + \vskip1in plus 2fill + \hbox{\hskip\signindent\vtop{% + \parindent0pt + \inn + \hbox{\today}}}% + \vskip 1in plus 1fill minus1in} + +\def\copysigned{% + \par\nobreak + \vskip.75in plus 1fill + \hbox{\hskip\signindent\vtop{% + \parindent0pt + \hbox{\counselname} + \hbox{\inn} + \hbox{\today}}}% + \vskip 1in plus 2fill minus1in} + +% These are defined twice! One should go... +\def\csettled#1{% + \par\nobreak + \vskip1in plus 1fill + \hbox{\hskip\signindent\vtop{% + \advance\hsize by-\signindent + \parindent0pt + \raggedright\tolerance=1000 + Settled, \ignorespaces#1 + \vskip\settledgap + \inn + \hbox{\today}}}% + \vskip 1in plus 2fill minus1in} + +\def\cresettled#1{% Note the \par + \par\nobreak + \vskip1in plus 1fill + \hbox{\hskip\signindent\vtop{% + \advance\hsize by-\signindent + \parindent0pt + \raggedright\tolerance=1000 + Re-Settled, \ignorespaces#1 + \vskip\settledgap + \inn + \hbox{\today}}}% + \vskip 1in plus 2fill minus1in} + +\def\silenthyphen{\space} + +\def\footnotemark{% One bracket deleted. + \let\@sf\empty\relaxnext@\ifhmode\edef + \@sf{\spacefactor\the\spacefactor}\/\fi + \def\next@{\ifx[\next\let\next\nextii@\else + \ifx"\next\let\next\nextiii@\else + \let\next\nextiv@\fi\fi\next}% bracket deleted. + \def\nextii@[##1]{\footmarkform@{##1}\@sf}% + \def\nextiii@"##1"{{##1}\@sf}% + \def\nextiv@{{\scriptfont0=\sevenrm % scriptfont changed to 7pt + \global\advance\footmarkcount@\@ne + \footmarkform@{\number\footmarkcount@}\@sf}}% + \futurelet\next\next@} +\catcode`\@=\other + +\def\instructions{% + \getbstitlewidth + \begingroup + \def\doctype{INSTRUCTIONS TO COUNSEL} + \capacitytrue + \bsparams + \ifpleading + \else\xcenterline{\underbar{DATED\hskip2in \number\year}}\vfil\fi + \xcenterline{\vtop{\openup2\jot + \halign{\hfil##\hfil\cr + \title\crcr}}} +\vfil + \headerfont + \xcenterline{% + \setbox0\hbox{\doctype}% + \ifdim\wd0<\bstitlewidth\copy0 + \else\vtop{\hsize=\bstitlewidth\centertext{\doctype\strut}}% + \fi} + \rm + \medskip + \xcenterline{\formalcounselname}% + \vfil\vfil + \getaddress + \halign{\def\temp{##}\xcenterline{\upperc{\temp}}\inform{::\temp::}\cr + \sols\crcr}% + \smallskip + \xcenterline{\eightrm Solicitors' Reference: \sref} + \xcenterline{{\eightrm Counsel's Reference: \col/\cref}} + \supereject + \endgroup} + +\def\writecontents{\inform{Opening contents file: }% + \immediate\openout\cont=\contentswritefile} + +\def\minutes{% + \spleading{MINUTES OF ORDER} + {\scaps This Application}, \etc\par + {\scaps And Upon Hearing}, \etc\par + {\scaps And Upon Reading}, \etc\par} + +\vbadness=5000 % No messages about underfull pages +\delimitershortfall=1pt +\delimiterfactor=999 + +% amend topofpleading to have 3 params, 3 being party. +\def\dovcert{\sdcert{M}} +\def\giftcert{\sdcert{L}} + +\def\capacityfont{} +\def\capacity#1{\ifcapacity ({\capacityfont #1\/})\else\unskip\fi} + +\def\beginparticulars{% + \par + \vskip\clskip + \begingroup + \clno=0 + \centerline{PARTICULARS} + \par\nobreak} + +\def\endparticulars{% + \endgroup} + +\def\writtext{% + {\scaps To The \expandafter\uppercase{\dfdants}}% + \unskip\space\getdefs\smallskip + {\caps This Writ of Summons} has been issued against you by + the \plaintfs\ \getpls\unskip\ in respect of the claim + hereinafter set out. + \medskip + Within 14 days after the service of this Writ on you, + counting the day of service, you must either satisfy the + claim or return to the Court Office mentioned below the + accompanying {\scaps Acknowledgment of Service} stating + therein whether you intend to contest these proceedings. + \medskip + If you fail to satisfy the claim or to return the + Acknowledgment without stating therein an intention to + contest the proceedings, the \plaintfs\ may proceed with the + action and judgment may be entered against you forthwith + without further notice. + \medskip + Issued from the \issuer\ of the High Court this \nodate + \bigskip + {\bf Note}---This Writ may not be served later than 4 calendar + months beginning with that date unless renewed by order of + the Court. + \bigskip + \centerline{\bf IMPORTANT} + \nobreak\medskip + Directions for Acknowledgement of Service are given with the + accompanying form.\par + \bigskip + %\vfil\penalty-5000\vfilneg + \baselineskip=18pt + \nobreak\smallskip\nobreak} % End of \writtext + +% set up defaults +\bstitle{} +\solsref{} +\colsref{} % Omit Counsel's initials +\timetaken{} % hours +\casetype{} +\value{} % omit pound sign +\difficulty{} % out of 10 +\proposedfee{} % omit pound sign +\legalaidno{} +\comments{} + +\def\Writissued{} +\maxpartywidth=4.5in % set \maxp@rtywidth. +\def\amendnote{} +\def\amend{} +% Set up default in case no division is given. +\ch + +\pleadingfalse % And reset this +\resetpleadingdefaults +\reset +\input rhlocal +\catcode`@=12 +\normalnumbering +\twelvepoint + diff --git a/macros/plain/contrib/lextex/ltman.tex b/macros/plain/contrib/lextex/ltman.tex new file mode 100644 index 0000000000..da5dab58c7 --- /dev/null +++ b/macros/plain/contrib/lextex/ltman.tex @@ -0,0 +1,1656 @@ +% This is LTman, the preliminary version of the Manual for \LT\. +\ifx\lextexisloaded\undefined\input lextex\relax\fi +\newif\iflongversion +%\input newmacs +% At the moment it is *very* preliminary and pretty messy. +% It is also long since it includes a lot of macros, including +% indexing macros which would normally be \input separately. +% It is possible to produce it in two versions, +% ie, with and without the text of the LeXTeX macros. +% The default is to omit them. +% +% If you wish to print the full version, change \longversionfalse +% to \longversiontrue. +% However DO NOT DO THIS at the moment since the text of the macros is +% missing!!!! +\longversionfalse +% +% +% These are the indexing and index-formatting macros. +% They are adapted messily from manmac and elsewhere. +% +\def\index{\indextrue \writeindex} +\def\indexname{Index} % ditto +\def\topofindex{\centerline{\titlefont\indexname}} +\def\botofindex{\vfill\eject} +\def\indexreadfile{\jobname.inx} % file that gets index info +\def\indexwritefile{\jobname.inx} % file that takes it +\def\writeindex{\inform{Opening index file: } + \openout\inx=\indexwritefile} +\def\readindex{\input \indexreadfile} + +% Use second version for formatting unsorted index +%\def\formatindex#1 !#2 #3.{% orig "#1 !#2" #3. +\def\formatindex"#1 !#2" #3.{% + {\ifcase#2 #1\or\tt #1\or\tt\bslash#1\or\tt<#1>\fi\space#3.}} +\def\printindex{% Print the index + \write\inx{} % ensure that the index file isn't empty + \immediate\closeout\inx % index information has been fully gathered + \inform{Index: }\relax +\vtop{\topofindex} + \begindoublecolumns + \advance\baselineskip by0pt plus1pt minus0pt % add some give + \tenpoint + \parindent=0pt + \parskip=0pt plus.8pt minus0pt + \everypar{\hangafter1 \hangindent10pt\formatindex} + \raggedright + \tolerance=1000 + \relax + \readindex\relax % read the index info + \enddoublecolumns + \botofindex }% print the index page(s), don't terminate +% +% Manmac macros which can be used to print index in 2 cols. +% +\newbox\partialpage +\def\begindoublecolumns{\begingroup + \output={\global\setbox\partialpage=\vbox{\unvbox255\bigskip}}% + \eject + \output={\doublecolumnout}% + \divide\hsize by2 \advance\hsize by-15pt % 15x2=inter col space + \multiply\vsize by2 \advance \vsize by1pt}% +\def\enddoublecolumns{\output={\balancecolumns}\eject + \endgroup \pagegoal=\vsize} +% +\def\doublecolumnout{\splittopskip=\topskip \splitmaxdepth=\maxdepth + \dimen0=\pageheight %8.5in + \advance\dimen0 by-\ht\partialpage + \setbox0=\vsplit255 to\dimen0 \setbox2=\vsplit255 to\dimen0 + \onepageout\pagesofar + \unvbox255 \penalty\outputpenalty} +\def\pagesofar{\unvbox\partialpage + \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}} +\def\balancecolumns{\setbox0=\vbox{\unvbox255} \dimen0=\ht0 + \advance\dimen0 by\topskip \advance\dimen0 by-\baselineskip + \divide\dimen0 by2 \splittopskip=\topskip + {\vbadness=10000 \loop \global\setbox3=\copy0 + \global\setbox1=\vsplit3 to\dimen0 + \ifdim\ht3>\dimen0 \global\advance\dimen0 by1pt \repeat} + \setbox0=\vbox to\dimen0{\unvbox1} + \setbox2=\vbox to\dimen0{\unvbox3} + \pagesofar} + % +% Modify \onepageout +\def\onepageout#1{\shipout\vbox{ % here we define one page of output + \offinterlineskip % butt the boxes together + \vbox to \pageheight{ + #1 % now insert the main information + \ifvoid\footins\else % footnote info is present + \vskip\skip\footins \kern-3pt + \hrule height\ruleht width\pagewidth \kern-\ruleht \kern3pt + \unvbox\footins\fi + \boxmaxdepth=\maxdepth + } % this completes the \vbox to \pageheight + \vbox{{\vskip10pt\hsize=\pagewidth \makefootline}}% This is added + } + \advancepageno} + +% index macros +% adapted from manmac + +\chardef\*=`\* % \* produces an asterix in text mode +\newif\ifsilent +% The \null a couple of lines down prevents something odd happening +\def\specialstar{\ifmmode\def\next{*}% + \else\null\let\next=\beginindexref\fi\next} +\def\beginindexref{\futurelet\next\beginindexrefswitch} +\def\beginindexrefswitch{\ifx\next\specialstar\let\next=\silentindexref + \else\silentfalse\let\next=\indexref\fi\next} +\global\catcode`\*=\active \global\let*=\specialstar +\def\silentindexref*{\silenttrue\indexref} +% +\chardef\bslash=`\\ +\def\indexref{\futurelet\next\indexrefswitch} +\def\indexrefswitch{\begingroup + \ifx\next|\aftergroup\vindexref % case 1 or 2, |arg| or |\arg| + \else\ifx\next\<\aftergroup\angleindexref + % case 3, "\<arg>" means angle brackets. This may change. + \else\aftergroup\normalindexref \fi\fi\endgroup} % case 0, "{arg}" +\def\vindexref|{\catcode`\\=\active \futurelet\next\vindexrefswitch} +\def\vindexrefswitch#1|{\catcode`\\=0 + \ifx\next\empty\def\indexreftype{2}% + \def\next{{\tt\bslash\text}}% type 2, |\arg| + \else\def\indexreftype{1}\def\next{{\tt\text}}\fi % type 1, |arg| + \edef\text{#1}\makeindexref} +{\catcode`\|=0 \catcode`\\=\active |gdef\{}} +\def\angleindexref\<#1>{\def\indexreftype{3}\def\text{#1}% + \def\next{\<\text>}\makeindexref} +\def\normalindexref#1{\def\indexreftype{0} + \def\text{#1}\let\next=\text\makeindexref} +\def\makeindexref{\ifhmode\unskip\fi + \xdef\writeit{\write\inx{"\text\space!\indexreftype"\space + \noexpand\number\pageno.\endgraf}}\writeit + \ifsilent\unskip\ignorespaces\else\next\unskip\aftergroup\ignorespaces\fi} +% +\newif\ifsortedindex +\def\typeofindex{\ifsortedindex + \def\formatindex##1 !##2 ##3.{% orig "##1 !##2" ##3. + {\ifcase##2 ##1\or\tt ##1\or\tt\bslash##1\or\tt<##1>\fi\space##3.}}% + \def\indexreadfile{RHsind.tex}% +\fi\index} +% +% If we are not using a sorted the index, comment out next line. +%\sortedindextrue +% +% end of indexing macros + +\def\storypage{24} % listing of story.tex + +\def\AmSTeX{$\cal A\kern-.1667em\lower.5ex\hbox{$\cal M$}\kern-.075em + S$-\TeX} +\def\bull{\vrule height .9ex width .8ex depth -.1ex } % square bullet +% +% Set/adjust the defaults +\parskip=3pt plus .75pt minus .75pt +\parindent 0pt +\twelvebase=15pt +\tenbase=11.5pt +\ninebase=10pt +\quoteindent=40pt \quoteparindent=20pt +\hsize=5.35truein +\vsize=8.5truein +\hoffset0.5truein +\voffset.5truein +\clubpenalty=2500 +\widowpenalty=7500 +\finalhyphendemerits=7500 +\displaywidowpenalty=50 +\brokenpenalty=2500 +\global\cnindent=45pt +\global\clskip=\smallskipamount + +% Start in 12 pt +\twelvepoint + +% Misc defs +\def\sh{\noindent\titlefont} % Change this to give new page etc +\def\tbi{**{TeX book, the}} +\def\T{\TeX} +\def\TB{{\sl \T book\/}} +\def\WP{{\sl Word Perfect\/}} +\def\pctex{{\tt PC\TeX}} +\def\MF{{\tt MYFILE}} +\def\tex{{\tt .TEX}} +\def\dvi{{\tt .DVI}} +\def\log{{\tt .LOG}} +\def\TEX{{\tt TEX}} +\def\ver#1{{\tt $\backslash$ #1}} +\def\vn{0.96} % VERSION NUMBER +\def\r{\LT}% Change of name +\def\botofcontents{\vfill\eject} % this material will end it + +% Latex logo +\def\sc{\scaps} +\def\LaTeX{{\rm L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em + T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} + +\let\LT\LeXTeX + +% Start here +\version{Version \fmtversion\ (draft 1)} +% +% Do not produce contents for the time being +%\contents +% Set title of contents page (for when used) +\ctstitle{% + \centerline{\LeXTeX} + \medskip + \centerline{A version of \TeX\ adapted for use by members of the Bar} + \medskip + \centerline{\tenrm \copyright 1991 \rh} + } +% + +\def\xyz{\iflongversion Long \else Short \fi} +\inform{} +\inform{This is the \xyz Version of the LeXTeX Manual} +\inform{} +\typeofindex +% +% This is the start of the text +% +% +\centerline{\headerfont \LeXTeX\ref{With apologies to the designer of the +\LaTeX\ logo.}} + +\medskip +\centerline{A version of \TeX\ adapted for use by members of the Bar} +\medskip +\centerline{\ca Preliminary Incomplete Draft\se Manual} +\smallskip +\centerline{\tenrm \copyright 1991 \rh} + +\bigskip + +{\sh ^{Introduction}} + +\smallskip + + +\noindent\T\ is not a *{word-processor}; It is a *{text-formatter}. You +cannot use it to prepare your text; for that purpose you must use a normal +word-processor such as \WP\ or a text editor such as \ca Emacs\se. \T\ is +also not a ``*{what you see is what you get}'' program. It is suggested in +{\sl**{LaTeX}The \LaTeX\ Guide\/} \ref{Page 7. \bo The \LaTeX\ Guide\ok is +published by Addison Wesley, ISBN 0-201-15790-X.} that a better expression +for programs of that type is ``*{what you see is all you've got}''. All +that \T\ does it to convert a text file into printed output, but it can be +extremely successful at the job. + +The way that \T\ works is to respond to commands inserted in the text in a +similar way to that in which a word processor responds to its commands . +The difference is that \T\ commands are visible and have no effect +whatsoever while the file is being prepared; the commands inserted in a +word-processed file often take effect immediately so that, for example, text +to be centered is shifted to approximately the centre of the screen. Another +difference is that any \T\ command can be redefined at any time. To take an +example, the command |\centerline{This text is centered}| will normally +simply centre the words within the squiggly brackets. However it is +extremely simple to redefine the command |\centerline| so that it right or +left justifies the text, or prints it in italic type. In order to left +justify it all that would be necessary would be to add at the start of the +text file the command |\let\centerline=\leftline|. This would affect all +subsequent |\centerline| commands. + +This ability to define and redefine commands, or macros, makes \T\ extremely +powerful and flexible. One result is that it is possible to divorce the +preparation of the text, for example the body of a Pleading, from the layout +of the document; the draftsman can concentrate on the content rather than +the form. To take an example, the command |\writ| is used when printing a +Writ. The draftsman need not be concerned with whether the command simply +types at the top of the page ``[Usual Formal Parts]'' or inserts the full +formal text. Further, if the command |\os| is substituted for |\writ| the +formal parts will automatically change; the draftsman need not be concerned +with what they say. Similarly if after re-reading the Instructions it +becomes apparent that they are given on behalf of the Defendant all that is +necessary is to substitute |\defence| for |\writ| and the appropriate layout +will be produced. + +One well-known collection of macros that almost completely achieves this +separation is called \LaTeX\ after its author Leslie Lamport. It is, +however, designed principally for use by academics and so although extremely +good at producing papers for learned journals, is not so good at producing +the somewhat odd documents sent out by members of the Bar. + +Another set of macros which has been produced by me (with the assistance of +many other people) is called \LT. The sole object of this package of +macros is to assist in the formatting of the type of work produced by +members of the Bar. It cannot claim to be any where near as good at its job +as \LaTeX\ is at its, and it will be modified in the future as its +deficiencies become obvious, but it is already reasonably effective. + +There are versions of \T\ running on most modern computers from the \bo +Atari\ok home computer to the \bo Cray\ok super computer. In my own Chambers +\T\ has been installed on an \bo Acorn Archimedes\ok, a \bo Commodore +Amiga\ok, an \bo Apple Macintosh\ok and about half a dozen different MSDOS +clones. There are at least six different versions of \T\ available for MSDOS +machines, the differences between them being mainly questions of speed and +ease of use. + +Every version of \T\ will format a given input file in an identical manner. +Although the source code for the program is in the public domain, its +author, Professor Donald Knuth, retains the copyright and will not allow any +program to be sold or given away under the name of \T\ unless it can be +demonstrated that its output is identical to the output of all other +versions. Any version of \T\ is, however, allowed to use different names for +the places where it keeps files. For example one version may keep certain +files in a directory called |texinputs| while another may use an entirely +different name. It is not therefore possible in this manner to describe in +detail how to run \T\ or \LT\ on any particular machine and for this you +must refer to the instructions for your particular version of \T. + + +\TeX\ does not show you on screen what your text will look like as you type +it\ref{It is usually possible to look at the output produced by \TeX\ using +a screen previewer.}. One reason for this is that it is almost impossible +to show \T's output on screen. A normal computer screen has a resolution of +a few hundred dots in each direction. \T\ on the other hand uses scaled +points for its calculations, and one hundred scaled points is roughly the +wavelength of visible light; there are approximately 4,736,287 scaled +points to the inch, and a normal line of type is about 5.35 inches +long\ref{This is a slightly specious argument. The present generation of +laser printers print 300 dots to the inch and so would print no more than +1,605 dots on an average line.}. However, the main reason is that \TeX\ does +not decide where to break a paragraph into lines until it has read the +entire paragraph. The addition of one word to the end of a paragraph can +alter the place where every line in that paragraph is broken. + + +\bigbreak + +{\sh ^{Running \T.}} + +\nobreak\smallskip + +\noindent It is beyond the scope of this manual to explain the workings of +\T\ in detail. It is almost essential for a user of \T\ or any macro package +based on \T\ to acquire the main textbook on the subject, the \TB\ by +Professor Knuth\ref{Addison Wesley, ISBN 0-201-13447-0. The quotations from +this book used in this manual are printed with the permission of the +publishers.}. A shorter guide is \bo a Gentle Guide to \T\ok, by Michael +Droob. This can be downloaded in textual form from various electronic +bulletin boards such as |Legal Teleforum| or |CIX| or from the mailserver +|texserver@tex.ac.uk| or can be purchased in printed form from \bo +UK\T\ok\ref{Details from Malcolm Clark, IRS, Polytechnic of Central London, +115 New Cavendish Street, London W1M 8JS, e-mail: malcolmc@mole.pcl.ac.uk}, +the United Kingdom branch of the \bo \T\ Users Group\ok which has its +headquarters in America. + + +Running \T\ involves the following steps--- + +\cl Prepare a file, using a word-processor such as \WP**{Word Perfect}\ or a +text editor such as \bo Emacs\ok. + + +\cl Save that file in *{ASCII}\ref{Text produced by \WP\ must be saved in +*|DOS TEXT| format.} using the *{file extension} \tex. For the purposes of +these Notes I will assume that the file itself is called ``\MF''\ref{Those +familiar with computer manuals will know that stupid names of this type are +always chosen for examples.}**|MYFILE|. The document should therefore be +saved in the current directory as \MF\tex. + + +\cl Apply \T\ to the file by typing \TEX\ \MF. Note that it is not +necessary to type the file extension (although no harm will come from doing +so). \T\ will produce two additional files, \MF\dvi\ and \MF\log. The +latter contains error messages while the former, if your file contained no +major errors, will contain the formatted text, ready for printing. (*|DVI| +stands for ``*{DeVice Independent}''. A |DVI| file prepared on an IBM will +be identical to one prepared on an {\sl *{Archimedes\/}}, an {\sl +*{Amiga\/}}, an {\sl *{Atari}\/}, a {\sl *{Cray\/}} or a {\sl +*{Macintosh\/}}.) + + +\cl Print \MF\dvi\ref{This normally involves using a separate program. For +example, Personal \TeX\ Inc.\ produce a program called ``PTI\,HP'' which +prints on HP laser printers using an IBM compatible computer. |emTeX|, a +public domain version of \T\ for MSDOS computers comes with printer drivers +for most printers.} + +\bigbreak \clno=0 +\noindent\MF\tex\ need only have one \T\ command in it. That command is +|\bye|, which tells \T\ that you have finished; anything that is typed after +the |\bye| will simply be ignored. On the other hand, it could contain +hundreds of separate commands. An intermediate type of file is the one +called ``STORY.TEX'' which is set out in {\it Fig.~1\/} (and is taken from +Chapter~6\ref{Page \storypage.} of the \TB\tbi). This file was prepared by +Professor Knuth in such a way as to demonstrate a number of points--- + +\def\boxit#1{\vbox{\hrule\hbox{\vrule\kern3pt +\vbox{\kern3pt#1\kern3pt}\kern3pt\vrule}\hrule}} + +\newdimen\insertsize +\insertsize=\hsize +\advance\insertsize-12pt + +\setbox100=\vbox{\hsize=\insertsize +\noindent\strut +\tenbase=11pt +\parskip=0pt + +\tenpoint + +\nrbeginlines + +**|STORY.TEX| +|% This is STORY.TEX in text format, as of Mar 31, 1986.| +|\hrule| +|\vskip .75in| +|\centerline{\bf A SHORT STORY}| +|\vskip 6pt| +|\centerline{\sl by A. U. Thor} | +|\vskip .5cm| +|Once upon a time, in a distant| +| galaxy called \"O\"o\c c,| +|there lived a computer| +|named R.~J. Drofnats.| +| | +|Mr.~Drofnats---or ``R. J.,'' as| +|he preferred to be called---%| +|was happiest when he was at work| +|typesetting beautiful documents.| +|\vskip .75in| +|\hrule| +| | +|\bye| + + +\medskip +\nrendlines +\strut} + +\midinsert +\boxit{\boxit{\box100}\advance\hsize by-6pt\centerline{\strut\tenit Fig.\ 1}} +\endinsert + +\twelvepoint + +\clno=0 +\cl A *{percentage sign} (\%) in \T\ is a comment character and so the +first line of the story will not be typeset by \T. A number of the +following lines start with a backslash---the second line, for example, is +*|\hrule|. A backslash introduces a \TeX\ command---in this case the +command draws a horizontal line across the page; the next command (*|\vskip +.75in|) tells \T\ to skip down the page by one inch. It should be noted +that {\it all\/} of \T's commands start with a backslash. + +\cl The command *|\centerline| (note the American spelling) centres the text +enclosed in squiggly brackets after it. (Many of \T's commands have +parameters enclosed in brackets like this). The next |\vskip| skips down the +page by six points\ref{There are 72.27 printers' points to an inch and so +this is slightly more than \frac1/{12}th inch.}, and the next line centres +the author's name in {\sl slanted\/} type, while the next after that skips +by half a \hbox{centimetre}. + +\cl The text which follows is decidedly odd\ref{The name of the computer +will be thought less odd by readers of the \TB\tbi.}, but it is intended to +show various things, such as the use of the tilde ($\tilde{\phantom{x}}$) +as a tie, or non-breakable space, between characters, the use of a number +of hyphens to produce a dash, various accents, the use of the percentage +sign to ensure that no spaces occur after the dash after ``called''\ref{In +\T\ a carriage return produces a space. The \% `comments-out' the space.}, +the fact that many spaces have the same effect as one, and the fact that +quotation marks are made up of two single left or right quotes. (Some IBM +machines do not have left single quotes. This difficulty can be got round by +typing *|\lq| instead; it is also possible to set up a shorter command to +produce double left quotes.) Since the percent sign is a comment character +it cannot be used directly for its normal purpose. In order to print a +percent sign you must type a backslash in front of it (|\%|)**{percent sign +(\%)}. Similarly, if you want to print \$, \&, \#, \* or \_, you must type +|\$|**|dollarsign|, |\&|**{ampersand}, |\#|**{hashsign, (real)}, +|\*|**{asterix}, or |\_|**{underline}. Printing the backslash character +itself (|\|)**{backslash}, or the *{squiggly brackets} |{| and |}| is +slightly tricky but can be done if essential. + + +When this file is \T ed, it will produce a *|DVI| file which, when printed, +will produce the result shown in {\it Fig.~2\/}. + +\setbox101=\vbox{\hsize=\insertsize +\noindent\strut +\tenpoint% This is STORY.TEX in text format, as of Mar 31, 1986. +\hrule +\vskip .75in +\centerline{\bf A SHORT STORY} +\vskip 6pt +\centerline{\sl by A. U. Thor} +\vskip .5cm +Once upon a time, in a distant + galaxy called \"O\"o\c c, +there lived a computer +named R.~J. Drofnats. + + +Mr.~Drofnats---or ``R. J.,'' as +he preferred to be called---% +was happiest when he was at work +typesetting beautiful documents. +\vskip .75in +\hrule +\vskip4pt +} + +\midinsert +\boxit{\boxit{\box101}\advance\hsize by-6pt\centerline{\strut\tenit Fig.\ 2}} +\endinsert + + +\twelvepoint +This text was printed in \T's *{default size}, that is to say, *{ten-point}, +and with narrow line spacing, \etc. The macro package \LT\ alters these +defaults, setting the standard point size to 12~point and the spacing +between lines to be 18~points. These can both be altered without difficulty. + +\smallbreak +\LT\ adds a number of commands to those normally available in \TeX. If, for +example, you commence the Story file with the line |\input lextex| , +substitute the line *|\opinion| for all the lines before the real text +begins and omit the final |\vskip .75in| and |\hrule| the result when the file +is \TeX ed will be something like {\it Fig.~3\/}. (Note +that \T\ is case sensitive: |\input| is not the same as |\INPUT|.) + +The line |\input lextex| cause \T\ to read in the file containing the \LT\ +macros. Since this is a large file it takes quite a long time. \T\ has the +facility to convert files such as \LT\ into a format which it can load at +high speed. Again the way in which it does this varies from version to +version. In general, however, the command will be something like |initex +&plain lextex \dump|. Look up |initex| and |format files| in the manual +which comes with your version of \T\ for more details. The result should be +that a new format file is created with the extension |.fmt|. Your manual +should say where this should be placed; if it doesn't, try looking for other +files with the same extension and move it to the directory in which they are +found. + +Having created a new format file \T\ can be run using the \LT\ macros by +typing |tex &lextex filename| (where `filename' is, of course, replaced with +the name of the file you wish to \T). (It is usual to create a batch file to +do this automatically.) It is then no longer necessary to add |\input +lextex| at the beginning of the file. + +\setbox102=\vbox{\hsize=\insertsize +\noindent\strut +\tenpoint + +% This is STORY.TEX in text format, as of Mar 31, 1986. +%\hrule +%\vskip .5in +\twelvepoint % \twelvebase is the default size of 18pt +\hfuzz=1.5pt +\vsize=2.75in +\parskip=3pt plus .75pt minus .75pt +\quoteparskip=1.5pt plus 1pt % The amount of \parskip in quotes +\parindent=20pt \quoteindent=40pt \quoteparindent=20pt +% +%\opinion % Calling it here causes problems. Fudge it. +\centerline{\headerfont Opinion} +\nobreak\vskip10pt\noindent +Once upon a time, in a distant + galaxy called \"O\"o\c c, +there lived a computer +named R.~J. Drofnats. + + +Mr.~Drofnats---or ``R. J.,'' as +he preferred to be called---% +was happiest when he was at work +typesetting beautiful documents. +\signed% Also necessary since no \bye +} + +\midinsert +\boxit{\boxit{\box102}\advance\hsize by-6pt\centerline{\strut\tenit Fig.\ 3}} +\endinsert +\twelvepoint + + + +You are now ready to learn in somewhat greater detail about \LT. + +\vfil\supereject + +\hfuzz=2pt +\centerline{\headerfont \r}\par +\bigskip + +It is customary in connection with computer programs to number the +*{versions} which appear before the production version with numbers less +than 1.0 and those of the production versions with numbers over 1.0. (The +figure before the decimal point denotes a major release and that after it a +small modification.) Thus the version of \WP\ currently in use is 5.1. +These Notes and \r\ are both the \fmtversion\ versions\ref{Until recently +\LT\ was known as |RHfmt| and went through versions 0.001 to 0.911. The fact +that \LT\ has a number larger than 1 does not mean that it is perfect.} and +as a result suffer from many deficiencies---and this manual contains a +number of spelling and grammatical mistakes; it almost certainly describes +some of the macros incorrectly\ref{You got it free and so you cannot +complain \ca too\se loudly.}. \r\ itself has been in use for over two years +but has been altered and rewritten on a number of occasions. A large part of +it is pretty stable and relatively bug-free (in so far as it is possible for +any computer program to be bug-free) but other parts, and in particular +those that deal with pleadings are still far from perfect. These problems +will usually manifest themselves as poor spacing or bad layout. They should +not give rise to any insuperable difficulties. + +\medskip +The written work of members of the Bar falls into three classes. First there +is advisory work, whether or not in connection with litigation, then there is +the production of non-litigious documents, and finally there is the +production of pleadings of all types. \r\ has been designed to enable all of +this work to be produced using \TeX\ as simply as is possible. I will try +and explain the various commands under the same three headings, although it +is perfectly possible to use, for example, a macro intended for use in a +Statement of Claim in an Opinion\ref{Or Advice or other form of written +advisory work.} or a Draft. + +\vfil\break +{\sh ^{Written Advice.}} +\nobreak\smallskip\noindent +As was seen above, if you type *|\opinion| at the start of your file, an +Opinion will be produced. Similarly, typing *|\advice|, *|\note| or +|\jopinion| will put ``Advice'', ``Note'' or ``Joint Opinion'' at the top of +the page. The command |\opinion| is actually shorthand for +|\advising{Opinion}|. The command **|\advising||\advising{type of advice}| +tells \T\ that what follows is written advice and should be formatted +appropriately. + +It is very easy to set up other forms of header for written work. If +you use the style that requires the name or the case-name to be put at the top of +your written work then, for example, |\advice| could be redefined +as--- + + |\def\advice{\centerline{\bstitle}|\hfil\break + |\smallskip\advising{Advice}}|.\hfil\break + +(For |\bstitle| see\ \pageref{bstitle} below.) + +\TeX, being an American program, believes that the ``\pounds\/'' symbol is +unnecessary. Indeed, the font in which this is being typed does not contain +a pound sign (although it contains various other odd symbols such as ?` and +!` and possibly \AA\ and $\widehat \Psi$\ref{Mathematicians +are apparently delighted by being able to type such wondrous things as +$\Upsilon^{\Phi^{\varpi^\surd}}$ and $\sharp_{\forall_{\Phi_\triangle}}$, +especially in a footnote.}). \TeX\ being a typesetting, rather than a +wordprocessing, program, this does not cause significant difficulties since +it is possible to use the pound sign from other fonts. + +In order to print ``\pounds'' the user of \r\ should type *|\pounds|. It is +not essential to leave a gap between the ``s'' and the sum---\TeX\ will +remove it if you do leave one. + +\font\seventeenrm=cmr17 +\tolerance=1000 \r\ sets up fonts in families of a particular point size. +The default size---which I recommend should be used as the standard size---is +*{12-point}; my view is that tenpoint script is not reproduced very well by a +laser printer at *{300 dpi}. Other sizes are *{10-point}, and *{9-point}. +They can be brought into use by typing *|\twelvepoint|, *|\tenpoint|, and +*|\ninepoint|. The user \tenrm should not \ninerm find it necessary +\eightrm to \sevenrm select \sixrm the smaller \fiverm or larger \sixrm +sizes since \eightrm\TeX\ and \r\ together \ninerm automatically \tenrm +select \twelverm the appropriate size in most situations. However, it is +possible for the experienced user to select \seventeenrm any\ref{This is 17 +point.} \twelverm size if necessary. Any *{mathematics}, including simple +fractions such as $15\over543$ or \frac{32}/{67}, will, with a bit of luck, +be typed at the correct size. + +As is explained in the \TB, the command *|\rm| produces roman type, *|\it| +produces \ca italic\se type, *|\sl| produces \bo slanted\ok type and *|\bf| +produces {\bf bold} type in the current point size. \r\ adds a few more +types of font. The command *|\ul| {\ul underlines the following text} and +the command *|\xo| {\xo crosses it out}. There is also the command *|\xu| +for underlined and crossed-out text, *|\xxl| for doubly crossed-out text and +*|\uul| for doubly-underlined text. All these are intended for use with +amended pleadings but at the moment need to be used with some care. + +*{Footnotes} are used by typing either *|\footnote| or (preferably) *|\ref| +followed immediately by the footnote text in |{}| brackets---there must be +no gap between the command and the opening |{|. (Very occasionally the text +of a footnote may seem to disappear **{disappearing text} when the text is +printed. For example, if a footnote is used in the *|\ssd| macro---see +below---the text may disappear. The reason is too complicated too explain +here. The solution is to type *|\footnotemark| where the footnote number +should go and *|\footnotetext| immediately after e.g. the *|\ssd| macro.) + +Footnotes are normally numbered automatically. There are a number of +commands available for use in relation to footnotes---see {\sl The Joy of +\TeX\/}\ref{Published by Addison-Wesley. ISBN 0-8218-2999-8.}**{Joy of TeX, +the} by Michael {Spivak}**{Spivak, Michael}, pages 162--165, for details. +The command |\ref"*"{Like this}|, for example, uses an asterix as the +marker\ref"\*"{Like this.}, **{asterix as footnotemarker} and similarly +|\ref"\dag"{Or this}| and |\ref"\ddag"{And this.}| use a dagger\ref"\dag"{Or +this.} and a double-dagger\ref"\ddag"{Like this.} to be used as a +footnotemarker, and the command |\ref[45]{Like this.}| enables the number +used for a particular footnote to be specified\ref[45]{Like this.}. + +\tolerance=500 +*{Case-names} are printed in the normal style, that is to say, in italic +type. As an example, \ca Monnickendam \v. Leanse\se\ref{(1923) 39 TLR 445, +67 Sol Jo 706}. \hfuzz=6pt This was typed---\par |\ca Monn|\-|ick|\-|endam +\v. Leanse\se\ref{(1923) 39 TLR 445, 67 Sol Jo 706}|. + +The *|\ca| and *|\se| macros must surround the case name (and there must be a +space after the ``ca''); the *|\ref| macro prints the reference as a +footnote. In this case the ``v.'' was printed in roman type; if you prefer an +italic ``v'', whether with or without the fullstop\ref{The All England +Reports use an italic ``v'' without a fullstop.}, omit the backslash. +\hfuzz=2pt + +A similar pair of macros is *|\bo| and *|\ok|. These set the names of +books---such as \bo Bowen \on the Coal Act 1938\ok in {\sl slanted\/} type. +In this case *|\on| was used in order to produce the vertical ``on''. + +Two further macros are |\beginquote| **|\beginquote| and |\endquote|. +**|\endquote| These are, perhaps not surprisingly, intended for +*{quotations}. The former should be used after a blank line and will cause +the text which follows to be typed in tenpoint type. The first paragraph +will not normally be indented, but subsequent ones will--- + +\beginquote No quotation marks are used. If you want them, they must be +typed manually. At a later stage it may be possible to provide them +automatically but macros to do this are a bit tricky to write. + +\clindtrue +\clearclno +\cl It is possible to use the automatic clause numbering---see +\pageref{Clausenumbering} below---in quotations, and mathematical +expressions, such as $129 \over 7,934$, will be printed at a smaller size +than they would be printed in twelvepoint type. + +\endquote + +\noindent +In order to quote a numbered sub-clause, without the corresponding clause, it +is preferable to use the macro *|\beginsclquote| which alters the indentation +of the quotation--- + +\beginsclquote +\scl If |\beginquote| had been used, this sub-clause would have been inset too far. +There are also the macros *|\beginssclquote| and *|\beginsssclquote|. In each +case the macro which ends the quotation is the same, that is to say +*|\endquote|. +\endquote + +It sometimes happens that one wants to refer to something on a different +page, earlier or later, of an Opinion. \r\ provides a number of macros to +assist in this. At the point in the text which contains the matter to be +referenced insert |\xref{stuff}| **|xref| (where |stuff| is a word of your +own choosing). At the point in the text where you want to say ``see +Page\dots'' type ``|see \pageref{stuff}|''. **|\pageref| It will now be +necessary to run \TeX\ on the file twice; the first run will find the +cross-reference and the second will insert it into the text\ref{This is +similar to the \WP\ |generate| command. The reference to +\pageref{Clausenumbering} above was put into the text using this command.}. +As will be seen below\ref{\pageref{clauseref}.}, there is a corresponding +command |\clref{stuff}| **|\clref| which inserts a reference to the +appropriate clause or sub-clause, and various related commands. + +At the end of your Opinion type the command *|\bye|. This will automatically +produce the following--- + +\signed + +\vfilneg +\smallskip +It may be, of course, that you do not want Lincoln's Inn at the +bottom of your Opinion. If the command |\let\inn=\middletemple| +**|\middletemple| (or *|\grays| or *|\temple| or *|\innertemple|) appears +before *|\signed| the appropriate alteration will be made. These +alterations are usually made to the |RHlocal| file. + +It will be seen that the date has a comma in the middle of it. This +is the default. Again, it is possible to alter this by incorporating in the +file the command *|\nocommaindatetrue|. The date is inserted after the +signature automatically by the command *|\today| which can be used elsewhere +in your text to produce today's date. + + +\bigbreak \noindent The command *|\bye| will also produce a +backsheet**{Backsheets} for the Opinion. In order to be able to work, +however, it must know what to put on the backsheet. This information may +include the date, the title of the matter, the type of document---that is to +say, is it an Opinion, a Note or something else?---and the name and address +of the Solicitors. + +\TeX\ knows the date and has been told the nature of the document by the +command |\opinion|, but it must find the remainder of this information in the +file. The simplest case is that of an Opinion in a non-litigious matter +where the Opinion is the only document being produced. In those +circumstances the easiest method of providing \TeX\ with the information is +to incorporate at the start of the file (that is to say, before the +|\opinion| command) the following text--- + +\beginlines +|% backsheet info| +|\bstitle{RE: JOHN SMITH}| +|\solsref{XYZ/abc/42}| +|\colsref{SUEGRA/99}| +\endlines + +The first of these commands, *|\bstitle|, \xref{bstitle} sets up the title +that will appear on the backsheet. This can, if required, be more than one +line long. \LT\ will try to find an appropriate place to break the text; it +can be told where to do so by the insertion of the command *|\break| at the +appropriate place. + +The command *|\solsref| is short for ``Solicitors' Reference'' and it means +the reference given \ca by\se the Solicitors. *|\colsref| is short for +``Counsel's Reference''. The default macros expect this reference to be in +the form used by the ``ACE'' Barristers' accounting system. + +*|\colsref| is a complicated macro and I have no intention +of explaining here how it works. Its main object is to search a separate file +called *|solicitors.tex|, which will probably be found in the directory called +|\TEX\INPUTS|, for the name and address of the Solicitors concerned. +Instructions for adding further names and addresses to this file will be found +at the start of it. + +This simple Opinion requires only one other command and that is *|\bye|. This +will tell \TeX\ that it is complete and can be fully processed. To summarise, +the file will take the form--- + +\beginlines + +|\bstitle{RE: JOHN SMITH}| +|\solsref{XYZ/abc/42}| +|\colsref{SUEGRA/99} | +|\opinion| +|This is an Opinion.| +|\bye| + +\endlines + +In addition to printing the Opinion and its backsheet, \r\ will by default +also produce a fee chit giving details of the work done and so on for the use +of the Clerks. Some further information will be included on this if some or +all of the following additional lines are included at the start of the +file--- + +\beginlines + +|\timetaken{3} % hours | +|\casetype{breach of trust}| +|\value{50,000} % pounds| +|\difficulty{7} % out of 10| +|\proposedfee{vast} | +|\legalaidno{N/A}| +|\comments{slightly tricky}| + +\endlines + +It is often useful to be able to produce such a chit in relation to a +Conference, and particularly a telephone conference. \r\ provides the +commands *|\conference| and *|\telcon| for this purpose; enter the required +information (using the macros shown above) and then type one or other of +these commands followed by |\bye|. For example--- + +\beginlines +|\bstitle{RE: JOHN SMITH}| +|\solsref{XYZ/abc/42}| +|\colsref{SUEGRA/99} | +|\timetaken{.5} % in hours| +|\casetype{breach of trust}| +|\value{50,000} % pounds| +|\difficulty{7} % out of 10| +|\proposedfee{?} | +|\legalaidno{}| +|\comments{slightly tricky}| +|\telcon| +|\bye| +\endlines + +Will produce something like the following--- + +\bigskip +\begingroup %preserve pagenumbering, etc + +%\vtop{ +\bstitle{RE: JOHN SMITH} +\solsref{XYZ/abc/42} +\colsref{SUEGRA/99} +\timetaken{.5} % in hours +\casetype{breach of trust} +\value{50,000} % pounds +\difficulty{7} % out of 10 +\proposedfee{vast} +\legalaidno{} +\comments{slightly tricky} +\telcon +\chit +%} +\endgroup + +\bigskip +There is a further command called *|\faxsheet|. +This does what might be expected of it. If it is the last command in the +files before |\bye| it will automatically count and print out the number of +pages being sent. The command |\attention{Mr Jones}| **|\attention| will +mark the Fax for the attention of that gentleman; |\comment{Here at last are +the documents I promised you.}| **|\comment| will put a (short) comment on +this cover page. + + +\vfil\eject +{\sh ^{Non-litigious Drafts and similar documents}} + +\nobreak\smallskip + +\noindent A draft document is usually formatted somewhat differently to a +piece of written advice. In order to tell \T\ that it is formatting a draft +the text of it should commence with |\draft{document type}| **|\draft| (the +document type being for example ``LEASE''). If you draft a lot of a leases +it would, of course, be possible to define *|\lease| to mean +|\draft{LEASE}|. + +Most drafts contain numbered clauses. The production of macros to number +clauses automatically is tricky since people tend to have different ideas as +to how documents should be numbered. \r\ has been written in such a way as +to permit the default numbering style, which is that now used in statutes +and other similar documents, to be altered as easily as is +possible.\xref{Clausenumbering} + +Clauses are produced by typing the command *|\cl| at the beginning of a line +followed by one or more spaces and then the text of the clause. The default +is for clauses to be numbered in Arabic numbers\ref{If you go above 999, it +may be necessary to make some alterations to the normal indentation of +clauses.}, the number being followed by a full stop--- \goodbreak + +\clearclno +\cl This is the first clause. There is also the command *|\ncl| which can be +used when clause numbering is not required **{un-numbered clauses}. This can +be useful when a subclause is followed by a proviso **{provisos} which forms +part of the main clause. + +Sub-clauses have the command *|\scl| either at the beginning of a line or +immediately after a *|\cl| possibly with one or more spaces between the two +commands. There must be a blank line between a clause and its sub-clause +unless they are intended to be on the same line. (It you do not leave the +blank line they {\bf will} be on the same line, whether you like it or not.) + +Subsequent sub-sub-etc-clauses take the form *|\sscl|, *|\ssscl| etc.---the +maximum being five `s's. In order to discourage the drafting style which +uses such numerous sub-clauses the default numbering is as follows--- + +\cl This is Clause 2 + +\scl This is sub-clause 1 + +\sscl This is sub-sub-clause 1 + +\ssscl This is sub-sub-sub-clause 1 + +\sssscl This is sub-sub-sub-sub-clause 1. + +\sssscl This is sub-sub-sub-sub-clause 2. + +\sssscl This is sub-sub-sub-sub-clause 3. + +\ssssscl This is *{sub-sub-sub-sub-sub-clause} 1 + +\ssssscl This is sub-sub-sub-sub-sub-clause 2 + +\ssssscl This is sub-sub-sub-sub-sub-clause 3 + +\ssssscl This is sub-sub-sub-sub-sub-clause 4. (Using more than four +sub-etc-clauses of this type is not recommended, since the spade is the last +character in this particular font!) + +\nssssscl \relax This is |\nssssscl| + +\nsssscl This is |\nsssscl| + +\nssscl This is |\nssscl| + +\nsscl This is |\nsscl| + +\nscl Now |\nscl| + +\ncl Finally |\ncl| + +If the |\sssscl| or |\ssssscl| form of numbering is unwelcome, type\break +*|\greekfalse| at the start of your document to turn off the *{Greek +numbering} and (or) *|\cardfalse| to turn off the *{playing cards}. (Boring +letters will be substituted.) + +\noindent|\cardfalse|\cardfalse + +\hfuzz=2.8pt +\cl\scl\sscl\ssscl\sssscl\ssssscl +\par + +\noindent|\cardfalse|\par\noindent|\greekfalse|\greekfalse + +{\overfullrule=0pt% ! +\cl\scl\sscl\ssscl\sssscl\ssssscl +\inform{ (don't worry about this...)} +\par} + +\noindent\cardtrue\greektrue + +\cl The clauses will have as a default hanging indentation. **{hanging +indentation in clauses} As a result, the second and subsequent lines of the +clause will be indented to the same extent as the first line and will line +up with the number of the next sub-clause--- + +\nobreak +\scl Like this. In order to turn off this default type *|\clindfalse|. (The +name is a sort of abbreviation for ``clause indentation false''.) + +\noindent|\clindfalse|\clindfalse + +\scl The effect will be that the second and subsequent lines will line up +with the number of the same clause (or sub-clause) in the more normal manner. +Hanging indentation is by default turned off in this way in Opinions. + +\smallskip + +In certain circumstances, for example, in Opinions, it may be necessary to +reset the Clause **{resetting clause numbers} numbering, or to start from +some number other than~1. The Clause number is held in a register called +*|\clno|, while the sub-clause numbers are held in registers which use the +names *|\sclno|, etc. Any such register can be reset at any time. To reset +the clausenumbering to zero (so that the next Clause is numbered~1) type +*|\clearclno|. If you are typing a rider **{riders} starting at, say, +Clause~12, set |\clno| to one less at the start (i.e., to 11) by typing +|\clno=11|. **|\clno| Similarly, subclauses and so on can be reset by typing +*|\clearsclno|, *|\clearssclno| and so on. + +Although the style of numbering set out above can be said to be standard, +there does not seem to be any standard form of `numbering' *{Recitals}. \r\ +by default uses capital letters for Recitals and small roman numbers for +sub-recitals. The command *|\rec| at the beginning of a line followed by one +or more spaces and then text prints recitals in the form--- + +\clindtrue +\rec This is a recital. The ``numbering'' and the indentation are +automatic. + +\srec This was produced by *|\srec|. + +In addition to |\cl| and |\ncl| (and |\scl|, |\nscl| and so on) there are two +other classes of clause-making macros. The first it *|\tcl|. This is used +with a parameter in squiggly brackets, for example |\tcl{NOTE:}|. In this +case the word ``NOTE:'' is put where the number would normally be, and the +remainder of the first line of the clause is adjusted accordingly. The other +is *|\xcl| which also takes a parameter, for example |\xcl{[1]}|. In fact +all the other clause-numbering macros use |\xcl| in order to work. + +A recent addition to \r\ is the facility to use what is generally called +``computer numbering''.**{computer numbering} If the command +*|\computernumbering| appears in your file |\cl|, |\scl|, \etc\ will produce +clauses numbered as follows--- + +{\computernumbering +\cl This is the first clause. + +\scl This is a subclause. + +\sscl This is boring. + +\ssscl The amount of indentation is set by a parameter called\break *|\cnindent|. +Here it is set at \the\cnindent.\par} + +\bigbreak + + +Cross-references in drafts often refer to a particular clause of sub-clause. +If the command |\xref{stuff}|**|\xref| appears in a draft and elsewhere +there appears, for example, ``|subject to +\clref{stuff}|''\xref{clauseref}there will be substituted +automatically\ref{After two runs through \TeX.} for the latter command a +reference to the appropriate clause or subclause; it is not necessary for +the draftsman to know whether the |\xref{}| command appears in a clause, a +sub-clause, a sub-sub-clause or whatever. If +|\def\clause{Paragraph}| appears at the top of the text then +the reference will be to a paragraph number. Similarly ``Sub-clause'' can be +redefined as ``sub-paragraph'' by |\def\subclause{sub-paragraph}| + +There are similar commands **|\noteref|**|\schedref|**|\appref| +|\noteref{stuff}|, |\schedref{stuff}| and |\appref{stuff}| or +cross-referencing footnotes, schedules and appendices. + +If at the beginning of a draft you type after a person's name ``{\tt of} +|\noaddr|'' **|\noaddr| an appropriate gap (based on an address in *{Railway +Cuttings, Cheam}) **{Hancock}will be left. (This does not yet always work, +although it is better than it was.) There are similar macros known as +*|\nodate| (which prints in effect ``\nodate''), *|\noyear| (which is similar +but leaves you to insert the year), *|\noday|, *|\nomonth| and *|\noname| +(which leave suitable blank spaces), and *|\nopounds| (which produces +``\nopounds''). + + +A normal hyphen in an upper-case name tends to look wrong as, for example, +in SIR HENRY WILLIAM-WORDSWORTH. The macro *|\uc-|**{upper-case hyphen} can +be used in these circumstances to raise the hyphen which gives a +better-looking result---SIR HENRY WILLIAM\uc-WORDSWORTH. (There is also the +macro *|\duc-| which provides a *{discretionary upper-case hyphen}, but this +is for the real \TeX perts only.) + +If at the end of a draft (but before the signature) you type +\hfil\break|\ssd{the said JOHN SMITH}| **|\ssd| **{signed, sealed and +delivered} the effect will be--- \bigskip + +{\noindent\ssd{the said JOHN SMITH}} + +\bigbreak +If you type |\ssc{SEVNEW LIMITED}| **|\ssc| the effect is like +this--- +\smallskip +{\noindent\ssc{SEVNEW LIMITED}} + +\bigskip +Similarly, |\ssw{the said JOE BLOGS}| **|\ssw| will produce the +following--- + +{\parindent=0pt\ssw{the said JOE BLOGS}} + +(There is also a general purpose macro, *|\ssgen| which can be used to insert +any text to the left of a big bracket. See also in the \TeX nical Manual +(when it is produced---it will set out all the macros used in \LT\ and +explain, or try to explain, how they work.) *|\rbracket| and *|\lbracket|.) + + +\bigskip Although it has not been usual in the past to set out the +testimonium in full, I have often noticed when drafts which I have settled +are returned to me how Solicitors have written it in in longhand before +giving the draft to their Secretary to type. Inserting it in full saves them +the trouble. If you do not approve of this practice you can use +*|\witnessetc| which will produce--- + +\smallskip {\parindent=0pt +\witnessetc\par +} +\par +\medskip +The macros *|\whereas| and *|\now| produce--- + +\whereas + +\noindent and + +\now + +\bigskip\bigbreak + +The macros *|\wwhereas| and *|\nnow| have odd names but can be used where +there is only one recital or clause; the former simply types ``WHEREAS'' and +the latter ``NOW THIS DEED WITNESSETH''. + +Other useful macros are *|\schedule|, *|\appendix| and *|\part| which can be +used to produce schedules and appendixes. It there is only one schedule it +will be called ``the Schedule''. If there are more than one they will be +numbered appropriately. If the command |\xref{stuff}| appears in a schedule, +a reference elsewhere in the document to |\schedref{stuff}| will refer to +the correct schedule (after two runs through \T). + +\centertext{It is sometimes quite effective to centre the text in a Schedule +(or elsewhere---as in this paragraph) over several lines. \r\ provides the +command {\tt\bslash centertext} for this purpose. Its usage is similar to +that of {\tt\bslash centerline} but it centres more than one line. It is +derived from a macro which can be found on page~317 (exercise 14.34) of the \TB.} + +The modern form of *{stamp duty certificate} can be produced by typing, for +example, |\sdcert{A}| **|\sdcert| which produces--- + +\sdcert{A} + +*|\dovcert| and *|\giftcert| provide the appropriate letters for use with +deeds of variation and gifts inter vivos. + + +It sometimes happens that a number of different versions of a draft or +Opinion are prepared. **|\version| Typing |\version{Version 1}| will print +{\fiverm Version 1} in miniscule type\ref{The size is 5-point.} at the bottom +of each page. An example can be seen at the bottom of the current page. + + +Another small control sequence which is useful in drafts is ``*|\,|''. This +adds a small bit of space and can be used to separate two names in a deed. +Another is *|\etc| which produces \etc\ \ **|\frac| |\frac 5/6| produces \frac +5/6. (To produce \frac {27}/{85} it is necessary to put the double figures +into squiggly brackets like this--- |\frac {27}/{85}|.) A `normal' fraction, +such as $27\over 85$ can only be typed using ``*{maths mode}''. The fraction +in the previous sentence was typed |$27\over 85$|. + +\bigskip +The command *|\bye| produces an appropriate backsheet for the deed. It also +types towards the bottom of the last page---\par +\def\csettled#1{% Fudge it. + \par\nobreak \vskip20pt + \hbox{\hskip\signindent\vtop{% + \advance\hsize by-\signindent + \parindent0pt \raggedright\tolerance=1000 + Settled, + \ignorespaces#1 \vskip20pt + \inn \hbox{\today}}} + \vskip20pt} + +\bigskip +\settled + +\nobreak +As in the case of *|\signed| it is possible to change `the Inn' to whichever +may be required. + +\bigbreak A backsheet for a draft will be produced automatically. Again it +will be necessary to supply \r\ with the appropriate information. However, +if the appropriate information has been supplied earlier in the file (for +example in an Opinion) it is not necessary to repeat it. The command +|\draft{LEASE}| will have given \r\ the document name to insert on the +backsheet. + +If an Opinion and a Draft are incorporated in the same file, it is often +useful to know where one ends and the next begins. While it is processing a +document \r\ will show a succession of triplets of numbers on the +screen.**{Page numbering} The first number is the page number of the current +document, the second is the *{overall page count}, and the third is the +number of the document being processed. This information will also be found +in the *|log| file produced by \TeX. + +It is sometimes useful to produce a *{Table of Contents} for a draft. If the +command *|\contents| appears at the beginning of the draft this will be done +automatically. It is, of course, necessary to provide the information which +is to be entered into the table. This is done by using the ``magic'' +*{circumflex} commands. If immediately after a *|\cl| command there appears +the command {\tt\hat\strut}|{Stuff}|, the Table of Contents will get an entry +such as--- + +\line{Clause 6. Stuff\dotfill 4} + +Similar results will be obtained if the command follows a *|\scl| or a +*|\sscl|. In this case ``stuff'' will appear in both the Table of Contents +and the text where it was found. If two circumflexes are used, **{circumflexes, +two} however, ``stuff'' becomes invisible in the text and only appears in the +Table of Contents. + +One final command is *|\engrossment|. This as the effect of removing the word +``draft'' from the backsheets and deleting the ``Settled'' at the end of the +draft. + +\vfil\eject +{\sh ^{Pleadings}} + +\nobreak\smallskip +\noindent +Here we come to what is perhaps the most complicated part of \r, and the part +containing most bugs. These notes for the time being will only skim +the surface and show how the macros are used; they will not attempt to +explain how they work---for that you must consult the \TeX nical manual +(when written). However, if you have got this far you may not need any +explanations and will be able to discover all the secrets by simply +reading \LT. + +The macros were originally written by me some time in 1989. A considerable +amount of work has since been done on them by Gilead Cooper, Robert Ham and +others and their efforts and suggestions have persuaded me to make a number +of further improvements. However, a large amount of work still remains to be +done. + +\medskip +I will start with High Court litigation. To take as an example a case +commenced in the Chancery Division. This will normally have a reference +consisting of three items, that is to say, the year, a letter and a number. +To show that the case is in the Chancery Division type the following +command--- + +|\ch{|{\tt\number\year}| X 1234}|. + + +If the full reference is not known simply type *|\ch| or +|\ch{|{\tt\number\year}|}|. The commands for proceedings in the Queen's +Bench and Family Divisions are similar; the former is +|\qb{|{\tt\number\year}| X 1234}| **|\qb| and the latter +**|\family||\family{|{\tt\number\year}| X 1234}|. Why in the latter case is +it not |\fam|? Simply because *|\fam| is already used by \TeX\ for something +else and the consequences of redefining it would be dire in the extreme. + +The name of a Plainiff is given by the following command--- + +|\plaintiff{WILLIAM WORDSWORTH}|. + +His address takes the form |\of{Lakeside Villa, Putney}|. The names and +addresses of Defendants and Third Parties are given in a similar fashion +using |\defendant{name}| and |\of{address}|.**|\of| and +|\thirdparty{name}|**|\thirdparty| and |\of{address}|. (If the address of a +party is not given a blank space will be inserted in the document where +appropriate .) It is intended that inserting the address should be optional; +at present however this sometimes causes problems. + +If some parties have the same address, ie John Smith and Freda Smith both of +Springtime Villas, put |\and| after |\plaintiff{JOHN SMITH}| and +|\of{Springtime Villas}| after |\plaintiff{FREDA SMITH}|. (This is not very +robust at the moment.) + +If you want to refer to a party as being, for example, a firm, type, for +example,**|\firm| |\plaintiff{SUE GRABBIT \& RUNNE \firm}|. Other capacities +include *|\widow|, *|\minor| and *|\patient|. + + +The command **|\matter||\matter{123 New Square, Lincoln's Inn}| does what it +might be expected to do. There is also the command **|\estate||\estate{A.B. +deceased.}| Each will store the matter set out and in due course print it in +the correct place on the pleading and the backsheet (adding `And' where +appropriate). + +Having entered the names and addresses of the parties the next step is to +ask \r\ to produce the appropriate type of pleading. Once again the command +is vaguely logical, being |\pleading{type of pleading}|**|\pleading|. Thus +|\pleading{STATEMENT OF CLAIM}| will produce a document containing the usual +heading including the names of the parties. The body of the claim will be +typed in using *|\cl| and *|\scl| for the clauses. It is possible to type +*|\claim| to produce ``AND the Plaintiff(s) claim(s)---'' automatically. To +reset the clause numbering at any time type *|\clearclno|. The command +|\bye| will in this case also add at the bottom of the text the usual +wording about the document being served. + +Pleadings are more complicated than written advice and drafts since \T\ +needs to know which party the draftsman is acting for. In the case of a +Statement of Claim this is obviously the Plaintiff but \T\ cannot be +expected to know this. The text should therefore contain the command +*|\clientpltrue|. As in the case of an *|\opinion|, however, there is a +shorthand command which will achieve this automatically. A Statement of Claim +(with the client set to the Plaintiff) will be produced by the command +|\soc|. If this command is preceded by the command +|\writissued{12/03/91}| **|\writissued| the date when the writ was issued +will be inserted at the appropriate place; otherwise the date will be left +blank. + + +The formal parts of a specially endorsed Writ are slightly different from +those of a Statement of Claim. In this case *|\writ| does the necessary +formatting and inserts the appropriate formal parts. Similarly *|\os| can be +used for an originating summons. (There are also built-in macros called +*|\defence|, *|\reply|, |\dacc|\ref{Defence and Counterclaim.}, +|\rdcc|\ref{Reply and Defence to Counterclaim.} which act as might be +expected. + +Pleadings have another difference from drafts and written advice and that is +that they are amended. The command *|\amended| when inserted before the +command |\pleading| (or |\soc| or |\defence| or whatever) makes the +necessary amendments to the formal parts. *|\reamended| and *|\rereamended| +can also be used. An amended Statement of claim can therefore take the form +|\amended\pleading{STATEMENT OF CLAIM}| or |\amended\soc|. **|\pleading| + +The amendments to the text itself are complicated. James Behrens has +produced a useful note on the question of how to show amendments to +Pleadings using \WP\ without using coloured ink. In \LT\ I take a slightly +different approach in that I denote the first amendments by underlining +additions and crossing-out deletions. For the re-amendments I underline +twice and cross-out twice and for re-re-amendments underline thrice and +cross-out thrice. Any such monochrome scheme does look messy if there are many +amendments; it is best to delete and replace whole sentences rather than +individual words and letters. + +The method of producing the underlining and crossing out is to use the +commands *|\ul| and |\xo| \ca inside\se squiggly brackets (|{\ul like this}|. +The brackets limit the extent of the underlining or crossing-out. The +corresponding commands for double and triple underlining and crossing-out +are *|\uul|, *|\uuul|, *|\xxo| and *|\xxxo|. + +If new clauses are inserted into a Pleading either the original numbers have +to be altered or the new clauses have to be numbered in some distinctive +manner. \LT\ uses the latter method. The new clause should be preceded by +the command *|\acl| instead of |\cl|. (There are also the commands *|\ascl| +and *|\asscl| for sub-clauses and sub-sub-clauses). + +\acl This is a clause starting with |\acl| + +Once again, in order to be able to process the text of a pleading \LT\ needs +a certain amount of additional information. It does not this time need to be +told the title of the matter since it can work that out for itself. It does, +however, need to know the *|\colsref| so that it can produce the backsheet +and add the Solicitors' name and address in the appropriate place at the end +of the pleading. (If your file contains a pleading followed by an Opinion it +is not necessary to tell \r\ the title for the backsheet of the Opinion +since it will use the same title as it uses on the pleading.) + + +An Originating Summons might, therefore, take the following form in your file--- +\beginlines +|\solsref{XYZ/abc/42}| +|\colsref{SUEGRA/99} | +|\def\timespent{3} % in hours| +|\def\typeofcase{breach of trust}| +|\def\amountatstake{50,000} % pounds| +|\def\difficulty{7} % out of 10| +|\def\suggestedfee{?} | +|\def\legalaid{}| +|\def\remarks{slightly tricky}| +\smallskip +|\ch{1990 S 1234}| +\smallskip +|\plaintiff{ALGERNON SMITH}| +|\defendant{ALFRED JONES}| +|\defendant{ETHELRED UNREADY}| +|\plaintiff{EGBERT SMITH}| +|\matter{John Smith deceased}| +|\matter{the Law of Property Act 1925}| +\smallskip +|\os| +|\cl That it may be determined \dots| +|\cl Further of other relief| +\smallskip +|\bye| +\endlines + +The result of \TeX ing this file is shown on the next couple of pages. + +%NOTE: No it ain't; a slight problem arose with the new ve%rsion of \LT\ and +%so I have removed it for the time being. The file does not like being \T ed +%in the middle of another file for some reason + +\vfil \eject +\inform{Printing demonstration pages of Originating Summons} + +\partcount=\the\pageno % preserve page count, using "spare" count reg. + +\solsref{XYZ/abc/42} +\colsref{SUEGRA/99} +\def\timespent{3} % in hours +\def\typeofcase{breach of trust} +\def\amountatstake{50,000} % pounds +\def\difficulty{7} % out of 10 +\def\suggestedfee{?} +\def\legalaid{} +\def\remarks{slightly tricky} +\smallskip +\ch{1990 S 1234} + +\plaintiff{ALGERNON SMITH} +\defendant{ALFRED JONES} +\defendant{ETHELRED UNREADY} +\plaintiff{EGBERT SMITH} + +\matter{John Smith deceased} +\matter{the Law of Property Act 1925} +\smallskip +\os + +\pageno=\the\partcount % restore it + +\cl That it may be determined \dots +\cl Further of other relief +\smallskip +\bottomofpleading{\endostext} % Not normally necessary +\vfil +\settled % fudge since no \bye +\vfil\vfil\eject + + +An Originating Summons is often accompanied by an Affidavit. If both +documents appear in the same file, the affidavit being the second of them, +the number of commands that need to be typed is limited. The first is +|\deponent{WILLIAM WORDSWORTH}|.**|\deponent| This can optionally be +followed by |\of{Lakeside Villa, Putney}|**|\of| and +|\occupation{Poet}|**|\occupation|. (If the deponent has a non-hyphenated +hyphenated name, that is to say a name where for example the person's +surname is actually two words, join the words together with an underline +character ($\_$), as in |\deponent{BRIAN HAMILTON_KELLY}|. This enables \LT\ +to extract the correct initials from the fullname. \LT\ is not psychic and +so if a person has a title or other formal names which should not be used as +initials (for example, George Seventeenth Duke of Borchester) it will be +necessary to tell \LT\ what his initials and initialised names are. The +commands to use are **|\shortname||\shortname{G. Borchester}| and +**|\initials||\initials{G.B.}|. + +\initials{A.B.C.} + +The next command is *|\affidavit| which will print all the formal parts +(including the endorsement at the top). The text of the affidavit should be +typed using *|\cl| in the usual way. The commands *|\exhibited| and +*|\bundled| will respectively produce `\exhibited\,' and `\bundled\,' (the +initials and number being produced automatically). + +In this case the command *|\bye| should add at the end of the document--- + +\noindent\sworn + + +If the Affidavit is the only pleading it is, of course, necessary to set out +the parties and so on in the file. In these circumstances \r\ will assume +that you are acting for the Defence and refer to your Solicitors as +Solicitors for the Defendants. To change this type *|\clientpltrue| at the +beginning. The affidavit will also by default be treated as being the first +sworn for the relevant party. To alter this to, for example, the second type +**|\affyno||\affyno{2}| at the start. If the deponent is the same it will probably +also be necessary to ensure that the exhibit numbers continue on where they +left off in the previous affidavit. To do this if, for example, the last +number was 10, type *|\exno=10| at the beginning of the new affidavit, but \ca +after\se the command *|\affidavit| (which resets the count to zero). + +Minutes of Order can be produced by the command *|\minutes|. This will set +out the formal parts of the Minutes. + +Pleadings for use in the County Court are produced in exactly the same way +as those for use in the High Court. The commands are very similar. If the +name of the Court and the case number are known the document should be +headed--- + +|\countycourt{BORCHESTER}|\hfil\break +|\case{1234}| + +If, however, either are unknown it is acceptable to simply type +|\countycourt| (or even |\case|) and \LT\ will supply defaults. + + + +\def\VT{{\tt\char'174}} +It is sometimes necessary to produce a table in either a pleading or other +document. \T\ has very sophisticated table producing commands bit they +cannot be described a user-friendly. \LT\ now incorporates\ref{At the moment +they are contained in a separate file, txsruled.tex. At a later date they +will be incorporated into \LT\ itself.} the ruled table macros written by +Eric Myers which normally form part of the \T sis macros (macros for +physicists). The full documentation can be obtained elsewhere (and fuller +documentation will appear in a subsequent edition of this manual). However, to +produce a simple ruled table type *|\ruledtable|. On successive lines put +the material that should appear in the lines of the table. Separate each +column with the vertical bar character (\VT). End each line \ca except the +last\se with |\cr| (which can roughly be translated as `carriage return'). +At the end of the table type |\endruledtable|. (This effectively replaces +the last |\cr|.) There are commands available for producing tables without +rules and for altering the thickness of the rules and so on. Here is an +example--- +\bigskip +{\obeylines +|\ruledtable| +|\bf Date Due| \VT|\bf Amount (\pounds)| \VT|\bf When Paid \cr| +01/02/89 \VT 34.56 \VT 09/12/90|\cr| +24/01/90 \VT 99.00 \VT Outstanding +|\endruledtable|\par} + +This produces--- + +\bigskip +\begingroup % Keep txsruled local. + +\ruledtable +\bf Date Due | \bf Amount (\pounds)| \bf When Paid \cr +01/02/89 | 34.56 | 09/12/90\cr +24/01/90 | 99.00 | Outstanding +\endruledtable + +\endgroup + +\medskip +It must, of course, be remembered that a large table may not fit on a page +in portrait mode. + +\bigskip + +There are many other commands in \r\ and these +Notes will be lengthened in due course. This particular version is being +written in rather a hurry and so is incomplete. In the meantime try the +Index (if it exists) and experiment with the commands that you find there. + +\bigbreak + +{\sh ^{Altering the defaults.}} +\nobreak\smallskip\noindent +There is one file that can be altered +with impunity---that is to say, that I have no objection to you altering +it. It is |RHlocal|. When you receive \r\ this is likely to +contain the following text--- + +\beginlines +|% RHlocal| +|% definitions of local matters| +|%| +|%| +|\counsel{John Smith}| +|%| +|\def\col{AB}| +|%| +|%\let\inn=\lincoln| +|%\let\inn=\grays| +|%\let\inn=\temple| +|%\let\inn=\middletemple| +|%\let\inn=innertemple| +|\def\ouraddress{%| +|7 New Square\cr| +|Lincoln's Inn\cr| +|London WC2A 3QS\cr| +|Telephone: 071 405 1266\cr| +|Fax: 071 405 0554\cr}| +\endlines + +You should insert your name between the |{}| after *|\counsel| in the form in +which you like it to appear on pleadings. You should also substitute your +initials for |AB| in |\def\col{AB}| in the form in which they are used in the +ACE accounts package and ``un-comment'' one Inn. You should also substitute +your address for mine (taking care to include the *|\cr|'s) in *|\ouraddress|. + +If you define your own macros either put them in a new file (called, for +example |newmacs.TEX|) which you put in either the |\TEX| or the +|\TEX\INPUTS|\ref{Depending on your version of \T.} directory and add the +command *|\input newmacs| at the beginning of your text file, or add them to +|RHlocal.TEX|; in the latter case you will have to create a new format file +by typing |INITEX &PLAIN RHFMT \dump|\ref{Note that {\tt\bslash dump} must be in +lower case. This is the command for the \pctex\ version of \T. The \bo emTeX\ok +version uses a different system; please see the instructions.}. + +\bigskip +{\bf Suggestions for improvements in this format file and these Notes will be +gratefully received---and probably rejected out of hand.} + +If you are reading the long version of this Manual, the next part of these +these Notes is a further document called ``\r\ \TeX nical Manual''. This +sets out the \r\ macros in full. I suggest, however, that only those who have +used \r\ for some time actually bother to look at it. However, it contains +details of {\it all\/} the macros that are to be found in \r, including a +large number which are not mentioned in this document or elsewhere---See also +the Index. You may also find it useful when developing your own macros, since +it may help you to avoid the many mistakes which I have made. It may also set +out the text of other macro files which I use. + +If, however, you are reading the short version of this Manual, the next part +will be the index which makes rather boring reading. + + +\bigskip\vfill\eject +% +% Read in the commented macro files +\iflongversion\input RHstuff\relax\fi + +\vfil\eject +% +\def\indexname{% +\vtop{% +\centerline{\bf Index} +\medskip +\rm This is a fairly rough index. It is produced automatically by the +|MANMAC| macros, and as a result there may be a number of duplicated page +references, and the page numbers are not necessarily in order. In later +editions I will perhaps try to rectify this, but at present I could only do +this by hand, and that would take too long. +\medskip% +For those who are interested, the index entries were produced by using a +slightly modified version of the codes shown in {\sl the \TeX book\/} at +pages 423--424\ref{This is to be found in RHindex.TeX.}, were sorted by a +comparatively simple program written in the ``C'' language, and were then +``massaged'' very gently using a text-editor. The \r\ macros then +formatted the result. +\medskip +Of course, if you are reading an early version of these Notes, the index will +not be sorted and so you should not have read the previous paragraph. Forget +that you did.}} + +% stop LeXTeX thinking that this is a pleading +\chitfalse +\let\backmatter\empty +\let\signoff\empty + +% Print the index +\printindex +\bye + diff --git a/macros/plain/contrib/lextex/read.me b/macros/plain/contrib/lextex/read.me new file mode 100644 index 0000000000..59a28bdfed --- /dev/null +++ b/macros/plain/contrib/lextex/read.me @@ -0,0 +1,103 @@ +LeXTeX + +LeXTeX is a collection of macros intended to enable lawyers, +and in particular Barristers, to format their work using +TeX. The package consists of the following files--- + +READ.ME This file. + +LEXTEX.TEX The principle macro file. +RHLOCAL.TEX A file containing local modifications. +SOLICITORS.TEX A database file. + +LTMAN.TEX A Manual for LeXTeX. +EXAMPLE1.TEX A file containing some examples. + +DPI300 A Directory containing the following + fonts at 300dpi--- + + xcmr12 + xxcmr12 + xxxcmr12 + ucmr12 + uucmr12 + uuucmr12 + xucmr12 + +DPI360 A Directory containing the same fonts + as DPI300 but at 360dpi (magstep1) + +TFM A Directory containing the tfm files + for the same fonts. + + +Installing the package is to a certain extent machine and +software dependent. The files LEXTEX.TEX, RHLOCAL.TEX and +SOLICITORS.TEX should be installed in the directory +containing input files. In the emTeX distribution this is +called \EMTEX\TEXINPUTS. + +The files LTMAN.TEX and EXAMPLE1.TEX can also be installed in +this directory. Alternatively they can be put in the working +directory (which may be \EMTEX itself). + +The fonts need to be installed in the appropriate +directories. Various versions of emTeX seem to store fonts +in different directories and to set up the paths to find +them in different ways. These paths are set up by files +called, for example, LJ.CNF. Details of these can be found +in the file called something like +\EMTEX\DOCS\ENGLISH\DVIDRV.DOC. It may be necessary to +rename DPI300 and DPI360 to 300DPI and 360DPI or to make a +corresponding alteration to the CNF file or files. Some +systems may require the files to be given the extension .PK + +The files in the directory TFM should be copied into the +directory \EMTEX\TFM. Some systems require them to be given +the extension .TFM + +There are two ways of running LeXTeX. The first involves +creating a format file. To do this it is necessary to use a +version of TeX called IniTeX. In the case of emTeX this is +actually the same program as TeX. To create the format file +using emTeX type--- + +TEX -I &PLAIN LEXTEX \dump + +Note that it is essential that \dump is typed in lower case. + +After a fair time TeX will report that it has created a +format file called LEXTEX.FMT. This should be moved into the +directory called something like \EMTEX\TEXFMTS. (Some +implementations of TeX call this directory simply FMT or +FMTS.) + +Now to format the Manual type--- + +TEX &LEXTEX LTMAN + +To format the file EXAMPLE1.TEX type TEX &LEXTEX EXAMPLE1 + +The second method of using LeXTeX does not involve creating +a format file. In this case simply type--- + +TEX &PLAIN LTMAN or TEX &PLAIN EXAMPLE1 + +This will be somewhat slower than the first method. + +To print the resulting files is very system dependent. In +the case of emTeX the command--- + +PRTHPLJ LTMAN should work provided that the correct paths to +the fonts have been set up. The documentation on the printer +driver is very thorough and you should have no real +difficulties. + +Roger Horne +7 New Square +Lincoln's Inn +London WC2A 3QS + +rhorne@cix.compulink.co.uk +rhorne@lix.compulink.co.uk + diff --git a/macros/plain/contrib/lextex/rhlocal.tex b/macros/plain/contrib/lextex/rhlocal.tex new file mode 100644 index 0000000000..cc950e9068 --- /dev/null +++ b/macros/plain/contrib/lextex/rhlocal.tex @@ -0,0 +1,31 @@ +% RHlocal +% definitions of local matters +% +% +\def\rh{Roger C\uc-H. Horne} +\counsel{\rh} +% +\def\col{RH} +% +%\let\inn=\lincoln +%\let\inn=\grays +%\let\inn=\temple +%\let\inn=\middletemple +%\let\inn=innertemple +% +\def\ouraddress{% +7 New Square\cr +Lincoln's Inn\cr +London WC2A 3QS\cr +Telephone: 071 405 1266\cr +Fax: 071 405 0554\cr} + +\gdef\myaddress{% +7 New Square\cr +Lincoln's Inn\cr +London WC2A 3QS\cr +Telephone: 071 405 1266\cr +Fax: 071 405 0554\cr +Lix: LON\,031\cr +email: rhorne@cix.compulink.co.uk\cr} + diff --git a/macros/plain/contrib/lextex/ruled.tex b/macros/plain/contrib/lextex/ruled.tex new file mode 100644 index 0000000000..9843b5d594 --- /dev/null +++ b/macros/plain/contrib/lextex/ruled.tex @@ -0,0 +1,62 @@ +% file: ruled.tex TeXsis version 2.14 +% $Revision: 1.8 $ : $Date: 91/06/04 14:03:51 $ : $Author: myers $ +%======================================================================* +% RULED TABLES. Plain TeX macros for making nice ruled tables. +% +% The actual guts of the ruled.tex macros are in the file TXSruled.tex, +% which is loaded at the end of this file. Here we just include +% the interline spacing macros from TeXsis since they are also of +% use in the table making macros. +% +% (C) copyright 1990, 1991 by Eric Myers and Frank E. Paige +%--------------------------------------------------* +% INTERLINE SPACING. (from TeXsis) + +\def\singlespaced{% sets interline spacing to \normalbaselineskip + \baselineskip=\normalbaselineskip % reset interline + \setRuledStrut % set ruled table spacing + } +\def\singlespace{\singlespaced} % synonym for \singlespaced + +\def\doublespaced{% sets interline spacing to 1.5 the \normalbaselineskip + \baselineskip=\normalbaselineskip % increase interline + \multiply\baselineskip by 150 % spacing by 1.50 + \divide\baselineskip by 100 % of normal + \setRuledStrut % set ruled table spacing + } +\def\doublespace{\doublespaced} % synonym for \doublespaced + +\def\TrueDoubleSpacing{% sets interline spacing to twice \normalbaselineskip + \baselineskip=\normalbaselineskip % increase interline + \multiply\baselineskip by 2 % spacing by 2.0 + \setRuledStrut % set ruled table spacing + } +\def\truedoublespacing{\TrueDoubleSpacing} % synonym for \TrueDoubleSpacing + +\def\triplespaced{% sets interline spacing to 3.0 the \normalbaselineskip + \baselineskip=\normalbaselineskip % increases interline + \multiply\baselineskip by 3 % spacing by 3.0 + \setRuledStrut % set ruled table spacing + } + +\def\widenspacing{% increases the interline spacing by 1.25 + \multiply\baselineskip by 125 % increase the interline + \divide\baselineskip by 100 % spacing by a factor of 1.25 + \setRuledStrut % set ruled table spacing + } +\def\whitespaced{\widenspacing} % synonym for \widenspacing +\def\whitespace{\widenspacing} % synonym for \widenspacing + + +% \setRuledStrut creates a vertical strut to hold the interline +% spacing in ruled tables. It is defined in TXSruled.tex + +\def\setRuledStrut{\relax} + +%--------------------------------------------------* +% RULED TABLE MACROS: + +\input TXSruled.tex + +%>>> EOF TXSruled.tex <<< + diff --git a/macros/plain/contrib/lextex/solicit.tex b/macros/plain/contrib/lextex/solicit.tex new file mode 100644 index 0000000000..2f6cf425ae --- /dev/null +++ b/macros/plain/contrib/lextex/solicit.tex @@ -0,0 +1,112 @@ +% >$.!tex.texinputs.solicitors.TeX +%\ifx\solsisloaded\relax\endinput\else\let\solsisloaded=\relax\fi +\message{Version RH/0.2} +% +% Each entry begins with the control sequence \z: +% followed by the Chambers' shortname of the firm +% followed (immediately) by a : +% followed by the name and address. +% Spaces in the name and address do not matter. +% Each line ends with \cr +% The last line should in addition either end with +% \par or be followed by a blank line (or both) +% +% These will later be modified +%\def\tel#1{\afterassignment{\xdef\stel{#1}}} +\def\tel#1{} +\def\dx#1{} +\def\fax#1{} +\def\tlx#1{} +\def\mbx#1{} +\def\email#1{} +% + +\z:INGLED: Ingledew, Brown, Bennison \& Garrett\cr + International House\cr + 26 Creechurch Lane\cr + London\cr + EC3A 5AL\cr\par + +\z:DICKIN: Dickinson Dees\cr + Cross House\cr + Westgate Road\cr + Newcastle upon Tyne\cr + NE99 1SB\cr\par + \tel{091-261 1911} + +\z:DJFREE: D.J. Freeman \& Co.,\cr + 43 Fetter Lane,\cr + London EC4A INA\cr + \cr\par + +\z:FREERB: Freer, Bouskell \& Co.\cr + 10 New Street\cr + Leicester\cr + LE1 5ND\cr\par + +\z:CHARLE: Charles Russell\cr + Hale Court\cr + Lincoln's Inn\cr + London WC2A 3UL\cr\par + \tel{01-242 1031} + +\z:ABBOTT: Computing Service\cr + Aston University\cr + Aston Triangle\cr + Birmingham B4 7ET\cr\par + \tel{021-359 3611} + + +\z:FARRER: Messrs Farrer \& Co\cr + Solicitors\cr + 66 Lincoln's Inn Fields\cr + London WC2A 3LH\cr\par + \tel{01 242 2022} + +\z:TUGBOAT: \TeX\ Users Group\cr + 653 North Main Street\cr + P.O. Box 9506\cr + Providence, RI 02940\cr + U.S.A.\cr\par + \tel{401 751 7760} + \fax{401 751 1071} + + +\z:OVEREND: S.K. Overend Esq\cr + 4 Paper Buildings\cr + Temple\cr + London EC4Y 7EX\cr\par + \tel{353 3366} + +\z:BARCO: The General Council of the Bar\cr + 11 South Square\cr + Gray's Inn\cr + London WC1R 5EL\cr\par + \tel{242 0082} + \fax{831 9217} + +\z:SUEGRA: Sue, Grabbit \& Runne\cr + 1234 Lincoln's Inn Fields\cr + London WC7A 9JJ\cr\par + +\z:DEWILDE: %Robin de Wilde\cr + New Court\cr + Temple\cr + London EC4Y 9BE\cr\par + +\z:OXFORD: Oxford Text Archive\cr + 13 Banbury Road\cr + Oxford OX2 6NN\cr\par + \tel{0865 273238} + \fax{0865 270708} + \email{ARCHIVE@vax.oxford.ac.uk} + +\z:SEAN: %Sean Overend + Cliffside\cr + Yealm Road\cr + Newton Ferrers\cr + Plymouth\cr + Devon PL8 1BL\cr\par + \tel{0752 873030} + + diff --git a/macros/plain/contrib/lextex/txs.doc b/macros/plain/contrib/lextex/txs.doc new file mode 100644 index 0000000000..3d6a9059b2 --- /dev/null +++ b/macros/plain/contrib/lextex/txs.doc @@ -0,0 +1,569 @@ +% file: TXSruled.doc TeXsis version 2.14 +% $Revision: 1.1 $ : $Date: 91/06/04 13:58:47 $ : $Author: myers $ +%======================================================================* + +\def\VT{\char'174} % the vertical var character ``|'' is needed below + + While |\halign| in Plain \TeX\ is convenient for making simple +tables, it is still difficult to make tables with horizontal and +vertical rules. Indeed, typesetting ruled tables in \TeX\ has often +been likened to programming a computer in assembler language. Even +\TeXbook\ acknowledges that ``people who know how to make ruled tables +are generally known as \TeX\ Masters.''\reference{Masters} +D.E.~Knuth, {\sl The \TeX book} (Addison Wesley, 1986, ISBN +0-201-13448-9), page 245 +\endreference\space +The macros described below take a great deal of the difficulty out of +making ruled tables, so that anybody can be a +\TeX\ Master. + + The basic idea behind making a ruled table is similar to +|\halign|, and the syntax is the same as the Princeton table macros +known as |TABLES.TEX| by Ray Cowan,\reference{Cowan} Ray F.~Cowan, {\sl +Making Tables with Macros} (unpublished) +\endreference +although the \TeXsis\ macros are quite different internally and run +about 5 times faster. You begin the table material with |\ruledtable| +and end it with |\endruledtable|. The table material is a list of items +to appear in the rows and columns of the tables. Just as with |\halign| +you can separate items in different columns with |&| and end a row with +|\cr|. The |&| alignment character separates columns without putting a +vertical rule between the columns, while |\cr| ends a line and puts a +thin horizontal rule under it. To get a vertical rule between columns +replace the |&| with a `{\tt\VT}' (the vertical line), and to end a line +without a horizontal rule under it replace the |\cr| with |\crnorule|. +One important thing to remember is to end the last line in the table +with |\endruledtable| instead of |\cr|! + + As an example here is a simple ruled table, +{\singlespaced +\bigskip +\ruledtable +Year | World Population \cr +8000 B.C. | ~~~5000000 \crnorule +~~50 B.C. | ~200000000 \crnorule +1650 A.D. | ~500000000 \crnorule +1850 A.D. | 1000000000 \crnorule +1945 A.D. | 2300000000 \crnorule +1980 A.D. | 4400000000 +\endruledtable +\smallskip} +\noindent +and here are the instructions that created it, +\TeXexample +\ruledtable +Year |VT World Population \cr +8000 B.C. |VT ~~~5000000 \crnorule +~~50 B.C. |VT ~200000000 \crnorule +1650 A.D. |VT ~500000000 \crnorule +1850 A.D. |VT 1000000000 \crnorule +1945 A.D. |VT 2300000000 \crnorule +1980 A.D. |VT 4400000000 +\endruledtable +|endTeXexample +This example also appears in \TeXbook, where it is typeset using +|\halign|. Compare how the two are constructed +and see which way you think is easier. + + By default each item in the table is centered in its column. +Inside a table the tie character ``|~|'' takes up the +space of exactly one digit (it is the same as saying |\phantom{0}|), +and this has been used to line up the digits of the entries in +both columns. It is also possible to change the definition of +the |\TableItem| macro so that each entry in each column is left +or right justified. This is described a little bit later. + + Something to note about this example table is that the outer +rules are thicker than the others. You can also get a thick +vertical rule between columns by using ``{\tt\bs\VT}'' in place of +``{\tt\VT}'', and you can get a thick horizontal rule below a row by +replacing the |\cr| with |\crthick|. The widths of thick and +thin rules are controlled by the dimensions |\thicksize| and +|\thinsize|. If you don't want thick rules at all simply say +|\thicksize=\thinsize|, which makes the thick rules as thin +as the thin rules. + + Some synonyms: |\CR| is the same as |\crthick|, |\nr| is the +same as |\crnorule|, and |\crrule| is the same as |\cr| (actually +it's the other way around!). |\tab| is the same as |&| --- it +separates columns without a vertical rule. |\vb| is the same as +{\tt\VT}, it separates columns with a thin vertical bar, while +|\Vb| is the same as {\tt\bs\VT} and separates the columns with a +thick vertical bar. You can also use |\dbl| to separate columns +with a double vertical rule. + + As in Plain \TeX\ you can use |\span| in place of |&| (or the other +column separators) to join two columns together into one, and you can +use |\omit| as the very first token in a column to tell it to omit the +fancy column layout (the centering or other spacing). You can also use +|\multispan| to |\span| and |\omit| several columns, just as in an +|\halign|. The only difference is that the number of columns you tell +it to |\multispan| is the number of columns of the table it spans --- +with an |\halign| you would count the columns {\it and} any vertical +rules. + +\table{table-example-II} +\caption{Another example of a ruled table.} +\singlespaced +\ruledtable +\multispan3\hfil AT\&T Common Stock \hfil\CR + Year \dbl Price | Dividend \cr + 1971 \dbl 41-54 | \$2.60 \cr + ~~~2 \dbl 41-54 | \$2.70 \cr + ~~~3 \dbl 46-55 | \$2.87 \cr + ~~~4 \dbl 40-53 | \$3.24 \cr + ~~~5 \dbl 45-52 | \$3.40 \cr + ~~~6 \dbl 51-59 | ~~.95 +\endruledtable +\endtable + + \Tbl{table-example-II} is another sample table, again taken +{from} \TeXbook. Something important to notice is that the last +ruled table example didn't have a table number or a caption, +while this one does. That's because the last example was created +using just |\ruledtable|, while this example is inside of +|\table|. The point is that |\table| and |\ruledtable| do +separate things and can be used either separately or together: +|\table| creates the space for the table and gives it a caption +and a number, while |\ruledtable| actually constructs the body of +the ruled table. The instructions that created \Tbl{table-example-II} +are: +\TeXexample +\table{table-example-II} +\caption{Another example of a ruled table.} +\singlespaced +\ruledtable +\multispan3\hfil AT\&T Common Stock \hfil\CR +Year \dbl Price |VT Dividend \cr +1971 \dbl 41-54 |VT \$2.60 \cr +~~~2 \dbl 41-54 |VT \$2.70 \cr +~~~3 \dbl 46-55 |VT \$2.87 \cr +~~~4 \dbl 40-53 |VT \$3.24 \cr +~~~5 \dbl 45-52 |VT \$3.40 \cr +~~~6 \dbl 51-59 |VT ~~.95 +\endruledtable +\endtable +|endTeXexample +\bigskip\goodbreak + +\table{SiHCl} +\singlespaced +\tenpoint +\tolerance=1000 % here for the caption which is a pain +\ruledtable +\vctr{Molecule} | \vctr{Region} | Radius | + \vctr{$\alpha _{\rm HF}$}|\multispan{2} $l_{\rm max}$ \crnorule +\cskip | \cskip | \cskip |\cskip| \crule | \crule \crpart + | | (au) | | initial state | final state \CR + +SiCl$_4$ | outersphere | 6.21 | 0.7238 | 4 | 7\crnorule + | Si | 2.20 | 0.7275 | 2 | 3\crnorule + | Cl | 2.40 | 0.7233 | 2 | 3\cr + +SiHCl$_3$ | outersphere | 6.21 | 0.7260 | 4 | 7\crnorule + | Si | 2.16 | 0.7275 | 2 | 3\crnorule + | Cl | 2.40 | 0.7233 | 2 | 3\crnorule + | H | 1.20 | 0.7772 | 1 | 2\cr + +SiH$_2$Cl$_2$ | outersphere | 6.25 | 0.7295 | 4 | 7\crnorule + | Si | 2.20 | 0.7275 | 2 | 3\crnorule + | Cl | 2.40 | 0.7233 | 2 | 3\crnorule + | H | 1.20 | 0.7772 | 1 | 2\cr + +SiH$_3$Cl | outersphere | 6.30 | 0.7360 | 4 | 7\crnorule + | Si | 2.20 | 0.7275 | 2 | 3\crnorule + | Cl | 2.40 | 0.7233 | 2 | 3\cr + +SiH$_4$ | outersphere | 4.10 | 0.7524 | 4 | 7 \crnorule + | Si | 2.04 | 0.7275 | 2 | 3 \crnorule + | H | 1.20 | 0.7772 | 1 | 2 +\endruledtable + +\caption{Parameters used in the MS-X$\alpha$ calculations for + the chlorosilane molecules, H$_{\rm x}$SiCl$_{\rm 4-x}$; + x=0-4.} + +\endtable + +Sometimes it is desirable to have rules across only some of the columns +of a table. In this case put |\crule| in the columns that are to have +rules, |\cskip| in the columns where no rules are desired, and +end the line with |\crpart|, which signals that the line contains a +partial rule. The column headings in \Tbl{SiHCl} are an example of +partial rules in a table. +That table was created with the commands,\reference{Bozek, 1991} +J.D.~Bozek, Ph.D. thesis (unpublished), Department of Chemistry, +University of Western Ontario, London, Ontario CANADA +\endreference\relax +\TeXexample +\table{SiHCl} +\singlespaced\tenpoint\tolerance=1000 + +\ruledtable +\vctr{Molecule} |VT \vctr{Region} |VT Radius |VT + \vctr{$\alpha _{\rm HF}$}|VT\multispan{2} $l_{\rm max}$ +\crnorule +\cskip |VT \cskip |VT \cskip |VT\cskip|VT \crule |VT \crule \crpart + |VT |VT (au) |VT |VT initial state |VT final state \CR + +SiCl$_4$ |VT outersphere |VT 6.21 |VT 0.7238 |VT 4 |VT 7 \crnorule + |VT Si |VT 2.20 |VT 0.7275 |VT 2 |VT 3 \crnorule + |VT Cl |VT 2.40 |VT 0.7233 |VT 2 |VT 3 ... + +\endruledtable +\endtable +|endTeXexample +\bigskip\goodbreak + + Ruled tables are normally centered on the page, but you can turn +off the centering with |\noncenteredtables|. Then the table becomes just +another piece to add to a horizontal list. One thing this lets you do is +have two tables side by side on the page, like so: +\noncenteredtables +\medskip +\line{ +\ruledtable +Item ABC | Item DEF \cr +Item GHI | Item JKL \endruledtable +\hfil +\ruledtable +Data 111 | Data 222 \cr +Data 333 | Data 444 \cr +Data 555 | Data 666 \endruledtable} +\smallskip +\noindent This pair of tables was produced by saying: +\TeXexample +\noncenteredtables +\medskip +\line{ +\ruledtable +Item ABC |VT Item DEF \cr +Item GHI |VT Item JKL \endruledtable +\hfil +\ruledtable +Data 111 |VT Data 222 \cr +Data 333 |VT Data 444 \cr +Data 555 |VT Data 666 \endruledtable} +\smallskip +|endTeXexample +\noindent Saying |\centeredtables| turns table centering back on. +Tables are then centered across the page, and a table is then +added to a {\it vertical} list. +\bigskip\goodbreak + + Usually |\ruledtable| makes tables as wide as their natural +width, but it is possible to make them wider by setting the dimension +|\tablewidth| to the width desired before saying |\ruledtable|. We can +make the same table in \Tbl{table-example-II} but with the width set to +10cm: +% +\bigskip +\noncenteredtables +\tablewidth=10cm +\line{\hfil\vbox{\singlespaced +\ruledtable +\multispan3\hfill AT\&T Common Stock \hfill\CR +Year \dbl Price | Dividend \cr +1971 \dbl 41-54 | \$2.60 \cr +~~~2 \dbl 41-54 | \$2.70 \cr +~~~3 \dbl 46-55 | \$2.87 \cr +~~~4 \dbl 40-53 | \$3.24 \cr +~~~5 \dbl 45-52 | \$3.40 \cr +~~~6 \dbl 51-59 | ~~.95\rlap* +\endruledtable +\hbox{* (first quarter only)} +\vss}\hfil} +\smallskip +\noindent +The careful reader will notice that the version of +\Tbl{table-example-II} in \TeXbook\ had a footnote to the last entry, +and we have added that here. To do so we had to put the footnote in an +|\hbox| and stack it under the table, so we had to turn off table +centering. The table is therefore a bit more complicated to make, but +not much: +\TeXexample +\noncenteredtables +\tablewidth=10cm +\line{\hfil\vbox{\singlespaced +\ruledtable +\multispan3\hfill AT\&T Common Stock \hfill\CR +Year \dbl Price |VT Dividend \cr +1971 \dbl 41-54 |VT \$2.60 \cr +~~~2 \dbl 41-54 |VT \$2.70 \cr +~~~3 \dbl 46-55 |VT \$2.87 \cr +~~~4 \dbl 40-53 |VT \$3.24 \cr +~~~5 \dbl 45-52 |VT \$3.40 \cr +~~~6 \dbl 51-59 |VT ~~.95\rlap* +\endruledtable +\hbox{* (first quarter only)} +\vss}\hfil} +|endTeXexample +\centeredtables % turn back on! +\noindent +If we had not wanted to add the footnote, then the table would have +been typed the same way as \Tbl{table-example-II} except for setting +the |\tablewidth|. + + Important note: |\tablewidth| is turned ``off'' after the +table is made, so the next table will have its natural width unless +you explicitly set |\tablewidth| again! +\bigskip\goodbreak + + |\ruledtable| normally inserts a |\quad| of space around each +item. If you have a very wide table, especially one with many columns, +you may wish to reduce this. |\TightTables| make this spacing a single +space, the minimum acceptable. |\LooseTables| restores the default +spacing. You can define this space to be something else by +re-defining |\tablespace|, for example as +\TeXexample +\def\tablespace{\ \ } +|endTeXexample +\noindent +If the table is still too wide with |\TightTables|, you will probably +have to reformat it or print it in landscape mode. +\bigskip\goodbreak + + The careful reader may also have noticed that in the +examples in \Tbl{table-example-II} and \Tbl{SiHCl} we said +|\singlespaced|. That's +because the spacing of the rows of a table can be controlled just like +the spacing of the text with |\singlespaced|, |\doublespaced|, +etc. The space between the rows of a table is set by a strut called +|\tstrut|, which holds the rows apart. Its default definition is +\TeXexample +\def\tstrut{\vrule height 3.1ex depth 1.2ex width 0pt} +|endTeXexample +\noindent +You can change the spacing between rows by changing the definition of +this strut. One of the things |\singlespaced| does is define the +|\tstrut| to be 0.5ex higher and deeper than a parenthesis. +|\doublespaced|, |\triplespaced|, and |\widenspacing| all increase the +height and depth of the strut in proportion to the increase in the +baseline spacing. + + If you put something in a table which is larger than the strut, +then it will touch the rows above or below. You can fix this by +inserting your own strut into that row. More simply, you can say +|\bigitem{|\meta{stuff}|}|, and ``stuff'' will be positioned correctly +with a nice amount of space above and below. +\medskip + + You can also decide whether or not you want diagnostic messages +printed when a table is created. |\tableinfotrue| causes a message to +be printed on your terminal every time a ruled table is created. The +message tells you how many rows and columns were in the table. This is +useful information, because it can tell you immediately if you made a +mistake in the table or left out a row or column. |\tableinfotrue| is +the default, but you can turn off these messages by saying +|\tableinfofalse|. In any case, you will be warned if a row has a +different number of columns from the previous one. +\medskip + + The tables we have demonstrated so far all contain numbers, but +sometimes it is desirable to have an entry in a table which is a +paragraph of text. For that purpose, you can use +|\para{|\meta{text}|}|. The width of the paragraph is determined by +the dimension |\parasize|, which defaults to 4 inches. +\medskip + +\table{tablemac;a} +\caption{Basic table macros for use with {\tt\bs ruledtable}.} +\intablelist{Basic macros for {\tt\bs ruledtable}} +\tablewidth=\hsize +\LeftJustifyTables +\ruledtable +\sl Macro name\relax + | \sl Description \relax \crthick +\tt\bs ruledtable\relax + | \para{Starts a ruled table.}\cr +\tt\bs endruledtable\relax + | \para{Ends the ruled table.}\cr +\tt\bs cr\relax + | \para{Ends the current row, and starts the next + one. The completed row will be separated from + the next with a thin horizontal rule.}\cr +\vtop{\noindent\hsize=1.6in\normalbaselines +\tt\bs crthick \hfil\break \rm or \tt\bs CR\hfil }\relax + | \para{Similar to {\tt\bs cr}, but the rows will + be separated with a thick horizontal rule.}\cr +\vtop{\noindent\hsize=1.6in\normalbaselines +\tt\bs crnorule \hfil\break \rm or \tt\bs nr\hfil }\relax + | \para{Similar to {\tt\bs cr}, but the rows will + not be separated by a rule.}\cr +\vtop{\noindent\hsize=1.6in\normalbaselines +\tt\char124\quad \rm (vertical bar)\hfil\break +or \tt\bs vb\hfil} \relax + | \para{Separates one column from the next, and + puts a vertical rule between them.} \cr +\tt\&\ \rm or\tt\ \bs tab \relax + | \para{Same as {\tt\char124}, but does not put + in the vertical rule between the columns.}\cr +\tt\bs\char124 \relax + | \para{Same as {\tt\char124}, but puts in a + thick vertical rule.} +\endruledtable +\line{\hfil {\sl Continued...}} +\endtable + +\fulltable{tablemac;b} +\caption{Additional macros for use with {\tt\bs ruledtable}.} +\intablelist{Additional macros for {\tt\bs ruledtable}} +\tablewidth=\hsize +\LeftJustifyTables +\line{{\sl Continued...}\hfil} +\smallskip +\ruledtable +\sl Macro name\relax + | \sl Description \relax \crthick +\tt\bs multispan\lb{\it n}\rb\relax + | \para{Makes the next entry span the next $n$ + columns, where $n$ is an integer, $n>0$. + See other notes on {\tt\bs multispan} below.} \cr +\tt\bs omit \relax + | \para{This \TeX\ primitive causes the normal + template for its entry to be omitted, allowing + the user to do something else with this entry.} \cr +\tt\bs para\lb{\it text}\rb \relax + | \para{Formats {\it text} into a neat little + paragraph like this one. The width of the + paragraph produced is determined by the dimension + {\tt\bs parasize}. The default is 4 inches. } \cr +\tt\bs parasize=\meta{dimen} \relax + | \para{Sets the width of paragraphs for the {\tt\bs para} + macro.} \cr +\tt\bs TableItem\lb\#\rb\relax + | \para{Used in the standard template, this + macro centers its argument in the column. The + user can redefine it for special effects.} \cr +\tt\bs tablespace + | \para{The spacing around each item for {\tt\bs TableItem}.}\cr +\vtop{\noindent\hsize=1.4in\normalbaselines +\tt\bs LooseTables \hfil\break +\tt\bs TightTables\hfil}\relax + | \para{Set {\tt\bs tablespace} to {\tt\bs quad} and {\tt\bs\ } + respectively.\hfill\break\ }\cr +\vtop{\noindent\hsize=1.6in\normalbaselines +\tt\bs TrailingSpaces \hfil\break +\tt\bs NoTrailingSpaces \hfil}\relax + | \para{Use trailing spaces and glue items in table entries + (default) or ignore them. See text.}\cr +\tt\bs bigitem\lb\#\rb\relax + | \para{Use this for something that would normally + not fit in one line of a table to make the spacing + between rows large enough for this item.} \cr +\tt\bs vctr\lb\#\rb\relax + | \para{Centers the item {\it vertically} so that + it can appear between two rows.}\cr +\tt\bs centeredtables\relax + | \para{Turns table centering on. Each table + will be centered left-to-right on the page. + This is the default.} \cr +\tt\bs noncenteredtables\relax + | \para{Turns table centering off. Each table + is returned as an {\tt\bs hbox}, and it is up + to the user to place it as desired.} \cr +\vtop{\noindent\hsize=1.6in\normalbaselines +\tt\bs tableinfotrue \hfil\break +\tt\bs tableinfofalse\hfil}\relax + | \para{Turns on or off the diagnostic message telling + you how many rows and columns were found in the + table. }\cr +\tt\bs thicksize=\meta{dimen} \relax + | \para{This dimension specifies the thickness + of the thick rules in the table. The default + size is 1.5 points.} \cr +\tt\bs thinsize=\meta{dimen} \relax + | \para{This dimension specifies the thickness + of thin rules in the table. The default + size is 0.8 points.} \cr +\tt\bs tablewidth=\meta{dimen} \relax + | \para{Specifies how wide to make the next + table. If not specified, the table is made to + its natural width. This value is reset + following the construction of each table.} +\endruledtable +\vss +\endtable + +Tables \use{Tb.tablemac;a} and \use{Tb.tablemac;b} summarize the +most important commands for making ruled tables. +\medskip + + Finally we can discuss how you can change how each column of +a table is constructed. The macros which build the table take +each entry and pass it to a macro called |\TableItem|. The +default definition of |\TableItem| is: +\TeXexample +\let\TableItem=\@TableItem % default is centered +\def\@TableItem#1{% % centers item in ruled table + \hfil\tablespace % left glue + #1\killspace % item, no space after + \tablespace\hfil % right glue + }% +|endTeXexample +The |\hfil| glue on both sides of the argument causes the item to be +centered in the column, while |\tablespace| (which defaults to |\quad|) +insures that there will be at least some amount of space between the +item and the vertical rules on each side. Because of the way that +\TeX\ handles macro arguments, if you type a table with spaces between +the text and the next column separator, an extra |\space| will be +inserted into the table. If you first say |\NoTrailingSpaces|, then +|\killspace| in the above macro is defined to remove any trailing glue +items. |\hfill| is redefined by the table macros so that if it is the +last token in an entry, then that entry is properly left justified, +but to insert any other trailing glue, you must say +\example +\meta{text}\meta{glue}\null +\endexample +\noindent +The default is |\TrailingSpaces|, which does incorporate any trailing +spaces into the table but which also treats any trailing glue items +normally. You may wish to change this default in your |TXSpatch.tex| +file. + + You can change the definition of |\TableItem| to suit your own +purpose. The simplest modification is to omit the |\hfil| on the left +or right so that each entry is right or left justified. This is so +commonly used that saying |\RightJustifyTables| or +|\LeftJustifyTables| makes the appropriate change for you. Saying +|\NoJustifyTables| restores |\TableItem| to its original centering +function. + + Since |\TableItem| is used to create every column of the table, you +cannot use it to modify a single column. To justify just one column +you can simply put |\hfill| to the left or right of each item in the +column, since |\hfill| is infinitely more stretchy than |\hfil|. (The +behavior of glue items other than |\hfill| depends on whether +|\NoTrailingSpaces| has been set.) With a little more work it is +possible to design special or unusual tables by redefining the +``preamble'' of the table. This is possible because |\ruledtable| +uses |\halign| with a preamble called |\TablePreamble|. The default +definition of |\TablePreable| is: +\TeXexample +\def\TablePreamble{% % \ruledtable preamble + \TableItem{####}% % the first item + \plaintab\plaintab % && means repeat this + \TableItem{####}% % the subsequent items + \plaincr}% % end of preamble +|endTeXexample +\noindent +The syntax for |\TablePreamble| is like an |\halign| preamble in Plain +\TeX\, but with |&| replaced by |\plaintab|, |\cr| replaced by +|\plaincr|, and |#| replaced by |####|. If you have read this far and +want to try changing |\TablePreable| then you should read the source +code and the comments that go with it in the file |TXSruled.tex.| + +As a final note we point out that it is also possible for you to create +your own column separators with the macro |\nextcolumn|. This macro +takes a single argument which is used to separate one column of the +table from another. Thus for example, the |\dbl| macro for creating a +double vertical rule between columns is defined as: +\TeXexample +\def\dbl{% + \nextcolumn{\vrule width\thinsize + \hskip\thinsize\vrule width\thinsize}} +|endTeXexample + +%>>> EOF TXSruled.doc <<< + + diff --git a/macros/plain/contrib/lextex/txsruled.tex b/macros/plain/contrib/lextex/txsruled.tex new file mode 100644 index 0000000000..69e33bd1db --- /dev/null +++ b/macros/plain/contrib/lextex/txsruled.tex @@ -0,0 +1,409 @@ +% file: TXSruled.tex TeXsis version 2.14 +% $Revision: 1.3 $ : $Date: 91/06/02 02:22:54 $ : $Author: myers $ +%======================================================================* +% RULED TABLES. E. Myers and F.E. Paige +% +% The following macros will typeset tables with vertical and +% horizontal rules. The syntax is similar to Ray Cowan's TABLES.TEX, +% but the macros have been completely rewritten. Vertical and horizontal +% rules are drawn by macros using vertical spacing controlled by struts. +% Usage: +% \ruledtable +% <item> <tab> ... <item> <cr> +% ... +% <item> <tab> ... <item> \endruledtable +% where <item> is an element of the table (every row must have exactly +% the same number of items, although some may be blank), <tab> is any +% one of +% & for no vertical rule +% | [or \vb] for vertical rule +% \| [or \Vb] for thick vertical rule +% \dbl for double vertical rule +% and <cr> is any one of +% \nr for no horizontal rule +% \cr for horizontal rule +% \CR [or \crthick] for thick horizontal rule +% The last <cr> must be omitted in favour of the \endruledtable +% +% For horizontal rules across only some columns use +% ... \nr +% \crule | \cskip & \Crule ... \crpart +% where \crpart is a special \cr for the partial rule line and +% \cskip no rule for column +% \crule horizontal rule for column +% \Crule thick horizontal rule for column +% The number of columns must be identical to the other rows. +% +% To change the appearance of the table, modify \TableItem. +% Several modifications are built in: +% \LeftJustifyTables left justify each column +% \RightJustifyTables right justify each item +% \NoJustifyTables center each item (default) +% \tablespace horizontal spacing around each item +% (default is \quad) +% \TightTables use \ horizontal spacing +% \LooseTables use \quad horizontal spacing (default) +% +% Use \bigitem to expand the vertical strut for high or deep items. +% +% These macros have been reorganized and substantially revised from +% version 2.13. The following functional changes have been made: +% (1) The @ signs have been removed from the names of the macros +% used to save the Plain \cr, \span, and & so that they can be used to +% modify the preamble. See above. +% (2) Macros for partial horizontal rules have been added. +% (3) \tabskip glue has been added so that \tablewidth works +% correctly -- the table stretches uniformly over all columns. +% (4) \linecount has been moved to the \cr macros. It produces a +% warning if the number of columns is different from that in the +% previous row. +% (5) Trailing spaces in the table items are added to the output. +% A macro \NoTrailingSpaces inserts an \unskip after each item to remove +% them. But this also removes trailing skips unless they are followed by +% an empty \hbox or something similar. This is done automatically for +% an \hfill (frequently used to left justify an item). +% The default is \TrailingSpaces, but you may wish to insert +% \NoTrailingSpaces in your TXSsite.tex file. +% (6) \para uses \normalbaselines rather than specific pt values +% for the interline spacing and the final strut. +% +% (C) copyright 1990, 1991 by Eric Myers and Frank E. Paige +%======================================================================* +% Counters and such: +\catcode`@=11 % @ is a letter here +\catcode`\|=12 % make sure | is not active +\catcode`\&=4 % and that & is alignment tab + +\newcount\ncols \ncols=\z@ % number of columns in table +\newcount\nrows \nrows=\z@ % number of rows in table +\newcount\curcol \curcol=\z@ % current column counter +\let\currow=\nrows % current row counter + +\newdimen\thinsize \thinsize=0.6pt % thin rule width +\newdimen\thicksize \thicksize=1.5pt % thick rule width +\newdimen\tablewidth \tablewidth=-\maxdimen % start ``turned off'' +\newdimen\parasize \parasize=4in % paragraph size in tables + +\newif\iftableinfo \tableinfotrue % report rows and columns? Yes +\newif\ifcentertables \centertablestrue % center tables? Yes +\def\centeredtables{\centertablestrue}% +\def\noncenteredtables{\centertablesfalse}% +\def\nocenteredtables{\centertablesfalse}% % synonym ! + +\let\plaincr=\cr % save real \cr +\let\plainspan=\span % save real \span +\let\plaintab=& % save real alignment tab & +\def\ampersand{\char`\&}% % to print `&' in text +\let\lparen=( % save left paren +\let\NX=\noexpand % shorthand for \noexpand is \NX + +%---------------------------------------* +% Main macros: +% \ruledtable <table stuff> \endruledtable turns on the ruled +% table definitions and makes the table with \halign. It handles all +% the control stuff; the real work is done by \@RuledTable. + +\def\ruledtable{\relax % make ruled table + \@BeginRuledTable % initialize table + \@RuledTable}% % now process table body + +% \@BeginRuledTable does all the work of setting things up before +% we read in the body of the table + +\def\@BeginRuledTable{% % initialize table + \ncols=0\nrows=0 % reset row and column count + \begingroup % keep the following local + \offinterlineskip % so vrules touch + \def~{\phantom{0}}% % ~ is phantom digit + \def\span{\plainspan\omit\relax\colcount\plainspan}% \span USER columns + \let\cr=\crrule % \cr gives a \tablerule + \let\CR=\crthick % \CR gives a \thickrule + \let\nr=\crnorule % \nr give no rule + \let\|=\Vb % thick vrule between columns + \def\hfill{\hskip0pt plus1fill\hbox{}}% % so it is not removed +% +% support old \tablestrut in place of \tstrut if it exists +% + \ifx\tablestrut\undefined\relax % if not defined, no problem + \else\let\tstrut=\tablestrut\fi % use \tablestrut +% + \catcode`\|=13 \catcode`\&=13\relax % make | and & active + \TableActive % | and & get active \def`s + \curcol=1 % reset column count +% +% define \Halign to do an \halign with or without a width +% + \ifdim\tablewidth>-\maxdimen\relax % + \edef\@Halign{\NX\halign to \NX\tablewidth\NX\bgroup\TablePreamble}% + \tabskip=0pt plus 1fil % let things stretch + \else % + \edef\@Halign{\NX\halign\NX\bgroup\TablePreamble}% + \tabskip=0pt % no stretch between columns + \fi % +% +% center text if needed +% + \ifcentertables % should table be centered? + \ifhmode\vskip 0pt\fi % yes: force vertical mode + \line\bgroup\hss % center across page + \else\hbox\bgroup % else: just put in \hbox + \fi}% % end of \@BeginRuledTable + + +% \@RuledTable builds the table with \@Halign and getting the +% table body text as its argument. + +\long\def\@RuledTable#1\endruledtable{% % ruled table alignment + \vrule width\thicksize % thick rule on side + \vbox{\@Halign % then do \halign + \thickrule % thick rule on top + #1\killspace % body of table + \tstrut % vertical strut for last line + \linecount % count this line + \plaincr\thickrule % \cr, thick rule on bottom + \egroup}% % end of \halign and \vbox + \vrule width\thicksize % thick rule on side, end \hbox + \ifcentertables\hss\fi\egroup % finish table centering + \endgroup % end group from \ruledtable + \global\tablewidth=-\maxdimen % and reset width + \iftableinfo % report rows and columns + \immediate\write16{[Nrows=\the\nrows, Ncols=\the\ncols]}% + \fi}% % end of \@RuledTable + +%---------------------------------------* +% Preamble and item macros: +% \TablePreamble is the preamble for the \halign in \ruledtable. +% To change how each item is processed change \TableItem. +% To make a more complicated table you can change \TablePreamble, +% but if you do so use the following substitutions in a standard \halign +% preamble: +% for & use \plaintab +% for \cr use \plaincr +% for # use ## +% for ## use #### + +\def\TablePreamble{% % \ruledtable preamble + \TableItem{####}% % the first item + \plaintab\plaintab % && means repeat this + \TableItem{####}% % the subsequent items + \plaincr}% % end of preamble + + +% \TableItem contains glue or spacing around the item + +\def\@TableItem#1{% % centers item in ruled table + \hfil\tablespace % left glue + #1\killspace% % item + \tablespace\hfil % right glue + }% + +\def\@tableright#1{% % right justifies item in ruled table + \hfil\tablespace\relax % left glue + #1\killspace% % item + \tablespace\relax}% % right glue + +\def\@tableleft#1{% % left justifies item in ruled table + \tablespace\relax % left glue + #1\killspace% % item + \tablespace\hfil}% % right glue + +\let\TableItem=\@TableItem % default is centered + +\def\RightJustifyTables{\let\TableItem=\@tableright}% % to right justify +\def\LeftJustifyTables{\let\TableItem=\@tableleft}% % to left justify +\def\NoJustifyTables{\let\TableItem=\@TableItem}% % to center + + +% \TightTables makes the spacing of a table as tight as possible. +% \LooseTables, the default, gives more pleasing spacing. + +\def\LooseTables{\let\tablespace=\quad}% % table spacing is \quad +\def\TightTables{\let\tablespace=\space}% % table spacing is space +\LooseTables % default is \quad + + +% \TrailingSpaces, the default, allows trailing spaces and glue +% to change the appearance of a table. \NoTrailingSpaces removes all +% trailing spaces and glue before inserting the table glue. + +\def\TrailingSpaces{\let\killspace=\relax} % do not kill trailing space +\def\NoTrailingSpaces{\let\killspace=\unskip} % kill trailing space +\TrailingSpaces % default + +%---------------------------------------* +% Table Height and Width: +% +% Normally tables are set to their natural width. If \tablewidth +% has been set then we set the table to that width instead, +% but only for the next table. Then \tablewidth is turned off + +% \setRuledStrut sets up the vertical strut \tstrut with +% the appropriate dimensions to hold up one line of a ruled table. + +\def\setRuledStrut{% sets interlines spacing for ruled tables + \dimen@=\baselineskip % \dimen@ = extra space + \advance\dimen@ by-\normalbaselineskip % between lines + \ifdim\dimen@<.5ex \dimen@=.5ex\fi % minimum space + \setbox0=\hbox{\lparen}% % get character size + \dimen1=\dimen@ \advance\dimen1 by \ht0 % space above line + \dimen2=\dimen@ \advance\dimen2 by \dp0 % space below line + \def\tstrut{\vrule height\dimen1 depth\dimen2 width\z@}% + }% + +\def\tstrut{\vrule height 3.1ex depth 1.2ex width 0pt}% default + + +% \tstrut does not produce the correct spacing if the entry in +% the table is too high. The following constructs a strut higher than its +% argument and then prints the argument. The minimum space value should +% be the same as in \setRuledStrut. + +\def\bigitem#1{% % larger table entry + \dimen@=\baselineskip % \dimen@ = extra space + \advance\dimen@ by-\normalbaselineskip % between lines + \ifdim\dimen@<.5ex \dimen@=.5ex\fi % minimum space + \setbox0=\hbox{#1}% % get argument size + \dimen1=\dimen@ \advance\dimen1 by \ht0 % space above line + \dimen2=\dimen@ \advance\dimen2 by \dp0 % space below line + \vrule height\dimen1 depth\dimen2 width\z@ % make strut to size + \copy0}% % print argument + + +% \vctr{stuff} centers the stuff vertically, so that it can +% appear between two ROWS. + +\def\vctr#1{\hfil\vbox to 0pt{\vss\hbox{#1}\vss}\hfil}% + +%---------------------------------------* +% Vertical rules: +% \tab, \vb and \Vb are used in a table to separate columns with no +% rule, a thin rule, or a thick rule, respectively. \nextcolumn{<rule>} skips +% to the next column and puts the <rule> between columns. Use this to build +% your own separators. + +\def\nextcolumn#1{% % move to next col. + \plaintab\omit#1\relax\colcount % tab, insert #1, count + \plaintab}% % tab to next user col. + +\def\tab{% % no rule between columns + \nextcolumn{\relax}}% % count column + +\let\novb=\tab % synonym for \tab + +\def\vb{% % thin rule between columns + \nextcolumn{\vrule width\thinsize}}% % count and rule + +\def\Vb{% % THICK rule between columns + \nextcolumn{\vrule width\thicksize}}% % count and thick rule + +\def\dbl{% % double rule between columns + \nextcolumn{\vrule width\thinsize % count and rule + \hskip\thinsize\vrule width\thinsize}}% % and skip and rule + +% \TableActive makes | the same as \vb and & the same as \tab so +% these single characters can be used between columns. Here we have to +% make & and | active so we get the active version of the characters, +% hence the temporary change of \catcode. + +{\catcode`\|=13 \let|0 + \catcode`\&=13 \let&0 + \gdef\TableActive{\let|=\vb \let&=\tab}% +}% end \catcode`s + +%---------------------------------------* +% Horizontal rules: +% These replacements for \cr put a wide \vrule at the end of the +% line and maybe put a rule under the line, then begin the next line +% with the wide \vrule from the preamble. + + +\def\crrule{\killspace % \cr plus rule + \tstrut % strut for spacing + \linecount % count this line + \plaincr\tablerule % \cr, regular rule below line + }% + +\def\crthick{\killspace % \cr plus thick rule + \tstrut % strut for vertical spacing + \linecount % count this line + \plaincr\thickrule % \cr, rule, begin next line + }% + +\def\crnorule{\killspace % \cr plus no rule + \tstrut % strut for spacing + \linecount % count this line + \plaincr % \cr, norule, begin next line + }% + +\def\crpart{\killspace % end partial rule line + \linecount % count this line + \plaincr} % and end it + + +% These rules go across the table. + +\def\tablerule{\noalign{\hrule height\thinsize depth 0pt}}% +\def\thickrule{\noalign{\hrule height\thicksize depth 0pt}}% + + +% Rules for individual columns. You must use \cskip in columns +% with no rules to \omit the \TablePreamble. + +\def\cskip{\omit\relax}% +\def\crule{\omit\leaders\hrule height\thinsize depth0pt\hfill}% +\def\Crule{\omit\leaders\hrule height\thicksize depth0pt\hfill}% + +%---------------------------------------* +% Counting macros: +% These macros count rows and columns of the table. After the +% first line has been processed \the\ncols is the total number of +% columns in the table, which may be useful. During processing, +% \the\curcol is the number of the current column, while \the\currow is +% the number of the current row. + + +\def\linecount{% % count and check row + \global\advance\nrows by1% % advance row counter + \ifnum\ncols>0% % if \ncols set + \ifnum\curcol=\ncols\relax\else % if new \ncols different + \immediate\write16% % then write message + {\NX\ruledtable warning: Ncols=\the\curcol\space for Nrow=\the\nrows}% + \fi\fi % end of tests + \global\ncols=\curcol % save columns in \ncols + \global\curcol=1} % reset counter + +\def\colcount{\relax % + \global\advance\curcol by 1\relax}% % advance column counter + +%---------------------------------------* +% TEXT TABLES. +% To put text in a table use \para{<text>}, with \parasize set +% to the desired width of the text. + +\long\def\para#1{% % make a paragraph for tables + \vtop{\hsize=\parasize % width - set before \para called + \normalbaselines % set normal baseline skips + \noindent #1\relax % insert text + \vrule width 0pt depth 1.1ex}% % hold depth of box +}% + +%---------------------------------------* +% TABLES.TEX +% For compatability with Cowan's TABLES.TEX we also allow the +% syntax \begintable ... \endtable, which do the same thing. +% + +\def\begintable{\relax % make ruled table + \@BeginRuledTable % initialize table + \@begintable}% % now process table body + +\long\def\@begintable#1\endtable{% % ruled table alignment + \@RuledTable#1\endruledtable}% % same as \ruledtable + +%---------------------------------------* +% Turn off @ as letter before we exit + +\catcode`@=12 % @ is not a letter + +%>>> EOF TXSruled.tex <<< + |