The bits LaTeX package

basic bits (Frankenstein’s guts)

              Matt Swift <swift@alum.mit.edu>

Version: 1.1 Date: 1999/03/01

Documentation revision: 1999/03/01

Abstract

Bits provides a programmer’s interface for a new idea called a bit, which is like an environment but has a title, author, and other attributes usually only associated with the document environment.

This package is useful but may have problems and is unsupported.

Contents

I Discussion 2

II Implementation 3

1 Version control 3

2 Preliminaries 3 2.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Option processing . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 Making new copy and bit styles 4 3.1 General stuff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.2 Schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.2.1 The Z scheme . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2.2 The P scheme . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2.3 The R scheme . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2.4 The T scheme . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4 The standard copystyle and generic bitstyle 9 5 Bit Styles 9

5.1 Story . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.2 Poem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.3 Prose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

6 Copy Styles 9 7 Bit counters and interbit skips 10 8 Userinfos 11 9 Dates 12 10 Ends 13 11 Version control 14 12 Addresses 14

III Configuration 16

Part I

Discussion

Unfortunately I have not had time to write good documentation for this package. You’re left with the code and some comments I have there. It’s not particularly easy stuff, it ought to have some good overview documentation, but exactly because it’s not easy, I haven’t had time. …

Part II

Implementation

1 Version control

