summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/plain/cweb/cwebbin/icwebmac.tex
blob: 6fcafb9e6d7be1f0ba78c143084207f6b09f9ff8 (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
% standard macros for CWEB listings (in addition to plain.tex)
% modified for use with "tex2pdf" --- March 1997
% Version 2.0 --- Don Knuth, July 1990
% Version 2.0 [german] --- Carsten Steger, October 1991
% Version 2.0 [german] --- Andreas Scherer, February 1993
% Version 2.7 --- Don Knuth, July 1992
% Version 2.7 [p6c] --- Andreas Scherer, September 1993
% Version 2.8 --- Don Knuth, September 1992
% Version 2.8 [german] --- Carsten Steger, 1993
% Version 2.8 [p7] --- Andreas Scherer, October 1993
% Version 3.0 --- Don Knuth, June 1993
% Version 3.0 [p8e] --- Andreas Scherer, November 1993
% Version 3.1 [p9b] --- Andreas Scherer, January 1994
% Version 3.1 [p9c] --- Andreas Scherer, March 1994
% Version 3.1 [p9d] --- Andreas Scherer, July 1994
% Version 3.2 [p10] --- Andreas Scherer, July 1994
% Version 3.2 [p10a] --- Giuseppe Ghibò, September 1994
% Version 3.2 [p10b] --- Andreas Scherer, October 1994
% Version 3.3 [p11b] --- Andreas Scherer, March 1995
% Version 3.4 [p13] --- Andreas Scherer, August 1995
% Version 3.4 [p14] --- Andreas Scherer, March 1997
% Version 3.42 [p15] --- Andreas Scherer, August 1998
% Version 3.43 [p16] --- Andreas Scherer, October 1998
% Version 3.5 [p17] --- Andreas Scherer, December 1999
% Version 3.61 [p18] --- Andreas Scherer, July 2000
% Version 3.63 [p19] --- Andreas Scherer, January 2001
% Version 3.64 [p20] --- Andreas Scherer, March 2002
% Version 3.64 [p21] --- Andreas Scherer, Octobre 2005
% Version 3.64 [p22] --- Andreas Scherer, March 2016

\ifx\undefined\botofcontents\input cwebmac.tex\fi

\def\.#1{\leavevmode\hbox{\tentex % typewriter type for strings
  \ifx\Cstringchars\undefined\else\Cstringchars\fi % special string characters
  \let\\=\BS % backslash in a string
  \let\{=\LB % left brace in a string
  \let\}=\RB % right brace in a string
  \let\~=\TL % tilde in a string
  \let\ =\SP % space in a string
  \let\_=\UL % underline in a string
  \let\&=\AM % ampersand in a string
  \let\^=\CF % circumflex in a string
  #1\kern.05em}}

\def\postATL#1 #2 {\bf lettera \\{\uppercase{\char"#1}}
   tangles as \tentex "#2"\egroup\par}
\def\ATH{{\acrofalse\X\kern-.5em:Definizioni preprocessore\X}}

\def\A{\note{Vedi anche sezione}} % xref for doubly defined section name
\def\As{\note{Vedi anche sezioni}} % xref for multiply defined section name

\def\ET{ e~} % conjunction between two section numbers
\def\ETs{ e~} % conjunction between the last two of several section numbers

