-
Notifications
You must be signed in to change notification settings - Fork 0
/
iucr.cls
7838 lines (7623 loc) · 291 KB
/
iucr.cls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This is the IUCr LaTeX 2e class macro file iucr.cls %
% Copyright (c) 1998-2014 International Union of Crystallography %
% %
% Usage: %
% \documentclass{iucr} for Acta A/JAC/IUCrJ paper (default) %
% \documentclass[a]{iucr} for Acta A/JAC/IUCrJ Research paper %
% \documentclass[a,short]{iucr} for Acta A/JAC Short Communication %
% \documentclass[c]{iucr} for Acta C paper %
% \documentclass[d]{iucr} for Acta B/Acta D Research paper %
% \documentclass[d,short]{iucr} for Acta B/Acta D Short paper %
% \documentclass[d,conference]{iucr} for Acta B/Acta D Conference paper %
% \documentclass[e]{iucr} for Acta E paper %
% \documentclass[s]{iucr} for JSR Full article %
% \documentclass[s,short]{iucr} for JSR Short Communication %
% \documentclass[s,conference]{iucr} for JSR Conference paper %
% \documentclass[s,nohead]{iucr} for JSR paper with no header/footer %
% \documentclass[preprint]{iucr} for preprint (1 col., wide-spaced) %
% \documentclass[it]{iucr} for International Tables chapter %
% \documentclass[vanilla]{iucr} for vanilla (general) style %
% %
% Other options (in square brackets): %
% pdf allow processing by pdflatex %
% full Research paper style (default) %
% keywords force printed keywords %
% nokeywords force no keywords %
% nohead do not print header/footer on page %
% synopsis print synopsis (default in preprint) %
% nosynopsis do not print synopsis %
% optima use Optima fonts %
% nopalatino do not use Palatino fonts %
% boldsection bold subsection style (IT Vol G) %
% %
% Compatibility options for old-style journal articles %
% o for 'old' Acta/JAC %
% x for 'old' JSR %
% %
% Author: Brian McMahon [email protected] %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ChangeLog: %
% 2.1.7 %
% 2014-01-16 New category (RP) for Acta B %
% 2.1.6 %
% 2013-03-28 New categories etc for IUCrJ %
% 2.1.5 %
% 2012-03-07 \journalaccepted etc.now defaults to \relax %
% version label footnote \b@r only in preprint now %
% 2.1.4 %
% 2010-12-07 Don't redefine \hline in table environment %
% for preprint or vanilla modes (John Edmiston) %
% 2.1.3 %
% 2010-11-11 Constrained smaller Summation to Istyle only %
% 2.1.2 %
% 2010-05-13 Fixed \parindent in two-column table environment %
% (thanks to Phil Bentley) %
% 2.1.1 %
% 2009-05-11 Added new paper category ST (running heads) %
% 2.1 %
% 2007-05-15 Added some new paper categories (running heads) %
% 2007-04-05 Added null multicols call to definition of \section %
% in preprint style (stops page running long); %
% fixed bug in \pdfbookmark calls to sections in %
% Appendices in IT style; %
% added optional argument to \aufn allowing multiple %
% footnote symbols to share same text, thanks to %
% Christian Biertuempfel %
% 2.0 %
% 2005-07-13 Released upon publication of Volume G %
% 2.0beta16 %
% 2005-07-05 Added \smallitcifname; changed the cifdefblock and %
% related macros to improve space management %
% 2005-06-29 Translated esd-su in \itemtypeconditionscode %
% 2005-06-23 Small tweak to placement of figure caption. %
% 2005-05-31 Tweaked \caption in IT tables for right font family %
% 2.0beta15 %
% 2005-01-07 Further fine tuning of cif dictionary macros %
% 2004-11-26 Began fine tuning cif dictionary macros %
% 2004-09-09 Fixed bug that lost 'A' in appendix section headings %
% with the boldsection option %
% 2004-08-12 New wording in parent/child CIF dictionary term %
% 2004-08-10 New option 'boldsection' for alternative style of %
% (sub)section headings in some Int. Tables volumes %
% 2004-07-06 Introduced example environment (similar to figure) %
% for International Tables G %
% 2004-05-19 Began to introduce some macros for Acta F %
% 2004-05-06 Allowed multiple correspondence addresses %
% 2004-04-21 Suppressed the macro version footline for IT %
% 2004-04-20 Introduced \footnotes (which draws the rule), \fnmark %
% and \fntext for manual placement of single-column %
% footnotes in the multicolumn environment. The %
% affiliationnote environment (intended primarily for %
% International Tables) is an alternative for a footnote%
% with no identifying mark %
% 2.0beta14: changes for International Tables production %
% 2004-01-12 Fixed punctuation in \ref calls; thanks to Christian %
% Anders Cumbaa; modified the environments table and %
% figure to allow an optional overriding numbering - %
% replaces the [caption] hack of beta12 and is necessary%
% for correct \ref strings %
% 2004-01-09 Began modifying page layout %
% 2.0beta13: changes for new conference abstracts style %
% 2.0beta12: changes for International Tables style %
% 2003-10-25 New command \backmatter for unnumbered final sections %
% 2003-10-21 Swapped order of running heads %
% 2003-10-19 Modified \caption in Int. Tables style to print %
% section no. and figure sequence no. %
% Incorporated the 'tweaklist.sty' package to allow %
% modification of item spacing (for Int. Tables) %
% 2.0beta11 %
% 2003-06-30 Bugfix to handle \pdfbookmark if the \hyperref %
% package hasn't been invoked. Thanks to Loic Bertrand %
% 2.0beta10 %
% 2002-12-11 Allowed keywords option in Acta conference style %
% 2.0beta9 %
% 2002-10-09 Added category SG (structural genomics papers) %
% 2002-10-28 Modified textheight in IT style from 254 to 260mm %
% 2.0beta8 %
% 2002-04-11 Backed out RequirePackage{html}: not reqd in TeXLive6 %
% 2002-01-09 Backed out the inclusion of \bgroup and \egroup in %
% the redefined \mathbf. The problem is that there is a %
% conflict in standard LaTeX between the scope of \bf %
% and \mathbf, yet \bf in math mode calls upon the %
% \mathbf macro construction. It may be best later to %
% remove the \mathbf redefinition altogether %
% 2.0beta7 %
% 2002-01-08 Added \DeclareMathSymbol{/} for bold solidus %
% 2001-12-14 Fixed scoping problem in redefined \mathbf. Thanks to %
% Gunnar Thorkildsen %
% Changed some comments; thanks to Chris Cousins %
% 2.0beta6 %
% 2001-10-25 Added RequirePackage{html} ahead of %
% RequirePackage{harvard} to cure dependency problems %
% of these two packages that call each other %
% 2.0beta5 %
% 2001-06-20 Major revamp of all styles to weed out bugs %
% 2001-06-14 New vanilla style introduced for general purposes %
% 2001-06-12 New styles introduced for Acta C and Acta E %
% There is a problem with the footer on the last page %
% of a conference paper if that page is full: the page %
% is ejected with the standard footer before the %
% AtEndDocument comes into effect. For now, we leave %
% this because conference papers will usually be run %
% with the nohead option anyway %
% 2.0beta4 %
% 2001-06-12 New style introduced for JSR; old style renamed x; %
% option nohead introduced for JSR to omit headers and %
% footers in camera-ready contributions %
% 2.0beta3 %
% 2001-04-05 some small mods to CIF macros for ITVG %
% 2000-10-10 default LaTeX \index commands reinstated in it style %
% 2.0beta2 %
% 2000-04-06 fixed single-line fig captions, conference r/head %
% 2000-02-08 modified \thebibliography to include heading for [a,d]%
% 1999-12-16 added \pdfbookmark to section definitions (pdflatex) %
% 2.0beta1 %
% 1999-12-10 preprint style simplified: no r/heads, wider margins %
% 1999-12-07 new journal styles introduced as option a; old style %
% renamed as option o %
% 1.0 %
% 1999-07-01 twoside option reintroduced to article base class %
% 1999-06-04 bold upright Greek font descriptions introduced %
% 1999-05-15 version released as 1.0 %
% beta-4 %
% 1999-05-15 some more small improvements; release version %
% 1999-05-14 some small bugfixes and improvements; \PDBref and %
% \NDBref added for Acta D papers; awkward positioning %
% of footnotes on first page of new-style Acta articles %
% achieved %
% 1999-05-13 full articles and short contributions working %
% 1999-05-11 some minor style mods to D/conference style %
% 1999-05-07 first working version of conference style %
% 1999-05-06 began work on Acta D/SAS conference style %
% beta-3 %
% 1999-05-04 bugfix: _ in ciflisting environment redefined as %
% \char'137{} (with trailing {} to prevent collision %
% with following material) %
% 1999-04-01 bugfix: \journalreceived failed for e.g. 11 May %
% 1999-03-09 cif macros modified so that underscore can be used %
% in \ref and other places (thanks to Thomas Proffen) %
% 1999-03-01 \section now uses standard \@startsection directives %
% (with \global\@afterindentfalse to cancel indent of %
% first paragraph) %
% 1999-02-10 macros added for typesetting CIF listings and CIF %
% dictionary entries %
% 1999-02-04 `raggedstyle' conditional introduced for subject %
% indexes (and \idxsubentry) %
% 1998-11-18 Organic, Inorganic index categories for Acta C %
% 1998-11-09 Bugfix to catchline for Acta C %
% 1998-11-05 Made \journal... and \paper... macros preamble only %
% 1998-11-03 Added 4th and 5th level sections to IT %
% 1998-10-28 Font work: Times allowed in equations, sloping Greek %
% and bold Greek handled OK %
% 1998-10-27 first pass at an International Tables style: page %
% size and gross style elements %
% 1998-10-26 index environment introduced; catchline built up %
% in a box (not on the fly as before) %
% beta-2 %
% 1998-09-08 thebibliography environment modified following %
% Matt Newville [email protected]; originally %
% \referencelist was a wrapper for \bibliography that %
% supplied appropriate font and style changes; but some %
% authors habitually use \bibliography explicitly %
% 1998-09-04 Added preprint style %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% WARNING: the following global box registers are specifically assigned:
% \box0, \box2 (in \author); \box4 (\aff); \box6 (\cauthor);
% \box8 (keyindicators environment); \box128 (synopsis environment)
% Non-global registers are \box1 (\author); \box3 (\aff);
% \box5 (\journalreceived, journalaccepted); \box7 (\keyword)
%
% ====================== version and identifying label =======================
\def\f@@{2014/01/16 }
%\def\b@r{{\tiny IUCr macros version 2.1.7: \f@@ \hfill}}
\def\b@r{\relax}
% ====================== some early conditionals declared ====================
\newif\ifAstyl@\Astyl@true % Logical flags to check
\newif\ifCstyl@\Cstyl@false % style of journal; default
\newif\ifDstyl@\Dstyl@false % is A (Acta A/JAC); also
\newif\ifEstyl@\Estyl@false % provided: D (Acta B/D); C
\newif\ifIstyl@\Istyl@false % (Acta C); E (Acta E); S
\newif\ifSstyl@\Sstyl@false % (camera-ready JSR); O (old
\newif\ifOstyl@\Ostyl@false % Acta/JAC); X (old JSR);
\newif\ifPstyl@\Pstyl@false % I (International Tables);
\newif\ifVstyl@\Vstyl@false % P (preprint); V (vanilla),
\newif\ifXstyl@\Xstyl@false % Y (conference abstract)
\newif\ifYstyl@\Ystyl@false %
\newif\ifF@ll\F@lltrue % Paper styles: default F
\newif\ifSh@rt\Sh@rtfalse % (full); S (short); C
\newif\ifC@nf\C@nffalse % conference proceedings)
\newif\ifsingl@col\singl@coltrue % Single column setting?
\newif\ifOptim@\Optim@false % Is Optima font available?
\newif\ifPalatin@\Palatin@true % Is Palatino font available?
\newif\ifChe@dings\Che@dingsfalse % Acta C subject headings?
\newif\ifhe@ders\he@derstrue % Print page headers/footers?
\newif\ifsyn@p\syn@pfalse % Print synopsis?
\newif\ifkeyw@rd\keyw@rdfalse % Print keywords?
\newif\ifc@pyright\c@pyrighttrue % Print copyright details?
\newif\ifmkttl\mkttlfalse % Was author group printed?
\newif\iffirsts@c\firsts@ctrue % Short contributions effect
% many page layout actions
% when first section begins
\newif\iffn@ffset\fn@ffsetfalse % Footnotes with an offset?
\newif\ifprintd@tes\printd@testrue % Print recd/acc dates?
\newif\ifPDF\PDFfalse % Using pdflatex?
\newif\ifC@l@r\C@l@rfalse % colour available?
\newif\if@ppend@x\@ppend@xfalse % within appendix section?
\newif\ifb@lds@ction\b@lds@ctionfalse % subsection style of IT
\let\f@@tn@te\footnote% % In new-style articles a
% title footnote is treated
% differently; in the title
% \footnote is \let equal to
% \t@tlefn; so need to store
% old definition of \footnote
\newcommand{\chapter}{\relax}% % Gets redefined for IT
\newcommand{\theBOOKMARKsection}{\relax}% % Gets redefined for IT
\newcounter{chapter}
\newcounter{example}
% ====================== identification ======================================
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{iucr}[\f@@ IUCr article/chapter class]
% ====================== declaration of options ==============================
\DeclareOption{a}{% % Acta A/JAC style
\ifC@nf% % conference type overrides
\Astyl@false%
\Dstyl@true%
\else%
\Astyl@true%
\Dstyl@false%
\fi%
\Cstyl@false%
\Estyl@false%
\Istyl@false%
\Sstyl@false%
\Ostyl@false%
\Pstyl@false%
\Vstyl@false%
\Xstyl@false%
\Ystyl@false%
}
\DeclareOption{c}{% % Acta C style
\Astyl@false%
\Cstyl@true%
\Dstyl@false%
\Estyl@false%
\Istyl@false%
\Sstyl@false%
\Ostyl@false%
\Pstyl@false%
\Vstyl@false%
\Xstyl@false%
\Ystyl@false%
}
\DeclareOption{d}{% % Acta B/Acta D style
\Astyl@false%
\Cstyl@false%
\Dstyl@true%
\Estyl@false%
\Istyl@false%
\Sstyl@false%
\Ostyl@false%
\Pstyl@false%
\Vstyl@false%
\Xstyl@false%
\Ystyl@false%
}
\DeclareOption{e}{% % Acta E style
\Astyl@false%
\Cstyl@false%
\ifC@nf% % conference type overrides
\Estyl@false%
\Dstyl@true%
\else%
\Estyl@true%
\Dstyl@false%
\fi%
\Istyl@false%
\Sstyl@false%
\Ostyl@false%
\Pstyl@false%
\Vstyl@false%
\Xstyl@false%
\Ystyl@false%
}
\DeclareOption{s}{% % JSR style
\Astyl@false%
\Cstyl@false%
\Dstyl@false%
\Estyl@false%
\Istyl@false%
\Sstyl@true%
\Ostyl@false%
\Pstyl@false%
\Vstyl@false%
\Xstyl@false%
\Ystyl@false%
}
\DeclareOption{o}{% % old Acta style
\Astyl@false%
\Cstyl@false%
\Dstyl@false%
\Estyl@false%
\Istyl@false%
\Sstyl@false%
\Ostyl@true%
\Pstyl@false%
\Vstyl@false%
\Xstyl@false%
\Ystyl@false%
}
\DeclareOption{vanilla}{% % vanilla style
\Astyl@false%
\Cstyl@false%
\Dstyl@false%
\Estyl@false%
\Istyl@false%
\Sstyl@false%
\Ostyl@false%
\Pstyl@false%
\Vstyl@true%
\Xstyl@false%
\Ystyl@false%
}
\DeclareOption{x}{% % old JSR style
\Astyl@false%
\Cstyl@false%
\Dstyl@false%
\Estyl@false%
\Istyl@false%
\Sstyl@false%
\Ostyl@false%
\Pstyl@false%
\Vstyl@false%
\Xstyl@true%
\Ystyl@false%
}
\DeclareOption{it}{% % International Tables style
\Astyl@false%
\Cstyl@false%
\Dstyl@false%
\Estyl@false%
\Istyl@true%
\Sstyl@false%
\Ostyl@false%
\Pstyl@false%
\Vstyl@false%
\Xstyl@false%
\Ystyl@false%
\let\b@r\relax% % vanish iucr identifier too
}
\DeclareOption{preprint}{% % Preprint style
\Astyl@false%
\Cstyl@false%
\Dstyl@false%
\Estyl@false%
\Istyl@false%
\Sstyl@false%
\Ostyl@false%
\Pstyl@true%
\Vstyl@false%
\Xstyl@false%
\Ystyl@false%
\syn@ptrue% % print synopsis
}
\DeclareOption{full}{% % Full articles
\C@nffalse%
\F@lltrue%
\Sh@rtfalse%
}
\DeclareOption{short}{% % Short Communications
\C@nffalse%
\F@llfalse
\Sh@rttrue%
}
\DeclareOption{abstract}{% % Conference abstracts
\C@nffalse%
\F@llfalse
\Sh@rtfalse%
\Astyl@false%
\Cstyl@false%
\Dstyl@false%
\Estyl@false%
\Istyl@false%
\Sstyl@false%
\Ostyl@false%
\Pstyl@false%
\Vstyl@false%
\Xstyl@false%
\Ystyl@true%
}
\DeclareOption{conference}{% % Conference proceedings
\C@nftrue%
\F@llfalse%
\Sh@rtfalse%
\ifAstyl@%
\Astyl@false\Dstyl@true\fi% % conference overrides
\ifCstyl@%
\Cstyl@false\Dstyl@true\Che@dingstrue\fi% % conference overrides
\ifEstyl@%
\Estyl@false\Dstyl@true\Che@dingstrue\fi% % conference overrides
\ifOstyl@%
\C@nffalse\Sh@rttrue\fi% % same as short for old Acta
\ifXstyl@%
\C@nffalse\Sh@rttrue\fi% % same as short for old JSR
}
\DeclareOption{keywords}{% % Force printed keywords
\keyw@rdtrue
}
\DeclareOption{nokeywords}{% % Force no keywords
\keyw@rdfalse
}
\DeclareOption{nohead}{% % No page headers or footers
\he@dersfalse%
\let\b@r\relax% % vanish iucr identifier too
}
\DeclareOption{nosynopsis}{% % Do not print synopsis
\syn@pfalse%
}
\DeclareOption{synopsis}{% % Print synopsis
\syn@ptrue%
}
\DeclareOption{optima}{% % Optima available as sanserif
\Optim@true%
}
\DeclareOption{nopalatino}{% % Palatino for 'sanserif'
\Palatin@false% % (unless unavailable)
}
\DeclareOption{pdf}{% % Allow processing by pdftex
\PDFtrue%
}
\DeclareOption{boldsection}{% % Use bold subsection heads
\b@lds@ctiontrue%
}
% ====================== execution of options ================================
\ProcessOptions
% ====================== load required packages ==============================
\ifPstyl@\RequirePackage{multicol}\else\RequirePackage{multicol, times}\fi
% Change sanserif family for new-style Acta papers; authors probably won't have
% Optima (the house font), so may use Palatino (which is actually a serifed
% font); if that's not available, they can fall back on Times
\ifAstyl@%
\renewcommand{\sfdefault}{ptm} % Times
\ifPalatin@\renewcommand{\sfdefault}{ppl}\fi % Palatino
\ifOptim@\renewcommand{\sfdefault}{pop}\fi % Optima
\fi
\ifCstyl@%
\renewcommand{\sfdefault}{ptm} % Times
\ifPalatin@\renewcommand{\sfdefault}{ppl}\fi % Palatino
\ifOptim@\renewcommand{\sfdefault}{pop}\fi % Optima
\fi
\ifDstyl@%
\renewcommand{\sfdefault}{ptm} % Times
\ifPalatin@\renewcommand{\sfdefault}{ppl}\fi % Palatino
\ifOptim@\renewcommand{\sfdefault}{pop}\fi % Optima
\fi
\ifEstyl@%
\renewcommand{\sfdefault}{ptm} % Times
\ifPalatin@\renewcommand{\sfdefault}{ppl}\fi % Palatino
\ifOptim@\renewcommand{\sfdefault}{pop}\fi % Optima
\fi
\ifVstyl@%
\renewcommand{\sfdefault}{ptm} % Times
\ifPalatin@\renewcommand{\sfdefault}{ppl}\fi % Palatino
\ifOptim@\renewcommand{\sfdefault}{pop}\fi % Optima
\fi
\ifPDF\RequirePackage[dvips,pdftex]{graphics}%
\else\RequirePackage[dvips]{graphics}\fi
\RequirePackage{float}
\RequirePackage{tabularx}
\InputIfFileExists{colordvi.tex}{\global\C@l@rtrue}{\global\C@l@rfalse}
%\RequirePackage{boxedminipage}
% The boxedminipage environment of Wolczko is incorporated in its entirety to
% reduce the number of extra packages that users need to have installed
%#############################################################################
%%% ====================================================================
%%% @LaTeX-style-file{
%%% author = "Mario Wolczko",
%%% version = "2",
%%% date = "21 May 1992",
%%% time = "20:55:01 BST",
%%% filename = "boxedminipage.sty",
%%% address = "Dept of Computer Science
%%% The University of Manchester
%%% Oxford Road
%%% Manchester M13 9PL
%%% UK",
%%% telephone = "+44-61-275-6146",
%%% FAX = "+44-61-275-6236",
%%% checksum = "04781 71 253 2587",
%%% email = "[email protected] (Internet)",
%%% codetable = "ISO/ASCII",
%%% keywords = "LaTeX, minipage, framebox",
%%% supported = "yes",
%%% docstring = "LaTeX document-style option which defines
%%% the boxedminipage environment -- just like minipage, but with
%%% a box around it.",
%%% }
%%% ====================================================================
%
% The thickness of the rules around the box is controlled by
% \fboxrule, and the distance between the rules and the edges of the
% inner box is governed by \fboxsep.
%
% This code is based on Lamport's minipage code.
%
% Fixed, 7 Jun 89 by Jerry Leichter
% Leave \fboxsep worth of separation at top and bottom, not just at
% the sides!
%
\def\boxedminipage{\@ifnextchar [{\@iboxedminipage}{\@iboxedminipage[c]}}
\def\@iboxedminipage[#1]#2{\leavevmode \@pboxswfalse
\if #1b\vbox
\else \if #1t\vtop
\else \ifmmode \vcenter
\else \@pboxswtrue $\vcenter
\fi
\fi
\fi\bgroup % start of outermost vbox/vtop/vcenter
\hsize #2
%\hrule\@height\fboxrule %% amended as below by bm
\hrule height9.4pt depth-9pt
\hbox\bgroup % inner hbox
\vrule\@width\fboxrule \hskip\fboxsep \vbox\bgroup % innermost vbox
\vskip\fboxsep
\advance\hsize -2\fboxrule \advance\hsize-2\fboxsep
\textwidth\hsize \columnwidth\hsize
\@parboxrestore
\def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
\let\@footnotetext\@mpfootnotetext
\let\@listdepth\@mplistdepth \@mplistdepth\z@
\@minipagerestore\@minipagetrue
\everypar{\global\@minipagefalse\everypar{}}}
\def\endboxedminipage{%
\par\vskip-\lastskip
\ifvoid\@mpfootins\else
\vskip\skip\@mpfootins\footnoterule\unvbox\@mpfootins\fi
\vskip\fboxsep
\egroup % ends the innermost \vbox
\hskip\fboxsep \vrule\@width\fboxrule
\egroup % ends the \hbox
\hrule\@height\fboxrule
\egroup% ends the vbox/vtop/vcenter
\if@pboxsw $\fi}
%#############################################################################
%\RequirePackage{tweaklist}
% The tweaklist.sty package of Schiotz is incorporated in its entirety to
% reduce the number of extra packages that users need to have installed
% It provides hooks to change line spacing in various list environments
%#############################################################################
\def\enumhook{}
\def\enumhooki{}
\def\enumhookii{}
\def\enumhookiii{}
\def\enumhookiv{}
\def\itemhook{}
\def\itemhooki{}
\def\itemhookii{}
\def\itemhookiii{}
\def\itemhookiv{}
\def\descripthook{}
\def\enumerate{%
\ifnum \@enumdepth >\thr@@\@toodeep\else
\advance\@enumdepth\@ne
\edef\@enumctr{enum\romannumeral\the\@enumdepth}%
\expandafter
\list
\csname label\@enumctr\endcsname
{\usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}%
\enumhook \csname enumhook\romannumeral\the\@enumdepth\endcsname}%
\fi}
\def\itemize{%
\ifnum \@itemdepth >\thr@@\@toodeep\else
\advance\@itemdepth\@ne
\edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
\expandafter
\list
\csname\@itemitem\endcsname
{\def\makelabel##1{\hss\llap{##1}}%
\itemhook \csname itemhook\romannumeral\the\@itemdepth\endcsname}%
\fi}
%\renewenvironment{description}
%{\list{}{\labelwidth\z@ \itemindent-\leftmargin
%\let\makelabel\descriptionlabel\descripthook}}
%{\endlist}
%#############################################################################
% eqalign.sty: filched from http://keil.home.cern.ch/keil/Doc/eqalign.sty
%#############################################################################
% This is eqalign.tex in text format as of 30 July 1987.
% The following definition is straight from PLAIN.TEX
% This file exists as a LaTeX style option to enable users to
% put back something that LaTeX removed from PLAIN but which
% is sorely missed by people who write long equations.
% You should be able to add 'eqalign' to the options list in square
% brackets which specifies the options of any standard LaTeX style.
% This file may also be input into a STY file e.g. the LEPNOTE style
% option includes it automatically.
% Do not attempt to input it anywhere in a LaTeX document.
\def\eqalign#1{%
\null\,\vcenter{\openup\jot\m@th
\ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil
\crcr#1\crcr}}\,}
% \eqalign works inside $$ ... $$ or \[ ... \] in LaTeX thanks to the
% above restoration. This should help remedy the deficiencies of
% the eqnarray environment for long expressions.
% It seems to work also in the equation environment if you put
% the \label command inside an \hbox.
% This seems to resolve a problem with math glue from \eqalign mixing
% with ordinary glue generated by \label. God help us.
% Use of \eqalign is explained in the TeXbook.
% * * Restored at 12:21:30 on 17 Jul 1987 by JOWETT
%#############################################################################
% ====================== load base class =====================================
\ifPstyl@%
\LoadClass[11pt]{article}%
\else%
\LoadClass[twoside]{article}%
\fi%
% ================ load additional required packages =========================
% (harvard.sty loads html.sty if present, which uses counters defined in
% article.cls)
% \RequirePackage{html}
\RequirePackage{harvard}
% ====================== main code ===========================================
% First, some fairly hairy font stuff, based originally on the mathptm
% package by S. Rahtz, distributed as part of standard LaTeX. Declare the
% standard PostScript fonts for use in equations, but prefer Computer
% Modern for symbols and Greek lower-case letters, which we need in a
% slanted form. Sometimes we need bold Greek lowercase letters. We achieve
% this in two ways: the \SetSymbolFont{greek}{bold} makes Greek letters
% bold when \mathversion{bold} is declared (this is used e.g. to make a
% formula bold within a heading or title). We also define individual
% symbols (e.g. \bfalpha) to obtain bold single letters. This is compatible
% with the practice in the iucmac plain TeX macro package. However, it
% introduces non-standard macro names which we prefer not to inflict upon
% authors. So instead we redefine the standard \mathbf to change every Greek
% symbol macro name to its bold equivalent.
\ifPstyl@
\DeclareMathAlphabet{\mathsfrm}{OT1}{phv}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{phv}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{phv}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{phv}{b}{it}
\else
\def\rmdefault{ptm}
\DeclareSymbolFont{operators} {OT1}{ptmcm}{m}{n}
\SetSymbolFont{operators} {bold}{OT1}{ptm}{b}{n}
\DeclareSymbolFont{letters} {OML}{ptmcm}{m}{it}
\SetSymbolFont{letters} {bold}{OT1}{ptm}{b}{it}
\message{FONT WARNINGS CAN USUALLY BE IGNORED. IF YOU EXPERIENCE}
\message{PROBLEMS WITH FONTS, USE THE [preprint] OPTION}
\DeclareSymbolFont{symbols} {OMS}{cmsy}{m}{n}
\DeclareSymbolFont{largesymbols}{OMX}{cmex}{m}{n}
\DeclareSymbolFont{bold} {OT1}{ptm}{bx}{n}
\DeclareSymbolFont{italic} {OT1}{ptm}{m}{it}
\SetSymbolFont{italic} {bold}{OT1}{ptm}{b}{it}
\DeclareSymbolFont{greek} {OML}{cmm}{m}{it}
\SetSymbolFont{greek} {bold}{OML}{cmm}{b}{it}
\DeclareSymbolFont{uprightgreek}{OT1}{ptmcm}{m}{n}
\SetSymbolFont{uprightgreek} {bold}{OT1}{cmr}{bx}{n}
\DeclareSymbolFont{boldgreek} {OML}{cmm}{b}{it}
\DeclareSymbolFont{bolduprightgreek}{OT1}{cmr}{bx}{n}
\DeclareMathSymbol{\alpha}{0}{greek}{"0B}
\DeclareMathSymbol{\bfalpha}{0}{boldgreek}{"0B}
\DeclareMathSymbol{\beta}{0}{greek}{"0C}
\DeclareMathSymbol{\bfbeta}{0}{boldgreek}{"0C}
\DeclareMathSymbol{\gamma}{0}{greek}{"0D}
\DeclareMathSymbol{\bfgamma}{0}{boldgreek}{"0D}
\DeclareMathSymbol{\delta}{0}{greek}{"0E}
\DeclareMathSymbol{\bfdelta}{0}{boldgreek}{"0E}
\DeclareMathSymbol{\epsilon}{0}{greek}{"0F}
\DeclareMathSymbol{\bfepsilon}{0}{boldgreek}{"0F}
\DeclareMathSymbol{\zeta}{0}{greek}{"10}
\DeclareMathSymbol{\bfzeta}{0}{boldgreek}{"10}
\DeclareMathSymbol{\eta}{0}{greek}{"11}
\DeclareMathSymbol{\bfeta}{0}{boldgreek}{"11}
\DeclareMathSymbol{\theta}{0}{greek}{"12}
\DeclareMathSymbol{\bftheta}{0}{boldgreek}{"12}
\DeclareMathSymbol{\iota}{0}{greek}{"13}
\DeclareMathSymbol{\bfiota}{0}{boldgreek}{"13}
\DeclareMathSymbol{\kappa}{0}{greek}{"14}
\DeclareMathSymbol{\bfkappa}{0}{boldgreek}{"14}
\DeclareMathSymbol{\lambda}{0}{greek}{"15}
\DeclareMathSymbol{\bflambda}{0}{boldgreek}{"15}
\DeclareMathSymbol{\mu}{0}{greek}{"16}
\DeclareMathSymbol{\bfmu}{0}{boldgreek}{"16}
\DeclareMathSymbol{\nu}{0}{greek}{"17}
\DeclareMathSymbol{\bfnu}{0}{boldgreek}{"17}
\DeclareMathSymbol{\xi}{0}{greek}{"18}
\DeclareMathSymbol{\bfxi}{0}{boldgreek}{"18}
\DeclareMathSymbol{\pi}{0}{greek}{"19}
\DeclareMathSymbol{\bfpi}{0}{boldgreek}{"19}
\DeclareMathSymbol{\rho}{0}{greek}{"1A}
\DeclareMathSymbol{\bfrho}{0}{boldgreek}{"1A}
\DeclareMathSymbol{\sigma}{0}{greek}{"1B}
\DeclareMathSymbol{\bfsigma}{0}{boldgreek}{"1B}
\DeclareMathSymbol{\tau}{0}{greek}{"1C}
\DeclareMathSymbol{\bftau}{0}{boldgreek}{"1C}
\DeclareMathSymbol{\upsilon}{0}{greek}{"1D}
\DeclareMathSymbol{\bfupsilon}{0}{boldgreek}{"1D}
\DeclareMathSymbol{\phi}{0}{greek}{"1E}
\DeclareMathSymbol{\bfphi}{0}{boldgreek}{"1E}
\DeclareMathSymbol{\chi}{0}{greek}{"1F}
\DeclareMathSymbol{\bfchi}{0}{boldgreek}{"1F}
\DeclareMathSymbol{\psi}{0}{greek}{"20}
\DeclareMathSymbol{\bfpsi}{0}{boldgreek}{"20}
\DeclareMathSymbol{\omega}{0}{greek}{"21}
\DeclareMathSymbol{\bfomega}{0}{boldgreek}{"21}
\DeclareMathSymbol{\varepsilon}{0}{greek}{"22}
\DeclareMathSymbol{\bfvarepsilon}{0}{boldgreek}{"22}
\DeclareMathSymbol{\vartheta}{0}{greek}{"23}
\DeclareMathSymbol{\bfvartheta}{0}{boldgreek}{"23}
\DeclareMathSymbol{\varpi}{0}{greek}{"24}
\DeclareMathSymbol{\bfvarpi}{0}{boldgreek}{"24}
\DeclareMathSymbol{\varrho}{0}{greek}{"25}
\DeclareMathSymbol{\bfvarrho}{0}{boldgreek}{"25}
\DeclareMathSymbol{\varsigma}{0}{greek}{"26}
\DeclareMathSymbol{\bfvarsigma}{0}{boldgreek}{"26}
\DeclareMathSymbol{\varphi}{0}{greek}{"27}
\DeclareMathSymbol{\bfvarphi}{0}{boldgreek}{"27}
\DeclareMathSymbol{\Gamma}{0}{uprightgreek}{"00}
\DeclareMathSymbol{\bfGamma}{0}{bolduprightgreek}{"00}
\DeclareMathSymbol{\Delta}{0}{uprightgreek}{"01}
\DeclareMathSymbol{\bfDelta}{0}{bolduprightgreek}{"01}
\DeclareMathSymbol{\Theta}{0}{uprightgreek}{"02}
\DeclareMathSymbol{\bfTheta}{0}{bolduprightgreek}{"02}
\DeclareMathSymbol{\Lambda}{0}{uprightgreek}{"03}
\DeclareMathSymbol{\bfLambda}{0}{bolduprightgreek}{"03}
\DeclareMathSymbol{\Xi}{0}{uprightgreek}{"04}
\DeclareMathSymbol{\bfXi}{0}{bolduprightgreek}{"04}
\DeclareMathSymbol{\Pi}{0}{uprightgreek}{"05}
\DeclareMathSymbol{\bfPi}{0}{bolduprightgreek}{"05}
\DeclareMathSymbol{\Sigma}{0}{uprightgreek}{"06}
\DeclareMathSymbol{\bfSigma}{0}{bolduprightgreek}{"06}
\DeclareMathSymbol{\Upsilon}{0}{uprightgreek}{"07}
\DeclareMathSymbol{\bfUpsilon}{0}{bolduprightgreek}{"07}
\DeclareMathSymbol{\Phi}{0}{uprightgreek}{"08}
\DeclareMathSymbol{\bfPhi}{0}{bolduprightgreek}{"08}
\DeclareMathSymbol{\Psi}{0}{uprightgreek}{"09}
\DeclareMathSymbol{\bfPsi}{0}{bolduprightgreek}{"09}
\DeclareMathSymbol{\Omega}{0}{uprightgreek}{"0A}
\DeclareMathSymbol{\bfOmega}{0}{bolduprightgreek}{"0A}
\@ifundefined{mathbf}{}{\DeclareMathAlphabet{\mathbf}{OT1}{ptm}{bx}{n}}
\@ifundefined{mathit}{}{\DeclareMathAlphabet{\mathit}{OT1}{ptm}{m}{it}}
\@ifundefined{mathbi}{}{\DeclareMathAlphabet{\mathbi}{OT1}{ptm}{b}{it}}
\ifIstyl@\else\DeclareMathSymbol{/}{\mathord}{operators}{"2F}\fi
\ifAstyl@% % Appropriate 'sanserif' font
\DeclareMathAlphabet{\mathsfrm}{OT1}{ptm}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{ptm}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{ptm}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{ptm}{b}{it}
\ifOptim@
\DeclareMathAlphabet{\mathsfrm}{OT1}{pop}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{pop}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{pop}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{pop}{b}{it}
\fi
\ifPalatin@
\DeclareMathAlphabet{\mathsfrm}{OT1}{ppl}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{ppl}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{ppl}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{ppl}{b}{it}
\fi
\fi
\ifCstyl@% % Appropriate 'sanserif' font
\DeclareMathAlphabet{\mathsfrm}{OT1}{ptm}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{ptm}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{ptm}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{ptm}{b}{it}
\ifOptim@
\DeclareMathAlphabet{\mathsfrm}{OT1}{pop}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{pop}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{pop}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{pop}{b}{it}
\fi
\ifPalatin@
\DeclareMathAlphabet{\mathsfrm}{OT1}{ppl}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{ppl}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{ppl}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{ppl}{b}{it}
\fi
\fi
\ifDstyl@% % Appropriate 'sanserif' font
\DeclareMathAlphabet{\mathsfrm}{OT1}{ptm}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{ptm}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{ptm}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{ptm}{b}{it}
\ifOptim@
\DeclareMathAlphabet{\mathsfrm}{OT1}{pop}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{pop}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{pop}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{pop}{b}{it}
\fi
\ifPalatin@
\DeclareMathAlphabet{\mathsfrm}{OT1}{ppl}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{ppl}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{ppl}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{ppl}{b}{it}
\fi
\fi
\ifEstyl@% % Appropriate 'sanserif' font
\DeclareMathAlphabet{\mathsfrm}{OT1}{ptm}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{ptm}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{ptm}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{ptm}{b}{it}
\ifOptim@
\DeclareMathAlphabet{\mathsfrm}{OT1}{pop}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{pop}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{pop}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{pop}{b}{it}
\fi
\ifPalatin@
\DeclareMathAlphabet{\mathsfrm}{OT1}{ppl}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{ppl}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{ppl}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{ppl}{b}{it}
\fi
\fi
\ifIstyl@%
\DeclareMathAlphabet{\mathsfrm}{OT1}{phv}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{phv}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{phv}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{phv}{b}{it}
\fi
\ifSstyl@%
\DeclareMathAlphabet{\mathsfrm}{OT1}{phv}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{phv}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{phv}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{phv}{b}{it}
\fi
\ifOstyl@%
\DeclareMathAlphabet{\mathsfrm}{OT1}{phv}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{phv}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{phv}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{phv}{b}{it}
\fi
\ifVstyl@% % Appropriate 'sanserif' font
\DeclareMathAlphabet{\mathsfrm}{OT1}{ptm}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{ptm}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{ptm}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{ptm}{b}{it}
\ifOptim@
\DeclareMathAlphabet{\mathsfrm}{OT1}{pop}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{pop}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{pop}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{pop}{b}{it}
\fi
\ifPalatin@
\DeclareMathAlphabet{\mathsfrm}{OT1}{ppl}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{ppl}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{ppl}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{ppl}{b}{it}
\fi
\fi
\ifXstyl@%
\DeclareMathAlphabet{\mathsfrm}{OT1}{phv}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{phv}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{phv}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{phv}{b}{it}
\fi
\ifYstyl@% % Appropriate 'sanserif' font
\DeclareMathAlphabet{\mathsfrm}{OT1}{ptm}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{ptm}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{ptm}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{ptm}{b}{it}
\ifOptim@
\DeclareMathAlphabet{\mathsfrm}{OT1}{pop}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{pop}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{pop}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{pop}{b}{it}
\fi
\ifPalatin@
\DeclareMathAlphabet{\mathsfrm}{OT1}{ppl}{m}{n}
\DeclareMathAlphabet{\mathsfit}{OT1}{ppl}{m}{it}
\DeclareMathAlphabet{\mathsfbf}{OT1}{ppl}{b}{n}
\DeclareMathAlphabet{\mathsfbi}{OT1}{ppl}{b}{it}
\fi
\fi
\let\m@thbf\mathbf
\renewcommand{\mathbf}[1]{
\let\alpha\bfalpha
\let\beta\bfbeta
\let\gamma\bfgamma
\let\delta\bfdelta
\let\epsilon\bfepsilon
\let\zeta\bfzeta
\let\eta\bfeta
\let\theta\bftheta
\let\iota\bfiota
\let\kappa\bfkappa
\let\lambda\bflambda
\let\mu\bfmu
\let\nu\bfnu
\let\xi\bfxi
\let\pi\bfpi
\let\rho\bfrho
\let\sigma\bfsigma
\let\tau\bftau
\let\upsilon\bfupsilon
\let\phi\bfphi
\let\chi\bfchi
\let\psi\bfpsi
\let\omega\bfomega
\let\varepsilon\bfvarepsilon
\let\vartheta\bfvartheta
\let\varpi\bfvarpi
\let\varrho\bfvarrho
\let\varsigma\bfvarsigma
\let\varphi\bfvarphi
\let\Gamma\bfGamma
\let\Delta\bfDelta
\let\Theta\bfTheta
\let\Lambda\bfLambda
\let\Xi\bfXi
\let\Pi\bfPi
\let\Sigma\bfSigma
\let\Upsilon\bfUpsilon
\let\Phi\bfPhi
\let\Psi\bfPsi
\let\Omega\bfOmega
\m@thbf{#1}
}
\fi
% ====================== some small utilities ================================
% Macro to compare text strings
\newif\ifstringsequal
\def\strcmp#1#2{%
\def\stringone{#1}\def\stringtwo{#2}%
\ifx\stringone\stringtwo\stringsequaltrue\else\stringsequalfalse\fi%
}
% A fix to set verbatim text in small typewriter font (see J. Gibbons,
% TUGBOAT (1997), 18, 248
\let\VERBATIM\verbatim
\def\verbatim{%
\def\verbatim@font{\footnotesize\ttfamily}%
\parskip0pt
\VERBATIM%
}
\newenvironment{smallverbatim}{%
\baselineskip=9pt%
\parindent=0pt%
\fontsize{7}{9pt}%
\def\setupverbatim{\ttfamily%
\parskip0pt\def\par{\endgraf\leavevmode}\obeylines\obeyspaces}%
\setupverbatim
}{}