summaryrefslogtreecommitdiff
path: root/tds/tdsguide.cls
blob: 45267762588d05ff6ca60a28d473c5cef650e8f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
% $Id: tdsguide.cls,v 1.19 2004/03/28 14:21:10 karl Exp $
% LaTeX document class tdsguide
% (history at end)
%
% This class provides markup & layout for the TDS report.
%
\NeedsTeXFormat{LaTeX2e}[1994/12/01]    % star-form of \CheckCommand, etc.


% The code below is explained in the implementation documentation of the
% rcs package.

\begingroup
    \def\RCSClass#1#2 $#3: #4 #5\endRCS $#6: #7 #8\endRCS{%
        \def\date{#4}\def\id{v#7}%
        \ProvidesClass{#1}[\date\space\id\space #2]%
        }

  \RCSClass{tdsguide}{markup and layout for TDS document}
  $Date: 2004/03/28 14:21:10 $: 9999/00/00 \endRCS
  $Revision: 1.19 $: 0.0 \endRCS
\endgroup


% default setup
\ifx \CatEscape\undefined
    \chardef\CatEscape=0
    \chardef\CatOpen=1
    \chardef\CatClose=2
    \chardef\CatIgnore=9
    \chardef\CatLetter=11
    \chardef\CatOther=12
    \chardef\CatActive=13

    \chardef\CatUsCode=\catcode`\_
\fi



%%% ======================================================================

%
%       OPTIONS
%

\catcode`\_=\CatLetter


% We can select to use Roman for METAFONT/METAPOST logos by the
% nomflogo option. That should be done if no current logo fonts (with
% `P' & `S') are available. Of course, it would be best to install
% current fonts.
%     The mflogo options is provided for upward compatibility.

\let\tds_mflogo\relax
\DeclareOption{nomflogo}{%
    \def\tds_mflogo{\let\textlogo\tds@transfer@logo} % gimme refinements! :(
    }
\DeclareOption{mflogo}{}


\newif\ifTdsDraft
        \TdsDraftfalse
\DeclareOption{draft}{%
    \TdsDrafttrue
    \PassOptionsToClass{\CurrentOption}{article}%
    }
\DeclareOption{final}{%
    \TdsDraftfalse
    \PassOptionsToClass{\CurrentOption}{article}%
    }


\catcode`\_=\CatUsCode


%%% ------------------------------------------------------------


%
%       CONFIGURATION, INHERITANCE, AND OTHER MODULES
%


% configure this class

\InputIfFileExists{tdsguide.cfg}{%
        \typeout{*************************************^^J%
                 *^^J%
                 * Local config file tdsguide.cfg used^^J%
                 *^^J%
                 *************************************%
                 }%
    }{}


% inherit article class

\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions
\LoadClass{article}


% add more modules

\RequirePackage{url}                    % file names & email addresses
\RequirePackage{mflogo}                 % MF & MP logos (but see below)
%\RequirePackage{hyperref}               % navigation specials in .dvi
\RequirePackage{fancyhdr}               % rev. no & draft notice in headers

% Put hypertext links in the DVI file on the URL's:
% \def\UrlLeft#1\UrlRight{\special{html:<a href="#1">}#1\special{html:</a>}}
% Don't do this because xdvi doesn't know what do with ftp url's, which
% is the vast majority of links; also because we use the url package for
% mere directory names.


%%% ============================================================


%
%       NEW MARKUP
%

\catcode`\_=\CatLetter

% info about original SGML files

\def\sourcefile#1{}
\def\formatterfile#1{}

% revision number (should use rcs package)

\newtoks\tdsVersion



%
%       RENDER DOCUMENT-SPECIFIC MARKUP
%

% categories for terms

% typewriter type.
%  `_', `\_', and `\\' produce respective chars.

\def\tds_tt{%
    \begingroup
        \catcode`\_=\CatOther
        \chardef\_=`\_
        \chardef\\=`\\
        \tds_tt_set
    }
\def\tds_tt_set#1{%
        \ttfamily
        #1%
    \endgroup
    }

\def\systemitem#1{\tds_tt}
\def\replaceable#1{{\rmfamily $\langle$\textit{#1}$\rangle$}}
\let\command=\tds_tt
\def\application#1{\textrm{#1}}
\let\literal=\tds_tt
\let\email=\url

% \abbr may be called with lowercase & uppercase letters, actually all
% abbreviations are to be typeset with reduced-size uppercase letters.
% (That lowercase letters are used as arguments was a half-hearted
% attempt by Norm who did use small caps at this time.) `Reduced size'
% means one point smaller than the current size. If the reduced size
% is larger than 12pt, we issue a warning; if no font-generating
% driver is used, this situation will lead to character replacements
% most probably.
%
% This macro may be written to an auxilliary file, we must not use
% underscores in its name.

\DeclareRobustCommand\tds@reduced@size{%
    \dimen@\f@size\p@
    \advance \dimen@ -\p@               % dimen@ = font_size - 1
    \ifdim \dimen@ >12\p@
        \@font@warning{%
Using font size `\the\dimen@' for abbreviations. That might lead%
\MessageBreak
to character replacements if you don't use a driver that\MessageBreak
generates fonts.}%
    \fi
    \math@fontsfalse
    \fontsize{\the\dimen@}\z@
    \selectfont
    }
\def\abbr#1{{\tds@reduced@size \uppercase{#1}}}

% references

\let\xref\relax
\let\citetitle=\textit

% aliases for LaTeX markup

\let\emphasis=\emph

% environment `legalnotice', part of front matter

\let\legalnotice=\par
\let\endlegalnotice=\par

% environment `ttdisplay', used to explicate some fact. Basically,
% it's the alltt environment without parskip and with an additional
% level of indentation.

\def\ttdisplay{%
    \begingroup
        \list{}{%
            \parsep\z@skip              % no skip before env
            \parskip\z@skip
            \relax
            }%
        \item\relax
            \parshape\z@
            %% code below is copied from alltt.dtx.
            \leftskip\@totalleftmargin
            \@tempswafalse
            \def\par{%
                \if@tempswa
                    \leavevmode\null\@@par\penalty\interlinepenalty
                \else
                    \@tempswatrue
                    \ifhmode
                        \@@par
                        \penalty\interlinepenalty
                    \fi
                \fi
                }%
            \obeylines
            \verbatim@font
            \let\org@prime~%
            \@noligs
            \everymath \expandafter{\the\everymath \let~\org@prime}%
            \everydisplay \expandafter{\the\everydisplay \let~\org@prime}%
            \let\org@dospecials\dospecials
            \g@remfrom@specials{\\}%
            \g@remfrom@specials{\{}%
            \g@remfrom@specials{\}}%
            \let\do\@makeother \dospecials
            \let\dospecials\org@dospecials
            \frenchspacing\@vobeyspaces
            \everypar \expandafter{\the\everypar \unpenalty}%
            %}
    }
\def\endttdisplay{%
        \endlist
    \endgroup
    \vskip -\parskip                    % undo skip after env
    }

% Code below is from alltt.dtx. I don't understand why it's not part
% of the LaTeX kernel.
\def\g@remfrom@specials#1{%
    \def\@new@specials{}%
    \def\@remove##1{%
        \ifx ##1#1%
        \else
            \g@addto@macro\@new@specials{\do ##1}%
        \fi
        }%
    \let\do\@remove \dospecials
    \let\dospecials\@new@specials
    }




%%% ------------------------------------------------------------


%
%       LOGOS
%


% Some of them are rather document-specific.

\def\texmf{\path|texmf|}
\def\CTAN:{\replaceable{\abbr{CTAN}:}}


% Actually, I should use my logos package for the rest... [-js]

% The AmS definition is from AmS-LaTeX, that's more stable in this
% document's context than the one from AmS-TeX.
\def\AmS{%
    \begingroup
        \protect\usefont{OMS}{cmsy}{m}{n}%
        A\kern-.1667em \lower.5ex\hbox{M}\kern-.125em S%
    \endgroup
    }
\def\AMSTeX{\AmS-\TeX}

\def\iniTeX{\texttt{INITEX}\@}
\def\iniMF{\texttt{INIMF}\@}
\def\iniMP{\texttt{INIMP}\@}

\def\PS{\textsc{PostScript}}


% If we don't use logo fonts, both the Metafont and the MetaPost logo
% is typeset in the current font, as shown in this comment. The macros
% `\MF' & `\MP' expand to two \textfont macros, with uppercase
% syllables as arguments. We check for the syllable `FONT', this has
% to be typeset in lowercase. All other syllables are capitalized.

\def\tds_logo_fontarg{FONT}
\DeclareRobustCommand\tds@transfer@logo[1]{%
    \def\tds_arg{#1}%
    \ifx \tds_arg\tds_logo_fontarg
        font%
    \else
        \tds_capitalize#1\tds_argend
    \fi
    }
\def\tds_capitalize#1#2\tds_argend{%
    \uppercase{#1}\lowercase{#2}%
    }

\tds_mflogo


% Use a small caps fake for BibTeX's `ib'. This way we can typeset it
% in bold face or sans-serif, too. The code is copied from the LaTeX
% logo definition, from ltlogos.dtx.

\DeclareRobustCommand\tds@smsize{%
    $\m@th$%                            % force math size calculation
    \csname S@\f@size\endcsname
    \fontsize\sf@size\z@
    \math@fontsfalse \selectfont
    }

\def\BibTeX{B\kern-.05em{\tds@smsize IB}\kern-.08em\TeX}


%%% ============================================================

%
%       TDS SUMMARIES
%

% Typeset a figure that shows the TeX directory layout. The layout is
% input with optical markup:
%
%     \begin{tdsSummary}
%     dir/                    explanation of dir
%      . subdir/              explanation of subdir
%      . . subsubdir/         next subdir level
%      . dir/dir/             more than one dir in one line
%      . <category>/          explanation of category
%     \end{tdsSummary}
%
% Directories and category names don't have dots.

% We transform that input into a table. The first table column (the
% directory spec) is terminated by a slash that's followed by white
% space. Directory names are typeset in monocase. <categories> are
% tagged with \replaceable. Subdirectory levels are indented by one
% quad. A quad is placed between columns. The explanation text
% is typeset in one line.

% As this is a special implementation for a special document, these
% design decisions are hardwired, no protected interface is available.
% Design changes will be realized by changes to the macro code.


% The environment is realized as a trivlist to behave correctly in list
% environments. I don't use a tabular environment, since I don't know
% exactly how the first column is tokenized. Instead a halign is used.
% IMO it does not matter, as tdsSummary does not use table markup
% anyhow. If somebody wants to use longer explanations and if they must
% be broken then, I have to use one of the tabulars of the tools bundle.

% The first column (the directory names) is typeset in typewriter type. The
% font chosen hereby must have the underscore at its ASCII position. If
% that is not the case, one has to generalize \tds_dir_tags below.
% Namely, this macro sets up the special lexical convention for this
% column. As TeX will look at the first token of the column to check for
% the table end, \cr, or \omit before \tds_dir_tags is evaluated, the
% redefinition of the lexical analysis will not have happened for that
% token. So we have to check this token specially if it's one of the
% special optical markup chars.

% After we started the trivlist, we need to supply the item (as this
% macro really adds the vertical space). But it does not actually
% start an item, it sets up the everypar register to do so. We fake
% the item start as we don't want to go in horizontal mode, \halign
% needs to be evaluated in vertical mode.
%
% \par is not evaluated by \endtrivlist and \end, so we don't need
% another group around its redefinition.

\def\tdsSummary{%
    \trivlist \item\relax
    \vskip\parskip
    \global\@inlabelfalse \global\@newlistfalse \global\everypar{}%
    \tabskip 0pt
    \let\par\crcr  \obeylines       % can't use \obeycr, redefined by LaTeX
    % redefine \obeylines to do nothing; url.sty v3.0 calls it, and the
    % ^^M character therein causes a `Missing \endgroup inserted' error
    % at a \path|...| within a tdsSummary, if it's already defined as \par.
    \let\obeylines=\relax
    \halign\bgroup
        \ttfamily \tds_dir_tags \tds_first_token ##\unskip\hfil &%
            \quad ##\unskip\hfil \cr
    }
\def\endtdsSummary{%
        \crcr
        \egroup
    \endtrivlist
    }


% Our special lexical conventions are: `.' denotes the next directory
% level, `<...>' denotes a directory category, and `/' is a column
% separator if it is followed by space or tab, a typeset slash
% otherwise. Underscores don't have any special meaning.

\begingroup
    \catcode`\.=\CatActive
    \catcode`\<=\CatActive
    \catcode`\/=\CatActive
    \catcode`\:=\CatActive
    \gdef\tds_dir_tags{%
        \catcode`\.=\CatActive  \let.=\tds_next_dir_level
        \catcode`\<=\CatActive  \let<=\tds_dir_category
        \catcode`\/=\CatActive  \let/=\tds_slash
        \catcode`\:=\CatActive  \let:=\tds_colon
        \catcode`\_=\CatOther
        \tt
        }
\endgroup

% There are spaces between the dots, ignore them.

\def\tds_next_dir_level{\quad \ignorespaces}
\def\tds_dir_category#1>{\replaceable{#1}}

\chardef\tds_dir_sep=`\/                % typeset a directory separator

% The slash has to check the stuff behind. If it's a space or a tab,
% \next is bound to the action `blank-space' (the binding of all
% '(space . #\Space) tokens). A tab is usually tokenized to the same
% token, but we care for redefinitions below.
% 
\def\tds_slash{%
    \futurelet\next \tds_check_dir_end
    }

% For colons in the examples.
% 
\def\tds_colon{:&}

% We need two control sequencess that are bound to the actions currently
% bound to '(space . #\Space) and (tex:parse "\t"). A direct \let
% evaluation is difficult as the lexical analysis collapses subsequent
% spaces to one token. But we need one space token behind the equal
% sign, to be able to \let our cseq to the next space token. The first
% token is stored in the replacement list of a macro, the second token
% comes as its argument.

\def\tds_let#1#2{\let#1= #2}
\tds_let\tds_space{ }
\tds_let\tds_tab{^^I}

\def\TdsColSep{/&}                      % use trailing slashes for dir names

\def\tds_check_dir_end{%
    \ifx \next\tds_space
        \let\next\TdsColSep
      \else
        \ifx \next\tds_tab
            \let\next\TdsColSep
          \else
            \let\next\tds_dir_sep
        \fi
    \fi
    \next
    }


% We're almost finished with the tdsSummary setup. The stuff above is
% not used for the first column token, as it's already tokenized when
% the catcode changes take effect. So let's check and remap this token
% by hand. Actually, I'm sloppy here; I assume that `/' won't be a
% used as a directory name and that no directory name starts with an
% underscore. But then, I know that this won't happen in TDS... :-)

\def\tds_first_token{%
    \futurelet\next \tds_check_special
    }
\def\tds_check_special{%
    \ifx \next.%
        \def\next{\afterassignment\tds_next_dir_level \let\next}%
      \else
        \ifx \next<%
            \def\next{\afterassignment\tds_dir_category \let\next}%
          \else
            \let\next\relax
        \fi
    \fi
    \next
    }



%%% ============================================================

%
%       LAYOUT
%


% text area size

% We use the same height as article's default, but increase the width.

\textwidth=35pc
\oddsidemargin = \paperwidth
  \advance\oddsidemargin by -\textwidth
  \divide\oddsidemargin by 2
\evensidemargin = \oddsidemargin
\hoffset = -1in


% spacing

\parindent=0pt                          % no paragraph indentation
\emergencystretch=2em                   % fewer overfull hboxes, only a memo

\parskip=1ex plus 1ex minus .5ex        % between paragraphs; if you change it,
                                        % change the spacing in section headers
                                        % below, too!

% Our spacing for lists is very simplistic, but uniform: We use (almost)
% parskip everywhere, and don't distinguish vertical spacing for
% different list levels. Actually, the latter is the thing we might want
% to introduce later again.

\labelsep=1.1em                         % increase distance between item & text
\topsep=0pt                             % no extra skip above list in paragraph
\partopsep=0pt                          % no extra skip above list starting par.
\itemsep=0pt                            % no extra space between items
\parsep=.9\parskip                      % between paragraphs in items

\def\@listI{%
    \leftmargin\leftmargini
    }
\let\@listi\@listI
\@listi

\def\@listii{%
    \leftmargin\leftmarginii
    \labelwidth\leftmarginii  \advance \labelwidth-\labelsep
    }

\def\@listiii{%
    \leftmargin\leftmarginiii
    \labelwidth\leftmarginiii  \advance \labelwidth-\labelsep
    }


% Like itemize, but squeeze the items.

\newenvironment{itemize-squeeze}
    {%
        \parsep\z@skip
        \itemize
    }{%
        \enditemize
    }

% Ditto, for description.

\newenvironment{description-squeeze}
    {%
        \parsep\z@skip
        \description
    }{%
        \enddescription
    }


% Redefine section headers, different spacing and other fonts.

\newskip\TdsPreSubSectionSkip
        \TdsPreSubSectionSkip = 2.5ex plus 0.5ex minus 0.2ex

\def\section{%
    \@startsection{section}{1}%         % name and level
        {\z@}%                          % indentation
        {-3ex plus-.75ex minus-.2ex}%   % skip above and don't indent next par
        {1.5ex plus.2ex}%               % skip below
        {\reset@font \Large \sffamily}% % type
    }
\def\subsection{%
    \@startsection{subsection}{2}%      % name and level
        {\z@}%                          % indentation
        {-\TdsPreSubSectionSkip}%       % skip above and don't indent next par
        \parskip                        % skip below
        {\reset@font \large \sffamily}% % type
    }
\def\subsubsection{%
    \@startsection{subsubsection}{3}%   % name and level
        {\z@}%                          % indentation
        {-\TdsPreSubSectionSkip}%       % skip above and don't indent next par
        \parskip                        % skip below
        {\reset@font \normalsize \sffamily}% % type
    }
\def\paragraph{%
    \@startsection{paragraph}{4}%       % name and level
        {\z@}%                          % indentation
        \TdsPreSubSectionSkip           % skip above and indent next par
        {-1.5em}%                       % skip after, run in text
        {\reset@font \normalsize \scshape}% % type
    }


% Table of contents

\setcounter{tocdepth}{2}                % only sections on first two levels

% Less space between TOC entries, discard the parskip. For that, we
% have to redefine \@starttoc, since no hook is available.
\let\tds_orig_starttoc=\@starttoc
\def\@starttoc#1{%
    \begingroup
        \parskip\z@skip
        \tds_orig_starttoc{#1}%
    \endgroup
    }

% Section TOC entries in sans serif, and less space above. The code
% below is copied from the article view on classes.dtx, I have changed
% space and font. But let's first assure that we shouldn't use a newer
% version of this code.
\CheckCommand*\l@section[2]{%
  \ifnum \c@tocdepth >\z@
    \addpenalty\@secpenalty
    \addvspace{1.0em \@plus\p@}%
    \setlength\@tempdima{1.5em}%
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode \bfseries
      \advance\leftskip\@tempdima
      \hskip -\leftskip
      #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
    \endgroup
  \fi}
\def\l@section#1#2{%
    \ifnum \c@tocdepth >\z@
        \addpenalty\@secpenalty
        \addvspace{.75ex \@plus\p@ \@minus\p@}% % was:  1em plus 1pt
        \setlength\@tempdima{1.5em}%
        \begingroup
            \parindent \z@
            \rightskip \@pnumwidth
            \parfillskip -\@pnumwidth
            \leavevmode \sffamily       % was: \bfseries
            \advance\leftskip\@tempdima
            \hskip -\leftskip
            #1\nobreak \hfil \nobreak \hbox to\@pnumwidth{\hss #2}%
            \par
        \endgroup
    \fi}


% Not so spacey a title, please.

\def\@maketitle{%
  \null
  \kern-90pt \relax \kern0pt
  \begin{center}%
    {\LARGE \@title \par}%
    %\vskip 1.5em%
    {\large
      \lineskip .5em%
      \begin{tabular}[t]{c}%
        \@author
      \end{tabular}\par}%
    \vskip 1em%
    {\large  version \the\tdsVersion \quad \@date}%
  \end{center}%
  \par
  \vskip 1.5em}


% Make labels in the description environment come out in the
% requested type rather than bold.

\def\descriptionlabel#1{\hspace\labelsep #1}


% Headline & footline

\pagestyle{fancy}

\lhead{}
\chead{%
    \ifTdsDraft draft \fi               % <-- space!
    TDS version \the\tdsVersion
    }
\rhead{}
\renewcommand{\headrulewidth}{0.4pt}

\lfoot{}
\cfoot{\thepage}
\rfoot{}
\renewcommand{\footrulewidth}{0pt}



%%% ============================================================

\catcode`\_=\CatUsCode

\endinput



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% $Log: tdsguide.cls,v $
% Revision 1.19  2004/03/28 14:21:10  karl
% (\tdsSummary): \let\obeylines=\relax after we set
% it, so url.sty v3.0's usage of \obeylines does not
% cause errors.
%
% Revision 1.18  1998/01/26 21:26:10  karl
% (\TeXinfo): Remove unused and incorrect name.
% (\parsep): Decrease slightly.
% (\l@section): Decrease section spacing for toc slightly.
% (\@maketitle): Remove word `draft'.
%
% Revision 1.17  1997/02/07 20:47:16  karl
% Fix : in tdsSummary, more doc.
%
% Revision 1.16  1996/11/16 14:23:58  karl
% fancyhdr requires different commands.
%
% Revision 1.13  1995/11/21  18:57:35  schrod
%     Add description-squeeze environment.
%
% Revision 1.12  1995/11/14  18:33:18  schrod
%     Drop draft hint in legalnotice environment, make title more
% squeezed. Changes by Karl, to make title & toc fit on one page.
%
% Revision 1.11  1995/11/14  12:36:54  schrod
%     Use url.sty instead of path.sty. (On request of Karl, better input
% syntax and different line breaks [0.103].)
%     Rename environment explicate to ttdisplay. (Proposal of Karl.)
%
% Revision 1.10  1995/11/11  16:29:01  schrod
%     Identify version of class in log file.
%     Change layout of table of contents. Implementation of a discussion
% between Karl Berry and myself.
%
% Revision 1.9  1995/11/11  15:43:34  schrod
%     Replace alltt environment by explicate environment. Change
% requested by Karl at 09 Nov 95.
%
% Revision 1.8  1995/11/02  10:52:29  schrod
%     Add option nomflogo, mflogo is default now.
%     Don't need provision for slanted typewriter type any more,
% replacable texts are set in italics now.
%     Add logos \texmf and \CTAN:. [kb]
%     Set margins in addition to \textwidth. It's a bit wider, too. [kb]
%     Wider distance between item label and item text. [kb]
%     New environment itemize-squeeze, without space between items. [kb]
%
% Revision 1.7  1995/05/18  09:06:39  schrod
%     Don't parse arguments unnecessarily early, one might change
% catcodes in them.
%     Use \tds_tt to switch to typewriter, also typesets backslashs and
% underscores [kb].
%     Increase width to 33pc [kb].
%
% Revision 1.6  1995/05/12  23:19:07  schrod
%     \f@size may be a fraction, so use dimension register to compute
% the reduced size for abbreviations [dc].
%     In summary tables, terminate the directory names with slashes [kb, nw].
%
% Revision 1.5  1995/05/09  01:46:24  schrod
%     Typeset abbreviation one point smaller than surrounding font [uv,
% kb, bb], use always uppercase letters for them. Rename the tag from
% \acronym to \abbr [kb, nw].
%
% Revision 1.4  1995/05/09  00:39:57  schrod
%     Repair vertical spacing around tdsSummary environment.
%
% Revision 1.3  1995/05/08  17:14:52  schrod
%     For TDS 0.72 Norm changed the document to use \abbr (argument with
% lowercase letters) instead of \acronym. It's not looking better, of
% course; small caps is not really a good font for abbreviations. This
% revision just tracks his change, I'll look later if I can improve the
% rendering.
%
% Revision 1.2  1995/05/07  18:22:53  schrod
%     In environment tdsSummary: Next directory level indented by one
% quad, without dots for indentation [kb, !uv, js].
%     Renamed Draft flag to TdsDraft, to keep namespace clean.
%     Headline now features a centered short title [kb, uv, nw]. It's
% still ruled.
%     \replaceable used spurious \selectfont [uv]. \dir & \ext are not
% used [uv].
%     Subsubsections are also numbered and not indented [uv]. But they
% are still not added to the table of contents. Actually, we have only
% _one_ subsubsection...
%     Set erroneously counter `secnumdepth' when I wanted fewer section
% headings in the table of contents. That's controlled by counter
% `tocdepth' [uv].
%     Inherit tdsguide from article class, not from ltxguide. The tags
% of the latter class are not appropriate and we define our layout
% ourselves.
%

%
% pre-CVS Log:
%
% 19 Apr 95 js  Made a LaTeX2e class.
%               Use mflogo option to select MF/MP logo typesetting,
%               support configuration file.
% 1994-1995 nw  Initial revision.



%%%------------------------------------------------------------

% mode: LaTeX
% Local Variables:
% TeX-brace-indent-level: 4
% indent-tabs-mode: t
% TeX-auto-untabify: nil
% TeX-auto-regexp-list: LaTeX-auto-regexp-list
% page-delimiter: "^%%%"
% End: