diff options
Diffstat (limited to 'obsolete/macros/inrstex/inrstex/tocform.tex')
-rw-r--r-- | obsolete/macros/inrstex/inrstex/tocform.tex | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/obsolete/macros/inrstex/inrstex/tocform.tex b/obsolete/macros/inrstex/inrstex/tocform.tex new file mode 100644 index 0000000000..86999ba0d1 --- /dev/null +++ b/obsolete/macros/inrstex/inrstex/tocform.tex @@ -0,0 +1,108 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% ======== Table of Contents, Figures, and Tables -- Examples ====== +% The "list" file is written using \writelistfile and the \shtoc ... +% are used to create the actual table of contents, figures, tables. +% Extensions to other forms should be obvious. + + + +%====== general structure for making table of contents, tables, etc. +% ------ table of contents is slightly different because it refers to itself + +% file names (defaults) \jobname.toc --- table of contents +% \jobname.fig --- list of figures +% \jobname.tbl --- list of tables + +% to initiate a build of any of these it is only necessary to +% \openlistfile{<...>} --- This should be only done once +% when this is done a <..>list flag or switch is also created + +% To print any of these lists it is only necessary to +% use the following format +% \begingroup +% \def\sshtoc#1#2#3{} % omits or specially defines . and any other +% \preludehead{<name list>} % .... or what you wish +% \maketoclist % This is for toc files only ... self referential +% \input \jobname.<extension> +% \ejectpage % if desired +% \endgroup + +% a few special macros are defined for toc/list file management (VAX/VMS) + +\newif\ifnotdefined % \ifundefined is sensitive if it fails +\def\checklistopen#1{\notdefinedfalse\ifundefined{if#1list}\notdefinedtrue\relax + \fi} +\def\c@k#1{\csname if#1list\endcsname \jobname.#1;-1 \else \jobname.#1 \fi} +\def\newlistfilename#1{\ifnotdefined \jobname.#1 \else \c@k{#1} \fi} + % \c@k is necessary because of the way TeX expands + +\newtoks\inputtocfiles +\inputtocfiles = {\checklistopen{toc}\inputwithcheck{\newlistfilename{toc}}} +\def\maketoclist{\begingroup\captionbodyoff\the\inputtocfiles\endgroup} + +\newtoks\inputfigfiles +\inputfigfiles = {\checklistopen{fig}\inputwithcheck{\newlistfilename{fig}}} +\def\makefiglist{\begingroup\captionbodyoff\the\inputfigfiles\endgroup} + +\newtoks\inputtblfiles +\inputtblfiles = {\checklistopen{tbl}\inputwithcheck{\newlistfilename{tbl}}} +\def\maketbllist{\begingroup\captionbodyoff\the\inputtblfiles\endgroup} + + +% ======== macro forms for toc, fig, tbl ========= +% Some of these are defined as null to suppress printing of the +% corresponding entries. +% #1 Number +% #2 Text +% #3 Page number +% ========== toc macro forms ========== +% special forms that allow for multiple line titles ... auto line breaking +% only +%#1--indent #2 --section number #3--title +% #4-- pagenumber +\newdimen\t@ocsize +\newdimen\righttocindent %\righttocindent = 5em + +\def\tocfill{\leaders\hbox to .5em{\hss.\hss}\hfill\hskip .5em} + +% default font is \rm ... may be changed in the actual \figtoc ...etc +% macros as given below. + +\def\tocbox#1#2#3#4{\line{\rm \t@ocsize=\hsize + \setbox2=\hbox {\hskip#1\relax#2\quad} + \advance\t@ocsize by -\righttocindent + \vbox{\hsize \t@ocsize \normalbaselines + \setstrut + \hangindent 1\wd2 + \hangafter 1 \def\cr{\linebreak}\frenchspacing + \veryraggedright \parindent=0pt\leavevmode + \box2\relax#3\strut\null\nobreak\rm\tocfill + #4\hskip -\righttocindent\strut}\hss}} + +% ---------- figure forms ------- +\def\figtoc#1#2#3{ \vskip 1ex plus 1pt minus 1pt + \tocbox{2em}{#1}{#2}{#3}} +% ---------- table forms ------- +\let\tbltoc=\figtoc + +\def\prtoc#1#2#3{ \vskip 1ex plus 1pt minus 1pt + \tocbox{0em}{\it#1}{\it#2}{\it#3}} + +\def\chtoc#1#2#3{ \goodbreak\vskip 2ex plus 1pt minus 1pt + \tocbox{0em}{\sheadfont#1}{\sheadfont\def\cr{ }#2}{#3}} +\def\shtoc#1#2#3{ \vskip 1ex plus 1pt minus 1pt + \tocbox{2em}{#1}{#2}{#3}} +\def\sshtoc#1#2#3{ \vskip .5ex plus 1pt minus 1pt + \tocbox{4em}{#1}{#2}{#3}} +\def\intssshtoc#1#2#3{ \vskip .3ex plus 1pt minus 1pt + \tocbox{6em}{#1}{#2}{#3}} +\def\intdssshtoc#1#2#3{ \vskip 1pt plus 1pt minus 1pt + \tocbox{8em}{#1}{#2}{#3}} +\def\ssshtoc#1#2#3{} +\def\dssshtoc#1#2#3{} + +% the upper two forms are defaulted to be omitted. They are easily included +% with a \let\ssshtoc = \intssshtoc ... etc .
\ No newline at end of file |