\fileinfo \DoXUsepackagE \HaveECitationS \fileversion \filedate \docdate \PPOptArg These definitions must be the first ones in the file.
 1 \def\fileinfo{basic bits (Frankenstein's guts)}
 2 \def\DoXPackageS {}
 3 \def\fileversion{v1.1}
 4 \def\filedate{1999/03/01}
 5 \def\docdate{1999/03/01}
 6 \edef\PPOptArg {%
 7 \filedate\space \fileversion\space \fileinfo
 8 }

If we’re loading this file from a \ProcessDTXFile command (see the compsci package), then \JusTLoaDInformatioN will be defined; othewise we assume it is not (that’s why the FunkY NamE).

If we’re loading from \ProcessDTXFile, we want to load the packages listed in \DoXPackageS (needed to typeset the documentation for this file) and then bail out. Otherwise, we’re using this file in a normal way as a package, so do nothing. \DoXPackageS, if there are any, are declared in the dtx file, and, if you’re reading the typeset documentation of this package, would appear just above. (It’s OK to call \usepackage with an empty argument or \relax, by the way.)

 9 \makeatletter% A special comment to help create bst files.  Don't change!
10 \@ifundefined{JusTLoaDInformatioN} {%
11 }{% ELSE (we know the compsci package is already loaded, too)
12 \UndefineCS\JusTLoaDInformatioN
13 \SaveDoXVarS
14 \eExpand\csname DoXPackageS\endcsname\In {%use \csname in case it's undefined
15  \usepackage{#1}%
16 }%
17 \RestoreDoXVarS
18 \makeatother
19 \endinput
20 }% A special comment to help create bst files.  Don't change!

Now we check for L^{A}TEX2e and declare the LaTeX package.

21 \NeedsTeXFormat{LaTeX2e}
22 \ProvidesPackage{bits}[\PPOptArg]

2 Preliminaries

2.1 Requirements

23 \RequirePackage{blkcntrl,moredefs,relsize}

2.2 Option processing

24 \DeclareOption{poetica} {%
25 \RequirePackage{poetica}
26 \newcommand\FullTitlePoetica {%
27  \begin{Poetica}
28  \fontshape{t}\selectfont
29  \BitTitle\\%
30  \ifx\BitSubtitle\ShortEmpty \else
31  \BitSubtitle\\%
32  \fi
33  \end{Poetica}

34 }

35 \AtBeginDocument {%
36  \let\FullTitle\FullTitlePoetica

37 } 38 }

39

40 % FIX: hmm, I think I always want user options so that I can have two different
41 % packages require a package, and they don't have to match up on their options.
42 % What about options that can only be used in preamble, that would be the right
43 % thing for many cases I think.  Aak, \ends can't be defined without special
44 % handling?  Hmm, seems like it can...
45 % \DeclareBooleanOptions{ends}{noends}
46 \DeclareBooleanUserOptions{ends}{noends}

47

48 \DeclareBooleanOptions{titlepage}{notitlepage}
49 \DeclareBooleanUserOptions{signed}{anonymous}
50 \ExecuteOptions{ends,notitlepage,signed}
51 \ProcessOptions

3 Making new copy and bit styles

3.1 General stuff

\bt@a \bt@b \bt@c \bt@d \bt@e Notice these are local.
52 \ReserveCS\bt@a
53 \ReserveCS\bt@b
54 \ReserveCS\bt@c
55 \ReserveCS\bt@d
56 \ReserveCS\bt@e
\if@bt@trymoreschemes@ \@bt@trymoreschemes@true \@bt@trymoreschemes@false \sc@scheme@components \sc@listcar \sc@listcdr \sc@bitstyle@list \sc@copystyle@list Comma-separated lists of valid bitstyles, copystyles, and scheme-components. We

start them off non-null because we have to bootstrap the system of adding new ones.

57 \newcommand\sc@scheme@components {%
58 environment,end@bit,begin@bit,interbits,firstbit%
59 ,settitle,setfirsttitle%

60 }

61 \newcommand\sc@bitstyle@list {%

62 generic%

63 }

64 \newcommand\sc@copystyle@list {%
65 standard%

66 }

67 \provideboolean{@bt@trymoreschemes@}

68

69 \NewName{sc@listcar}{#1,#2\@nil} {%
70 #1%

71 }

72 \NewName{sc@listcdr}{#1,#2\@nil} {%
73 #2%

74 }

\NewCopystyle \NewBitstyle \sc@assign@scheme@component Each component of the new style is set to the corresopnding component of the first scheme in the scheme-list for which defines such a component. To be safe, every scheme-list should end with Z.

FIXME: I should append ,Z automatically to every scheme-list and check for an empty scheme-list.

75 \newcommand\NewCopystyle [2][Z] {% args: [scheme-list] new-copystyle
76 \addto@macro\sc@copystyle@list{,#2}%
77 \@for\bt@a:=\sc@bitstyle@list \do {%
78  \@for\bt@b:=\sc@scheme@components \do {%
79  \eExpand\bt@b\In {%
80  \expandafter\sc@assign@schemecomponent
81  \expandafter{\bt@a}{#2}{##1}{#1}%
82  }%
83  }%
84 }%

85 }

86 \newcommand\NewBitstyle [2][Z] {% args: [scheme-list] new-bitstyle
87 \addto@macro\sc@bitstyle@list{,#2}%
88 \@for\bt@a:=\sc@copystyle@list \do {%
89  \@for\bt@b:=\sc@scheme@components \do {%
90  \eExpand\bt@a\In {%
91  \eExpand\bt@b\In {%
92 %        \eExpandNest\bt@b\In {%  FIX?
93  \sc@assign@schemecomponent{#2}{##1}{####1}{#1}%
94  }%
95  }%
96  }%
97 }%

98 }

99 \newcommand\sc@assign@schemecomponent [4] {% args: bitstyle copystyle
100  %       scheme-component scheme-list
101 \@bt@trymoreschemes@true
102 \edef\bt@d{#4}% scheme-list that diminishes; edef not necessary
103 \@whilesw\if@bt@trymoreschemes@\fi {%

There’s at least one element to start; and the last scheme (Z) is always defined.

104  \edef\bt@c{%
105  \sc@listcar\bt@d,\@nil

106 }

107  \@ifundefined{sc@make@#3@\bt@c} {%
108  \edef\bt@d{\sc@listcdr\bt@d,\@nil}%
109  }{% ELSE
110  \@nameuse{sc@make@#3@\bt@c}{#1}{#2}%
111  \@bt@trymoreschemes@false

112 }% 113 }% 114 }

\PromulgateComponentAcrossCopystyles
\PromulgateComponentAcrossBitstyles
115 \newcommand\PromulgateComponentAcrossCopystyles [3] {% args: scheme-component
116  % scheme bitstyle
117 \@for\bt@a:=\sc@copystyle@list \do {%
118  \@nameuse{sc@make@#1@#2}{#3}{\bt@a}%

119 }% 120 }

121 \newcommand\PromulgateComponentAcrossBitstyles [3] {% args: scheme-component
122  % scheme copystyle
123 \@for\bt@a:=\sc@bitstyle@list \do {%
124  \@nameuse{sc@make@#1@#2}{\bt@a}{#3}%

125 }% 126 }

\sc@begin@bit@common \BitStyle \PreBitAll  \sc@begin@bit@common should be called early in the sequence of beginning a bit.
127 \newcommand\sc@begin@bit@common [2] {%
128 \title{#1}%

Execute stuff: FIXME: nice hooks can be set here to execute things later

129 #2%
130 \refstepcounter{bit}%
131 \ifnum\value{bit} = \@ne
132  \@nameuse{sc@firstbit@\CopyStyle}%
133 \else
134  \@nameuse{sc@interbits@\CopyStyle}%
135 \fi

136 }

137 \ReserveCS\BitStyle
138 \ReserveCS\PreBitAll

3.2 Schemes

3.2.1 The Z scheme

\FullTitle The Z scheme is always the last resort deafult, and it corresponds to the standard

copystyle and the generic bitstyle.

FIXME: whenever we have a dummy we have to use DefName or else we error FIXME: Aak, when Promulgating we need defnames for everyting!

139 \newcommand\sc@make@environment@Z [2] {% args: bitstyle dummy
140 \DefName{end#1}{}{}%
141 \DefName{#1}{##1##2} {%
142  \DefName{end#1}{} {%
143  \@nameuse{sc@end@bit@#1@\CopyStyle}{##1}%

144 }%

145  \@nameuse{sc@begin@bit@#1@\CopyStyle}{##1}{##2}%

146 }% 147 }

148 \newcommand\sc@make@interbits@Z [2] {% args: dummy copystyle
149 \DefName{sc@interbits@#2}{} {%
150  \@nameuse{sc@settitle@\BitStyle @#2}%

151 }% 152 }

153 \newcommand\sc@make@firstbit@Z [2] {% args: dummy copystyle
154 \DefName{sc@firstbit@#2}{} {%
155  \@nameuse{sc@setfirsttitle@\BitStyle @#2}%

156 }% 157 }

158 \newcommand\sc@make@begin@bit@Z [2] {% args: bitstyle copystyle
159 \DefName{PreBit#1}{}{}%
160 \DefName{sc@begin@bit@#1@#2}{##1##2} {%
161  \def\BitStyle{#1}%
162  \sc@begin@bit@common{##1}{##2}%
163  \PreBitAll
164  \@nameuse{PreBit#1}%

165 }% 166 }

167 \newcommand\sc@make@end@bit@Z [2] {% args: bitstyle copystyle
168 \DefName{sc@end@bit@#1@#2}{##1} {%
169  \TheEnd

170 }% 171 }

172 \newcommand\sc@make@settitle@Z [2] {% args: bitstyle copystyle
173 \DefName{sc@settitle@#1@#2}{} {%
174  \relax\begin{center}\FullTitle\end{center}%
175  \typeout{FIXME:  need vc footer}%

176 }% 177 }

178 \newcommand\sc@make@setfirsttitle@Z [2] {% args: bitstyle copystyle
179 \DefName{sc@setfirsttitle@#1@#2}{} {%
180  \relax\begin{center}\FullTitle\end{center}%
181  \typeout{FIXME:  need vc footer}%
182  \typeout{FIXME first centered title}%

183 }% 184 }

185 \newcommand\FullTitle {%
186 \relsize{2}%
187 \bfseries
188 \BitTitle \\%

189 \ifx\BitSubtitle\ShortEmpty
190 \else
191  \csname sbseries\endcsname  % this way it's harmless if undefined
192  \relsize{-1}\BitSubtitle\\%
193 \fi

194 }

3.2.2 The P scheme

\sc@make@setfirsttitle@P \sc@make@settitle@P \sc@make@end@bit@P \sc@make@begin@bit@P The P scheme was created for the poem bitstyle.
195 \newcommand\sc@make@begin@bit@P [2] {% args: bitstyle copystyle
196 \DefName{sc@begin@bit@#1@#2}{##1##2} {%
197  \def\BitStyle{#1}%
198  \sc@begin@bit@common{##1}{##2}%
199  \PreBitAll
200  \relax\begin{verse}%                 \relax for emacs
201  \@nameuse{PreBit#1}%

202 }% 203 }

204 \newcommand\sc@make@end@bit@P [2]  {% args: bitstyle copystyle
205 \DefName{sc@end@bit@#1@#2}{##1} {%
206  \relax\end{verse}%
207  \TheEnd

208 }% 209 }

210 \newcommand\sc@make@settitle@P [2]  {% args: bitstyle copystyle
211 \DefName{sc@settitle@#1@#2}{} {%
212  \relax\begin{verse}\FullTitle\end{verse}%
213  \typeout{FIXME:  need vc footer}%

214 }% 215 }

216 \newcommand\sc@make@setfirsttitle@P [2]  {% args: bitstyle copystyle
217 \DefName{sc@setfirsttitle@#1@#2}{} {%
218  \relax\thispagestyle{empty}\begin{verse}\FullTitle\end{verse}%
219  \typeout{FIXME:  need vc footer}%
220  \typeout{FIXME first verse title}%

221 }% 222 }

3.2.3 The R scheme

For the prose bitstyle.

223 \newcommand\sc@make@settitle@R [2] {%
224 \DefName{sc@settitle@#1@#2}{} {%
225  \ifx\BitTitle\ShortEmpty\else
226  \noindent
227  \begingroup
228  \larger
229  \bfseries

230  \BitTitle
231  \endgroup
232  \smallskip
233  \fi

234 }% 235 }

3.2.4 The T scheme

for what?

4 The standard copystyle and generic bitstyle

236 \@for\bt@e:=\sc@scheme@components \do {%
237 \PromulgateComponentAcrossBitstyles{\bt@e}{Z}{standard}

238 }

5 Bit Styles

5.1 Story

This is the same as generic.

239 \NewBitstyle{story}

5.2 Poem

240 \NewBitstyle{poem}
241 \PromulgateComponentAcrossCopystyles{begin@bit}{P}{poem}
242 \PromulgateComponentAcrossCopystyles{end@bit}{P}{poem}
243 \PromulgateComponentAcrossCopystyles{settitle}{P}{poem}
244 \PromulgateComponentAcrossCopystyles{setfirsttitle}{P}{poem}

5.3 Prose

245 \NewBitstyle{prose}
246 \PromulgateComponentAcrossCopystyles{settitle}{R}{prose}

6 Copy Styles

247 \NewCopystyle{titlepage}

248

249 \newcommand\sc@make@setfirsttitle@T [2] {% args: bitstyle copystyle
250 \DefName{sc@setfirsttitle@#1@#2}{} {%
251  \thispagestyle{empty}%
252  \vspace*{\fill}%
253  \begin{center}
254  {\relsize{5}\BitTitle \\}%
255  \ifx\BitSubtitle\ShortEmpty\else
256  {\relsize{3}\BitSubtitle \\}%

257  \fi
258  \end{center}
259  \vfill
260 %      \CoverNotes
261 %      \vfill
262  \par
263  \begingroup
264  \sffamily
265  \hfill
266  \begin{tabular}{r@{\hspace{\@ne em}}r}
267  Copy of:&\todayabbrev   \\%
268  Version of:&\Lastchange \\%
269  Date:&\Date             \\%
270  \end{tabular}
271  \par\bigskip\bigskip
272  \begin{raggedleft}
273  \def\and{\\}%
274  \larger\scshape\Author

A final \par is needed to close the paragraph in raggedleft mode.

275  \par
276  \end{raggedleft}
277  \endgroup
278  \newpage
279  \setcounter{page}{\@ne}%

280 }% 281 }

282 \PromulgateComponentAcrossBitstyles{setfirsttitle}{T}{titlepage}

7 Bit counters and interbit skips

\c@bit
\c@bitbit
\c@bitbitbit

283 \providecounter{bit}
284 \providecounter{bitbit}[bit]
285 \providecounter{bitbitbit}[bitbit]
\sc@bitskip \InterBitBreak \InterBitBitBreak \InterBitBitBitBreak  \medbreak is penalty -100; \smallbreak is 50. FIXME: what’s going on here?
286 \newcommand\sc@bitskip[1] {%
287 \par
288 \ifdim \lastskip < \bigskipamount
289  \removelastskip
290  \penalty -500%
291  #1%
292 \fi

293 }

294 \newcommand\InterBitBreak {%
295 \sc@bitskip
296 \bigskip

297 }

298 \newcommand\InterBitBitBreak {%

299 \sc@bitskip
300 \medskip

301 }

302 \newcommand\InterBitBitBitBreak {%
303 \sc@bitskip
304 \smallskip

305 }

\bitbit \bitbitbit \sc@bitbit \sc@bitbitbit FIXME: These should be made attributes of the Generic Bit Style.

306 \newcommand\bitbit {%
307 \@ifstar {%
308  \sc@bitbit{}%
309  }{% ELSE
310  \refstepcounter{bitbit}%
311  \sc@bitbit{\thebitbit\ }%

312 }% 313 }

314 \newcommand{\sc@bitbit} [2] {%
315 \ifnum\value{bitbit}=\@ne \else
316  \InterBitBitBreak
317 \fi
318 \noindent #1{\relsize{-1}\bfseries #2}%
319 \par\nobreak
320 \smallskip

321 }

322 \newcommand\bitbitbit {%
323 \@ifstar {%
324  \sc@bitbitbit{}%
325  }{% ELSE
326  \refstepcounter{bitbitbit}%
327  \sc@bitbitbit{\thebitbitbit\ }%

328 }% 329 }

330 \newcommand\sc@bitbitbit [2] {%
331 \ifnum\value{bitbitbit}=\@ne \else
332  \InterBitBitBitBreak
333 \fi
334 \noindent #1{\relsize{-1}\bfseries #2}%
335 \par\nobreak
336 \smallskip

337 }

8 Userinfos

\Author \author \Lastchange \lastchange \Date \date \title \BitTitle \BitSubtitle When we redefine \author, \date, and \title, we add a new action to the original

meaning. This means that standard commands like \maketitle will still perform as expected, if someone prefers to use that instead of the Frankenstein commands.

338 \newlet\sc@saved@author\author

339 \newlet\sc@saved@date\date

340

341 \ReserveCS\Author
342 \defcommand\author [1] {%
343 \sc@saved@author{#1}%
344 \def\Author{#1}%

345 }

346 \newcommand*\Date {%
347 \todayabbrev

348 }

349 \defcommand\date [1] {%
350 \sc@saved@date{#1}%
351 \def\Date{#1}%

352 }

353 \newlet\sc@saved@title\title
354 \ReserveCS\BitTitle

355

356 \defcommand\title [1] {%
357 \sc@saved@title{#1}%
358 \def\BitTitle{#1}%

359 }

360 \NewUserInfo*[\Subtitle]\BitSubtitle
361 \newlet\subtitle\Subtitle
362 \NewUserInfo*\Lastchange
363 \lastchange{\todayabbrev}
\Copystyle \copystyle
364 \NewUserInfo*\CopyStyle
365 \copystyle{standard}

9 Dates

\today
\todayabbrev
366 \def\today {%
367 \number\day\space\ifcase\month\or
368  January\or February\or
369  March\or April\or May\or June\or July\or August\or September\or
370  October\or November\or December\fi\space\number\year

371 }

372 \newcommand\todayabbrev {%
373 \number\day\space\ifcase\month\or
374  Jan\or Feb\or
375  Mar\or Apr\or May\or Jun\or Jul\or Aug\or Sep\or
376  Oct\or Nov\or Dec\fi\space\number\year

377 }

\copywrite This adds a copyright message to the beginning of \Notes. Its single argument should be a year.

378 \newcommand\copywrite [1] {%
379 \edef\Notes {%
380  \copyright#1 All rights reserved. \Notes

381 }% 382 }

10 Ends

\EndSign It’s very hard to attach this thing without allowing a page break before it. FIX.

383 \newcommand\EndSign {%
384 \par\nobreak
385 \vspace{2\bigskipamount}%  multiplication turns glue into dimen.
386 \hfill

We do this so that \Author can have \\s in it.

387 \begingroup
388  \scshape
389  \let\and\@tabularcr
390  \begin{tabular}{c}
391  \Author \\%
392  \relsize{-1}\itshape\Date
393  \end{tabular}%
394 \endgroup

395 }

\theend User command which (almost) always makes an \EndSign:

396 \newcommand\theend {%
397 \if@signed@
398  \EndSign
399 \fi

400 }

\TheEnd The end of a bit calls \TheEnd. The default definition is either nothing or \EndSign, depending on some condition.

401 \newcommand\TheEnd {%
402 \def\sc@t@c {%
403  prizes%

404 }%

405 \let\sc@t@a\EndSign
406 \ifx\CopyStyle\sc@t@c
407  \InitCS*\sc@t@a
408 \else
409  \if@signed@
410  \if@ends@
411 % FIX: when you get the footer going...
412 %        \ifnum\value{page} < 2%
413 %          \InitCS*\sc@t@a
414 %        \fi
415  \else

416  \InitCS*\sc@t@a
417  \fi
418  \else
419  \InitCS*\sc@t@a
420  \fi
421 \fi
422 \sc@t@a

423 }

11 Version control

We use macros instead of boxes, because at this point some of the macros in the boxes may change their meaning.

Algorithm: We will maintain two \hboxes to \textwidth each time \MakeCover is called. Set the footboxes to \v@idbox here. Whenever \MakeCover is called, it should stack another \vbox with the right information in it into both boxes. The information is expanded, and thus the macro contents can change between calls to \MakeCover, but the box being built inserts two different \vboxes with their value at the moment.

\sc@vcbox
\VersionControlString
\VersionControlAuthorString

424 \newcommand\sc@vcbox {%
425 \footnotesize
426 \ifx\Lastchange\ShortEmpty\else
427  {\bfseries Version:} {\slshape \Lastchange}%
428 \fi
429 \hspace{\@ne em}%
430 {\bfseries Copy:} {\slshape \todayabbrev}%

431 }

432 \newcommand\VersionControlString {%
433 \hfill \sc@vcbox \hfill

434 }

I should assign some names to the various meanings of and, like protect.

435 \newcommand\VersionControlAuthorString {%
436 \sc@vcbox \hfill {\scshape\def\and{\unskip, \ignorespaces}\Author}%

437 }

12 Addresses

\AddressOne
\AddressTwo
\PhoneNumber
\EmailAddress
\Country
\addressone
\addresstwo
\phonenumber
\emailaddress
\country

438 \NewUserInfo*\AddressOne
439 \NewUserInfo\AddressTwo  % this can have an extra line if necessary.
440 \NewUserInfo*\PhoneNumber
441 \NewUserInfo*\EmailAddress
442 \NewUserInfo*\Country

15

\whitespace
443 \requirecommand\whitespace {%
444 \bigbreak

445 }

Part III

Configuration

We leave the rest to a configuration file.

1 \InputIfFileExists{bits.cfg}{}{}

The contents of the distributed configuration file are below.

2 \def\fileinfo{Bits package configuration}
3 \def\fileversion{v1}
4 \def\filedate{1996/01/24}
5 \def\docdate{1996/01/24}
6 \ProvidesFile{bits.cfg}
7 \InputIfFileExists{monster.cfg}{}{}

Index

Numbers written in italic refer to the page where the corresponding entry is described, the ones underlined to the code line of the definition, the rest to the code lines where the entry is used.

Symbols

\@bt@trymoreschemes@false

. . . . . . . . \underline{57}, 111

\@bt@trymoreschemes@true

. . . . . . . . \underline{57}, 101 \@for . . . . . . . 77, 78,

88, 89, 117, 123, 236 \@ifstar . . . . . 307, 323

\@ifundefined . . 10, 107
\@nameuse . . . . 110,

118, 124, 132, 134, 143, 145, 150, 155, 164, 201

\@ne . . . . . . 131, 266,

279, 315, 331, 429 \@nil … 69, 72, 105, 108

\@tabularcr . . . . . . . 389

\@whilesw . . . . . . . . 103 \\ . . . . . 29, 31, 188,

192, 254, 256, 267–269, 273, 391

\␣ . . . . . . . . . . 311, 327

A

\AddressOne . . . . . . . \underline{438}
\addressone . . . . . . . \underline{438}
\AddressTwo . . . . . . . \underline{438}
\addresstwo . . . . . . . \underline{438}
\addto@macro . . . . 76, 87

\and . . . . . . 273, 389, 436

\AtBeginDocument . . 35

\Author 274, \underline{338}, 391, 436 \author . . . . . . . . . . \underline{338}

B

\begin . 27, 174, 180, 200, 212, 218, 253, 266, 272, 390

\begingroup 227, 263, 387
\bfseries . 187, 229,

318, 334, 427, 430 \bigbreak . . . . . . . . 444 \bigskip . . . . . 271, 296

\bigskipamount 288, 385

\bitbit . . . . . . . . . . \underline{306}

\bitbitbit . . . . . . . \underline{306}
\BitStyle . . . . \underline{127},

150, 155, 161, 197

\BitSubtitle . . . . . .

… 30, 31, 189, 192, 255, 256, \underline{338}

\BitTitle . . 29, 188,

225, 230, 254, \underline{338} \bt@a \underline{52}, 77, 81, 88, 90,

117, 118, 123, 124 \bt@b \underline{52}, 78, 79, 89, 91, 92 \bt@c . . \underline{52}, 104, 107, 110 \bt@d . . \underline{52}, 102, 105, 108 \bt@e . . . . . \underline{52}, 236, 237

C

\c@bit . . . . . . . . . . . \underline{283} \c@bitbit . . . . . . . . \underline{283}

\c@bitbitbit . . . . . . \underline{283}
\copyright . . . . . . . 380
\CopyStyle 132, 134,

143, 145, 364, 406

\Copystyle . . . . . . . \underline{364}
\copystyle . . . . . . . \underline{364}
\copywrite . . . . . . . \underline{378}

\Country . . . . . . . . . \underline{438} \country . . . . . . . . . \underline{438}

\CoverNotes . . . . . . . 260

\csname . . . . . . . 14, 191

D

\Date . . . . . 269, \underline{338}, 392 \date . . . . . . . . . . . . \underline{338} \day . . . . . . . . . 367, 373

\DeclareBooleanOptions

. . . . . . . . . 45, 48

\DeclareBooleanUserOptions

. . . . . . . . . 46, 49

\DeclareOption . . . . 24

\def . . 1–5, 161, 197, 273, 344, 351, 358, 366, 402, 436

                          \defcommand 342, 349, 356

\DefName . . 140–142, 149, 154, 159, 160, 168, 173, 179, 196, 205, 211, 217, 224, 250

\do . . . . . . . . 77, 78,

88, 89, 117, 123, 236 \docdate . . . . . . . . \underline{1}, 5

                          \DoXPackageS . . . . . . . 2
                          \DoXUsepackagE . . . . . \underline{1}

E \edef 6, 102, 104, 108, 379 \eExpand . 14, 79, 90, 91

                          \eExpandNest . . . . . . 92

\else 30, 133, 190, 225, 255, 315, 331, 408, 415, 418, 426

                          \EmailAddress . . . . . \underline{438}
                          \emailaddress . . . . . \underline{438}

\end … 33, 174, 180, 206, 212, 218, 258, 270, 276, 393

                          \endcsname . . . . 14, 191

\endgroup . 231, 277, 394 \endinput . . . . . . . . 19 \ends . . . . . . . . . . . . 43 \EndSign . . \underline{383}, 398, 405

                          \ExecuteOptions . . . 50
                          \expandafter . . . . 80, 81

F \fi 32, 103, 135, 193,

233, 257, 292, 317, 333, 370, 376, 399, 414, 417, 420, 421, 428

\filedate . . . . . . . \underline{1}, 4

\fileinfo . . . . . . . \underline{1}, 2

                          \fileversion . . . . . \underline{1}, 3

\fill . . . . . . . . . . . . 252

\fontshape . . . . . . . 28
\footnotesize . . . . . 425
\FullTitle . . . . . . .

. 36, \underline{139}, 212, 218

\FullTitlePoetica 26, 36

H

\HaveECitationS . . . . \underline{1}

\hfill 265, 386, 433, 436 \hspace . . . . . . 266, 429

I

\if@bt@trymoreschemes@

. . . . . . . . \underline{57}, 103 \if@ends@ . . . . . . . . 410

\if@signed@ . . . 397, 409

\ifcase . . . . . . 367, 373 \ifdim . . . . . . . . . . . 288 \ifnum 131, 315, 331, 412 \ifx . . . . . . . 30, 189,

225, 255, 406, 426

\ignorespaces . . . . . 436

\In . . . . . . 14, 79, 90–92 \InitCS 407, 413, 416, 419

\InputIfFileExists 1, 7
\InterBitBitBitBreak

. . . . . . . . \underline{286}, 332

\InterBitBitBreak .

. . . . . . . . \underline{286}, 316

\InterBitBreak . . . . \underline{286}

\itshape . . . . . . . . . 392

J

\JusTLoaDInformatioN 12

L

\larger . . . . . . 228, 274

\Lastchange . . . . . . .

. 268, \underline{338}, 426, 427

\lastchange . . . . . . . \underline{338}

\lastskip . . . . . . . . 288 \let . . . . . . 36, 389, 405

M

\makeatletter . . . . . . 9
\makeatother . . . . . . 18

\medskip . . . . . . . . . 300 \month . . . . . . . 367, 373

N

                          \NeedsTeXFormat . . . 21
                          \NewBitstyle . . . . . .

. \underline{75}, 239, 240, 245

                          \newcommand 26, 57, 61,

64, 75, 86, 99, 115, 121, 127, 139, 148, 153, 158, 167, 172, 178, 185, 195, 204, 210, 216, 223, 249, 286, 294, 298, 302, 306, 314, 322, 330, 346, 372, 378, 383, 396, 401, 424, 432, 435

                          \NewCopystyle . . \underline{75}, 247

\newlet 338, 339, 353, 361 \NewName . . . . . . . 69, 72 \newpage . . . . . . . . . 278

                          \NewUserInfo . . 360,

362, 364, 438–442 \nobreak . . 319, 335, 384 \noindent . 226, 318, 334 \Notes . . . . . . . 379, 380 \number 367, 370, 373, 376

O \or . . 367–370, 373–376

P \par . . 262, 271, 275,

287, 319, 335, 384 \penalty . . . . . . . . . 290

                          \PhoneNumber . . . . . . \underline{438}
                          \phonenumber . . . . . . \underline{438}

\PPOptArg . . . . . . . \underline{1}, 22 \PreBitAll \underline{127}, 163, 199

                          \ProcessOptions . . . 51
                          \PromulgateComponentAcrossBitstyles

…. \underline{115}, 237, 282

                          \PromulgateComponentAcrossCopystyles

. \underline{115}, 241–244, 246

                          \provideboolean . . . 67
                          \providecounter 283–285
                          \ProvidesFile . . . . . . 6
                          \ProvidesPackage . . 22

R

                                                   \refstepcounter . . .

…. 130, 310, 326 \relax …. 174, 180,

200, 206, 212, 218 \relsize 186, 192, 254,

256, 318, 334, 392

                                                   \removelastskip . . . 289
                                                   \requirecommand . . . 443
                                                   \RequirePackage . 23, 25
                                                   \ReserveCS . . 52–56,

137, 138, 341, 354

                                                   \RestoreDoXVarS . . . 17

S

                                                   \SaveDoXVarS . . . . . . 13
                                                   \sc@assign@scheme@component

. . . . . . . . . . . . \underline{75}

                                                   \sc@assign@schemecomponent

. . . . . . . 80, 93, 99

                                                   \sc@begin@bit@common

…. \underline{127}, 162, 198

                                                   \sc@bitbit . . . . . . . \underline{306}
                                                   \sc@bitbitbit . . . . . \underline{306}
                                                   \sc@bitskip . . . . . . . \underline{286}
                                                   \sc@bitstyle@list .

… \underline{57}, 77, 87, 123

                                                   \sc@copystyle@list .

… \underline{57}, 76, 88, 117

                                                   \sc@listcar . . . . \underline{57}, 105
                                                   \sc@listcdr . . . . \underline{57}, 108
                                                   \sc@make@begin@bit@P

. . . . . . . . . . . \underline{195}

                                                   \sc@make@begin@bit@Z

. . . . . . . . . . . 158

                                                   \sc@make@end@bit@P . \underline{195}
                                                   \sc@make@end@bit@Z . 167
                                                   \sc@make@environment@Z

. . . . . . . . . . . 139

                                                   \sc@make@firstbit@Z 153
                                                   \sc@make@interbits@Z

. . . . . . . . . . . 148

                                                   \sc@make@setfirsttitle@P

. . . . . . . . . . . \underline{195}

                                                   \sc@make@setfirsttitle@T

. . . . . . . . . . . 249

                                                   \sc@make@setfirsttitle@Z

. . . . . . . . . . . 178

                                                   \sc@make@settitle@P  \underline{195}
                                                   \sc@make@settitle@R 223

\sc@make@settitle@Z 172
\sc@saved@author . .

. . . . . . . . 338, 343

\sc@saved@date 339, 350
\sc@saved@title 353, 357
\sc@scheme@components

… \underline{57}, 78, 89, 236 \sc@t@a … 405, 407,

413, 416, 419, 422 \sc@t@c . . . . . . 402, 406 \sc@vcbox . . . . . . . . \underline{424} \scshape . . 274, 388, 436

\selectfont . . . . . . . 28
\setcounter . . . . . . . 279

\sffamily . . . . . . . . 264

\ShortEmpty . . . . 30,

189, 225, 255, 426 \slshape . . . . . 427, 430

                          \smallskip . . . . . . .

. 232, 304, 320, 336 \space . . . . . . . . . 7,

367, 370, 373, 376 \Subtitle …. 360, 361 \subtitle . . . . . . . . 361

T

                          \thebitbit . . . . . . . 311
                          \thebitbitbit . . . . . 327

\TheEnd … 169, 207, \underline{401} \theend . . . . . . . . . . \underline{396}

                          \thispagestyle 218, 251

\title . . . . . . . 128, \underline{338} \today . . . . . . . . . . . \underline{366}

                          \todayabbrev . . 267,

347, 363, \underline{366}, 430 \typeout . . 175, 181,

182, 213, 219, 220

U

                                                   \UndefineCS . . . . . . . 12

\unskip . . . . . . . . . . 436

                                                   \usepackage . . . . . . . 15

V \value 131, 315, 331, 412

                                                   \VersionControlAuthorString

. . . . . . . . . . . \underline{424}

                                                   \VersionControlString

. . . . . . . . . . . \underline{424}

\vfill . . . . . . . 259, 261 \vspace . . . . . . 252, 385

W

                                                   \whitespace . . . . . . . \underline{443}

Y \year . . . . . . . . 370, 376