Statistiques
| Révision :

root / CSL16 / draft / virginialake.sty @ 223

Historique | Voir | Annoter | Télécharger (95,44 ko)

1
% VirginiaLake LaTeX macros by Alessio Guglielmi
2
%
3
% Many thanks to Ross Moore (Macquarie University) for suggestions leading 
4
% to \vlupdate
5

    
6
\NeedsTeXFormat{LaTeX2e}%
7
\ProvidesPackage{virginialake}[2015/08/30 v3.0]
8
\newif\ifvirginialakeusesxy
9
        \virginialakeusesxytrue
10
\DeclareOption{noxy}{\virginialakeusesxyfalse}%
11
\newif\ifvirginialakegoodsyntax
12
        \virginialakegoodsyntaxfalse
13
\DeclareOption{goodsyntax}{\virginialakegoodsyntaxtrue}%
14
\newif\ifvirginialakelutzsyntax
15
        \virginialakelutzsyntaxfalse
16
\DeclareOption{lutzsyntax}{\virginialakelutzsyntaxtrue}%
17
\ProcessOptions
18
\@ifclassloaded{beamer}%
19
               {\RequirePackage{etex}}%
20
               {}%
21
\let\circledS\undefined\RequirePackage{amssymb}%
22
\RequirePackage{stmaryrd}%
23
\RequirePackage{ifthen}%
24
\RequirePackage{ifpdf}%
25
\RequirePackage{etoolbox}%
26
\newif\ifvirginialakepdflatex\ifpdf\virginialakepdflatextrue\else
27
                                   \virginialakepdflatexfalse\fi
28
\@ifpackageloaded{fp-basic}%
29
                 {\relax}%
30
                 {\RequirePackage{fp-basic}\FPmessagesfalse}%
31
\@ifpackageloaded{xcolor}%
32
                 {\relax}%
33
                 {\RequirePackage[usenames]{xcolor}}%
34
\ifvirginialakeusesxy
35
    \ifvirginialakepdflatex
36
       \RequirePackage[line,arrow,curve,frame,color,crayon,pdf]{xy}%
37
       \newxycolor{afbackground}{0 0 0 0.12 cmyk}%
38
       \makeatletter\renewcommand\xywarning@[1]{\relax}\catcode`@=11
39
       \W@{}%
40
       \W@{VirginiaLake Warning: Xy-pic warnings are suppressed in PDF mode.}%
41
       \W@{}%
42
    \else
43
       \RequirePackage[line,arrow,curve,frame,color,crayon,ps,dvips]{xy}%
44
       \newxycolor@{afbackground}{0 0 0 0.12}{cmyk}{}{}%
45
   \fi
46
\fi
47
\newif\ifetex
48
\AtBeginDocument{\@ifpackageloaded{etex}{\etextrue}{\etexfalse}}%
49

    
50
%----------------------------------------------------------------------- IFMTARG
51
% Code from ifmtarg.sty, reproduced below with permission - A.G.
52
%
53
% ifmtarg.sty
54
%
55
% Provides an if-then-else command for an empty macro argument
56
% (empty = zero or more spaces only)
57
% Use as \@ifmtarg{arg1}{Code for arg1 empty}{Code for arg1 not empty}%
58
%
59
% author: Peter Wilson (CUA)
60
%         (now at peter.r.wilson@boeing.com)
61
% Copyright Peter Wilson, 1996
62
% Copyright Peter Wilson and Donald Arseneau, 2000
63
% Released under the LaTeX Project Public License
64
%
65
%% Commands by Donald Arseneau
66
\begingroup
67
\catcode`\Q=3
68
\long\gdef\@ifmtarg#1{\@xifmtarg#1QQ\@secondoftwo\@firstoftwo\@nil}%
69
\long\gdef\@xifmtarg#1#2Q#3#4#5\@nil{#4}%
70
\long\gdef\@ifnotmtarg#1{\@xifmtarg#1QQ\@firstofone\@gobble\@nil}%
71
\endgroup
72
%---------------------------------------------------------------- END OF IFMTARG
73

    
74
%------------------------------------------------------------ MACROS FOR SYMBOLS
75

    
76
  \newcommand\one{{\mathsf 1}}%
77
  \newcommand\zer{{\mathsf 0}}%
78
  \newcommand\fff{{\mathsf f}}%
79
  \newcommand\ttt{{\mathsf t}}%
80
  \newcommand\sw {{\mathsf s}}%
81
  \newcommand\me {{\mathsf m}}%
82
  \newcommand\iD {{\mathsf i}{\downarrow}}%
83
  \newcommand\iU {{\mathsf i}{  \uparrow}}%
84
  \newcommand\cD {{\mathsf c}{\downarrow}}%
85
  \newcommand\cU {{\mathsf c}{  \uparrow}}%
86
  \newcommand\wD {{\mathsf w}{\downarrow}}%
87
  \newcommand\wU {{\mathsf w}{  \uparrow}}%
88
  \newcommand\qD {{\mathsf q}{\downarrow}}%
89
  \newcommand\qU {{\mathsf q}{  \uparrow}}%
90
  \newcommand\BV {{\mathsf {BV}}}%
91
  \newcommand\SBV{{\mathsf{SBV}}}%
92
  \newcommand\KS {{\mathsf {KS}}}%
93
  \newcommand\SKS{{\mathsf{SKS}}}%
