* cp-tree.h (make_typename_type): Change prototype.
[official-gcc.git] / texinfo / cygnus / texiplus.tex
blob01a4e1316a6ae0d300a873ffe929320dbbe5d9eb
1 @tex
2 %% Cygnus revisions to texinfo.tex, TeX macros to handle texinfo files
3 % Copyright (C) 1991 Free Software Foundation, Inc.
4 %% Maintained at Cygnus Support as:
5 %%$Id: texiplus.tex,v 1.1.1.1 1998/03/23 04:42:12 law Exp $
7 %This texi+.tex file is free software; you can redistribute it and/or
8 %modify it under the terms of the GNU General Public License as
9 %published by the Free Software Foundation; either version 1, or (at
11 {\let\fsfvn=\texinfoversion
12 \xdef\texinfoversion{\fsfvn\ (Cygnus)}}
13 \message{Loading Cygnus texinfo revisions [\texinfoversion]:}
15 % Print the version number if in a .fmt file.
16 \everyjob{\message{[Cygnus Texinfo \texinfoversion]}}
18 \globaldefs=1 % Escape the bounds of @tex/@end tex surrounding us
20 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%CROPMARKS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
21 % These differ only slightly from FSF defaults; all crop dimens are
22 % defined here (whether different or not) for ease in revising.
23 \cornerlong=1pc\cornerthick=.3pt % These set size of cropmarks
24 \outerhsize=7in
25 \outervsize=9in
26 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
28 \newif\ifdraft\drafttrue % Extra markings; turn off with @finalout
30 % There are only two small changes to standard \title from texinfo
31 % (1) to include DRAFT marking on title page unless @finalout
32 % (2) to include a title-sized \tt font
33 % However, since \title is local to \titlepage, we have to redefine
34 % *that* whole damned thing.
35 %%%%%%%%%%This is sensitive to conflict w/FSF changes!****************
36 \def\titlepage{\begingroup \parindent=0pt \textfonts
37 \let\subtitlerm=\tenrm
38 % I deinstalled the following change because \cmr12 is undefined.
39 % This change was not in the ChangeLog anyway. --rms.
40 % \let\subtitlerm=\cmr12
41 \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}%
43 \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}%
45 % Leave some space at the very top of the page.
46 \vglue\titlepagetopglue
48 % Now you can print the title using @title.
49 \def\title{\parsearg\titlezzz}%
50 %changes from FSF only in following line:
51 \def\titlezzz##1{{\let\tentt=\titlett
52 \leftline{\titlefont{##1\ifdraft\hfill DRAFT\fi }}}
53 %end real changes from FSF version
54 % print a rule at the page bottom also.
55 \finishedtitlepagefalse
56 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
57 % The ``width \hsize'' below should be unnecessary, since the rule is
58 % supposed to default to the smallest enclosing box...but *something*
59 % in texiplus breaks that default, so we force it to hsize.
60 \vskip4pt \hrule height 4pt width \hsize \vskip4pt}%
61 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
62 % No rule at page bottom unless we print one at the top with @title.
63 \finishedtitlepagetrue
65 % Now you can put text using @subtitle.
66 \def\subtitle{\parsearg\subtitlezzz}%
67 \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}%
69 % @author should come last, but may come many times.
70 \def\author{\parsearg\authorzzz}%
71 \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi
72 {\authorfont \leftline{##1}}}%
74 % Most title ``pages'' are actually two pages long, with space
75 % at the top of the second. We don't want the ragged left on the second.
76 \let\oldpage = \page
77 \def\page{%
78 \iffinishedtitlepage\else
79 \finishtitlepage
80 \fi
81 \oldpage
82 \let\page = \oldpage
83 \hbox{}}%
84 % \def\page{\oldpage \hbox{}}
86 \def\finishtitlepage{%
87 % same comment re ``width \hsize'' as on last hrule...
88 \vskip4pt \hrule width \hsize height 2pt
89 \vskip\titlepagebottomglue
90 \finishedtitlepagetrue
92 %%%%%%%%%%end sensitive to conflict w/FSF changes!********************
94 % Cygnus uses different default page headings and footers
95 \def\leadline{\ \leaders\hrule height 2.5pt depth -2pt\hfil\ }
96 \def\manvers{}% Empty default version in case manual doesn't supply
97 % This is for _explicitly_ turning headers off. Note that we're more
98 % literal-minded than the FSF: we don't turn off _footers_! This
99 % means that, unlike with the FSF macros, our ``@headings off'' do not
100 % return to the default Texinfo heading-state of the document.
101 % Reconsider if this gives trouble...
102 \def\HEADINGSoff{
103 \global\evenheadline={\hfil}
104 \global\evenfootline={\line{\let\,=\thinspace\ftfnt c\,y\,g\,n\,u\,s\quad s\,u\,p\,p\,o\,r\,t\leadline\manvers}}
105 \global\oddheadline={\hfil}
106 \global\oddfootline={\line {\let\,=\thinspace\ftfnt c\,y\,g\,n\,u\,s\quad s\,u\,p\,p\,o\,r\,t\leadline\manvers}}}
107 % SINGLEPAGE:
108 \def\HEADINGSsingle{
109 \global\pageno=1\HEADINGSsinglex}
110 \def\HEADINGSsinglex{
111 \global\evenfootline={%
112 {\let\,=\thinspace\ftfnt c\,y\,g\,n\,u\,s\quad s\,u\,p\,p\,o\,r\,t}%
113 \leadline\manvers}
114 \global\oddfootline={%
115 {\let\,=\thinspace\ftfnt c\,y\,g\,n\,u\,s\quad s\,u\,p\,p\,o\,r\,t}%
116 \leadline\manvers}
117 \global\evenheadline={\ftfnt\thischapter\leadline
118 \ifdraft DRAFT\leadline\fi
119 \bf\folio}
120 \global\oddheadline={\ftfnt\thischapter\leadline
121 \ifdraft DRAFT\leadline\fi
122 \bf\folio}
125 % DOUBLEPAGE:
126 % use hrule leaders to delimit headings, footings from
127 % body; timestamp footer; pagenos outside *bottom* to
128 % permit moving chaptername to outside *top* (for easier
129 % skimming). 1990 dec 31, pesch@cygnus.com
130 \def\HEADINGSdouble{
131 \global\pageno=1\HEADINGSdoublex}
132 \def\HEADINGSdoublex{
133 \global\evenfootline={%
134 {\bf\folio}\ftfnt\leadline\ifdraft DRAFT\quad\fi
135 \ftfnt\manvers\qquad\today
137 \global\oddfootline={%
138 {\let\,=\thinspace\ftfnt c\,y\,g\,n\,u\,s\quad s\,u\,p\,p\,o\,r\,t}%
139 \leadline{\bf\folio}%
141 \global\evenheadline={\ftfnt\thistitle\leadline\ifdraft DRAFT\fi}
142 \global\oddheadline={\rm\leadline\thischapter}
145 % CHANGE to @finalout ---also use it to remove DRAFT markings from
146 % title, footers
147 %% For a final copy, take out the rectangles
148 %% that mark overfull boxes (in case you have decided
149 %% that the text looks ok even though it passes the margin).
150 \def\finalout{\overfullrule=0pt
151 %% Also take out ``DRAFT'' markings
152 \global\draftfalse
155 %Font overrides; we use PostScript when possible.
156 \font\textrm=pncr scaled \magstephalf
157 \font\texttt=pcrr
158 \font\textbf=pncb scaled \magstephalf
159 \font\textit=pncri scaled \magstephalf
160 \font\textsl=pcrro
161 \font\textsf=slcrst at 9.5pt
162 % FIXME: figure out, test dvips smallcaps kluge
163 %\font\textsc=Times-SmallCaps scaled \magstephalf
164 \font\ftfnt=phvr at 8pt % Cygnus Support footer-font
166 \font\defbf=pncb scaled \magstep1 %was 1314
168 \font\ninett=pcrr at 9pt
169 \let\indtt=\ninett
170 \font\indrm=pncr at 9pt
171 \font\indit=pncri at 9pt
172 \font\indsl=pcrro at 9pt
173 \let\indsf=\indrm
174 \let\indbf=\indrm
175 \let\indsc=\indrm
177 \font\chaprm=pncb at 17pt
178 \font\chapit=pncbi at 17pt
179 \font\chapsl=pcrbo at 16pt
180 \font\chaptt=pcrb at 16pt
181 \font\chapsf=slcrst at 16pt
182 \let\chapbf=\chaprm
183 % \chapfonts mod from FSF vn is to include baselineskip, for the few
184 % cases where a title chapter overflows its line.
185 \def\chapfonts{\baselineskip=19pt%
186 \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
187 \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
188 \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy
189 \resetmathfonts}
192 \font\secrm=pncb at 14pt
193 \font\secit=pncbi at 14pt
194 \font\secsl=pcrbo at 13pt
195 \font\sectt=pcrb at 13pt
196 \font\secsf=slcrst at 13pt
197 \font\secbf=pncb at 14pt
199 \font\ssecrm=pncr at 13pt
200 \font\ssecit=pncri at 13pt
201 \font\ssecsl=pcrro at 12pt
202 \font\ssectt=pcrr at 12pt
203 \font\ssecsf=slcrst at 12pt
204 \font\ssecbf=pncb at 13pt
206 \font\titlerm=pncb at 21pt
207 \font\titlett=pcrr at 20pt
208 \font\authorrm=pncr scaled \magstep2
210 \font\truesecrm=pncr at 12pt
212 % Fonts for short table of contents
213 \font\shortcontrm=pncr at 12pt
214 \font\shortcontbf=pncb at 12pt
215 \font\shortcontsl=pncri at 12pt
217 % \smartitalic{ARG} outputs arg in italics, followed by an italic correction
218 % unless the following character is such as not to need one.
219 \def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi}
220 \def\smartitalic#1{{\it #1}\futurelet\next\smartitalicx}
221 % \smartitalic is used for @emph; FSF keeps trying to make it match
222 % @var.
224 % \smartslant{ARG} outputs arg in a slanted font, followed by an
225 % italic correction unless the following character is such as not to need one.
226 \def\smartslantx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi}
227 \def\smartslant#1{{\sl #1}\futurelet\next\smartslantx}
229 \let\i=\smartitalic
230 \let\var=\smartslant
231 \let\dfn=\smartitalic
232 \let\emph=\smartitalic
233 \let\cite=\smartitalic
235 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
236 % @altref, if called explicitly (inside @iftex), switches the @ref
237 % printed output so it lacks the square brackets used by default.
238 % While we're at it, we use double quotes instead of square brackets
239 % (or no decorator at all, depending on state of @altref toggle).
240 % Unfortunately this requires reproducing the entire damn xrefX
241 % definition. WARNING: may need to track texinfo.tex changes to xrefX...
242 \newif\ifbra\bratrue
243 \def\altref{\ifbra\brafalse\else\bratrue\fi}% Toggle.
244 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Begin duplicate xrefX:
245 \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup%
246 \def\printedmanual{\ignorespaces #5}%
247 \def\printednodename{\ignorespaces #3}%
249 \setbox1=\hbox{\printedmanual}%
250 \setbox0=\hbox{\printednodename}%
251 \ifdim \wd0=0pt%
252 \def\printednodename{\ignorespaces #1}%
253 %%% Uncommment the following line to make the actual chapter or section title
254 %%% appear inside the square brackets.
255 %\def\printednodename{#1-title}%
256 \fi%
259 % If we use \unhbox0 and \unhbox1 to print the node names, TeX does
260 % not insert empty discretionaries after hyphens, which means that it
261 % will not find a line break at a hyphen in a node names. Since some
262 % manuals are best written with fairly long node names, containing
263 % hyphens, this is a loss. Therefore, we simply give the text of
264 % the node name again, so it is as if TeX is seeing it for the first
265 % time.
266 \ifdim \wd1>0pt
267 section ``\printednodename'' in \cite{\printedmanual}%
268 \else%
269 \turnoffactive%
270 %%%%%%%%%%%%%%%Here's the change for @altref:
271 \ifbra
272 \refx{#1-snt}{} ``\printednodename,'' page\tie\refx{#1-pg}{}%
273 \else
274 \refx{#1-snt}{} \printednodename, page\tie\refx{#1-pg}{}%
276 %%%%%%%%%%%%%%%end change for @altref
278 \endgroup}
279 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:End duplicate xrefX
280 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
281 % \widen: let examples (or whatever) fall into margins. Symmetric. Cancel
282 % ``@widen{N}'' with ``@widen{-N}''.
283 \newdimen\extra\extra=0pt % for ``widen''
284 \global\def\widen#1{\advance\extra by #1%
285 \advance\leftskip by -#1\advance\rightskip by -#1}
287 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
288 % ONLY INTENDED CHANGES from FSF smallbook: tolerance and page centering
289 % Use @smallbook to reset parameters for 7x9.5 format (or else 7x9.25)
290 \def\smallbook{
292 % These values for secheadingskip and subsecheadingskip are
293 % experiments. RJC 7 Aug 1992
294 \global\secheadingskip = 17pt plus 6pt minus 3pt
295 \global\subsecheadingskip = 14pt plus 6pt minus 3pt
297 \global\lispnarrowing = 0.3in
298 \setleading{12pt}
299 \advance\topskip by -1cm
300 \global\parskip 3pt plus 1pt
301 \global\hsize = 5in
302 \advance\normaloffset by .75in % half of difference from 6.5in default hsize
303 \global\vsize=7.5in
304 \advance\voffset by .7in % half of difference from 8.9in default vsize
305 \global\tolerance=1400
306 \global\hfuzz=1pt
307 \global\contentsrightmargin=0pt
309 \global\pagewidth=\hsize
310 \global\pageheight=\vsize
312 \global\let\smalllisp=\smalllispx
313 \global\let\smallexample=\smalllispx
314 \global\def\Esmallexample{\Esmalllisp}
315 }\textfonts
317 \globaldefs=0 % this is NOT redundant; the \endgroup done by@end tex
318 % would restore the value, but before doing that would
319 % screw up if globaldefs=1 were allowed to remain here.
320 @end tex
322 @smallbook
323 @c some manuals (notably as) contain stuff that only looks good in
324 @c smallbook; this switch controls its appearance, by local convention
325 @set SMALL