\def\Q{\note{Questo codice \`e citato nella sezione}}
  % xref for mention of a section
\def\Qs{\note{Questo codice \`e citato nelle sezioni}}
  % xref for mentions of a section

\def\U{\note{Questo codice \`e usato nella sezione}}
  % xref for use of a section
\def\Us{\note{Questo codice \`e usato nelle sezioni}}
  % xref for uses of a section

\gtitle={Output \.{CWEB}} % this running head is reset by starred sections
\mark{\noexpand\nullsec0{\the\gtitle}}

\def\ch{\note{Le seguenti sezioni sono state modificate tramite il change-file:}
  \let\*=\relax}

\def\inx{\par\vskip6pt plus 1fil % we are beginning the index
  \def\page{\box255 } \normalbottom
  \write\cont{} % ensure that the contents file isn't empty
       \write\cont{\catcode `\noexpand\@=12\relax}   % \makeatother
  \closeout\cont % the contents information has been fully gathered
  \output{\ifpagesaved\normaloutput{\box\sbox}\lheader\rheader\fi
    \global\setbox\sbox=\page \global\pagesavedtrue}
  \pagesavedfalse \eject % eject the page-so-far and predecessors
  \setbox\sbox\vbox{\unvbox\sbox} % take it out of its box
  \vsize=\pageheight \advance\vsize by -\ht\sbox % the remaining height
  \hsize=.5\pagewidth \advance\hsize by -10pt
    % column width for the index (20pt between cols)
  \parfillskip 0pt plus .6\hsize % try to avoid almost empty lines
  \def\lr{L} % this tells whether the left or right column is next
  \output{\if L\lr\global\setbox\lbox=\page \gdef\lr{R}
    \else\normaloutput{\vbox to\pageheight{\box\sbox\vss
        \hbox to\pagewidth{\box\lbox\hfil\page}}}\lheader\rheader
    \global\vsize\pageheight\gdef\lr{L}\global\pagesavedfalse\fi}
  \message{Indice Analitico:}
  \parskip 0pt plus .5pt
  \outer\def\I##1, ##2.{\par\hangindent2em\noindent##1:\kern1em
    \ifacro\pdfnote##2.\else##2\fi.} % index entry
  \def\[##1]{$\underline{##1}$} % underlined index item
  \rm \rightskip0pt plus 2.5em \tolerance 10000 \let\*=\lapstar
  \hyphenpenalty 10000 \parindent0pt
  \readindex}
\def\fin{\par\vfill\eject % this is done when we are ending the index
  \ifpagesaved\null\vfill\eject\fi % output a null index column
  \if L\lr\else\null\vfill\eject\fi % finish the current page
  \ifpdftex \makebookmarks \fi % added in Version 3.68
  \parfillskip 0pt plus 1fil
  \def\grouptitle{NOMI DELLE SEZIONI}
  \let\topsecno=\nullsec
  \message{Nomi delle sezioni:}
  \output={\normaloutput\page\lheader\rheader}
  \setpage
  \def\note##1##2.{\quad{\eightrm##1~\ifacro{\pdfnote##2.}\else{##2}\fi.}}
  \def\Q{\note{Citato nella sezione}} % crossref for mention of a section
  \def\Qs{\note{Citato nelle sezioni}} % crossref for mentions of a section
  \def\U{\note{Usato nella sezione}} % crossref for use of a section
  \def\Us{\note{Usato nelle sezioni}} % crossref for uses of a section
  \def\I{\par\hangindent 2em}\let\*=*
  \ifacro \def\outsecname{Nomi delle sezioni} \let\Xpdf\X
%  \ifpdftex \makebookmarks \pdfdest name {NOS} fitb % in versions < 3.68
  \ifpdftex \pdfdest name {NOS} fith % changed in version 3.69
    \pdfoutline goto name {NOS} count -\secno {\outsecname}
    \def\X##1:##2\X{\Xpdf##1:##2\X \firstsecno##1.%
      {\toksF={}\makeoutlinetoks##2\outlinedone\outlinedone}%
      \pdfoutline goto num \the\toksA \expandafter{\the\toksE}}
  \else\ifpdf
    \special{pdf: outline -1 << /Title (\outsecname)
      /Dest [ @thispage /FitH @ypos ] >>}
    \def\X##1:##2\X{\Xpdf##1:##2\X \firstsecno##1.%
      {\toksF={}\makeoutlinetoks##2\outlinedone\outlinedone}%
      \special{pdf: outline 0 << /Title (\the\toksE)
        /A << /S /GoTo /D (\romannumeral\the\toksA) >> >>}}
  \fi\fi\fi
  \readsections}
\def\con{\par\vfill\eject % finish the section names
% \ifodd\pageno\else\titletrue\null\vfill\eject\fi % for duplex printers
  \rightskip 0pt \hyphenpenalty 50 \tolerance 200
  \setpage \output={\normaloutput\page\lheader\rheader}
  \titletrue % prepare to output the table of contents
  \pageno=\contentspagenumber
  \def\grouptitle{INDICE}
  \message{Indice:}
  \topofcontents \startpdf
  \line{\hfil Sezione\hbox to3em{\hss Pag.}}
  \let\ZZ=\contentsline
  \readcontents\relax % read the contents info
  \botofcontents \end} % print the contents page(s) and terminate
\def\today{\number\day\space\ifcase\month\or
  gennaio\or febbraio\or marzo\or aprile\or maggio\or giugno\or
  luglio\or agosto\or settembre\or ottobre\or novembre\or dicembre\fi
  \space\number\year}
\def\datethis{\def\startsection{\leftline{\sc\today, ore \hours}\bigskip
  \let\startsection=\stsec\stsec}}
  % say `\datethis' in limbo, to get your listing timestamped before section 1
%\def\datecontentspage{% versions up to 3.65
%  \def\topofcontents{\leftline{\sc\today, ore \hours}\bigskip
%   \centerline{\titlefont\title}\vfill}} % timestamps the contents page
\def\datecontentspage{% changed in version 3.66
  \def\botofcontents{\vfill
   \centerline{\covernote}
   \bigskip
   \leftline{\sc\today, ore \hours}}} % timestamps the contents page