94

    
95
%---------------------------------------------------------------- END OF SYMBOLS
96

    
97
%------------------------------------------------ MACROS FOR FORMULAE/STRUCTURES
98

    
99
\newif\ifvlsmallops\vlsmallopsfalse
100

    
101
\newcommand\vlbin[1]{\ifvlsmallops\mathchoice
102
      {\mathbin{\raise.2ex \hbox{$\scriptstyle      #1$}}}%
103
      {\mathbin{\raise.2ex \hbox{$\scriptstyle      #1$}}}%
104
      {\mathbin{\raise.12ex\hbox{$\scriptscriptstyle#1$}}}%
105
      {\mathbin{           \hbox{$\scriptscriptstyle#1$}}}\else\mathbin{#1}\fi}%
106

    
107
\newif\ifvllinear\vllinearfalse
108

    
109
\newcommand{\vlor}{\ifvllinear\vlbin\varoplus\else\vlbin\vee\fi}%
110

    
111
\newcommand{\vlan}{\ifvllinear\vlbin\binampersand\else\vlbin\wedge\fi}%
112

    
113
\newcommand{\vlpa}{\vlbin\bindnasrepma}%
114

    
115
\newcommand{\vlte}{\vlbin\varotimes}%
116

    
117
\newcommand{\vlse}{\vlbin\triangleleft}%
118

    
119
\newcommand{\vlim}{\vlbin\to}%
120

    
121
\newcommand{\vlli}{\vlbin\multimap}%
122

    
123
\newcommand{\vlmi}{\vlbin\leftarrow}%
124

    
125
\newcommand{\vldi}{\vlbin\leftrightarrow}%
126

    
127
\newcommand{\vlne}{\vlbin\neg}%
128

    
129
\newcommand{\vljm}{\vlbin\supset}%
130

    
131
\newcommand{\vlmj}{\vlbin\subset}%
132

    
133
\newcommand{\vlgoodsyntax}{%
134
   \def\vlleftparbracket   {\ifvirginialakesmallbrackets[\else
135
                                       \mathopen{}\left [\fi}%
136
   \def\vlrightparbracket  {\ifvirginialakesmallbrackets]\else
137
                                                  \right]\mathclose{}\fi}%
138
   \let\vlleftparbracketex \vlleftparbracket
139
   \let\vlrightparbracketex\vlrightparbracket
140
   \let\vlleftparbracketcn \vlleftparbracket
141
   \let\vlrightparbracketcn\vlrightparbracket
142
   \def\vlleftcopbracket   {\ifvirginialakesmallbrackets(\else
143
                                       \mathopen{}\left (\fi}%
144
   \def\vlrightcopbracket  {\ifvirginialakesmallbrackets)\else
145
                                                  \right)\mathclose{}\fi}%
146
   \let\vlleftcopbracketex \vlleftcopbracket
147
   \let\vlrightcopbracketex\vlrightcopbracket
148
   \let\vlleftcopbracketcn \vlleftcopbracket
149
   \let\vlrightcopbracketcn\vlrightcopbracket
150
   \def\vlleftseqbracket   {\ifvirginialakesmallbrackets\langle\else
151
                                        \mathopen{}\left\langle\fi}%
152
   \def\vlrightseqbracket  {\ifvirginialakesmallbrackets\rangle\else
153
                                                  \right\rangle\mathclose{}\fi}%
154
   \let\vlleftseqbracketex \vlleftseqbracket
155
   \let\vlrightseqbracketex\vlrightseqbracket
156
   \let\vlleftseqbracketcn \vlleftseqbracket
157
   \let\vlrightseqbracketcn\vlrightseqbracket
158
   \def\vldsaaux{\ifx\vlxspacetmp\vldsa\vlx\vlx\vlx\togglexspacefalse\else
159
                  \iftogglexspace\vlx\else\togglexspacetrue\fi\fi}%
160
   \def\vldsa{\futurelet\vlxspacetmp\vldsaaux}%
161
   \def\vlcsaaux{\ifx\vlxspacetmp\vlcsa\vlx\vlx\vlx\togglexspacefalse\else
162
                  \iftogglexspace\vlx\else\togglexspacetrue\fi\fi}%
163
   \def\vlcsa{\futurelet\vlxspacetmp\vlcsaaux}%
164
   \def\vldsmaux{\ifx\vlxspacetmp\vldsm\vlx\vlx\vlx\togglexspacefalse\else
165
                  \iftogglexspace\vlx\else\togglexspacetrue\fi\fi}%
166
   \def\vldsm{\futurelet\vlxspacetmp\vldsmaux}%
167
   \def\vlcsmaux{\ifx\vlxspacetmp\vlcsm\vlx\vlx\vlx\togglexspacefalse\else
168
                  \iftogglexspace\vlx\else\togglexspacetrue\fi\fi}%
169
   \def\vlcsm{\futurelet\vlxspacetmp\vlcsmaux}%
170
   \def\vlnsmaux{\ifx\vlxspacetmp\vlnsm\vlx\vlx\vlx\togglexspacefalse\else
171
                  \iftogglexspace\vlx\else\togglexspacetrue\fi\fi}%
172
   \def\vlnsm{\futurelet\vlxspacetmp\vlnsmaux}%
173
   \let\vldots=\dots}%
174

    
175
\newcommand{\vlx}{\;}%
176

    
177
\newif\iftogglexspace\togglexspacetrue
178

    
179
\newcommand{\vlsetoperators}{%
180
   \def\vldsaaux{\ifx\vlxspacetmp\vldsa\vlx\vlor\vlx\togglexspacefalse\else
181
                  \iftogglexspace\vlor\else\togglexspacetrue\fi\fi}%
182
   \def\vldsa{\futurelet\vlxspacetmp\vldsaaux}%
183
   \def\vlcsaaux{\ifx\vlxspacetmp\vlcsa\vlx\vlan\vlx\togglexspacefalse\else
184
                  \iftogglexspace\vlan\else\togglexspacetrue\fi\fi}%
185
   \def\vlcsa{\futurelet\vlxspacetmp\vlcsaaux}%
186
   \def\vldsmaux{\ifx\vlxspacetmp\vldsm\vlx\vlpa\vlx\togglexspacefalse\else
187
                  \iftogglexspace\vlpa\else\togglexspacetrue\fi\fi}%
188
   \def\vldsm{\futurelet\vlxspacetmp\vldsmaux}%
189
   \def\vlcsmaux{\ifx\vlxspacetmp\vlcsm\vlx\vlte\vlx\togglexspacefalse\else
190
                  \iftogglexspace\vlte\else\togglexspacetrue\fi\fi}%
191
   \def\vlcsm{\futurelet\vlxspacetmp\vlcsmaux}%
192
   \def\vlnsmaux{\ifx\vlxspacetmp\vlnsm\vlx\vlse\vlx\togglexspacefalse\else
193
                  \iftogglexspace\vlse\else\togglexspacetrue\fi\fi}%
194
   \def\vlnsm{\futurelet\vlxspacetmp\vlnsmaux}%
195
   \let\vldots=\cdots}%
196

    
197
\newcommand{\vllutzsyntax}{%
198
   \def\vlleftparbracket   {\ifvirginialakesmallbrackets[\else
199
                                       \mathopen{}\left [\fi}%
200
   \def\vlrightparbracket  {\ifvirginialakesmallbrackets]\else
201
                                                  \right]\mathclose{}\fi}%
202
   \let\vlleftparbracketex \relax
203
   \let\vlrightparbracketex\relax
204
   \let\vlleftparbracketcn \{
205
   \let\vlrightparbracketcn\}%
206
   \def\vlleftcopbracket   {\ifvirginialakesmallbrackets(\else
207
                                       \mathopen{}\left (\fi}%
208
   \def\vlrightcopbracket  {\ifvirginialakesmallbrackets)\else
209
                                                  \right)\mathclose{}\fi}%
210
   \let\vlleftcopbracketex \relax
211
   \let\vlrightcopbracketex\relax
212
   \let\vlleftcopbracketcn \{
213
   \let\vlrightcopbracketcn\}%
214
   \def\vlleftseqbracket   {\ifvirginialakesmallbrackets\langle\else
215
                                        \mathopen{}\left\langle\fi}%
216
   \def\vlrightseqbracket  {\ifvirginialakesmallbrackets\rangle\else
217
                                                  \right\rangle\mathclose{}\fi}%
218
   \let\vlleftseqbracketex \relax
219
   \let\vlrightseqbracketex\relax
220
   \let\vlleftseqbracketcn \{
221
   \let\vlrightseqbracketcn\}%
222
   \vlsetoperators
223
   \vlsmallopstrue}%
224

    
225
\newcommand{\vlnogoodsyntax}{%
226
   \def\vlleftparbracket   {\ifvirginialakesmallbrackets(\else
227
                                       \mathopen{}\left (\fi}%
228
   \def\vlrightparbracket  {\ifvirginialakesmallbrackets)\else
229
                                                  \right)\mathclose{}\fi}%
230
   \let\vlleftparbracketex \relax
231
   \let\vlrightparbracketex\relax
232
   \let\vlleftparbracketcn \{
233
   \let\vlrightparbracketcn\}%
234
   \let\vlleftcopbracket   \vlleftparbracket
235
   \let\vlrightcopbracket  \vlrightparbracket
236
   \let\vlleftcopbracketex \relax
237
   \let\vlrightcopbracketex\relax
238
   \let\vlleftcopbracketcn \{
239
   \let\vlrightcopbracketcn\}%
240
   \let\vlleftseqbracket   \vlleftparbracket
241
   \let\vlrightseqbracket  \vlrightparbracket
242
   \let\vlleftseqbracketex \relax
243
   \let\vlrightseqbracketex\relax
244
   \let\vlleftseqbracketcn \{
245
   \let\vlrightseqbracketcn\}%
246
   \vlsetoperators}%
247

    
248
\ifvirginialakegoodsyntax
249
   \vlgoodsyntax
250
\else
251
   \ifvirginialakelutzsyntax
252
      \vllutzsyntax
253
   \else
254
      \vlnogoodsyntax
255
   \fi
256
\fi
257

    
258
\newif\ifvirginialakesmallbrackets\virginialakesmallbracketsfalse
259

    
260
\newcommand{\vlsmallbrackets}{\virginialakesmallbracketstrue}%
261

    
262
\newcommand{\vlnosmallbrackets}{\virginialakesmallbracketsfalse}%
263

    
264
\newcommand{\vlprepstructuresaux}{\catcode`.=\active
265
                                  \catcode`;=\active
266
                                  \catcode`[=\active
267
                                  \catcode`]=\active
268
                                  \catcode`(=\active
269
                                  \catcode`)=\active
270
                                  \catcode`<=\active
271
                                  \catcode`>=\active
272
                                  \catcode`-=\active}%
273

    
274
\newcommand{\lt}{<}%
275
\newcommand{\gt}{>}%
276

    
277
\let\vldot  .
278
\let\vlscol ;
279
\let\vlsqbrl[
280
\let\vlsqbrr]
281
\let\vlrobrl(
282
\let\vlrobrr)
283
\let\vlanbrl<
284
\let\vlanbrr>
285
\let\vlminus-
286

    
287
\newif\ifvirginialakestructuressyntax\virginialakestructuressyntaxtrue
288

    
289
\newcommand{\vlnostructuressyntax}{\virginialakestructuressyntaxfalse}%
290

    
291
\newcommand{\vlgobble}[1]{}%
292

    
293
{%--------------------------------------
294
\vlprepstructuresaux
295

    
296
\gdef\vlnos{\let.\vldot
297
            \let;\vlscol
298
            \let[\vlsqbrl
299
            \let]\vlsqbrr
300
            \let(\vlrobrl
301
            \let)\vlrobrr
302
            \let<\vlanbrl
303
            \let>\vlanbrr
304
            \let-\vlminus}%
305

    
306
\gdef\vlprepstructures{\ifvirginialakestructuressyntax
307
                          \vlprepstructuresaux\vlnos\fi}%
308

    
309
\gdef\vlparopen  {\vlleftparbracket  \bgroup\catcode`.=\active\let.\vldsa
310
                                            \catcode`;=\active\let;\vldsm
311
                                            \catcode`]=\active\let]\vlparclose}%
312

    
313
\gdef\vlparopenex{\vlleftparbracketex\bgroup\catcode`.=\active\let.\vldsa
314
                                            \catcode`;=\active\let;\vldsm\vlsbr
315
                                          \catcode`]=\active\let]\vlparcloseex}%
316

    
317
\gdef\vlparopencn{\vlleftparbracketcn\bgroup\catcode`.=\active\let.\vldsa
318
                                            \catcode`;=\active\let;\vldsm\vlsbr
319
                                          \catcode`]=\active\let]\vlparclosecn}%
320

    
321
\gdef\vlcopopen  {\vlleftcopbracket  \bgroup\catcode`.=\active\let.\vlcsa
322
                                            \catcode`;=\active\let;\vlcsm
323
                                            \catcode`)=\active\let)\vlcopclose}%
324

    
325
\gdef\vlcopopenex{\vlleftcopbracketex\bgroup\catcode`.=\active\let.\vlcsa
326
                                            \catcode`;=\active\let;\vlcsm\vlsbr
327
                                          \catcode`)=\active\let)\vlcopcloseex}%
328

    
329
\gdef\vlcopopencn{\vlleftcopbracketcn\bgroup\catcode`.=\active\let.\vlcsa
330
                                            \catcode`;=\active\let;\vlcsm\vlsbr
331
                                          \catcode`)=\active\let)\vlcopclosecn}%
332

    
333
\gdef\vlseqopen  {\vlleftseqbracket  \bgroup\catcode`;=\active\let;\vlnsm
334
                                            \catcode`>=\active\let>\vlseqclose}%
335

    
336
\gdef\vlseqopenex{\vlleftseqbracketex\bgroup\catcode`;=\active\let;\vlnsm\vlsbr
337
                                          \catcode`>=\active\let>\vlseqcloseex}%
338

    
339
\gdef\vlseqopencn{\vlleftseqbracketcn\bgroup\catcode`;=\active\let;\vlnsm\vlsbr
340
                                          \catcode`>=\active\let>\vlseqclosecn}%
341

    
342
\gdef\vls  {\catcode`[=\active\let[\vlparopenex
343
            \catcode`(=\active\let(\vlcopopenex
344
            \catcode`<=\active\let<\vlseqopenex
345
            \catcode`-=\active\let-\bar
346
            \odframefirstfalse
347
            \odbackgroundfirstfalse}%
348

    
349
\gdef\vlsbr{\catcode`[=\active\let[\vlparopen
350
            \catcode`(=\active\let(\vlcopopen
351
            \catcode`<=\active\let<\vlseqopen
352
            \catcode`-=\active\let-\bar
353
            \odframefirstfalse
354
            \odbackgroundfirstfalse}%
355

    
356
\gdef\vlscn{\catcode`[=\active\let[\vlparopencn
357
            \catcode`(=\active\let(\vlcopopencn
358
            \catcode`<=\active\let<\vlseqopencn
359
            \catcode`-=\active\let-\bar
360
            \odframefirstfalse
361
            \odbackgroundfirstfalse}%
362

    
363
\gdef\vlupdate #1{
364
   \expandafter\let\csname\expandafter\vlgobble\string #1vltemp\endcsname #1
365
   \def #1{\bgroup\vlprepstructures
366
     \csname\expandafter\vlgobble\string #1vlaux\endcsname}%
367
   \expandafter\def\csname\expandafter\vlgobble\string #1vlaux\endcsname ##1{%
368
      \csname\expandafter\vlgobble\string #1vltemp\endcsname{##1}\egroup}}%
369
}%--------------------------------------
370

    
371
\newcommand{\vlparclose  }{\egroup\vlrightparbracket  }%
372

    
373
\newcommand{\vlparcloseex}{\egroup\vlrightparbracketex}%
374

    
375
\newcommand{\vlparclosecn}{\egroup\vlrightparbracketcn}%
376

    
377
\newcommand{\vlcopclose  }{\egroup\vlrightcopbracket  }%
378

    
379
\newcommand{\vlcopcloseex}{\egroup\vlrightcopbracketex}%
380

    
381
\newcommand{\vlcopclosecn}{\egroup\vlrightcopbracketcn}%
382

    
383
\newcommand{\vlseqclose  }{\egroup\vlrightseqbracket  }%
384

    
385
\newcommand{\vlseqcloseex}{\egroup\vlrightseqbracketex}%
386

    
387
\newcommand{\vlseqclosecn}{\egroup\vlrightseqbracketcn}%
388

    
389
\newcommand{\vlhole}{\{\kern.3em\}}%
390

    
391
\newcommand{\vlstore}{\bgroup\vlprepstructures\afterassignment\egroup
392
                      \global\def\vlread}%
393

    
394
%----------------------------------------- END OF MACROS FOR FORMULAE/STRUCTURES
395

    
396
%-------------------------------------------------------- MACROS FOR DERIVATIONS
397
%
398
%                                                   +-------+--------+-------+
399
%                                                   |  dcl  |  dcc   |  dcr  |
400
%                                                   +-------+--------+-------+
401
%                                                       +---+        +---+
402
%                                                       | l |--------| m |
403
%                                                       +---+        +---+
404
%                                                             +----+
405
%                                                             | dc |
406
%                                                             +----+
407
%                                                   <---dl--->      <---dr--->
408
%
409

    
410
\newdimen\dercldim                                % dcl
411
\newdimen\derccdim                                % dcc
412
\newdimen\dercrdim                                % dcr
413
\newdimen\derdim                                  % d
414
\newdimen\derdldim                                % ddl
415
\newdimen\derdrdim                                % ddr
416
\newbox\derboxtwo                                 % b2
417
\newbox\derboxthree                               % b3
418
\newbox\derboxfour                                % b4
419
\newdimen\derquad
420
\newdimen\deropen
421
\newbox\stembox
422

    
423
\newcount\vlsavederboxonec
424
%\newcount\vlsavederdimc
425
\newcount\vldummycount
426

    
427
% THE FOLLOWING IS VERY DANGEROUS: WE ARE CREATING A 'VIRTUAL MEMORY MANAGER'
428
% FOR \derboxone, \derldim, \dercdim AND \derrdim, IN PARTICULAR BY USING
429
% \count11 AND \count14. ETEX MIGHT INTERFERE WITH THIS STUFF. START FROM 
430
% HERE IF YOU SEE SOMETHING ODD SUCH AS DUPLICATION OR MISPLACEMENT OF BOXES IN 
431
% DERIVATIONS
432

    
433
\newcommand{\vlderivationinitaux}{%
434
   \newbox\derboxone                              % b1
435
   \setbox\derboxone=\hbox{}%
436
   \vlsavederboxonec=\derboxone
437
%   \vlsavederdimc=\count11\advance\vlsavederdimc by1%
438
   \newdimen\derldim                              % dl
439
   \newdimen\dercdim                              % dc
440
   \newdimen\derrdim}%                            % dr
441

    
442
\newcommand{\vlderivationinit}{\bgroup
443
   \vlprepstructures\vlderivationinitaux}%
444

    
445
\newcommand{\vlderivationterm}{\egroup
446
   \global\chardef\derboxone=\vlsavederboxonec
447
   \ifetex
448
      \ifnum\count264>256
449
         \global\advance\count264 by-1
450
      \else
451
         \global\advance\count14 by-1
452
      \fi
453
   \else\global\advance\count14 by-1
454
   \fi
455
   \ifetex
456
      \ifnum\count261>258
457
         \global\advance\count261 by-3
458
      \else
459
         \ifnum\count261>257
460
            \global\advance\count261 by-2
461
            \global\advance\count11  by-1
462
         \else
463
            \ifnum\count261>256
464
               \global\advance\count261 by-1
465
               \global\advance\count11  by-2
466
            \else
467
               \global\advance\count11 by-3
468
            \fi
469
         \fi
470
      \fi
471
   \else\global\advance\count11 by-3
472
   \fi
473
%   \global\dimendef\derldim=\vlsavederdimc
474
%   \global\advance\vlsavederdimc by1%
475
%   \global\dimendef\dercdim=\vlsavederdimc
476
%   \global\advance\vlsavederdimc by1%
477
%   \global\dimendef\derrdim=\vlsavederdimc
478
%   \global\advance\vlsavederdimc by-2
479
   }%
480

    
481
\newcommand{\vlderivationaux}[1]{#1\vcenter{\box\derboxone}\vlderivationterm}%
482

    
483
\newcommand{\vlderivation}{\vlderivationinit\vlderivationaux}%
484

    
485
\newcommand{\vlhyaux}[1]{\global\setbox\derboxone=\hbox{#1}%
486
   \global\derldim=0pt%                           % dl=0
487
   \global\dercdim=\wd\derboxone                  % dc=wd(b1)
488
   \global\derrdim=0pt%                           % dr=0
489
   }%
490

    
491
\newbox\vlhybox
492
\newcommand{\vlhy}[1]{\global\setbox\vlhybox=\hbox{\strut$#1$}%
493
   \vlhyaux{\box\vlhybox}}%
494

    
495
\newcommand{\vlstemaux}{\dercldim=\derldim
496
                        \derccdim=\dercdim
497
                        \dercrdim=\derrdim}%
498

    
499
\newcommand{\vldaux}[6]{\setbox\derboxtwo=\hbox{\unhbox\derboxone}%
500
                                                  % b2=b1
501
   \setbox\derboxthree=\hbox{$#1$}%               % b3; l=wd(b3)
502
   \setbox\derboxfour =\hbox{$#2$}%               % b4; m=wd(b4)
503
   #3                                             % dl=0, dc=wd(b1), dr=0
504
   \derdim=\dercdim\advance\derdim by-\derccdim\divide\derdim by2%
505
                                                  % d=(dc-dcc)/2
506
   \global\derldim=\dercldim\global\advance\derldim by-\derdim
507
                                                  % dl=dcl-d
508
   \global\derrdim=\dercrdim\global\advance\derrdim by-\derdim
509
                                                  % dr=dcr-d
510
   \deropen=\fontdimen5\textfont2\divide\deropen by3%
511
   \setbox\derboxone=\hbox{\vbox{\offinterlineskip
512
         \hbox{\ifdim\derldim<0pt\kern-\derldim\fi
513
               \box\derboxtwo
514
               \ifdim\derrdim<0pt\kern-\derrdim\fi}%
515
         #4%
516
         \hbox{\ifdim\dercldim>\derldim
517
                  \ifdim\derldim>0pt\kern\derldim\fi
518
                  \else\kern\dercldim\fi
519
               \hbox to0pt{\hss\copy\derboxthree}%
520
               \vbox{\ifdim\derccdim>\dercdim\hsize=\derccdim
521
                                        \else\hsize=\dercdim \fi
522
                    #5}%
523
               \hbox to0pt{\copy\derboxfour\hss}%
524
               \ifdim\dercrdim>\derrdim
525
                  \ifdim\derrdim>0pt\kern\derrdim\fi
526
                  \else\kern\dercrdim\fi}%
527
         #6%
528
         \hbox{\ifdim\derldim>0pt\kern\derldim\fi
529
               \box\derboxone
530
               \ifdim\derrdim>0pt\kern\derrdim\fi}}}%
531
   \ifdim\derldim<0pt\global\derldim=0pt\fi       % dl=max(dl,0)
532
   \ifdim\derrdim<0pt\global\derrdim=0pt\fi       % dr=max(dr,0)
533
   \derdldim=\wd\derboxthree\advance\derdldim by-\dercldim
534
                                                  % ddl=l-dcl
535
   \derdrdim=\wd\derboxfour \advance\derdrdim by-\dercrdim
536
                                                  % ddr=m-dcr
537
   \ifdim\derdim<0pt%
538
      \ifdim\derdldim<0pt%
539
         \derdldim=0pt%                           % d<0, ddl<0 -> ddl=0
540
      \fi
541
      \ifdim\derdrdim<0pt%
542
         \derdrdim=0pt%                           % d<0, ddr<0 -> ddr=0
543
      \fi
544
   \else
545
      \ifdim\derldim>0pt%
546
         \ifdim\derdldim>-\derdim
547
            \advance\derdldim by\derdim           % d>=0, dl>0, ddl+d>0 -> 
548
         \else                                    %                    ddl=ddl+d
549
            \derdldim=0pt%                        % d>=0, dl>0, ddl+d<=0 ->
550
         \fi                                      %                        ddl=0
551
      \else
552
         \advance\derdldim by\dercldim            % d>=0, dl=0 -> ddl=ddl+dcl
553
      \fi
554
      \ifdim\derrdim>0pt%
555
         \ifdim\derdrdim>-\derdim
556
            \advance\derdrdim by\derdim           % d>=0, dr>0, ddr+d>0 -> 
557
         \else                                    %                    ddr=ddr+d
558
            \derdrdim=0pt%                        % d>=0, dr>0, ddr+d<=0 ->
559
         \fi                                      %                        ddr=0
560
      \else
561
         \advance\derdrdim by\dercrdim            % d>=0, dr=0 -> ddr=ddr+dcr
562
      \fi
563
   \fi
564
   \global\setbox\derboxone=\hbox
565
      {\kern\derdldim\unhbox\derboxone\kern\derdrdim}%
566
   \global\advance\derldim by\derdldim            % dl=dl+ddl
567
   \global\advance\derrdim by\derdrdim            % dr=dr+ddr
568
   }%
569

    
570
\newcommand{\vlstemraux }[4]{{#4}\vlstemaux\vldaux
571
   {\scriptstyle #1}%
572
   {\scriptstyle #2}%
573
   {\vlhyaux{#3}}%
574
   {\kern-\deropen\kern-\ht\strutbox\kern-\dp\strutbox}%
575
   {\hbox{$\vcenter{\vbox{\offinterlineskip
576
                    \hbox{$\copy\stembox$}}}$}}%
577
   {\kern-\deropen}}%
578

    
579
\newcommand{\vlstemrraux}[4]{{#4}\vlstemaux\vldaux
580
   {\scriptstyle #1}%
581
   {\scriptstyle #2}%
582
   {\vlhy{#3}}%
583
   {\kern\deropen}%
584
   {\hbox{\hfil}}%
585
   {\kern\deropen}}%
586

    
587
\newif\ifvlsmallleftlabels\vlsmallleftlabelstrue
588

    
589
\newcommand{\vlnosmallleftlabels}{\vlsmallleftlabelsfalse}%
590

    
591
\newcommand{\vlsmallleftlabels}{\vlsmallleftlabelstrue}%
592

    
593
\newcommand{\vlleftlabel }[1]{\@ifnotmtarg{#1}{\ifvlsmallleftlabels
594
                               \scriptstyle\fi #1\;}\relax}%
595

    
596
\newcommand{\vlrightlabel}[1]{\@ifnotmtarg{#1}{\;#1}\relax}%
597

    
598
\newdimen\vlstemheight\vlstemheight=8pt%
599

    
600
\newcommand{\vlvruler}{\hbox{\vrule width .6pt height \vlstemheightc sp
601
                             \kern1.2pt
602
                             \vrule width .6pt height \vlstemheightc sp}}%
603

    
604
\newcount\vlstemheightc
605

    
606
\newcommand{\vldf}[5]{\vldummycount=\vlstemheight
607
                      \FPmul\vlstemheightc{\the\vldummycount}{#5}%
608
   \setbox\stembox=\vbox to \vlstemheightc sp{\vlvruler}%
609
   \vlstemrraux{                }{                 }{#3              }  {%
610
   \vlstemraux {\vlleftlabel{#1}}{\vlrightlabel{#2}}{\kern\wd\stembox} {%
611
   \vlstemrraux{                }{                 }{\kern\wd\stembox}{%
612
   #4                                                                 }}}}%
613

    
614
\newcommand{\vlde}[4]{\vldf{#1}{#2}{#3}{#4}1}%
615

    
616
\newcommand{\vldd}[4]{\vldf{#1}{#2}{#3}{#4}2}%
617

    
618
\newcommand{\vlpf}[4]{\vldf{#1}{#2}{#3}%
619
   {\vlhyaux{\vbox to0pt{\vss\kern3pt\hrule width4.2pt\vss}}}{#4}}%
620

    
621
\newcommand{\vlpr}[3]{\vlpf{#1}{#2}{#3}1}%
622

    
623
\newcommand{\vlpd}[3]{\vlpf{#1}{#2}{#3}2}%
624

    
625
\newcommand{\vlproofaux}[4]{\vlderivationaux{\vlpf{#2}{#3}{#4}{#1}}}%
626

    
627
\newcommand{\vlproof }{\vlderivationinit\vlproofaux1}%
628

    
629
\newcommand{\vlproofd}{\vlderivationinit\vlproofaux2}%
630

    
631
\newcommand{\vlderaux}[5]{\vlderivationaux{\vldf{#2}{#3}{#4}{\vlhy{#5}}{#1}}}%
632

    
633
\newcommand{\vlder }{\vlderivationinit\vlderaux1}%
634

    
635
\newcommand{\vlderd}{\vlderivationinit\vlderaux2}%
636

    
637
\newcommand{\vlhruler}{\vfill\hbox to\hsize{\hrulefill}\vfill}%
638

    
639
\newcommand{\vlhhruler}{\vfill
640
                        \hbox to\hsize{\hrulefill}%
641
                        \kern1pt
642
                        \hbox to\hsize{\hrulefill}%
643
                        \vfill}%
644

    
645
\newcommand{\vlhdotter}{\vfill
646
   \hbox to\hsize{\cleaders\vbox to0pt{\vss
647
       \hbox{\kern-.35pt$.$\kern-.35pt}\vss}\hskip\hsize}\vfill}%
648

    
649
\newcommand{\vldsinaux}[3]{\vldaux
650
   {\smash{\ifvlsmallleftlabels\lower\fontdimen22\scriptfont2%
651
                          \else\lower\fontdimen22\textfont2\fi
652
                                       \hbox{$\vlleftlabel {#1}$}}}%
653
   {\smash{\lower\fontdimen22\textfont2\hbox{$\vlrightlabel{#2}$}}}%
654
   {\vlhy{#3}}%
655
   {\kern\deropen}%
656
   {\vbox to.4pt{\vlhruler}}%
657
   {\kern\deropen}}%
658

    
659
\newcommand{\vldsidaux}[3]{\vldaux
660
   {\smash{\ifvlsmallleftlabels\lower\fontdimen22\scriptfont2%
661
                          \else\lower\fontdimen22\textfont2\fi
662
                                       \hbox{$\vlleftlabel {#1}$}}}%
663
   {\smash{\lower\fontdimen22\textfont2\hbox{$\vlrightlabel{#2}$}}}%
664
   {\vlhy{#3}}%
665
   {\kern\deropen}%
666
   {\vbox to.4pt{\vlhdotter}}%
667
   {\kern\deropen}}%
668

    
669
\newdimen\vldsiqdimenleft
670
\newdimen\vldsiqdimenright
671

    
672
\newcommand{\vldsiqaux}[3]{\ifvlsmallleftlabels
673
                                \vldsiqdimenleft=\fontdimen22\scriptfont2%
674
                           \else\vldsiqdimenleft=\fontdimen22\textfont2\fi
675
                           \advance\vldsiqdimenleft  by-.7pt%
676
                           \vldsiqdimenright=\fontdimen22\textfont2%
677
                           \advance\vldsiqdimenright by-.7pt%
678
   \vldaux
679
   {\smash{\lower\vldsiqdimenleft \hbox{$\vlleftlabel {#1}$}}}%
680
   {\smash{\lower\vldsiqdimenright\hbox{$\vlrightlabel{#2}$}}}%
681
   {\vlhy{#3}}%
682
   {\kern\deropen\kern-.7pt}%
683
   {\vbox to1.8pt{\vlhhruler}}%
684
   {\kern\deropen\kern-.7pt}}%
685

    
686
\newbox\derboxin
687
\newdimen\derboxinwidth
688

    
689
\newcommand{\vliaux}[2]{#2%
690
   \dercldim=\derldim
691
   \derccdim=\dercdim
692
   \dercrdim=\derrdim
693
   \setbox\derboxin=\hbox{$#1$}%
694
   \derboxinwidth=1em\advance\derboxinwidth by-\wd\derboxin
695
   \ifdim\derboxinwidth>0pt\divide\derboxinwidth by2\else\derboxinwidth=0pt\fi}%
696

    
697
\newcommand{\vlin}[4]{\vliaux{#3}{#4}%
698
   \vldsinaux{#1}{#2}{\kern\derboxinwidth\box\derboxin\kern\derboxinwidth}}%
699

    
700
\newcommand{\vlid}[4]{\vliaux{#3}{#4}%
701
   \vldsidaux{#1}{#2}{\kern\derboxinwidth\box\derboxin\kern\derboxinwidth}}%
702

    
703
\newcommand{\vliq}[4]{\vliaux{#3}{#4}%
704
   \vldsiqaux{#1}{#2}{\kern\derboxinwidth\box\derboxin\kern\derboxinwidth}}%
705

    
706
\newcommand{\vliiaux}[2]{\derquad=\fontdimen6\textfont2%
707
   {#1}%
708
           \dercldim  =\derldim
709
           \derccdim  =\dercdim
710
   \setbox\derboxtwo=\hbox{\unhbox\derboxone\kern\derquad}%
711
   \advance\derccdim by\derrdim
712
   \advance\derccdim by\derquad
713
   {#2}%
714
   \setbox\derboxone=\hbox{\unhbox\derboxtwo\unhbox\derboxone}%
715
   \advance\derccdim by\derldim
716
   \advance\derccdim by\dercdim
717
           \dercrdim  =\derrdim}%
718

    
719
\newcommand{\vliin}[5]{\vliiaux{#4}{#5}\vldsinaux{#1}{#2}{#3}}%
720

    
721
\newcommand{\vliid}[5]{\vliiaux{#4}{#5}\vldsidaux{#1}{#2}{#3}}%
722

    
723
\newcommand{\vliiq}[5]{\vliiaux{#4}{#5}\vldsiqaux{#1}{#2}{#3}}%
724

    
725
\newcommand{\vldsauxx}{\setbox\derboxtwo=\hbox
726
   {\unhbox\derboxtwo\unhbox\derboxone\kern\derquad}%
727
   \advance\derccdim by\derldim
728
   \advance\derccdim by\dercdim
729
   \advance\derccdim by\derrdim
730
   \advance\derccdim by\derquad}%
731

    
732
\newcommand{\vldsiiiaux}[3]{\derquad=\fontdimen6\textfont2%
733
   {#1}%
734
           \dercldim  =\derldim
735
           \derccdim  =\dercdim
736
   \setbox\derboxtwo=\hbox{\unhbox\derboxone\kern\derquad}%
737
   \advance\derccdim by\derrdim
738
   \advance\derccdim by\derquad
739
   {#2}\vldsauxx
740
   {#3}%
741
   \setbox\derboxone=\hbox{\unhbox\derboxtwo\unhbox\derboxone}%
742
   \advance\derccdim by\derldim
743
   \advance\derccdim by\dercdim
744
           \dercrdim  =\derrdim}%
745

    
746
\newcommand{\vliiin}[6]{\vldsiiiaux{#4}{#5}{#6}\vldsinaux{#1}{#2}{#3}}%
747

    
748
\newcommand{\vliiid}[6]{\vldsiiiaux{#4}{#5}{#6}\vldsidaux{#1}{#2}{#3}}%
749

    
750
\newcommand{\vliiiq}[6]{\vldsiiiaux{#4}{#5}{#6}\vldsiqaux{#1}{#2}{#3}}%
751

    
752
\newcommand{\vldsiiiiaux}[4]{\derquad=\fontdimen6\textfont2%
753
   {#1}%
754
           \dercldim  =\derldim
755
           \derccdim  =\dercdim
756
   \setbox\derboxtwo=\hbox{\unhbox\derboxone\kern\derquad}%
757
   \advance\derccdim by\derrdim
758
   \advance\derccdim by\derquad
759
   {#2}\vldsauxx
760
   {#3}\vldsauxx
761
   {#4}%
762
   \setbox\derboxone=\hbox{\unhbox\derboxtwo\unhbox\derboxone}%
763
   \advance\derccdim by\derldim
764
   \advance\derccdim by\dercdim
765
           \dercrdim  =\derrdim}%
766

    
767
\newcommand{\vliiiin}[7]{\vldsiiiiaux{#4}{#5}{#6}{#7}\vldsinaux{#1}{#2}{#3}}%
768

    
769
\newcommand{\vliiiid}[7]{\vldsiiiiaux{#4}{#5}{#6}{#7}\vldsidaux{#1}{#2}{#3}}%
770

    
771
\newcommand{\vliiiiq}[7]{\vldsiiiiaux{#4}{#5}{#6}{#7}\vldsiqaux{#1}{#2}{#3}}%
772

    
773
\newcommand{\vldsiiiiiaux}[5]{\derquad=\fontdimen6\textfont2%
774
   {#1}%
775
           \dercldim  =\derldim
776
           \derccdim  =\dercdim
777
   \setbox\derboxtwo=\hbox{\unhbox\derboxone\kern\derquad}%
778
   \advance\derccdim by\derrdim
779
   \advance\derccdim by\derquad
780
   {#2}\vldsauxx
781
   {#3}\vldsauxx
782
   {#4}\vldsauxx
783
   {#5}%
784
   \setbox\derboxone=\hbox{\unhbox\derboxtwo\unhbox\derboxone}%
785
   \advance\derccdim by\derldim
786
   \advance\derccdim by\dercdim
787
           \dercrdim  =\derrdim}%
788

    
789
\newcommand{\vliiiiin}[8]{\vldsiiiiiaux{#4}{#5}{#6}{#7}{#8}%
790
                          \vldsinaux{#1}{#2}{#3}}%
791

    
792
\newcommand{\vliiiiid}[8]{\vldsiiiiiaux{#4}{#5}{#6}{#7}{#8}%
793
                          \vldsidaux{#1}{#2}{#3}}%
794

    
795
\newcommand{\vliiiiiq}[8]{\vldsiiiiiaux{#4}{#5}{#6}{#7}{#8}%
796
                          \vldsiqaux{#1}{#2}{#3}}%
797

    
798
\newcommand{\vldsiiiiiiaux}[6]{\derquad=\fontdimen6\textfont2%
799
   {#1}%
800
           \dercldim  =\derldim
801
           \derccdim  =\dercdim
802
   \setbox\derboxtwo=\hbox{\unhbox\derboxone\kern\derquad}%
803
   \advance\derccdim by\derrdim
804
   \advance\derccdim by\derquad
805
   {#2}\vldsauxx
806
   {#3}\vldsauxx
807
   {#4}\vldsauxx
808
   {#5}\vldsauxx
809
   {#6}%
810
   \setbox\derboxone=\hbox{\unhbox\derboxtwo\unhbox\derboxone}%
811
   \advance\derccdim by\derldim
812
   \advance\derccdim by\dercdim
813
           \dercrdim  =\derrdim}%
814

    
815
\newcommand{\vliiiiiin}[9]{\vldsiiiiiiaux{#4}{#5}{#6}{#7}{#8}{#9}%
816
                           \vldsinaux{#1}{#2}{#3}}%
817

    
818
\newcommand{\vliiiiiid}[9]{\vldsiiiiiiaux{#4}{#5}{#6}{#7}{#8}{#9}%
819
                           \vldsidaux{#1}{#2}{#3}}%
820

    
821
\newcommand{\vliiiiiiq}[9]{\vldsiiiiiiaux{#4}{#5}{#6}{#7}{#8}{#9}%
822
                           \vldsiqaux{#1}{#2}{#3}}%
823

    
824
\newcommand{\vlinfaux     }[4]{\vlderivationaux{\vlin  {#1}{#2}{#3}%
825
                                                                {\vlhy{#4}}}}%
826

    
827
\newcommand{\vliqfaux     }[4]{\vlderivationaux{\vliq  {#1}{#2}{#3}%
828
                                                                {\vlhy{#4}}}}%
829

    
830
\newcommand{\vlindaux     }[4]{\vlderivationaux{\vlid  {#1}{#2}{#3}%
831
                                                                {\vlhy{#4}}}}%
832

    
833
\newcommand{\vliinfaux    }[5]{\vlderivationaux{\vliin {#1}{#2}{#3}%
834
                                                                {\vlhy{#4}}%
835
                                                                {\vlhy{#5}}}}%
836

    
837
\newcommand{\vliidfaux    }[5]{\vlderivationaux{\vliid {#1}{#2}{#3}%
838
                                                                {\vlhy{#4}}%
839
                                                                {\vlhy{#5}}}}%
840

    
841
\newcommand{\vliiqfaux    }[5]{\vlderivationaux{\vliiq {#1}{#2}{#3}%
842
                                                                {\vlhy{#4}}%
843
                                                                {\vlhy{#5}}}}%
844

    
845
\newcommand{\vliiinfaux   }[6]{\vlderivationaux{\vliiin{#1}{#2}{#3}%
846
                                                                {\vlhy{#4}}%
847
                                                                {\vlhy{#5}}%
848
                                                                {\vlhy{#6}}}}%
849

    
850
\newcommand{\vliiidfaux   }[6]{\vlderivationaux{\vliiid{#1}{#2}{#3}%
851
                                                                {\vlhy{#4}}%
852
                                                                {\vlhy{#5}}%
853
                                                                {\vlhy{#6}}}}%
854

    
855
\newcommand{\vliiiqfaux   }[6]{\vlderivationaux{\vliiiq{#1}{#2}{#3}%
856
                                                                {\vlhy{#4}}%
857
                                                                {\vlhy{#5}}%
858
                                                                {\vlhy{#6}}}}%
859

    
860
\newcommand{\vliiiinfaux  }[7]{\vlderivationaux{\vliiiin{#1}{#2}{#3}%
861
                                                                {\vlhy{#4}}%
862
                                                                {\vlhy{#5}}%
863
                                                                {\vlhy{#6}}%
864
                                                                {\vlhy{#7}}}}%
865

    
866
\newcommand{\vliiiidfaux  }[7]{\vlderivationaux{\vliiiid{#1}{#2}{#3}%
867
                                                                {\vlhy{#4}}%
868
                                                                {\vlhy{#5}}%
869
                                                                {\vlhy{#6}}%
870
                                                                {\vlhy{#7}}}}%
871

    
872
\newcommand{\vliiiiqfaux  }[7]{\vlderivationaux{\vliiiiq{#1}{#2}{#3}%
873
                                                                {\vlhy{#4}}%
874
                                                                {\vlhy{#5}}%
875
                                                                {\vlhy{#6}}%
876
                                                                {\vlhy{#7}}}}%
877

    
878
\newcommand{\vliiiiinfaux }[8]{\vlderivationaux{\vliiiiin{#1}{#2}{#3}%
879
                                                                {\vlhy{#4}}%
880
                                                                {\vlhy{#5}}%
881
                                                                {\vlhy{#6}}%
882
                                                                {\vlhy{#7}}%
883
                                                                {\vlhy{#8}}}}%
884

    
885
\newcommand{\vliiiiidfaux }[8]{\vlderivationaux{\vliiiiid{#1}{#2}{#3}%
886
                                                                {\vlhy{#4}}%
887
                                                                {\vlhy{#5}}%
888
                                                                {\vlhy{#6}}%
889
                                                                {\vlhy{#7}}%
890
                                                                {\vlhy{#8}}}}%
891

    
892
\newcommand{\vliiiiiqfaux }[8]{\vlderivationaux{\vliiiiiq{#1}{#2}{#3}%
893
                                                                {\vlhy{#4}}%
894
                                                                {\vlhy{#5}}%
895
                                                                {\vlhy{#6}}%
896
                                                                {\vlhy{#7}}%
897
                                                                {\vlhy{#8}}}}%
898

    
899
\newcommand{\vliiiiiinfaux}[9]{\vlderivationaux{\vliiiiiin{#1}{#2}{#3}%
900
                                                                {\vlhy{#4}}%
901
                                                                {\vlhy{#5}}%
902
                                                                {\vlhy{#6}}%
903
                                                                {\vlhy{#7}}%
904
                                                                {\vlhy{#8}}%
905
                                                                {\vlhy{#9}}}}%
906

    
907
\newcommand{\vliiiiiidfaux}[9]{\vlderivationaux{\vliiiiiid{#1}{#2}{#3}%
908
                                                                {\vlhy{#4}}%
909
                                                                {\vlhy{#5}}%
910
                                                                {\vlhy{#6}}%
911
                                                                {\vlhy{#7}}%
912
                                                                {\vlhy{#8}}%
913
                                                                {\vlhy{#9}}}}%
914

    
915
\newcommand{\vliiiiiiqfaux}[9]{\vlderivationaux{\vliiiiiiq{#1}{#2}{#3}%
916
                                                                {\vlhy{#4}}%
917
                                                                {\vlhy{#5}}%
918
                                                                {\vlhy{#6}}%
919
                                                                {\vlhy{#7}}%
920
                                                                {\vlhy{#8}}%
921
                                                                {\vlhy{#9}}}}%
922

    
923
\newcommand{\vlinf     }{\vlderivationinit\vlinfaux     }%
924

    
925
\newcommand{\vlidf     }{\vlderivationinit\vlindaux     }%
926

    
927
\newcommand{\vliqf     }{\vlderivationinit\vliqfaux     }%
928

    
929
\newcommand{\vliinf    }{\vlderivationinit\vliinfaux    }%
930

    
931
\newcommand{\vliidf    }{\vlderivationinit\vliidfaux    }%
932

    
933
\newcommand{\vliiqf    }{\vlderivationinit\vliiqfaux    }%
934

    
935
\newcommand{\vliiinf   }{\vlderivationinit\vliiinfaux   }%
936

    
937
\newcommand{\vliiidf   }{\vlderivationinit\vliiidfaux   }%
938

    
939
\newcommand{\vliiiqf   }{\vlderivationinit\vliiiqfaux   }%
940

    
941
\newcommand{\vliiiinf  }{\vlderivationinit\vliiiinfaux  }%
942

    
943
\newcommand{\vliiiidf  }{\vlderivationinit\vliiiidfaux  }%
944

    
945
\newcommand{\vliiiiqf  }{\vlderivationinit\vliiiiqfaux  }%
946

    
947
\newcommand{\vliiiiinf }{\vlderivationinit\vliiiiinfaux }%
948

    
949
\newcommand{\vliiiiidf }{\vlderivationinit\vliiiiidfaux }%
950

    
951
\newcommand{\vliiiiiqf }{\vlderivationinit\vliiiiiqfaux }%
952

    
953
\newcommand{\vliiiiiinf}{\vlderivationinit\vliiiiiinfaux}%
954

    
955
\newcommand{\vliiiiiidf}{\vlderivationinit\vliiiiiidfaux}%
956

    
957
\newcommand{\vliiiiiiqf}{\vlderivationinit\vliiiiiiqfaux}%
958

    
959
\catcode`@=12
960
\newcommand{\vltrauxx}[5]{\vldaux
961
   {#1}%
962
   {#2}%
963
   {\vlhy{#3}}%
964
   {}%
965
   {\hbox{$\vcenter{\xy
966
          0;<\hsize,0pt>:<0pt,#4\hsize>::
967
          (-0.5,0.5);(0.5,0.5)**\crv{(0.1,0.6)&(-0.1,0.4)};
968
          (0,0)**@{-};(-0.5,0.5)**@{-};
969
          (0,0.273)*{\scriptstyle #5\strut}%
970
          \endxy}$}}%
971
   {\kern\deropen}}%
972
\catcode`\@=11
973

    
974
\newcommand{\vltraux}[3]{\vltrauxx{}{}{#2}{#3}{#1}}%
975

    
976
\newcount\vltrindc
977
\newdimen\vltrindd
978

    
979
\newcommand{\vltrlaux}[5]{\ifdim\derccdim>\dercdim\vldummycount=\derccdim
980
                             \else\vldummycount=\dercdim
981
                             \fi
982
                          \FPmul\vltrindc{\the\vldummycount}{0.25}%
983
                          \vltrindd=\vltrindc sp
984
                          \advance\vltrindd by-10pt%
985
   \vltrauxx{\scriptstyle #2\strut\kern-\vltrindd}%
986
            {\kern-\vltrindd\scriptstyle #3\strut}{#4}{#5}{#1}}%
987

    
988
\newcommand{\vltrauxxx}[2]{{#2}\vlstemaux\vldaux
989
   {}%
990
   {}%
991
   {\vlhy{#1}}%
992
   {\kern-\ht\strutbox\kern-\dp\strutbox}%
993
   {}%
994
   {}}%
995

    
996
\newcommand{\vltrf }[6]{\vltrauxxx{#2}%
997
                        {\vldsiiiaux{#3}{#4}{#5}\vltraux{#1}{}{#6}}}%
998

    
999
\newcommand{\vltrlf}[8]{\vltrauxxx{#4}%
1000
                        {\vldsiiiaux{#5}{#6}{#7}\vltrlaux{#1}{#2}{#3}{}{#8}}}%
1001

    
1002
\newcommand{\vltr }[5]{\vltrf{#1}{#2}{#3}{#4}{#5}1}%
1003

    
1004
\newcommand{\vltrl}[7]{\vltrlf{#1}{#2}{#3}{#4}{#5}{#6}{#7}1}%
1005

    
1006
\newcommand{\vltreeder }[5]{\vlderivation{\vltr{#1}{#2}{\vlhy{#3}}%
1007
                                                       {\vlhy{#4}}%
1008
                                                       {\vlhy{#5}}}}%
1009

    
1010
\newcommand{\vltreederl}[7]{\vlderivation{\vltrl{#1}{#2}{#3}{#4}{\vlhy{#5}}%
1011
                                                                {\vlhy{#6}}%
1012
                                                                {\vlhy{#7}}}}%
1013

    
1014
\newcommand{\vlvdots}{\vbox to12pt{\vfil\hbox{$\smash\vdots$}}}%
1015

    
1016
%------------------------------------------------- END OF MACROS FOR DERIVATIONS
1017

    
1018
%----------------------------------------------------- MACROS FOR OPEN DEDUCTION
1019

    
1020
\newif\ifodframe          \odframetrue
1021
\newif\ifodframefirst     \odframefirsttrue
1022
\newif\ifodbackground     \odbackgroundfalse
1023
\newif\ifodbackgroundfirst\odbackgroundfirsttrue
1024

    
1025
\newcount\odback
1026
\newcount\odframe
1027

    
1028
\newcommand{\odboxed}[1]{%
1029
   \ifnum\odback=0
1030
      \ifnum\odframe=0
1031
         \hbox{$\vcenter{%
1032
         \vbox{\kern\fboxrule
1033
         \hbox{\kern\fboxrule$#1$%
1034
               \kern\fboxrule}%
1035
               \kern\fboxrule}%
1036
         }$}%
1037
      \else
1038
         \colorlet{currentcolor}{.}%
1039
         {\color{currentcolor!\the\odframe}\fbox{\color{currentcolor}$#1$}}%
1040
      \fi
1041
   \else
1042
      \colorlet{currentcolor}{.}%
1043
      \fcolorbox{currentcolor!\the\odframe}{currentcolor!\the\odback}{$#1$}%
1044
   \fi}%
1045

    
1046
\newcommand\odbox[1]{\odframe=100\setlength{\fboxsep}{2pt}%
1047
                                 \setlength{\fboxrule}{.25pt}\odboxed{#1}}%
1048

    
1049
\newcommand{\odsetframes}{\ifodbackground\ifodbackgroundfirst
1050
                                                   \odbackgroundfirstfalse
1051
                                                   \odback =0%
1052
                                                   \setlength{\fboxsep}{0pt}%
1053
                                                   \odframe=0%
1054
                                         \else\advance\odback by5%
1055
                                              \odframe=\odback
1056
                                              \ifodframe\odframe=100%
1057
                                              \setlength{\fboxsep}{2pt}%
1058
                                              \setlength{\fboxrule}{.25pt}%
1059
                                              \fi
1060
                                         \fi
1061
                          \else\setlength{\fboxsep}{0pt}%
1062
                          \fi
1063
                          \ifodframe\ifodframefirst\odframefirstfalse
1064
                                                   \odframe=0%
1065
                                    \else          \odframe=100%
1066
                                                   \setlength{\fboxsep}{2pt}%
1067
                                                   \setlength{\fboxrule}{.25pt}%
1068
                                    \fi
1069
                          \else     \odframe=0%
1070
                          \fi}%
1071

    
1072
\newcommand{\odderivationinit}{\bgroup
1073
   \odsetframes
1074
   \vlprepstructures\vlderivationinitaux}%                            % dr
1075

    
1076
\newcommand{\odderivationaux}[1]{#1\odboxed
1077
                                 {\vcenter{\copy\derboxone}}\vlderivationterm}%
1078

    
1079
\newcommand{\od        }   {\odderivationinit\odderivationaux}%
1080

    
1081
\newcommand{\odp       }[3]{\vlpr{#1}{#3}{\vls #2}}%
1082

    
1083
\newcommand{\odP       }[3]{\vlpd{#1}{#3}{\vls #2}}%
1084

    
1085
\newcommand{\odpx      }[4]{\vlpf{#1}{#3}{\vls #2}{#4}}%
1086

    
1087
\newcommand{\odproofaux}[4]{\odderivationaux{\vlpf{#2}{#4}{\vls #3}{#1}}}%
1088

    
1089
\newcommand{\odr       }   {\odderivationinit\odproofaux1}%
1090

    
1091
\newcommand{\odR       }   {\odderivationinit\odproofaux2}%
1092

    
1093
\newcommand{\odd       }[4]{\vldf{#2}{#4}{\vls #3}{\vls #1}1}%
1094

    
1095
\newcommand{\odD       }[4]{\vldf{#2}{#4}{\vls #3}{\vls #1}2}%
1096

    
1097
\newcommand{\oddx      }[5]{\vldf{#2}{#4}{\vls #3}{\vls #1}{#5}}%
1098

    
1099
\newcommand{\odh       }[1]{\vlhy{\vls #1}}%
1100

    
1101
\newcommand{\odderaux  }[5]{\odderivationaux{\vldf{#3}{#5}{\vls #4}%
1102
                                                    {\vlhy{\vls #2}}{#1}}}%
1103

    
1104
\newcommand{\odv       }   {\odderivationinit\odderaux1}%
1105

    
1106
\newcommand{\odV       }   {\odderivationinit\odderaux2}%
1107

    
1108
\newcommand{\odi       }[4]{\vlin{#2}{#4}{\vls #3}{\vls #1}}%
1109

    
1110
\newcommand{\odI       }[4]{\vliq{#2}{#4}{\vls #3}{\vls #1}}%
1111

    
1112
\newcommand{\odo       }[4]{\vlid{#2}{#4}{\vls #3}{\vls #1}}%
1113

    
1114
\newcommand{\odnaux    }[4]{\odderivationaux{\vlin{#2}{#4}{\vls #3}%
1115
                                                    {\vlhy{\vls #1}}}}%
1116

    
1117
\newcommand{\odNaux    }[4]{\odderivationaux{\vliq{#2}{#4}{\vls #3}%
1118
                                                    {\vlhy{\vls #1}}}}%
1119

    
1120
\newcommand{\odtaux    }[4]{\odderivationaux{\vlid{#2}{#4}{\vls #3}%
1121
                                                    {\vlhy{\vls #1}}}}%
1122

    
1123
\newcommand{\odn       }   {\odderivationinit\odnaux}%
1124

    
1125
\newcommand{\odN       }   {\odderivationinit\odNaux}%
1126

    
1127
\newcommand{\odt       }   {\odderivationinit\odtaux}%
1128

    
1129
%---------------------------------------------- END OF MACROS FOR OPEN DEDUCTION
1130

    
1131
%------------------------------------------------------- MACROS FOR ATOMIC FLOWS
1132

    
1133
\catcode`@=12
1134

    
1135
\newdimen\afunitmst\afunitmst=0.01pt%
1136

    
1137
\newdimen\afelwidthmst
1138
\newdimen\afelheightmst
1139
\newdimen\afthickonemst
1140
\newdimen\afthicktwomst
1141
\newdimen\afthickthreemst
1142
\newdimen\afthickfourmst
1143
\newdimen\afthickfivemst
1144
\newdimen\aflabeldistancemst
1145

    
1146
\newcommand{\afsetparamsmst}{%
1147
\afelwidthmst      =425\afunitmst
1148
\afelheightmst     =325\afunitmst
1149
\afthickonemst     = 60\afunitmst
1150
\afthicktwomst     = 40\afunitmst
1151
\afthickthreemst   =160\afunitmst
1152
\afthickfourmst    =120\afunitmst
1153
\afthickfivemst    = 40\afunitmst
1154
\aflabeldistancemst=220\afunitmst}%
1155

    
1156
\afsetparamsmst
1157

    
1158
\newdimen\afunit\afunit=0.01pt%
1159

    
1160
\newdimen\afelwidth
1161
\newdimen\afelheight
1162
\newdimen\afthickone
1163
\newdimen\afthicktwo
1164
\newdimen\afthickthree
1165
\newdimen\afthickfour
1166
\newdimen\afthickfive
1167
\newdimen\aflabeldistance
1168

    
1169
\newdimen\afelwidthcur
1170

    
1171
\newdimen\afthickdouble
1172
\newdimen\afthicksep
1173

    
1174
\newcommand{\afsetparams}{%
1175
\afelwidth      =425\afunit
1176
\afelheight     =325\afunit
1177
\afthickone     = 60\afunit
1178
\afthicktwo     = 40\afunit
1179
\afthickthree   =160\afunit
1180
\afthickfour    =120\afunit
1181
\afthickfive    = 40\afunit
1182
\aflabeldistance=220\afunit
1183
\afthicksep     =  3\afelwidth\divide\afthicksep by10%
1184
                             \advance\afthicksep by-\afthickfive
1185
\afthickdouble  =\afthicksep
1186
                 \advance\afthickdouble by2\afthickfive
1187
\afelwidthcur   =\afelwidth}%
1188

    
1189
\afsetparams
1190

    
1191
\newbox\aftrdnbox
1192
\newbox\aftrupbox
1193
\newbox\afdiskbox
1194
\newbox\afbbdbox
1195
\newbox\afbbubox
1196
\newbox\afbdbox
1197
\newbox\afbubox
1198
\newbox\afcdcbox
1199
\newbox\afcdcmbox
1200
\newbox\afcucbox
1201
\newbox\afcucmbox
1202
\newbox\afcdabox\newbox\afwdabox\newbox\afadabox
1203
\newbox\afCdbox\newbox\afWdbox\newbox\afAdbox
1204
\newbox\afcdnbox\newbox\afwdnbox\newbox\afadnbox
1205
\newbox\afCdnbox
1206
\newbox\afcuabox\newbox\afwuabox\newbox\afauabox
1207
\newbox\afCubox\newbox\afWubox\newbox\afAubox
1208
\newbox\afcunbox\newbox\afwunbox\newbox\afaunbox
1209
\newbox\afCunbox
1210
\newbox\afIubox
1211
\newbox\afiubox
1212
\newbox\afIdbox
1213
\newbox\afidbox
1214
\newbox\afinubox\newbox\afindbox 
1215
\newbox\afDubox
1216
\newbox\afduabox
1217
\newbox\afDdbox
1218
\newbox\afddabox
1219
\newbox\afddnbox
1220
\newbox\afdunbox
1221
\newbox\afCudbox
1222
\newbox\afcudabox
1223
\newbox\afCddbox
1224
\newbox\afcddabox
1225
\newbox\afCudnbox
1226
\newbox\afcudnbox
1227
\newbox\afCddnbox
1228
\newbox\afcddnbox
1229

    
1230
\newif\ifvlcompileflows\vlcompileflowsfalse
1231

    
1232
\newcommand{\ifemptyargparamsunchangedcompileflows}[3]{%
1233
\ifblank{#1}{%
1234
\ifdim\afunit           =\afunitmst
1235
\ifdim\afelwidth        =\afelwidthmst
1236
\ifdim\afelheight       =\afelheightmst
1237
\ifdim\afthickone       =\afthickonemst
1238
\ifdim\afthicktwo       =\afthicktwomst
1239
\ifdim\afthickthree     =\afthickthreemst
1240
\ifdim\afthickfour      =\afthickfourmst
1241
\ifdim\afthickfive      =\afthickfivemst
1242
\ifdim\aflabeldistance  =\aflabeldistancemst
1243
\ifvlcompileflows
1244
#2%
1245
\else #3\fi
1246
\else #3\fi
1247
\else #3\fi
1248
\else #3\fi
1249
\else #3\fi
1250
\else #3\fi
1251
\else #3\fi
1252
\else #3\fi
1253
\else #3\fi
1254
\else #3\fi}%
1255
{#3}}%
1256

    
1257
\newif\ifaftrin
1258
\newif\ifafdual
1259
\newif\ifafstem
1260
\newif\ifafmult
1261
\newif\ifafdisk
1262

    
1263
\newcommand{\afcompileenable}{%
1264
\afdiskfalse
1265
\aftrintrue
1266
\afstemtrue \afdualfalse\afmultfalse\setbox\afadabox =\afwauxx{}{}{}%
1267
\afstemtrue \afdualfalse\afmulttrue \setbox\afAdbox  =\afwauxx{}{}{}%
1268
\afstemtrue \afdualtrue \afmultfalse\setbox\afauabox =\afwauxx{}{}{}%
1269
\afstemtrue \afdualtrue \afmulttrue \setbox\afAubox  =\afwauxx{}{}{}%
1270
\afstemfalse\afdualfalse\afmultfalse\setbox\afadnbox =\afwauxx{}{}{}%
1271
\afstemfalse\afdualtrue \afmultfalse\setbox\afaunbox =\afwauxx{}{}{}%
1272
\aftrinfalse
1273
            \afdualfalse\setbox\aftrdnbox=\aftraux
1274
                        \setbox\afbbdbox =\afbmaux
1275
            \afdualtrue \setbox\aftrupbox=\aftraux
1276
                        \setbox\afbbubox =\afbmaux
1277
                        \setbox\afdiskbox=\afdiaux
1278
\afstemtrue \afdualfalse\afmultfalse\setbox\afwdabox =\afwauxx{}{}{}%
1279
\afstemtrue \afdualfalse\afmulttrue \setbox\afWdbox  =\afwauxx{}{}{}%
1280
\afstemtrue \afdualtrue \afmultfalse\setbox\afwuabox =\afwauxx{}{}{}%
1281
\afstemtrue \afdualtrue \afmulttrue \setbox\afWubox  =\afwauxx{}{}{}%
1282
\afstemfalse\afdualfalse\afmultfalse\setbox\afwdnbox =\afwauxx{}{}{}%
1283
                                    \setbox\afbdbox  =\afbauxx
1284
\afstemfalse\afdualtrue \afmultfalse\setbox\afwunbox =\afwauxx{}{}{}%
1285
                                    \setbox\afbubox  =\afbauxx
1286
            \afdualfalse\afmultfalse\setbox\afcdcbox =\afccaux{}{}%
1287
            \afdualfalse\afmulttrue \setbox\afcdcmbox=\afcmaux{}{}%
1288
            \afdualtrue \afmultfalse\setbox\afcucbox =\afccaux{}{}%
1289
            \afdualtrue \afmulttrue \setbox\afcucmbox=\afcmaux{}{}%
1290
\afstemtrue \afdualfalse\afmultfalse\setbox\afcdabox=\afcauxx{}{}{}{}{}{}{}{}{}%
1291
\afstemtrue \afdualfalse\afmulttrue \setbox\afCdbox =\afcauxx{}{}{}{}{}{}{}{}{}%
1292
\afstemtrue \afdualtrue \afmultfalse\setbox\afcuabox=\afcauxx{}{}{}{}{}{}{}{}{}%
1293
\afstemtrue \afdualtrue \afmulttrue \setbox\afCubox =\afcauxx{}{}{}{}{}{}{}{}{}%
1294
\afstemfalse\afdualfalse\afmultfalse\setbox\afcdnbox=\afcauxx{}{}{}{}{}{}{}{}{}%
1295
\afstemfalse\afdualfalse\afmulttrue \setbox\afCdnbox=\afcauxx{}{}{}{}{}{}{}{}{}%
1296
\afstemfalse\afdualtrue \afmultfalse\setbox\afcunbox=\afcauxx{}{}{}{}{}{}{}{}{}%
1297
\afstemfalse\afdualtrue \afmulttrue \setbox\afCunbox=\afcauxx{}{}{}{}{}{}{}{}{}%
1298
\afstemtrue \afdualtrue \afmulttrue \setbox\afIubox =
1299
                                              \hbox{\afiauxx{}{}{}{}11{}{}}%
1300
\afstemtrue \afdualtrue \afmultfalse\setbox\afiubox =
1301
                                              \hbox{\afiauxx{}{}{}{}11{}{}}%
1302
\afstemtrue \afdualfalse\afmulttrue \setbox\afIdbox =
1303
                                              \hbox{\afiauxx{}{}{}{}11{}{}}%
1304
\afstemtrue \afdualfalse\afmultfalse\setbox\afidbox =
1305
                                              \hbox{\afiauxx{}{}{}{}11{}{}}%
1306
\afstemfalse\afdualtrue             \setbox\afinubox=
1307
                                              \hbox{\afiauxx{}{}{}{}11{}{}}%
1308
\afstemfalse\afdualfalse            \setbox\afindbox=
1309
                                              \hbox{\afiauxx{}{}{}{}11{}{}}%
1310
\afdisktrue
1311
\afstemtrue \afdualtrue \afmulttrue \setbox\afDubox  =\afwauxx{}{}{}%
1312
\afstemtrue \afdualtrue \afmultfalse\setbox\afduabox =\afwauxx{}{}{}%
1313
\afstemtrue \afdualfalse\afmulttrue \setbox\afDdbox  =\afwauxx{}{}{}%
1314
\afstemtrue \afdualfalse\afmultfalse\setbox\afddabox =\afwauxx{}{}{}%
1315
\afstemfalse\afdualfalse            \setbox\afddnbox =\afwauxx{}{}{}%
1316
\afstemfalse\afdualtrue             \setbox\afdunbox =\afwauxx{}{}{}%
1317
\afstemtrue \afdualfalse\afmultfalse\setbox\afcddabox=
1318
                                                     \afcauxx{}{}{}{}{}{}{}{}{}%
1319
\afstemtrue \afdualfalse\afmulttrue \setbox\afCddbox =
1320
                                                     \afcauxx{}{}{}{}{}{}{}{}{}%
1321
\afstemtrue \afdualtrue \afmultfalse\setbox\afcudabox=
1322
                                                     \afcauxx{}{}{}{}{}{}{}{}{}%
1323
\afstemtrue \afdualtrue \afmulttrue \setbox\afCudbox =
1324
                                                     \afcauxx{}{}{}{}{}{}{}{}{}%
1325
\afstemfalse\afdualfalse\afmultfalse\setbox\afcddnbox=
1326
                                                     \afcauxx{}{}{}{}{}{}{}{}{}%
1327
\afstemfalse\afdualfalse\afmulttrue \setbox\afCddnbox=
1328
                                                     \afcauxx{}{}{}{}{}{}{}{}{}%
1329
\afstemfalse\afdualtrue \afmultfalse\setbox\afcudnbox=
1330
                                                     \afcauxx{}{}{}{}{}{}{}{}{}%
1331
\afstemfalse\afdualtrue \afmulttrue \setbox\afCudnbox=
1332
                                                     \afcauxx{}{}{}{}{}{}{}{}{}%
1333
\vlcompileflowstrue}%
1334

    
1335
\newcommand{\afcompiledisable}{\vlcompileflowsfalse}%
1336

    
1337
\AtBeginDocument{\ifvirginialakeusesxy\afcompileenable\fi}%
1338

    
1339
\newcommand{\af}[1]{\vcenter{\xy
1340
<\afelwidth,0pt>:<0pt,\afelheight>::#1\endxy}}%
1341

    
1342
\newcommand{\afinv}[1]{\vcenter{\xy
1343
<\afelwidth,0pt>:<0pt,-\afelheight>::#1\endxy}}%
1344

    
1345
\newcommand{\afinvm}{\vbox to0pt{\color{white}\vss
1346
\hbox to0pt{\hss\vrule height.1sp depth0sp width.1sp}}}%
1347

    
1348
\newcommand{\aftrimabove}[1]{\vcenter
1349
                             {\vbox{\kern-3.2\afelheight\hbox{$#1$}}}}%
1350

    
1351
\newcommand{\aftrimbelow}[1]{\vcenter
1352
                             {\vbox{\hbox{$#1$}\kern-3.2\afelheight}}}%
1353

    
1354
\newcommand{\aftrim}[1]{\vcenter{\vbox{\kern-3.2\afelheight\hbox{$#1$}%
1355
                                       \kern-3.2\afelheight}}}%
1356

    
1357
\newcommand{\afraise}[1]{\raise2\afelheight\hbox{$#1$}}%
1358

    
1359
\newcommand{\aflower}[1]{\lower2\afelheight\hbox{$#1$}}%
1360

    
1361
%-------------------------------- LABELS
1362

    
1363
\newcommand{\aflr}[1]{\vbox to0pt{\vss
1364
   \hbox to0pt{$\scriptstyle\kern\aflabeldistance #1\strut$\hss}\vss}}%
1365

    
1366
\newcommand{\afll}[1]{\vbox to 0pt{\vss
1367
   \hbox to0pt{\hss$\scriptstyle #1\kern\aflabeldistance\strut$}\vss}}%
1368

    
1369
%------------------- TRIANGLES AND DISK
1370

    
1371
\newcommand{\aftrauxps}{%
1372
\xybox{<\afelwidth,0pt>:<0pt,\ifaftrin
1373
                                \ifafdual
1374
                                \else
1375
                                   -
1376
                                \fi
1377
                             \else
1378
                                \ifafdual
1379
                                   -
1380
                                \fi
1381
                             \fi\afelheight>::
1382
( 0   ,-0.55);( 0   , 0.54)**[|<\afthickone>][white]@{-};
1383
( 0.08,-0.43);( 0.08, 0.54)**[|<\afthickone>][white]@{-};
1384
(-0.08,-0.43);(-0.08, 0.54)**[|<\afthickone>][white]@{-};
1385
( 0.16,-0.31);( 0.16, 0.54)**[|<\afthickone>][white]@{-};
1386
(-0.16,-0.31);(-0.16, 0.54)**[|<\afthickone>][white]@{-};
1387
( 0.24,-0.19);( 0.24, 0.54)**[|<\afthickone>][white]@{-};
1388
(-0.24,-0.19);(-0.24, 0.54)**[|<\afthickone>][white]@{-};
1389
( 0.32,-0.07);( 0.32, 0.54)**[|<\afthickone>][white]@{-};
1390
(-0.32,-0.07);(-0.32, 0.54)**[|<\afthickone>][white]@{-};
1391
( 0.40, 0.05);( 0.40, 0.54)**[|<\afthickone>][white]@{-};
1392
(-0.40, 0.05);(-0.40, 0.54)**[|<\afthickone>][white]@{-};
1393
( 0.48, 0.17);( 0.48, 0.54)**[|<\afthickone>][white]@{-};
1394
(-0.48, 0.17);(-0.48, 0.54)**[|<\afthickone>][white]@{-};
1395
( 0.56, 0.29);( 0.56, 0.54)**[|<\afthickone>][white]@{-};
1396
(-0.56, 0.29);(-0.56, 0.54)**[|<\afthickone>][white]@{-};
1397
( 0.64, 0.41);( 0.64, 0.54)**[|<\afthickone>][white]@{-};
1398
(-0.64, 0.41);(-0.64, 0.54)**[|<\afthickone>][white]@{-};
1399
( 0.72, 0.53);( 0.72, 0.54)**[|<\afthickone>][white]@{-};
1400
(-0.72, 0.53);(-0.72, 0.54)**[|<\afthickone>][white]@{-};
1401
(-0.8 , 0.6 );( 0   ,-0.6 )**[|<\afthickfour>]@{-};
1402
( 0   ,-0.6 );( 0.8 , 0.6 )**[|<\afthickfour>]@{-};
1403
(-0.8 , 0.6 );( 0.8 , 0.6 )**[|<\afthickfour>]@{-}}}%
1404

    
1405
\newcommand{\aftrauxpdf}{\hbox{\kern-.15\afelwidth
1406
\xybox{<\afelwidth,0pt>:<0pt,\ifaftrin
1407
                                \ifafdual
1408
                                \else
1409
                                   -
1410
                                \fi
1411
                             \else
1412
                                \ifafdual
1413
                                   -
1414
                                \fi
1415
                             \fi\afelheight>::
1416
( 0   ,-0.55);( 0   , 0.54)**[|<\afthickone>][white]@{-};
1417
( 0.04,-0.43);( 0.04, 0.54)**[|<\afthickone>][white]@{-};
1418
(-0.04,-0.43);(-0.04, 0.54)**[|<\afthickone>][white]@{-};
1419
( 0.08,-0.43);( 0.08, 0.54)**[|<\afthickone>][white]@{-};
1420
(-0.08,-0.43);(-0.08, 0.54)**[|<\afthickone>][white]@{-};
1421
( 0.12,-0.31);( 0.12, 0.54)**[|<\afthickone>][white]@{-};
1422
(-0.12,-0.31);(-0.12, 0.54)**[|<\afthickone>][white]@{-};
1423
( 0.16,-0.31);( 0.16, 0.54)**[|<\afthickone>][white]@{-};
1424
(-0.16,-0.31);(-0.16, 0.54)**[|<\afthickone>][white]@{-};
1425
( 0.20,-0.19);( 0.20, 0.54)**[|<\afthickone>][white]@{-};
1426
(-0.20,-0.19);(-0.20, 0.54)**[|<\afthickone>][white]@{-};
1427
( 0.24,-0.19);( 0.24, 0.54)**[|<\afthickone>][white]@{-};
1428
(-0.24,-0.19);(-0.24, 0.54)**[|<\afthickone>][white]@{-};
1429
( 0.28,-0.19);( 0.28, 0.54)**[|<\afthickone>][white]@{-};
1430
(-0.28,-0.19);(-0.28, 0.54)**[|<\afthickone>][white]@{-};
1431
( 0.32,-0.07);( 0.32, 0.54)**[|<\afthickone>][white]@{-};
1432
(-0.32,-0.07);(-0.32, 0.54)**[|<\afthickone>][white]@{-};
1433
( 0.36,-0.07);( 0.36, 0.54)**[|<\afthickone>][white]@{-};
1434
(-0.36,-0.07);(-0.36, 0.54)**[|<\afthickone>][white]@{-};
1435
( 0.40, 0.05);( 0.40, 0.54)**[|<\afthickone>][white]@{-};
1436
(-0.40, 0.05);(-0.40, 0.54)**[|<\afthickone>][white]@{-};
1437
( 0.44, 0.17);( 0.44, 0.54)**[|<\afthickone>][white]@{-};
1438
(-0.44, 0.17);(-0.44, 0.54)**[|<\afthickone>][white]@{-};
1439
( 0.48, 0.17);( 0.48, 0.54)**[|<\afthickone>][white]@{-};
1440
(-0.48, 0.17);(-0.48, 0.54)**[|<\afthickone>][white]@{-};
1441
( 0.52, 0.29);( 0.52, 0.54)**[|<\afthickone>][white]@{-};
1442
(-0.52, 0.29);(-0.52, 0.54)**[|<\afthickone>][white]@{-};
1443
( 0.56, 0.29);( 0.56, 0.54)**[|<\afthickone>][white]@{-};
1444
(-0.56, 0.29);(-0.56, 0.54)**[|<\afthickone>][white]@{-};
1445
( 0.60, 0.41);( 0.60, 0.54)**[|<\afthickone>][white]@{-};
1446
(-0.60, 0.41);(-0.60, 0.54)**[|<\afthickone>][white]@{-};
1447
( 0.64, 0.41);( 0.64, 0.54)**[|<\afthickone>][white]@{-};
1448
(-0.64, 0.41);(-0.64, 0.54)**[|<\afthickone>][white]@{-};
1449
( 0.68, 0.41);( 0.68, 0.54)**[|<\afthickone>][white]@{-};
1450
(-0.68, 0.41);(-0.68, 0.54)**[|<\afthickone>][white]@{-};
1451
( 0.72, 0.53);( 0.72, 0.54)**[|<\afthickone>][white]@{-};
1452
(-0.72, 0.53);(-0.72, 0.54)**[|<\afthickone>][white]@{-};
1453
(-0.95, 0.68);( 0   ,-0.74)**[|<\afthickone>]@{-};
1454
( 0   ,-0.74);( 0.95, 0.68)**[|<\afthickone>]@{-};
1455
(-0.95, 0.68);( 0.95, 0.68)**[|<\afthickone>]@{-};
1456
(-0.8 , 0.6 );( 0   ,-0.6 )**[|<\afthickone>]@{-};
1457
( 0   ,-0.6 );( 0.8 , 0.6 )**[|<\afthickone>]@{-};
1458
(-0.8 , 0.6 );( 0.8 , 0.6 )**[|<\afthickone>]@{-};
1459
(-0.65, 0.52);( 0   ,-0.46)**[|<\afthickone>]@{-};
1460
( 0   ,-0.46);( 0.65, 0.52)**[|<\afthickone>]@{-};
1461
(-0.65, 0.52);( 0.65, 0.52)**[|<\afthickone>]@{-}}%
1462
\kern-.15\afelwidth}}%
1463

    
1464
\newcommand{\aftraux}{\ifvirginialakepdflatex\aftrauxpdf\else\aftrauxps\fi}%
1465

    
1466
\newcommand{\aftr}{%
1467
\ifemptyargparamsunchangedcompileflows{}%
1468
{\ifaftrin
1469
    \ifafdual
1470
       \copy\aftrdnbox
1471
    \else
1472
       \copy\aftrupbox
1473
    \fi
1474
 \else
1475
    \ifafdual
1476
       \copy\aftrupbox
1477
    \else
1478
       \copy\aftrdnbox
1479
    \fi
1480
 \fi}%
1481
{\hbox{\aftraux}}}%
1482

    
1483
\newcommand{\afdiaux}{%
1484
\xybox{<\afelheight,0pt>:<0pt,\afelheight>::
1485
( 0  , 0.0)*\frm<.6\afelwidth>{*};
1486
( 0.6, 0.6)*{\afinvm}            ;
1487
(-0.6,-0.6)*{\afinvm}            }}%
1488

    
1489
\newcommand{\afdi}{%
1490
\ifemptyargparamsunchangedcompileflows{}%
1491
{\copy\afdiskbox}%
1492
{\hbox{\afdiaux}}}%
1493

    
1494
%---------------------------- IDENTITIES
1495

    
1496
\newcommand{\afistemsaux}[2]{%
1497
\xybox{<\afelwidth,0pt>:<0pt,\afelheight>::
1498
(-2,-2);(-2,2)**[|<\afthickone>][#1]@{-};
1499
( 2,-2);( 2,2)**[|<\afthickone>][#2]@{-}}}%
1500

    
1501
\newcommand{\afistemmsauxps}[2]{%
1502
\xybox{<\afelwidth,0pt>:<0pt,\afelheight>::
1503
(-2,-2);(-2,2)**[|<\afthickdouble>][#1][butt]@{-};
1504
(-2,-2);(-2,2)**[|<\afthicksep>][#1][white]@{-};
1505
( 2,-2);( 2,2)**[|<\afthickdouble>][#2][butt]@{-};
1506
( 2,-2);( 2,2)**[|<\afthicksep>][#2][white]@{-}}}%
1507

    
1508
\newcommand{\afistemmsauxpdf}[2]{%
1509
\xybox{<\afelwidth,0pt>:<0pt,\afelheight>::
1510
(-2,-2)-<0.15\afelwidthcur,0pt>;
1511
(-2, 2)-<0.15\afelwidthcur,0pt>**[|<\afthickfive>][#1]@{-};
1512
(-2,-2)+<0.15\afelwidthcur,0pt>;
1513
(-2, 2)+<0.15\afelwidthcur,0pt>**[|<\afthickfive>][#1]@{-};
1514
( 2,-2)-<0.15\afelwidthcur,0pt>;
1515
( 2, 2)-<0.15\afelwidthcur,0pt>**[|<\afthickfive>][#2]@{-};
1516
( 2,-2)+<0.15\afelwidthcur,0pt>;
1517
( 2, 2)+<0.15\afelwidthcur,0pt>**[|<\afthickfive>][#2]@{-}}}%
1518

    
1519
\newcommand{\afistems}[2]{\ifafstem\ifafmult\ifvirginialakepdflatex
1520
                           \afistemmsauxpdf{#1}{#2}\else
1521
                           \afistemmsauxps {#1}{#2}\fi\else
1522
                           \afistemsaux{#1}{#2}\fi\else\relax\fi}%
1523

    
1524
\newcommand{\afiauxxps}[8]{\multiply\afelwidth by#5%
1525
                             \divide\afelwidth by#6%
1526
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
1527
( 0  ,-2)*{\hbox{\afistems{#7}{#8}}};
1528
(-2.5, 0);(2.5,0)**[|<\afthickthree>]\crv{(0,1)};
1529
( 0  ,-4  )*{\afinvm};
1530
( 0  , 4  )*{\afinvm};
1531
(-2  ,-2.5)*{\afll{#1}};
1532
(-2  ,-2.5)*{\aflr{#2}};
1533
( 2  ,-2.5)*{\afll{#3}};
1534
( 2  ,-2.5)*{\aflr{#4}}}}%
1535

    
1536
\newcommand{\afiauxxpdf}[8]{\multiply\afelwidth by#5%
1537
                              \divide\afelwidth by#6%
1538
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
1539
( 0  ,-2)*{\hbox{\afistems{#7}{#8}}};
1540
(-2.5, 0.1);(2.5, 0.1)**[|<\afthickone>]\crv{(0,1.1)};
1541
(-2.5, 0  );(2.5, 0  )**[|<\afthickone>]\crv{(0,1  )};
1542
(-2.5,-0.1);(2.5,-0.1)**[|<\afthickone>]\crv{(0,0.9)};
1543
( 0  ,-4  )*{\afinvm};
1544
( 0  , 4  )*{\afinvm};
1545
(-2  ,-2.5)*{\afll{#1}};
1546
(-2  ,-2.5)*{\aflr{#2}};
1547
( 2  ,-2.5)*{\afll{#3}};
1548
( 2  ,-2.5)*{\aflr{#4}}}}%
1549

    
1550
\newcommand{\afiauxx}[8]{\ifvirginialakepdflatex
1551
                          \afiauxxpdf{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}\else
1552
                          \afiauxxps {#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}\fi}%
1553

    
1554
\newcommand{\afiaux}[4]{\ifemptyargparamsunchangedcompileflows{#1#2#3#4}%
1555
                         {\ifafstem
1556
                             \ifafdual
1557
                                \ifafmult
1558
                                   \copy\afIubox
1559
                                \else
1560
                                   \copy\afiubox
1561
                                \fi
1562
                             \else
1563
                                \ifafmult
1564
                                   \copy\afIdbox
1565
                                \else
1566
                                   \copy\afidbox
1567
                                \fi
1568
                             \fi
1569
                          \else
1570
                             \ifafdual
1571
                                \copy\afinubox
1572
                             \else
1573
                                \copy\afindbox
1574
                             \fi
1575
                          \fi}%
1576
                         {\afiauxx{#1}{#2}{#3}{#4}11{}{}}}%
1577

    
1578
\newcommand{\afid  }[4]{\afstemtrue\afdualfalse\afmultfalse
1579
                             \afiaux{#1}{#2}{#3}{#4}}%
1580

    
1581
\newcommand{\afId  }[4]{\afstemtrue\afdualfalse\afmulttrue
1582
                             \afiaux{#1}{#2}{#3}{#4}}%
1583

    
1584
\newcommand{\afiu  }[4]{\afstemtrue\afdualtrue\afmultfalse
1585
                             \afiaux{#1}{#2}{#3}{#4}}%
1586

    
1587
\newcommand{\afIu  }[4]{\afstemtrue\afdualtrue\afmulttrue
1588
                             \afiaux{#1}{#2}{#3}{#4}}%
1589

    
1590
\newcommand{\afidn }   {\afstemfalse\afdualfalse
1591
                             \afiaux{}{}{}{}}%
1592

    
1593
\newcommand{\afiun }   {\afstemfalse\afdualtrue
1594
                             \afiaux{}{}{}{}}%
1595

    
1596
\newcommand{\afidc }[6]{\afstemtrue\afdualfalse\afmultfalse
1597
                             \afiauxx{#1}{#2}{#3}{#4}11{#5}{#6}}%
1598

    
1599
\newcommand{\afIdc }[6]{\afstemtrue\afdualfalse\afmulttrue
1600
                             \afiauxx{#1}{#2}{#3}{#4}11{#5}{#6}}%
1601

    
1602
\newcommand{\afiuc }[6]{\afstemtrue\afdualtrue\afmultfalse
1603
                             \afiauxx{#1}{#2}{#3}{#4}11{#5}{#6}}%
1604

    
1605
\newcommand{\afIuc }[6]{\afstemtrue\afdualtrue\afmulttrue
1606
                             \afiauxx{#1}{#2}{#3}{#4}11{#5}{#6}}%
1607

    
1608
\newcommand{\afidx }[6]{\afstemtrue\afdualfalse\afmultfalse
1609
                             \afiauxx{#1}{#2}{#3}{#4}{#5}{#6}{}{}}%
1610

    
1611
\newcommand{\afidxc}[8]{\afstemtrue\afdualfalse\afmultfalse
1612
                             \afiauxx{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}%
1613

    
1614
\newcommand{\afIdx }[6]{\afstemtrue\afdualfalse\afmulttrue
1615
                             \afiauxx{#1}{#2}{#3}{#4}{#5}{#6}{}{}}%
1616

    
1617
\newcommand{\afIdxc}[8]{\afstemtrue\afdualfalse\afmulttrue
1618
                             \afiauxx{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}%
1619

    
1620
\newcommand{\afiux }[6]{\afstemtrue\afdualtrue\afmultfalse
1621
                             \afiauxx{#1}{#2}{#3}{#4}{#5}{#6}{}{}}%
1622

    
1623
\newcommand{\afiuxc}[8]{\afstemtrue\afdualtrue\afmultfalse
1624
                             \afiauxx{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}%
1625

    
1626
\newcommand{\afIux }[6]{\afstemtrue\afdualtrue\afmulttrue
1627
                             \afiauxx{#1}{#2}{#3}{#4}{#5}{#6}{}{}}%
1628

    
1629
\newcommand{\afIuxc}[8]{\afstemtrue\afdualtrue\afmulttrue
1630
                             \afiauxx{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}%
1631

    
1632
%------------ WEAKENINGS AND ABSORPTIONS
1633

    
1634
\newcommand{\afstemaux}[1]{%
1635
\xybox{<\afelwidth,0pt>:<0pt,\afelheight>::
1636
(0,-2);(0,2)**[|<\afthickone>][#1]@{-}}}%
1637

    
1638
\newcommand{\afstemmauxps}[1]{%
1639
\xybox{<\afelwidth,0pt>:<0pt,\afelheight>::
1640
(0,-2);(0,2)**[|<\afthickdouble>][#1][butt]@{-};
1641
(0,-2);(0,2)**[|<\afthicksep>][#1][white]@{-}}}%
1642

    
1643
\newcommand{\afstemmauxpdf}[1]{%
1644
\xybox{<\afelwidth,0pt>:<0pt,\afelheight>::
1645
(-0.15,-2);(-0.15,2)**[|<\afthickfive>][#1]@{-};
1646
( 0.15,-2);( 0.15,2)**[|<\afthickfive>][#1]@{-}}}%
1647

    
1648
\newcommand{\afstem}[1]{\ifafstem\ifafmult\ifvirginialakepdflatex
1649
                             \afstemmauxpdf{#1}\else
1650
                             \afstemmauxps {#1}\fi\else
1651
                          \afstemaux{#1}\fi\else\relax\fi}%
1652

    
1653
\newcommand{\afwauxx}[3]{%
1654
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
1655
(0,-2  )*{\hbox{\afstem{#3}}};
1656
(0, 0  )*{\hbox{\ifafdisk\afdi\fi}};
1657
(0, 0  )*{\hbox{\ifafdisk\else\aftr\fi}};
1658
(0,-4  )*{\afinvm};
1659
(0, 4  )*{\afinvm};
1660
(0,-2.5)*{\afll{#1}};
1661
(0,-2.5)*{\aflr{#2}}}}%
1662

    
1663
\newcommand{\afwaux}[3]{\ifemptyargparamsunchangedcompileflows{#1#2#3}%
1664
                         {\ifaftrin
1665
                             \ifafstem
1666
                                \ifafdual
1667
                                   \ifafmult
1668
                                      \copy\afAubox
1669
                                   \else
1670
                                      \copy\afauabox
1671
                                   \fi
1672
                                \else
1673
                                   \ifafmult
1674
                                      \copy\afAdbox
1675
                                   \else
1676
                                      \copy\afadabox
1677
                                   \fi
1678
                                \fi
1679
                             \else
1680
                                \ifafdual
1681
                                   \copy\afaunbox
1682
                                \else
1683
                                   \copy\afadnbox
1684
                                \fi
1685
                             \fi
1686
                          \else
1687
                             \ifafstem
1688
                                \ifafdual
1689
                                   \ifafmult
1690
                                    \ifafdisk\copy\afDubox\else\copy\afWubox\fi
1691
                                   \else
1692
                                   \ifafdisk\copy\afduabox\else\copy\afwuabox\fi
1693
                                   \fi
1694
                                \else
1695
                                   \ifafmult
1696
                                     \ifafdisk\copy\afDdbox\else\copy\afWdbox\fi
1697
                                   \else
1698
                                   \ifafdisk\copy\afddabox\else\copy\afwdabox\fi
1699
                                   \fi
1700
                                \fi
1701
                             \else
1702
                                \ifafdual
1703
                                  \ifafdisk\copy\afdunbox\else\copy\afwunbox\fi
1704
                                \else
1705
                                  \ifafdisk\copy\afddnbox\else\copy\afwdnbox\fi
1706
                                \fi
1707
                             \fi
1708
                          \fi}%
1709
                         {\afwauxx{#1}{#2}{#3}}}%
1710

    
1711
\newcommand{\afwd }[2]{\aftrinfalse\afstemtrue\afdualfalse\afmultfalse
1712
                                              \afdiskfalse\afwaux{#1}{#2}{}}%
1713

    
1714
\newcommand{\afWd }[2]{\aftrinfalse\afstemtrue\afdualfalse\afmulttrue
1715
                                              \afdiskfalse\afwaux{#1}{#2}{}}%
1716

    
1717
\newcommand{\afwu }[2]{\aftrinfalse\afstemtrue\afdualtrue\afmultfalse
1718
                                              \afdiskfalse\afwaux{#1}{#2}{}}%
1719

    
1720
\newcommand{\afWu }[2]{\aftrinfalse\afstemtrue\afdualtrue\afmulttrue
1721
                                              \afdiskfalse\afwaux{#1}{#2}{}}%
1722

    
1723
\newcommand{\afwdn}   {\aftrinfalse\afstemfalse\afdualfalse
1724
                                              \afdiskfalse\afwaux{}{}{}}%
1725

    
1726
\newcommand{\afwun}   {\aftrinfalse\afstemfalse\afdualtrue
1727
                                              \afdiskfalse\afwaux{}{}{}}%
1728

    
1729
\newcommand{\afwdc}[3]{\aftrinfalse\afstemtrue\afdualfalse\afmultfalse
1730
                                              \afdiskfalse\afwauxx{#1}{#2}{#3}}%
1731

    
1732
\newcommand{\afWdc}[3]{\aftrinfalse\afstemtrue\afdualfalse\afmulttrue
1733
                                              \afdiskfalse\afwauxx{#1}{#2}{#3}}%
1734

    
1735
\newcommand{\afwuc}[3]{\aftrinfalse\afstemtrue\afdualtrue\afmultfalse
1736
                                              \afdiskfalse\afwauxx{#1}{#2}{#3}}%
1737

    
1738
\newcommand{\afWuc}[3]{\aftrinfalse\afstemtrue\afdualtrue\afmulttrue
1739
                                              \afdiskfalse\afwauxx{#1}{#2}{#3}}%
1740

    
1741
\newcommand{\afau }[2]{\aftrintrue \afstemtrue\afdualfalse\afmultfalse
1742
                                              \afdiskfalse\afwaux{#1}{#2}{}}%
1743

    
1744
\newcommand{\afAu }[2]{\aftrintrue \afstemtrue\afdualfalse\afmulttrue
1745
                                              \afdiskfalse\afwaux{#1}{#2}{}}%
1746

    
1747
\newcommand{\afad }[2]{\aftrintrue \afstemtrue\afdualtrue\afmultfalse
1748
                                              \afdiskfalse\afwaux{#1}{#2}{}}%
1749

    
1750
\newcommand{\afAd }[2]{\aftrintrue \afstemtrue\afdualtrue\afmulttrue
1751
                                              \afdiskfalse\afwaux{#1}{#2}{}}%
1752

    
1753
\newcommand{\afaun}   {\aftrintrue \afstemfalse\afdualfalse
1754
                                              \afdiskfalse\afwaux{}{}{}}%
1755

    
1756
\newcommand{\afadn}   {\aftrintrue \afstemfalse\afdualtrue
1757
                                              \afdiskfalse\afwaux{}{}{}}%
1758

    
1759
\newcommand{\afauc}[3]{\aftrintrue \afstemtrue\afdualfalse\afmultfalse
1760
                                              \afdiskfalse\afwauxx{#1}{#2}{#3}}%
1761

    
1762
\newcommand{\afAuc}[3]{\aftrintrue \afstemtrue\afdualfalse\afmulttrue
1763
                                              \afdiskfalse\afwauxx{#1}{#2}{#3}}%
1764

    
1765
\newcommand{\afadc}[3]{\aftrintrue \afstemtrue\afdualtrue\afmultfalse
1766
                                              \afdiskfalse\afwauxx{#1}{#2}{#3}}%
1767

    
1768
\newcommand{\afAdc}[3]{\aftrintrue \afstemtrue\afdualtrue\afmulttrue
1769
                                              \afdiskfalse\afwauxx{#1}{#2}{#3}}%
1770

    
1771
%----------------------------- LOLLIPOPS
1772

    
1773
\newcommand{\afdaux}[2]{\ifemptyargparamsunchangedcompileflows{#1#2}%
1774
                         {\ifafstem
1775
                             \ifafdual
1776
                                \ifafmult
1777
                                   \copy\afDubox
1778
                                \else
1779
                                   \copy\afduabox
1780
                                \fi
1781
                             \else
1782
                                \ifafmult
1783
                                   \copy\afDdbox
1784
                                \else
1785
                                   \copy\afddabox
1786
                                \fi
1787
                             \fi
1788
                          \else
1789
                             \ifafdual
1790
                                \copy\afdunbox
1791
                             \else
1792
                                \copy\afddnbox
1793
                             \fi
1794
                          \fi}%
1795
                         {\afwauxx{#1}{#2}{}}}%
1796

    
1797
\newcommand{\afdd }[2]{\afstemtrue\afdualfalse\afmultfalse
1798
                                  \afdisktrue\afdaux{#1}{#2}}%
1799

    
1800
\newcommand{\afDd }[2]{\afstemtrue\afdualfalse\afmulttrue
1801
                                  \afdisktrue\afdaux{#1}{#2}}%
1802

    
1803
\newcommand{\afdu }[2]{\afstemtrue\afdualtrue\afmultfalse
1804
                                  \afdisktrue\afdaux{#1}{#2}}%
1805

    
1806
\newcommand{\afDu }[2]{\afstemtrue\afdualtrue\afmulttrue
1807
                                  \afdisktrue\afdaux{#1}{#2}}%
1808

    
1809
\newcommand{\afd  }   {\afstemfalse\afdualtrue
1810
                                  \afdisktrue\afdaux{}{}}%
1811

    
1812
\newcommand{\afddc}[3]{\afstemtrue\afdualfalse\afmultfalse
1813
                                  \afdisktrue\afwauxx{#1}{#2}{#3}}%
1814

    
1815
\newcommand{\afDdc}[3]{\afstemtrue\afdualfalse\afmulttrue
1816
                                  \afdisktrue\afwauxx{#1}{#2}{#3}}%
1817

    
1818
\newcommand{\afduc}[3]{\afstemtrue\afdualtrue\afmultfalse
1819
                                  \afdisktrue\afwauxx{#1}{#2}{#3}}%
1820

    
1821
\newcommand{\afDuc}[3]{\afstemtrue\afdualtrue\afmulttrue
1822
                                  \afdisktrue\afwauxx{#1}{#2}{#3}}%
1823

    
1824
%---------------------- TOPS AND BOTTOMS
1825

    
1826
\newcommand{\afbbauxps}{%
1827
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
1828
(-0.6,-0.8)*{\afinvm};
1829
( 0.6,-0.8)*{\afinvm};
1830
(-0.6,0   );(0.6,0  )**[|<\afthickone>]@{-};
1831
( 0  ,0   );(0  ,0.8)**[|<\afthickone>]@{-}}}%
1832

    
1833
\newcommand{\afbbauxpdf}{%
1834
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
1835
(-0.6,-0.8)*{\afinvm};
1836
( 0.6,-0.8)*{\afinvm};
1837
(-0.6, 0  );(0.6,0  )**[|<\afthickone>]@{-};
1838
( 0  , 0  );(0  ,0.8)**[|<\afthickone>]@{-}}}%
1839

    
1840
\newcommand{\afbmaux}{\ifvirginialakepdflatex\afbbauxpdf\else\afbbauxps\fi}%
1841

    
1842
\newcommand{\afbm}{%
1843
\ifemptyargparamsunchangedcompileflows{}%
1844
{\ifafdual\copy\afbbubox
1845
     \else\copy\afbbdbox\fi}%
1846
{\hbox{\afbmaux}}}%
1847

    
1848
\newcommand{\afbauxx}{%
1849
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
1850
(0, 0)*{\hbox{\afbm}};
1851
(0,-4)*{\afinvm};
1852
(0, 4)*{\afinvm}}}%
1853

    
1854
\newcommand{\afbaux}{\ifemptyargparamsunchangedcompileflows{}%
1855
                       {\ifafdual\copy\afbubox\else\copy\afbdbox\fi}%
1856
                       {\afbauxx}}%
1857

    
1858
\newcommand{\afbd}  {\afdualfalse\afbaux}%
1859

    
1860
\newcommand{\afbu}  {\afdualtrue \afbaux}%
1861

    
1862
%---------------- OLD STYLE CONTRACTIONS
1863

    
1864
\newcommand{\afccaux}[2]{%
1865
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
1866
(-2,2);(0,-2)**[|<\afthickone>][#1]\crv{(-2,-0.4)};
1867
( 2,2);(0,-2)**[|<\afthickone>][#2]\crv{( 2,-0.4)}}}%
1868

    
1869
\newcommand{\afcmauxpdf}[2]{%
1870
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
1871
(-2.15,2);(-0.28,-2   )**[|<\afthickfive>][#1]\crv{(-2.15,-0.4)};
1872
( 2.15,2);( 0.28,-2   )**[|<\afthickfive>][#2]\crv{( 2.15,-0.4)};
1873
(-1.85,2);( 0   ,-1.78)**[|<\afthickfive>][#1]\crv{(-1.85,-0.3)};
1874
( 1.85,2);( 0   ,-1.78)**[|<\afthickfive>][#2]\crv{( 1.85,-0.3)}}}%
1875

    
1876
\newcommand{\afcmauxps}[2]{%
1877
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
1878
(-2.15,0)*{\afinvm};
1879
( 2.15,0)*{\afinvm};
1880
(-2,2);(0,-2)**[|<\afthickdouble>][#1][butt]\crv{(-2,-0.4)};
1881
(-2,2);(0,-2)**[|<\afthicksep   >][white]   \crv{(-2,-0.4)};
1882
( 2,2);(0,-2)**[|<\afthickdouble>][#2][butt]\crv{( 2,-0.4)};
1883
( 2,2);(0,-2)**[|<\afthicksep   >][white]   \crv{( 2,-0.4)}}}%
1884

    
1885
\newcommand{\afcmaux}[2]{\ifvirginialakepdflatex\afcmauxpdf{#1}{#2}\else
1886
                                                \afcmauxps {#1}{#2}\fi}%
1887

    
1888
\newcommand{\afcc}[2]{\ifafmult
1889
   \ifemptyargparamsunchangedcompileflows{#1#2}%
1890
   {\ifafdual\copy\afcucmbox
1891
        \else\copy\afcdcmbox\fi}%
1892
   {\afcmaux{#1}{#2}}%
1893
\else
1894
   \ifemptyargparamsunchangedcompileflows{#1#2}%
1895
   {\ifafdual\copy\afcucbox
1896
        \else\copy\afcdcbox\fi}%
1897
   {\afccaux{#1}{#2}}%
1898
\fi}%
1899

    
1900
\newcommand{\afcauxx}[9]{%
1901
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
1902
( 0  , 2  )*{\hbox{\afcc{#7}{#8}}};
1903
( 0  , 0  )*{\hbox{\afwaux{#5}{#6}{#9}}};
1904
( 0  ,-4  )*{\afinvm};
1905
(-1.7, 2.5)*{\afll{#1}};
1906
(-1.5, 2.5)*{\aflr{#2}};
1907
( 1.5, 2.5)*{\afll{#3}};
1908
( 1.7, 2.5)*{\aflr{#4}}}}%
1909

    
1910
\newcommand{\afcaux}[6]{\ifemptyargparamsunchangedcompileflows{#1#2#3#4#5#6}%
1911
   {\ifafdisk
1912
       \ifafstem
1913
          \ifafdual
1914
             \ifafmult
1915
                \copy\afCudbox
1916
             \else
1917
                \copy\afcudabox
1918
             \fi
1919
          \else
1920
             \ifafmult
1921
                \copy\afCddbox
1922
             \else
1923
                \copy\afcddabox
1924
             \fi
1925
          \fi
1926
       \else
1927
          \ifafdual
1928
             \ifafmult
1929
                \copy\afCudnbox
1930
             \else
1931
                \copy\afcudnbox
1932
             \fi
1933
          \else
1934
             \ifafmult
1935
                \copy\afCddnbox
1936
             \else
1937
                \copy\afcddnbox
1938
             \fi
1939
          \fi
1940
       \fi
1941
    \else
1942
       \ifafstem
1943
          \ifafdual
1944
             \ifafmult
1945
                \copy\afCubox
1946
             \else
1947
                \copy\afcuabox
1948
             \fi
1949
          \else
1950
             \ifafmult
1951
                \copy\afCdbox
1952
             \else
1953
                \copy\afcdabox
1954
             \fi
1955
          \fi
1956
       \else
1957
          \ifafdual
1958
             \ifafmult
1959
                \copy\afCunbox
1960
             \else
1961
                \copy\afcunbox
1962
             \fi
1963
          \else
1964
             \ifafmult
1965
                \copy\afCdnbox
1966
             \else
1967
                \copy\afcdnbox
1968
             \fi
1969
          \fi
1970
       \fi
1971
    \fi}%
1972
   {\afcauxx{#1}{#2}{#3}{#4}{#5}{#6}{}{}{}}}%
1973

    
1974
\newcommand{\afcd  }[6]{\afstemtrue\afdualfalse\afmultfalse\afdiskfalse
1975
                             \afcaux{#1}{#2}{#3}{#4}{#5}{#6}}%
1976

    
1977
\newcommand{\afCd  }[6]{\afstemtrue\afdualfalse\afmulttrue\afdiskfalse
1978
                             \afcaux{#1}{#2}{#3}{#4}{#5}{#6}}%
1979

    
1980
\newcommand{\afcu  }[6]{\afstemtrue\afdualtrue\afmultfalse\afdiskfalse
1981
                             \afcaux{#1}{#2}{#3}{#4}{#5}{#6}}%
1982

    
1983
\newcommand{\afCu  }[6]{\afstemtrue\afdualtrue\afmulttrue\afdiskfalse
1984
                             \afcaux{#1}{#2}{#3}{#4}{#5}{#6}}%
1985

    
1986
\newcommand{\afcdn }[4]{\afstemfalse\afdualfalse\afmultfalse\afdiskfalse
1987
                             \afcaux{#1}{#2}{#3}{#4}{}{}}%
1988

    
1989
\newcommand{\afCdn }[4]{\afstemfalse\afdualfalse\afmulttrue\afdiskfalse
1990
                             \afcaux{#1}{#2}{#3}{#4}{}{}}%
1991

    
1992
\newcommand{\afcun }[4]{\afstemfalse\afdualtrue\afmultfalse\afdiskfalse
1993
                             \afcaux{#1}{#2}{#3}{#4}{}{}}%
1994

    
1995
\newcommand{\afCun }[4]{\afstemfalse\afdualtrue\afmulttrue\afdiskfalse
1996
                             \afcaux{#1}{#2}{#3}{#4}{}{}}%
1997

    
1998
\newcommand{\afcdc }[9]{\afstemtrue\afdualfalse\afmultfalse\afdiskfalse
1999
                             \afcauxx{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}%
2000

    
2001
\newcommand{\afCdc }[9]{\afstemtrue\afdualfalse\afmulttrue\afdiskfalse
2002
                             \afcauxx{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}%
2003

    
2004
\newcommand{\afcuc }[9]{\afstemtrue\afdualtrue\afmultfalse\afdiskfalse
2005
                             \afcauxx{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}%
2006

    
2007
\newcommand{\afCuc }[9]{\afstemtrue\afdualtrue\afmulttrue\afdiskfalse
2008
                             \afcauxx{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}%
2009

    
2010
\newcommand{\afcdnc}[6]{\afstemfalse\afdualfalse\afmultfalse\afdiskfalse
2011
                             \afcauxx{#1}{#2}{#3}{#4}{}{}{#5}{#6}{}}%
2012

    
2013
\newcommand{\afCdnc}[6]{\afstemfalse\afdualfalse\afmulttrue\afdiskfalse
2014
                             \afcauxx{#1}{#2}{#3}{#4}{}{}{#5}{#6}{}}%
2015

    
2016
\newcommand{\afcunc}[6]{\afstemfalse\afdualtrue\afmultfalse\afdiskfalse
2017
                             \afcauxx{#1}{#2}{#3}{#4}{}{}{#5}{#6}{}}%
2018

    
2019
\newcommand{\afCunc}[6]{\afstemfalse\afdualtrue\afmulttrue\afdiskfalse
2020
                             \afcauxx{#1}{#2}{#3}{#4}{}{}{#5}{#6}{}}%
2021

    
2022
\newcommand{\afcdd  }[6]{\afstemtrue\afdualfalse\afmultfalse\afdisktrue
2023
                             \afcaux{#1}{#2}{#3}{#4}{#5}{#6}}%
2024

    
2025
\newcommand{\afCdd  }[6]{\afstemtrue\afdualfalse\afmulttrue\afdisktrue
2026
                             \afcaux{#1}{#2}{#3}{#4}{#5}{#6}}%
2027

    
2028
\newcommand{\afcud  }[6]{\afstemtrue\afdualtrue\afmultfalse\afdisktrue
2029
                             \afcaux{#1}{#2}{#3}{#4}{#5}{#6}}%
2030

    
2031
\newcommand{\afCud  }[6]{\afstemtrue\afdualtrue\afmulttrue\afdisktrue
2032
                             \afcaux{#1}{#2}{#3}{#4}{#5}{#6}}%
2033

    
2034
\newcommand{\afcddn }[4]{\afstemfalse\afdualfalse\afmultfalse\afdisktrue
2035
                             \afcaux{#1}{#2}{#3}{#4}{}{}}%
2036

    
2037
\newcommand{\afCddn }[4]{\afstemfalse\afdualfalse\afmulttrue\afdisktrue
2038
                             \afcaux{#1}{#2}{#3}{#4}{}{}}%
2039

    
2040
\newcommand{\afcudn }[4]{\afstemfalse\afdualtrue\afmultfalse\afdisktrue
2041
                             \afcaux{#1}{#2}{#3}{#4}{}{}}%
2042

    
2043
\newcommand{\afCudn }[4]{\afstemfalse\afdualtrue\afmulttrue\afdisktrue
2044
                             \afcaux{#1}{#2}{#3}{#4}{}{}}%
2045

    
2046
\newcommand{\afcddc }[9]{\afstemtrue\afdualfalse\afmultfalse\afdisktrue
2047
                             \afcauxx{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}%
2048

    
2049
\newcommand{\afCddc }[9]{\afstemtrue\afdualfalse\afmulttrue\afdisktrue
2050
                             \afcauxx{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}%
2051

    
2052
\newcommand{\afcudc }[9]{\afstemtrue\afdualtrue\afmultfalse\afdisktrue
2053
                             \afcauxx{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}%
2054

    
2055
\newcommand{\afCudc }[9]{\afstemtrue\afdualtrue\afmulttrue\afdisktrue
2056
                             \afcauxx{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}%
2057

    
2058
\newcommand{\afcddnc}[6]{\afstemfalse\afdualfalse\afmultfalse\afdisktrue
2059
                             \afcauxx{#1}{#2}{#3}{#4}{}{}{#5}{#6}{}}%
2060

    
2061
\newcommand{\afCddnc}[6]{\afstemfalse\afdualfalse\afmulttrue\afdisktrue
2062
                             \afcauxx{#1}{#2}{#3}{#4}{}{}{#5}{#6}{}}%
2063

    
2064
\newcommand{\afcudnc}[6]{\afstemfalse\afdualtrue\afmultfalse\afdisktrue
2065
                             \afcauxx{#1}{#2}{#3}{#4}{}{}{#5}{#6}{}}%
2066

    
2067
\newcommand{\afCudnc}[6]{\afstemfalse\afdualtrue\afmulttrue\afdisktrue
2068
                             \afcauxx{#1}{#2}{#3}{#4}{}{}{#5}{#6}{}}%
2069

    
2070
%--------------------- LONG CONTRACTIONS
2071

    
2072
\newcommand{\afcxqcaux}[2]{%
2073
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
2074
(-2,4);(0,-4)**[|<\afthickone>][#1]\crv{(-2,-2)&(-0.2,-1)};
2075
( 2,4);(0,-4)**[|<\afthickone>][#2]\crv{( 2,-2)&( 0.2,-1)}}}%
2076

    
2077
\newcommand{\afcxqmauxps}[2]{%
2078
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
2079
(-2,0)-<0.15\afelwidthcur,0pt>*{\afinvm};
2080
( 2,0)+<0.15\afelwidthcur,0pt>*{\afinvm};
2081
(-2,4);(0,-4)**[|<\afthickdouble>][#1][butt] \crv{(-2,-2)&(-0.2,-1)};
2082
(-2,4);(0,-4)**[|<\afthicksep   >]    [white]\crv{(-2,-2)&(-0.2,-1)};
2083
( 2,4);(0,-4)**[|<\afthickdouble>][#2][butt] \crv{( 2,-2)&( 0.2,-1)};
2084
( 2,4);(0,-4)**[|<\afthicksep   >]    [white]\crv{( 2,-2)&( 0.2,-1)}}}%
2085

    
2086
\newcommand{\afcxqmauxpdf}[2]{%
2087
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
2088
< 0.15\afelwidthcur,\ifafdual-\fi0   \afelwidthcur>="A";
2089
< 0.15\afelwidthcur,\ifafdual-\fi0.15\afelwidthcur>="B";
2090
<-0.15\afelwidthcur,\ifafdual-\fi0.15\afelwidthcur>="C";
2091
(-2,4)-"A";(0,-4)-"A"**[|<\afthickfive>][#1]\crv{(-2  ,-2   )-"B"&
2092
                                                 (-0.2,-1   )-"B"};
2093
(-2,4)+"A";(0,-4)+"A"**[|<\afthickfive>][#1]\crv{(-2  ,-2.15)+"B"&
2094
                                                 (-0.2,-0.95)+"B"};
2095
( 2,4)+"A";(0,-4)+"A"**[|<\afthickfive>][#2]\crv{( 2  ,-2   )-"C"&
2096
                                                 ( 0.2,-1   )-"C"};
2097
( 2,4)-"A";(0,-4)-"A"**[|<\afthickfive>][#2]\crv{( 2  ,-2.15)+"C"&
2098
                                                 ( 0.2,-0.95)+"C"}}}%
2099

    
2100
\newcommand{\afcxqc}[8]{\multiply\afelwidth by#5%
2101
                          \divide\afelwidth by#6%
2102
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
2103
(-1.6,-0.8)*{\afll{#1}};
2104
(-1.7, 1.3)*{\aflr{#2}};
2105
( 1.7, 1.3)*{\afll{#3}};
2106
( 1.6,-0.8)*{\aflr{#4}};
2107
( 0  , 0  )*{\hbox{\ifafmult\ifvirginialakepdflatex
2108
                    \afcxqmauxpdf{#7}{#8}\else
2109
                    \afcxqmauxps {#7}{#8}\fi\else
2110
                    \afcxqcaux   {#7}{#8}\fi}}}}%
2111

    
2112
\newcommand{\afcxqcauxx}[9]{\afcxqc{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}%
2113

    
2114
\newcommand{\afwxqaux}[5]{\afwaux{#1}{#2}{#5}}%
2115

    
2116
\newcommand{\afcxqaux}[9]{%
2117
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
2118
(0, 4.135)*{\hbox{\afcxqcauxx{#1}{#2}{#3}{#4}{#7}{#8}#9}};
2119
(0, 0    )*{\hbox{\afwxqaux{#5}{#6}#9}};
2120
(0,-4    )*{\afinvm}}}%
2121

    
2122
\newcommand{\afcxqauxdo}{\expandafter\afcxqaux\the\toks0\the\toks1}%
2123

    
2124
\newcommand\afrestparamss[3]{\toks1={{{#1}{#2}{#3}}}}%
2125

    
2126
\newcommand{\afcdX  }[8]{\afstemtrue\afdualfalse\afmultfalse\afdiskfalse
2127
                             \afcxqaux{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{{}{}{}}}%
2128

    
2129
\newcommand{\afCdX  }[8]{\afstemtrue\afdualfalse\afmulttrue\afdiskfalse
2130
                             \afcxqaux{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{{}{}{}}}%
2131

    
2132
\newcommand{\afcuX  }[8]{\afstemtrue\afdualtrue\afmultfalse\afdiskfalse
2133
                             \afcxqaux{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{{}{}{}}}%
2134

    
2135
\newcommand{\afCuX  }[8]{\afstemtrue\afdualtrue\afmulttrue\afdiskfalse
2136
                             \afcxqaux{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{{}{}{}}}%
2137

    
2138
\newcommand{\afcdnX }[6]{\afstemfalse\afdualfalse\afmultfalse\afdiskfalse
2139
                             \afcxqaux{#1}{#2}{#3}{#4}{}{}{#5}{#6}{{}{}{}}}%
2140

    
2141
\newcommand{\afCdnX }[6]{\afstemfalse\afdualfalse\afmulttrue\afdiskfalse
2142
                             \afcxqaux{#1}{#2}{#3}{#4}{}{}{#5}{#6}{{}{}{}}}%
2143

    
2144
\newcommand{\afcunX }[6]{\afstemfalse\afdualtrue\afmultfalse\afdiskfalse
2145
                             \afcxqaux{#1}{#2}{#3}{#4}{}{}{#5}{#6}{{}{}{}}}%
2146

    
2147
\newcommand{\afCunX }[6]{\afstemfalse\afdualtrue\afmulttrue\afdiskfalse
2148
                             \afcxqaux{#1}{#2}{#3}{#4}{}{}{#5}{#6}{{}{}{}}}%
2149

    
2150
\newcommand{\afcdXc }[8]{\afstemtrue\afdualfalse\afmultfalse\afdiskfalse
2151
                             \toks0={{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}%
2152
                             \afterassignment\afcxqauxdo\afrestparamss}%
2153

    
2154
\newcommand{\afCdXc }[8]{\afstemtrue\afdualfalse\afmulttrue\afdiskfalse
2155
                             \toks0={{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}%
2156
                             \afterassignment\afcxqauxdo\afrestparamss}%
2157

    
2158
\newcommand{\afcuXc }[8]{\afstemtrue\afdualtrue\afmultfalse\afdiskfalse
2159
                             \toks0={{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}%
2160
                             \afterassignment\afcxqauxdo\afrestparamss}%
2161

    
2162
\newcommand{\afCuXc }[8]{\afstemtrue\afdualtrue\afmulttrue\afdiskfalse
2163
                             \toks0={{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}%
2164
                             \afterassignment\afcxqauxdo\afrestparamss}%
2165

    
2166
\newcommand{\afcdnXc}[8]{\afstemfalse\afdualfalse\afmultfalse\afdiskfalse
2167
                             \afcxqaux{#1}{#2}{#3}{#4}{}{}{#5}{#6}{{#7}{#8}{}}}%
2168

    
2169
\newcommand{\afCdnXc}[8]{\afstemfalse\afdualfalse\afmulttrue\afdiskfalse
2170
                             \afcxqaux{#1}{#2}{#3}{#4}{}{}{#5}{#6}{{#7}{#8}{}}}%
2171

    
2172
\newcommand{\afcunXc}[8]{\afstemfalse\afdualtrue\afmultfalse\afdiskfalse
2173
                             \afcxqaux{#1}{#2}{#3}{#4}{}{}{#5}{#6}{{#7}{#8}{}}}%
2174

    
2175
\newcommand{\afCunXc}[8]{\afstemfalse\afdualtrue\afmulttrue\afdiskfalse
2176
                             \afcxqaux{#1}{#2}{#3}{#4}{}{}{#5}{#6}{{#7}{#8}{}}}%
2177

    
2178
%-------------------- SHORT CONTRACTIONS
2179

    
2180
\newcommand{\afcxncaux}[2]{%
2181
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
2182
(-2,2);(0,-2)**[|<\afthickone>][#1]\crv{(-2,-1)&(0,0.2)};
2183
( 2,2);(0,-2)**[|<\afthickone>][#2]\crv{( 2,-1)&(0,0.2)}}}%
2184

    
2185
\newcommand{\afcxnmauxps}[2]{%
2186
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
2187
(-2,0)-<0.15\afelwidthcur,0pt>*{\afinvm};
2188
( 2,0)+<0.15\afelwidthcur,0pt>*{\afinvm};
2189
(-2,2);(0,-2)**[|<\afthickdouble>][#1][butt] \crv{(-2,-1)&(0,0.2)};
2190
(-2,2);(0,-2)**[|<\afthicksep   >]    [white]\crv{(-2,-1)&(0,0.2)};
2191
( 2,2);(0,-2)**[|<\afthickdouble>][#2][butt] \crv{( 2,-1)&(0,0.2)};
2192
( 2,2);(0,-2)**[|<\afthicksep   >]    [white]\crv{( 2,-1)&(0,0.2)}}}%
2193

    
2194
\newcommand{\afcxnmauxpdf}[2]{%
2195
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
2196
< 0.15\afelwidthcur,\ifafdual-\fi0   \afelwidthcur>="A";
2197
< 0.15\afelwidthcur,\ifafdual-\fi0.15\afelwidthcur>="B";
2198
<-0.15\afelwidthcur,\ifafdual-\fi0.15\afelwidthcur>="C";
2199
(-2,2)-"A";(0,-2)-"A"**[|<\afthickfive>][#1]\crv{(-2,-1   )-"B"&(0,0.2 )-"B"};
2200
(-2,2)+"A";(0,-2)+"A"**[|<\afthickfive>][#1]\crv{(-2,-1.08)+"B"&(0,0.25)+"B"};
2201
( 2,2)+"A";(0,-2)+"A"**[|<\afthickfive>][#2]\crv{( 2,-1   )-"C"&(0,0.2 )-"C"};
2202
( 2,2)-"A";(0,-2)-"A"**[|<\afthickfive>][#2]\crv{( 2,-1.08)+"C"&(0,0.25)+"C"}}}%
2203

    
2204
\newcommand{\afcxnc}[8]{\multiply\afelwidth by#5%
2205
                          \divide\afelwidth by#6%
2206
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
2207
(-1.6,-0.9)*{\afll{#1}};
2208
(-1.7, 1.3)*{\aflr{#2}};
2209
( 1.7, 1.3)*{\afll{#3}};
2210
( 1.6,-0.9)*{\aflr{#4}};
2211
( 0  , 0  )*{\hbox{\ifafmult\ifvirginialakepdflatex
2212
                      \afcxnmauxpdf{#7}{#8}\else
2213
                      \afcxnmauxps {#7}{#8}\fi\else
2214
                      \afcxncaux   {#7}{#8}\fi}}}}%
2215

    
2216
\newcommand{\afcxncauxx}[9]{\afcxnc{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}%
2217

    
2218
\newcommand{\afwxnaux}[5]{\afwaux{#1}{#2}{#5}}%
2219

    
2220
\newcommand{\afcxnaux}[9]{%
2221
\xybox{<\afelwidth,0pt>:<0pt,\ifafdual-\fi\afelheight>::
2222
(0, 2)*{\hbox{\afcxncauxx{#1}{#2}{#3}{#4}{#7}{#8}#9}};
2223
(0, 0)*{\hbox{\afwxnaux{#5}{#6}#9}};
2224
(0,-4)*{\afinvm}}}%
2225

    
2226
\newcommand{\afcxnauxdo}{\expandafter\afcxnaux\the\toks0\the\toks1}%
2227

    
2228
\newcommand{\afcdx  }[8]{\afstemtrue\afdualfalse\afmultfalse\afdiskfalse
2229
                             \afcxnaux{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{{}{}{}}}%
2230

    
2231
\newcommand{\afCdx  }[8]{\afstemtrue\afdualfalse\afmulttrue\afdiskfalse
2232
                             \afcxnaux{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{{}{}{}}}%
2233

    
2234
\newcommand{\afcux  }[8]{\afstemtrue\afdualtrue\afmultfalse\afdiskfalse
2235
                             \afcxnaux{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{{}{}{}}}%
2236

    
2237
\newcommand{\afCux  }[8]{\afstemtrue\afdualtrue\afmulttrue\afdiskfalse
2238
                             \afcxnaux{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{{}{}{}}}%
2239

    
2240
\newcommand{\afcdnx }[6]{\afstemfalse\afdualfalse\afmultfalse\afdiskfalse
2241
                             \afcxnaux{#1}{#2}{#3}{#4}{}{}{#5}{#6}{{}{}{}}}%
2242

    
2243
\newcommand{\afCdnx }[6]{\afstemfalse\afdualfalse\afmulttrue\afdiskfalse
2244
                             \afcxnaux{#1}{#2}{#3}{#4}{}{}{#5}{#6}{{}{}{}}}%
2245

    
2246
\newcommand{\afcunx }[6]{\afstemfalse\afdualtrue\afmultfalse\afdiskfalse
2247
                             \afcxnaux{#1}{#2}{#3}{#4}{}{}{#5}{#6}{{}{}{}}}%
2248

    
2249
\newcommand{\afCunx }[6]{\afstemfalse\afdualtrue\afmulttrue\afdiskfalse
2250
                             \afcxnaux{#1}{#2}{#3}{#4}{}{}{#5}{#6}{{}{}{}}}%
2251

    
2252
\newcommand{\afcdxc }[8]{\afstemtrue\afdualfalse\afmultfalse\afdiskfalse
2253
                             \toks0={{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}%
2254
                             \afterassignment\afcxnauxdo\afrestparamss}%
2255

    
2256
\newcommand{\afCdxc }[8]{\afstemtrue\afdualfalse\afmulttrue\afdiskfalse
2257
                             \toks0={{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}%
2258
                             \afterassignment\afcxnauxdo\afrestparamss}%
2259

    
2260
\newcommand{\afcuxc }[8]{\afstemtrue\afdualtrue\afmultfalse\afdiskfalse
2261
                             \toks0={{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}%
2262
                             \afterassignment\afcxnauxdo\afrestparamss}%
2263

    
2264
\newcommand{\afCuxc }[8]{\afstemtrue\afdualtrue\afmulttrue\afdiskfalse
2265
                             \toks0={{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}%
2266
                             \afterassignment\afcxnauxdo\afrestparamss}%
2267

    
2268
\newcommand{\afcdnxc}[8]{\afstemfalse\afdualfalse\afmultfalse\afdiskfalse
2269
                             \afcxnaux{#1}{#2}{#3}{#4}{}{}{#5}{#6}{{#7}{#8}{}}}%
2270

    
2271
\newcommand{\afCdnxc}[8]{\afstemfalse\afdualfalse\afmulttrue\afdiskfalse
2272
                             \afcxnaux{#1}{#2}{#3}{#4}{}{}{#5}{#6}{{#7}{#8}{}}}%
2273

    
2274
\newcommand{\afcunxc}[8]{\afstemfalse\afdualtrue\afmultfalse\afdiskfalse
2275
                             \afcxnaux{#1}{#2}{#3}{#4}{}{}{#5}{#6}{{#7}{#8}{}}}%
2276

    
2277
\newcommand{\afCunxc}[8]{\afstemfalse\afdualtrue\afmulttrue\afdiskfalse
2278
                             \afcxnaux{#1}{#2}{#3}{#4}{}{}{#5}{#6}{{#7}{#8}{}}}%
2279

    
2280
%-------------------- VERTICAL JUNCTIONS
2281

    
2282
\newcommand{\afvaux}[5]{\divide\afelheight by2%
2283
\xybox{<\afelwidth,0pt>:<0pt,#5\afelheight>::
2284
(0,-#1);(0,#1)**[|<\afthickone>][#4]@{-};
2285
(0, #1)-(0, 4)*{\afll{#2}};
2286
(0, #1)-(0, 4)*{\aflr{#3}};
2287
(0,  4)*{\afinvm};
2288
(0, -4)*{\afinvm}}}%
2289

    
2290
\newcommand{\afVauxps}[5]{\divide\afelheight by2%
2291
\xybox{<\afelwidth,0pt>:<0pt,#5\afelheight>::
2292
( 0   ,-#1);(0,#1)**[|<\afthickdouble>][#4][butt]@{-};
2293
( 0   ,-#1);(0,#1)**[|<\afthicksep   >][white]   @{-};
2294
( 0   , #1)-(0, 4)*{\afll{#2}};
2295
( 0   , #1)-(0, 4)*{\aflr{#3}};
2296
(-0.15,  4)*{\afinvm};
2297
( 0.15, -4)*{\afinvm}}}%
2298

    
2299
\newcommand{\afVauxpdf}[5]{\divide\afelheight by2%
2300
\xybox{<\afelwidth,0pt>:<0pt,#5\afelheight>::
2301
(-0.15,-#1);(-0.15,#1)**[|<\afthickfive>][#4]@{-};
2302
( 0.15,-#1);( 0.15,#1)**[|<\afthickfive>][#4]@{-};
2303
( 0   , #1)-(0,4)*{\afll{#2}};
2304
( 0   , #1)-(0,4)*{\aflr{#3}};
2305
( 0   ,  4)*{\afinvm};
2306
( 0   , -4)*{\afinvm}}}%
2307

    
2308
\newcommand{\afVaux}[5]{\ifvirginialakepdflatex
2309
                             \afVauxpdf{#1}{#2}{#3}{#4}{#5}\else
2310
                             \afVauxps {#1}{#2}{#3}{#4}{#5}\fi}%
2311

    
2312
\newcommand{\afv  }[1]{\afvaux{#1}{}{}{}{}}%
2313

    
2314
\newcommand{\afvc }[2]{\afvaux{#1}{}{}{#2}{}}%
2315

    
2316
\newcommand{\afvd }[3]{\afvaux{#1}{#2}{#3}{}{}}%
2317

    
2318
\newcommand{\afvdc}[4]{\afvaux{#1}{#2}{#3}{#4}{}}%
2319

    
2320
\newcommand{\afvu }[3]{\afvaux{#1}{#2}{#3}{}{-}}%
2321

    
2322
\newcommand{\afvuc}[4]{\afvaux{#1}{#2}{#3}{#4}{-}}%
2323

    
2324
\newcommand{\afV  }[1]{\afVaux{#1}{}{}{}{}}%
2325

    
2326
\newcommand{\afVc }[2]{\afVaux{#1}{}{}{#2}{}}%
2327

    
2328
\newcommand{\afVd }[3]{\afVaux{#1}{#2}{#3}{}{}}%
2329

    
2330
\newcommand{\afVdc}[4]{\afVaux{#1}{#2}{#3}{#4}{}}%
2331

    
2332
\newcommand{\afVu }[3]{\afVaux{#1}{#2}{#3}{}{-}}%
2333

    
2334
\newcommand{\afVuc}[4]{\afVaux{#1}{#2}{#3}{#4}{-}}%
2335

    
2336
\newcommand{\afvdj}{\divide\afelheight by2%
2337
\xybox{<\afelwidth,0pt>:<0pt,\afelheight>::
2338
(0,-1);(0,1)**[|<\afthickone>]@{.}}}%
2339

    
2340
%---------------------- CURVED JUNCTIONS
2341

    
2342
\newcommand{\afjaux}[4]{\divide\afelheight by2%
2343
\xybox{<\afelwidth,0pt>:<0pt,#4\afelheight>::
2344
( 0, #2)="A";
2345
( 1, #2)="B";
2346
( 0,-#2)="C";
2347
( 1,-40)="D";
2348
{"A";"B":"C";"D",x}="E";
2349
( 1,-20)="F";
2350
{"A";"C":"E";"F",x}="G";
2351
(#1, #2)="H";
2352
(#1,-#2)="I";
2353
{"A";"I":"C";"H",x}="J";
2354
{"G";"J":"H";"I",x}="K";
2355
"A";"I"**[|<\afthickone>][#3]\crv{"G"&"K"}}}%
2356

    
2357
\newcommand{\afjmauxps}[4]{\divide\afelheight by2%
2358
\xybox{<\afelwidth,0pt>:<0pt,#4\afelheight>::
2359
( 0, #2)="A";
2360
( 1, #2)="B";
2361
( 0,-#2)="C";
2362
( 1,-40)="D";
2363
{"A";"B":"C";"D",x}="E";
2364
( 1,-20)="F";
2365
{"A";"C":"E";"F",x}="G";
2366
(#1, #2)="H";
2367
(#1,-#2)="I";
2368
{"A";"I":"C";"H",x}="J";
2369
{"G";"J":"H";"I",x}="K";
2370
"A"-<0.15\afelwidthcur,0pt>*{\afinvm};
2371
"I"+<0.15\afelwidthcur,0pt>*{\afinvm};
2372
"A";"I"**[|<\afthickdouble>][#3][butt]\crv{"G"&"K"};
2373
"A";"I"**[|<\afthicksep   >][white]   \crv{"G"&"K"}}}%
2374

    
2375
\newcommand{\afjmauxpdf}[4]{\divide\afelheight by2%
2376
\xybox{<\afelwidth,0pt>:<0pt,#4\afelheight>::
2377
( 0, #2)="A";
2378
( 1, #2)="B";
2379
( 0,-#2)="C";
2380
( 0, #2)+(1,40)="D";
2381
{"A";"B":"C";"D",x}="E";
2382
( 0,#2)+(1,20)="F";
2383
{"A";"C":"E";"F",x}="G";
2384
(#1, #2)="H";
2385
(#1,-#2)="I";
2386
{"A";"I":"C";"H",x}="J";
2387
{"G";"J":"H";"I",x}="K";
2388
"A"-(.15,0 )="L";
2389
"I"-(.15,0 )="M";
2390
"G"-(.15,.3)="N";
2391
"K"-(.15,.3)="O";
2392
"L";"M"**[|<\afthickfive>][#3]\crv{"N"&"O"};
2393
"A"+(.15,0 )="P";
2394
"I"+(.15,0 )="Q";
2395
"G"+(.15,.3)="R";
2396
"K"+(.15,.3)="S";
2397
"P";"Q"**[|<\afthickfive>][#3]\crv{"R"&"S"}}}%
2398

    
2399
\newcommand{\afjmaux}[4]{\ifvirginialakepdflatex
2400
                             \afjmauxpdf{#1}{#2}{#3}{#4}\else
2401
                             \afjmauxps {#1}{#2}{#3}{#4}\fi}%
2402

    
2403
\newcommand{\afjl }[2]{\afjaux{#1}{#2}{}{}}%
2404

    
2405
\newcommand{\afjlc}[3]{\afjaux{#1}{#2}{#3}{}}%
2406

    
2407
\newcommand{\afjr }[2]{\afjaux{#1}{#2}{}{-}}%
2408

    
2409
\newcommand{\afjrc}[3]{\afjaux{#1}{#2}{#3}{-}}%
2410

    
2411
\newcommand{\afJl }[2]{\afjmaux{#1}{#2}{}{}}%
2412

    
2413
\newcommand{\afJlc}[3]{\afjmaux{#1}{#2}{#3}{}}%
2414

    
2415
\newcommand{\afJr }[2]{\afjmaux{#1}{#2}{}{-}}%
2416

    
2417
\newcommand{\afJrc}[3]{\afjmaux{#1}{#2}{#3}{-}}%
2418

    
2419
\newcommand{\afex }[2]{\afexc{#1}{#2}{}{}}%
2420

    
2421
\newcommand{\afexc  }[4]{%
2422
\xybox{<\afelwidth,0pt>:<0pt,\afelheight>::
2423
(0,0)*{\hbox{\afjlc{#1}{#2}{#3}}};
2424
(0,0)*{\hbox{\afjrc{#1}{#2}{#4}}}}}%
2425

    
2426
%-------------- TRIANGLES AND RECTANGLES
2427

    
2428
\newcommand{\afexpaux}[4]{\divide\afelheight by2%
2429
\xybox{<\afelwidth,0pt>:<0pt,#4\afelheight>::
2430
(#1, #2)+(#3,0);(0,-#2)**[|<\afthickone>]@{-};
2431
(#1,-#2)+(#1,0)**[|<\afthicktwo>]@{-};
2432
(#1, #2)+(#3,0)**[|<\afthickone>]@{-}}}%
2433

    
2434
\newcommand{\afexpd}[3]{\afexpaux{#1}{#2}{#3}{}}%
2435

    
2436
\newcommand{\afexpu}[3]{\afexpaux{#1}{#2}{#3}{-}}%
2437

    
2438
\newcommand{\affraux}[3]{\divide\afelheight by2%
2439
\xybox{<.5\afelwidth,0pt>:<0pt,\afelheight>::
2440
(0,0)*[#3]{%
2441
\xybox{<.5\afelwidth,0pt>:<0pt,\afelheight>::
2442
(-#1,-#2);
2443
(-#1, #2)**[|<\afthicktwo>]@{-};
2444
( #1, #2)**[|<\afthicktwo>]@{-};
2445
( #1,-#2)**[|<\afthicktwo>]@{-};
2446
(-#1,-#2)**[|<\afthicktwo>]@{-}}}}}%
2447

    
2448
\newcommand{\affr }[2]{\affraux{#1}{#2}{}}%
2449

    
2450
\newcommand{\affrb}[2]{\divide\afthicktwo by 4%
2451
                       \affraux{#1}{#2}{F*:afbackground}}%
2452

    
2453
%------------------------------------------------ END OF MACROS FOR ATOMIC FLOWS
2454

    
2455
%----------------------------------------- \vlsmash, \vlupsmash AND \vldownsmash
2456

    
2457
\catcode`@=11
2458

    
2459
\def\upsmash{\relax % \relax, in case this comes first in \halign
2460
  \ifmmode\def\next{\mathpalette\mathupsm@sh}\else\let\next\makeupsm@sh
2461
  \fi\next}%
2462
\def\makeupsm@sh#1{\setbox\z@\hbox{#1}\finupsm@sh}%
2463
\def\mathupsm@sh#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finupsm@sh}%
2464
\def\finupsm@sh{\ht\z@\z@ \box\z@}%
2465
\def\downsmash{\relax % \relax, in case this comes first in \halign
2466
  \ifmmode\def\next{\mathpalette\mathdownsm@sh}\else\let\next\makedownsm@sh
2467
  \fi\next}%
2468
\def\makedownsm@sh#1{\setbox\z@\hbox{#1}\findownsm@sh}%
2469
\def\mathdownsm@sh#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\findownsm@sh}%
2470
\def\findownsm@sh{\dp\z@\z@ \box\z@}%
2471

    
2472
\newcommand{\vldownsmashend}{\egroup\downsmash{\vlread}}%
2473

    
2474
\newcommand{\vlupsmashend  }{\egroup  \upsmash{\vlread}}%
2475

    
2476
\newcommand{\vlsmashend    }{\egroup    \smash{\vlread}}%
2477

    
2478
\newcommand{\vldownsmash}{\strut\bgroup\vlprepstructures
2479
                          \afterassignment\vldownsmashend\global\def\vlread}%
2480

    
2481
\newcommand{\vlupsmash  }{\strut\bgroup\vlprepstructures
2482
                          \afterassignment  \vlupsmashend\global\def\vlread}%
2483

    
2484
\newcommand{\vlsmash    }{\strut\bgroup\vlprepstructures
2485
                          \afterassignment    \vlsmashend\global\def\vlread}%
2486

    
2487
%---------------------------------- END OF \vlsmash, \vlupsmash AND \vldownsmash