summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/sffms/sffms.dtx
blob: 9e2edb78d99749544ed4a73ceaa9854257790b2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
% \iffalse meta-comment
%
% Copyright 2002-2003 M. C. DeMarco
% Also copyright any individual authors listed in this file.
%
% This file provides the latex class sffms.cls and supporting files.
% ------------------------------------------------------------------
% 
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License, either version 1.2 of this license or
% (at your option) any later version.
% The latest version of this license is in
%    http://www.latex-project.org/lppl.txt
% and version 1.2 or later is part of all distributions of LaTeX 
% version 1999/12/01 or later.
%
% ** To produce the package documentation, run latex on this file. **
%
% \fi
% 
% \iffalse
%<*driver>
\documentclass{ltxdoc}
 \OnlyDescription % Comment out to print the code as well
\begin{document}
 \title{The \textsf{sffms} package}
 \author{M. C. DeMarco\\
         \texttt{mcd@sdf.lonestar.org}}
 \date{2003/03/13}
 \maketitle
 \DocInput{sffms.dtx}
\end{document}
%</driver>
% \section{Identification}
%    \begin{macrocode}
%<sffms>\NeedsTeXFormat{LaTeX2e}
%<sffms>\ProvidesClass{sffms}[2003/03/13 v2.0
%<smart>\ProvidesPackage{sffsmart}[2001/09/10 v1.0
%<dumb>\ProvidesPackage{sffdumb}[2001/09/23 v1.1
%<sffms> The SF/F manuscript class]
%<smart|dumb> Quotation mark utility for sffms.cls]
%    \end{macrocode}
% \fi
%
% \changes{v0.1}{2001/08/29}{Created sffms.cls from sfms.cls by Kevin
%    Russell} 
% \changes{v0.1}{2001/08/29}{Passed all options to report.cls, making
%    the non-submission format mostly transparent.  The only additions
%    were real typeset scene breaks (a blank line) and real book
%    headers (author and title on facing pages) for the twoside option.}  
% \changes{v0.1}{2001/08/29}{Changed the commands slightly, gave most
%    of them default values, and added commands for user configuration
%    of the scene separator and ``The End''.}  
% \changes{v0.1}{2001/08/29}{Reredefined chapter so that chapter*
%    works in submissions, changed fancyheader calls to non-deprecated
%    versions.}  
% \changes{v0.1}{2001/08/29}{Added rudimentary documentation to the
%    class file.}  
% \changes{v0.2}{2001/09/02}{Added the magic command from ulem.sty to
%    change boldface (\bf) to squiggly lines in submission format}  
% \changes{v0.2}{2001/09/02}{Added quote smartening option (using
%    quote.sty), novel option and notitle option}  
% \changes{v0.2}{2001/09/02}{Fixed the a4paper option, I hope} 
% \changes{v0.2}{2001/09/02}{Added the ifsubmission command to mask
%    fancy markup (and text)}  
% \changes{v0.2}{2001/09/02}{Added the synopsis environment for book
%    synopses}  
% \changes{v0.2}{2001/09/02}{Changed spacing to 1.83 and neatened the
%    code} 
% \changes{v0.3}{2001/09/04}{Added quote dumbing option} 
% \changes{v0.3}{2001/09/04}{Ported sffms.cls and support files to
%    dtx file, added more documentation}  
% \changes{v0.3}{2001/09/04}{Switched from doublespace package to
%    setspace}  
% \changes{v1.0}{2001/09/10}{Improved documentation}  
% \changes{v1.0}{2001/09/10}{Reworked submission title page spacing and
%    added the disposable command}  
% \changes{v1.1}{2001/09/23}{Cut back on non-submission formatting}  
% \changes{v1.1}{2001/09/23}{Fixed spacing for ``The End''}  
% \changes{v1.1}{2001/09/23}{Quote spacing fixed and code for sffdumb
%    improved, thanks to Donald Arsenault and Martin Vaeth}   
% \changes{v1.2}{2002/03/17}{Added documentation}
% \changes{v1.2}{2002/03/17}{Code cleanup, thanks to Daniel Richard G.}
% \changes{v1.2}{2002/03/17}{Added submit, nosubmit and msheading
%    commands}
% \changes{v1.3}{2002/03/17}{Double underline for textsc}
% \changes{v1.3}{2002/03/18}{Added undocumented command pageofpages}
% \changes{v1.3}{2002/03/18}{Made a rough automatic word count}
% \changes{v1.3}{2002/03/23}{Fixed automatic word count}
% \changes{v1.3}{2002/03/23}{Hid some internal defs and cleaned up code}
% \changes{v1.3}{2002/03/23}{Documented LaTeX spacing commands}
% \changes{v2.0}{2003/03/13}{Removed dependencies on ifthen and geometry 
%    packages, made geometry an option} 
% \changes{v2.0}{2003/03/13}{Added baen, daw and wotf options}
% \changes{v2.0}{2003/03/13}{Added troubleshooting section, a table of
%    contents, and various other improvements to the documentation}
%
%
% \newcommand{\DescribeOption}[1]{\DescribeEnv{[#1]}}
%
% \begin{abstract}\noindent
% Documentation for |sffms|, a \LaTeX\ class for typesetting fiction
% manuscripts in the standard formats used in science-fiction/fantasy
% publishing.
% \end{abstract}
%
% \noindent
% This \LaTeX\ class was modified from |sfms.cls|, copyright Kevin Russell
% 2000, under the terms of the \LaTeX\ Project Public License.
% The file |sffms.dtx| may be redistributed and/or modified under the
% terms of the \LaTeX\ Project Public License, distributed from CTAN 
% archives in the directory macros/latex/base/lppl.txt---either
% version 1.2 of the License, or any later version.
%
% 
% \newif\ifmulticols
% \IfFileExists{multicol.sty}{\multicolstrue}{}
% \ifmulticols
% \addtocontents{toc}{%
% \protect\setlength{\columnsep}{3pc}%
% \protect\begin{multicols}{2}}
% \fi
% {\parskip 0pt 
% \tableofcontents
% }
%
% \section{About {\tt sffms}}
%
%  The |sffms| package produces a double-spaced manuscript in a 12-point 
%  monospaced font with one-inch margins and running headers of the form 
%  |Author/TITLE/n|, where |n| is the current page number.  
%  On the title page, the author's name and address appear in the upper 
%  left corner, the word count and an optional note that the manuscript 
%  is disposable in the upper right, and the title and author in the 
%  center of the page. For a short story, the text begins four lines 
%  below, and for a novel, on the next page.  Some publisher-specific 
%  variants of the format are also supported.
%
%  Other features of |sffms| include an optional single-spaced synopsis,
%  automatic conversion of italics, boldface, and small caps to
%  appropriately underlined text, and a rough automatic word count.
%  Simply by including the |nonsubmission| option,
%  the same document may be typeset in \LaTeX's usual professional 
%  way.  The non-submission format can be customized without 
%  affecting the appearance of the version for submission, allowing 
%  the user to print both camera-ready copies and submission 
%  manuscripts from a single story file.
%  
%  The \LaTeX\ document preparation system is free and available for 
%  all operating systems. This package and all supporting packages 
%  are available from \textsc{ctan}.  To obtain any recent version of 
%  |sffms|, copies of the supporting packages, sample input and output 
%  files, a list of known issues, and more information about manuscript 
%  format, see |http://mcd.freeshell.org/|.  If you still have questions 
%  or suggestions after reading through this documentation, feel free to 
%  email the author at |mcd@sdf.lonestar.org|.
%
% \section{Getting Started}
%
%  If you are already familiar with \LaTeX, you may wish to skip 
%  this section.
%
% \subsection{Installing \LaTeX}
%
%    \LaTeX\ is available for all operating systems, in a bewildering
%    variety of implementations.  For the beginner, I recommend the 
%    following popular combinations of an underlying \TeX\ engine and
%    a nice front-end and/or text editor:
%
%    For Windows, MiKTeX (|www.miktex.org|) and WinEdt (|www.winedt.com|).
%
%    For MacOS X, TeXLive-teTeX and TeXShop (both available at \\
%    |www.uoregon.edu/~koch/texshop/texshop.html|).
%
%    For MacOS 9 and below, OzTeX and Alpha.  (See
%    |www.esm.psu.edu/mac-tex/| for links.)
%
%    For Unix systems, emacs and \TeX\ should come pre-installed, but
%    you might want to look into teTeX (|www.tug.org/tetex|).
%
%    Some of these packages use A4 as their default paper size.  See the
%    Troubleshooting section for more details.
%
% \subsection{Installing {\tt sffms}}
%
%    If you use a \TeX\ package management system to install |sffms|, you 
%    need not follow the rest of the steps in this section, but you will 
%    probably need to install the supporting packages listed below.
%    Be sure that you get the most recent version of |sffms|.  The 
%    version can be identified either by the date or the version 
%    number.
%
%    The |sffms| class is distributed as two files, |sffms.dtx| and 
%    |sffms.ins|.
%    To install the class manually, run \LaTeX\ on |sffms.ins|.  
%    You can do this either by opening |sffms.ins| in your front-end 
%    (WinEdt or TeXShop) and hitting the \LaTeX\ button,
%    or by typing the following at the command line:
%\begin{verbatim}
%latex sffms.ins
%\end{verbatim}
%    \LaTeX\ will automatically create the style files
%    |sffms.cls|, |sffsmart.sty| and |sffdumb.sty|.   At this point, 
%    you may either move the new files into the appropriate directory 
%    of your \LaTeX\ distribution, or leave them in the directory
%    where your source files (stories) will be.
%
%    The |sffms| class requires several supplemental style files which
%    may or may not be included in your \LaTeX\ or |sffms| distribution.
%    Try running a sample story file through \LaTeX\ (see below).  
%    If \LaTeX\ asks for any of the following files, you will need 
%    to download them and place them in the directory where you put 
%    |sffms.cls|.  The files are:
%\begin{verbatim}
%fancyhdr.sty
%setspace.sty
%ulem.sty
%\end{verbatim}
%    As of version 2.0 of |sffms|, the |geometry| package is no longer 
%    required.  If you decide to use it, obtain |geometry.dtx| and 
%    |geometry.ins| and latex the latter, as you did with |sffms.ins|.
%
%    All of the files mentioned above 
%    are available through {\sc ctan} (|www.ctan.org|).
%
%
% \subsection{Using {\tt sffms}}
%
%  All you need to use |sffms| is a plain text file with the following
%  contents:
%\begin{verbatim}
%\documentclass{sffms}
%\author{Lois McMaster Bujold}
%\title{Komarr}
%\begin{document}
%Your story goes here.
%\end{document}
%\end{verbatim}
%
%    Call this source file |filename.tex| and latex it by typing
%\begin{verbatim}
%latex filename.tex
%latex filename.tex
%\end{verbatim}
%    \LaTeX\ should be run twice in order to get the correct word count.
%
%    Depending on your \LaTeX\ installation, this command may produce
%    an output file in |dvi|, |ps|, or |pdf| format.  If you prefer |pdf|
%    output, you may find it more convenient to use the |pdflatex| command.
%
% 
% \subsection{\LaTeX\ Basics}
%
%    A \LaTeX\ file is essentially a text file.  If you take a plain
%    text version of your story and insert the lines mentioned in the
%    previous section (|\documentclass|, {\em etc.}), it will be almost
%    ready for \LaTeX.  Just keep the following requirements in mind:
%
%    Paragraphs should be separated by a blank line.
%
%    Use |-| for a hyphen, |--| for an en-dash (for ranges, like
%    18--65), and |---| for an em-dash---the one used as punctuation. 
%
%    Normal \LaTeX\ ``smart
%    quotes'' are produced using a pair of accents (usually found 
%    under the $\sim$ key) and a pair of
%    apostrophes, like so:  |``smart quotes''|.  A good \LaTeX\ editor
%    ({\it e.g.}, emacs) will insert smart quotes automatically when
%    you strike the dumb quote (|"|) key.  You may also use dumb
%    quotes with |sffms|---see the section on handling quotation
%    marks, below.  Note that |```| becomes ``\thinspace`.  To produce 
%    `\thinspace{``} instead, use braces, like so:  |`{``}|.  Likewise,
%    use |'{''}| if |'''| fails to do the job. 
%
%    Certain characters are reserved by \LaTeX\ for special purposes: 
%\begin{verbatim}
%# $ % & ~ _ ^ \ { }
%\end{verbatim}
%    To use a reserved character in a story, you must put a backslash 
%    in front of it (|\$|, |\%|, {\em etc.}), except for |\\|, |\~|, 
%    and |\^|, which have their own special meanings.  
%    (The first is used to force a line break and the latter two 
%    create accent marks over the following character.)  
%    The command |$\backslash$| produces the backslash itself and 
%    |$\sim$| the tilde alone.
%
%    The percent-sign is particularly dangerous because it's the 
%    comment character in \LaTeX.  Anything between an unescaped |%|
%    and the end of the line will be silently ignored by \LaTeX\ 
%    when it processes your file.
%
%\subsection{\LaTeX\ Tricks}
%
%    Depending on your \LaTeX\ installation, you may be able to produce some 
%    common accent marks thus:
%\begin{center}
% \'{a}~~|\'{a}| \hfill \`{e}~~|\`{e}| \hfill  \"{\i}~~|\"{\i}| \hfill
%    \~{o}~~|\~{o}| \hfill \^{u}~~|\^{u}| \hfill \c{c}~~|\c{c}|
%\end{center}
%If you want something a little more alien, try some of the following:
%\begin{verbatim}
%\.{h}  \^{m}  \u{n}  \v{q}  \H{r}  \d{v}  \b{x}  
%\i  \j  \ae  \OE  \l  \o  \ss  \S  ?`  !`  \pounds
%\end{verbatim}
%    Many more symbols are available in \LaTeX's math mode, but keep in 
%    mind that such gimmicks are likely to annoy your editor.
%
%    If you need finer control of your text layout, you can use the
%    |\noindent| command before a paragraph to keep it from
%    being indented.  You can use the |\\| symbol to force a line 
%    break without starting a new paragraph.  (These two methods will have 
%    the same effect for submissions, but not in |nonsubmission| mode.)
%
%    \LaTeX\ ignores all extra spaces between words and sentences, then
%    inserts (approximately) two spaces between sentences.  If you
%    prefer one space after all punctuation, include the command
%\begin{verbatim}
%\frenchspacing
%\end{verbatim}
%    at the beginning of your document.  To force a single space in
%    those rare cases where \LaTeX\ chooses the wrong spacing, use
%    |\ | (a backslash followed by a space) or |~|.
%\begin{verbatim}
%``Put only one space after a quote!''\ she demanded.
%
%``Of course, Dr.~Jones!''
%\end{verbatim}
%    The |~| also prevents a linebreak from occurring between the two 
%    words.  Use it with caution.
%
%    All \LaTeX\ commands begin with a backslash, as in 
%    |\documentclass{sffms}| or |\frenchspacing|.  \LaTeX\ environments
%    begin with a |\begin| command and end with an |\end| command.
%    Two \LaTeX\ environments that may be of use are
%    |verse| and |quotation|:
%\begin{verbatim}
%\begin{verse}
%First line of your verse,\\
%Second line\\
%Third line
%
%Beginning of a new stanza\\
%Etc.
%\end{verse}
%\end{verbatim}
%
%\begin{verbatim}
%\begin{quotation}
%Put normal paragraphs of text here, separated by blank lines as usual.
%They will be indented from the margins, and each paragraph will
%be indented.
%\end{quotation}
%\end{verbatim}
%    Long quotes or verse can be single-spaced, but by default they are
%    not.  See the section
%    on environments for details.  Underlining and boldface are also 
%    discussed in a later section.
%
%
% \section{Declaration of Options}
%
%    The |sffms| class has several {\em options} which change the 
%    appearance of the output.  To use an option, enclose it in 
%    brackets in the |documentclass| declaration in the first line 
%    of your story file.  Separate multiple options with commas.  
%    For example, to use the |novel| and |baen| options, the first line 
%    of the file should read: 
%\begin{verbatim}
%\documentclass[novel,baen]{sffms}
%\end{verbatim}
%
% \subsection{The Submission Options}
%
%\DescribeOption{submission}
%    The |submission| option is now the default and need not be 
%    declared.  This option causes the document to be typeset in 
%    manuscript format, with double spacing, one-inch margins, 
%    and a fixed-width font.  All |sffms| 
%    options except |nonsubmission| may be used with the submission
%    option, though |submission| plus |notitle| will make the output
%    format nonstandard.  (Editors want titles.) 
%
%\DescribeOption{novel}
%    There isn't much difference between a novel and a short story in
%    sf/f manuscripts.  The short story begins on the title page,
%    while the novel begins on a fresh page.  A novel may also have a
%    synopsis. 
%    Use the |novel| option for a novel.  If the |novel| option is
%    {\em not\/} used, the text will be typeset as a short story.
%
%    The |sffms| class now includes publisher-specific options for
%    certain publishers whose
%    requirements differ slightly from the default |submission| style.
%    In all other respects, the story is treated as a normal submission.
%    Publishers' guidelines may change, so check that these options do
%    what you need them to do before using them.
%
%\DescribeOption{baen}
%    The |baen| option uses $1\,\frac{1}{2}$|"| margins rather than 1|"|.
%    Baen Books' requirements are available on-line (|www.baen.com/FAQS.htm|).
%\begin{verbatim}
%\documentclass[baen]{sffms}
%\end{verbatim}
%
%\DescribeOption{daw}
%    The |daw| option typesets the address and wordcount on the 
%    right-hand side of the first page rather than splitting it across
%    the page.  The DAW Books manuscript requirements are available 
%    on-line\\
%    (|www.penguinputnam.com/static/packages/us/about/dawsub.htm|).
%\begin{verbatim}
%\documentclass[daw]{sffms}
%\end{verbatim}
%
%\DescribeOption{wotf}
%    The |wotf| option uses a full cover page (like that of the novel 
%    option) and alters the running header to omit the author's surname,
%    as required by the rules of the Writers of the Future contest 
%    (|www.writersofthefuture.com|).
%    Also, the full title is used in the running header, and page 
%    numbering begins with the first story page, rather than 
%    counting the title page.
%\begin{verbatim}
%\documentclass[wotf]{sffms}
%\end{verbatim}
%
%    To my knowledge, the default submission format does not violate 
%    the guidelines of Tor Books (|www.tor.com/torfaq.html|),\\
%    Analog (|www.analogsf.com/information/submissions.shtml|),\\
%    Asimov's (|www.asimovs.com/info/guidelines.shtml|),\\
%    Fantasy \& Science Fiction (|www.sfsite.com/fsf/glines.htm|),
%    or the Star Trek Strange New Worlds contest.
%
%    Please be sure to include all required contact information within
%    the |address| command, described below.
%
%
% \subsection{Options for Quotation Marks}
%
%    The |sffms| class provides two options for handling ``legacy'' 
%    quotes, be they dumb quotes in a plain text file you want 
%    smartened up for a good copy of your latest novel, or \LaTeX\ 
%    quotes you want to dumb down to give your manuscript that 
%    genuine Courier 12-point typewriter feel. 
%
%    Please note that neither of these options will handle
%    non-{\sc ascii} ``smart'' quotation marks in your source file.
%    All non-{\sc ascii} characters must be eliminated by saving 
%    the file as plain text.  Note that the changes explained below
%    appear in the output only---the source file is never
%    altered. 
%
%\DescribeOption{smart}
%    The |smart| option turns pairs of normal {\sc ascii}
%    quotation marks (|"|dumb quotes|"|) into \LaTeX\  quotation 
%    marks (|``|smart quotes|''|), so that the output file
%    will show true ``smart quotes.''  This option also correctly handles
%    quotations continued between paragraphs.
%
%\DescribeOption{dumb}
%    The |dumb| option suppresses \LaTeX\ |``|smart quotes,|''| 
%    producing dumb, typewriter-style quotes in the output file
%    rather than the slanted ones that are the default in
%    submission mode.
%    The |dumb| option is not useful with the |nonsubmission|
%    option because only monospaced fonts like Courier include
%    a true dumb quotation mark (|"|) at all.
%    Other fonts may substitute a curly close-quote ('') instead, 
%    which looks ''dumber than dumb.''
%   
%    These options are not particularly robust, so they may cause more
%    problems than they solve.  {\em Caveat emptor}.
%    They can handle mixed quotation mark styles (\LaTeX\ smart with
%    {\sc ascii} dumb) if the two sorts of marks are balanced---for
%    example, if some chapters use {\sc ascii} quotes and others
%    \LaTeX\ ones, or even if some sentences are smart and others
%    dumb.
%
%    If these options do not work for you, you can always
%    change the quotation marks in your source file with a good text
%    editor like emacs.
%
%
% \subsection{Non-submission Options}
%
%\DescribeOption{nonsubmission}
%    To force a document to be typeset as a normal book or article
%    (that is, without double-spacing or the fixed-width font), use the 
%    |nonsubmission| option in your |documentclass| declaration:
%\begin{verbatim}
%\documentclass[nonsubmission]{sffms}
%\end{verbatim}
%
%\DescribeOption{notitle}
%    When the |nonsubmission| option is chosen, the |sffms|
%    class creates a default title page.  The |notitle| option will
%    remove it, allowing the user to specify his own \LaTeX\ layout; 
%    |notitle| is also useful for saving paper.
%
%    Because |sffms| is based on the standard \LaTeX\ report class, any
%    other \LaTeX\ report class options may be used for non-submissions,
%    including font size
%    options (|10pt|, |12pt|, {\em etc.}), paper size and other useful
%    typesetting options (|twoside|, |twocolumn|, {\em etc.}).  Using
%    report-class options together with a |submission| option  may
%    generate unexpected results.
%
% \subsection{Other Options}
%
%\DescribeOption{courier}
%    The |courier| option switches to a 12-point, 10-pitch Courier font
%    that may look better than \LaTeX's default monospaced font, 
%    depending on your local \LaTeX\ setup.  Try this option if you want
%    a fatter font than the default or if your |pdf| files are looking
%    grainy.
%
%\DescribeOption{geometry}
%    The |geometry| option forces |sffms| to use the |geometry| package
%    for page layout.  This option is useful for getting around 
%    page size problems.  See the Troubleshooting section for
%    details.
%
%\DescribeOption{a4paper}
%\DescribeOption{letterpaper}
%    If you use geometry with the intent of fixing your papersize,
%    you should declare the desired paper size explicitly.  
%    A4 and letter are the most common choices, but other 
%    paper sizes may also be used.  See the documentation of
%    the geometry package for the full list.
%
%
%  \section{Commands}
%
%  \subsection{Title}
%
%
%\DescribeMacro\title
%    Every story should have a title.  You must specify the title 
%    using the \LaTeX\ |title| command thus:
%\begin{verbatim}
%\title{The Hobbit: or There and Back Again}
%\end{verbatim}
%
%\DescribeMacro\runningtitle
%    In |submission| format, a short form of
%    the title is placed in the page header at the top right of 
%    each page.
%    If your title is long, specify the desired short form thus:
%\begin{verbatim}
%\runningtitle{The Hobbit}
%\end{verbatim}
%    If you fail to provide a |runningtitle|, your |title| will be
%    used instead, no matter how long it is.
%    
%   \subsection{Author}
%
%\DescribeMacro\author
%	Every story must also have an author.  The name included in the
%       \LaTeX\ |author| command is used in the bylines on the title
%       page and synopsis page.  
%       If you use a pseudonym, you may wish to put it here.
%\begin{verbatim}
%\author{Lois McMaster Bujold}
%\end{verbatim}
%
%\DescribeMacro\authorname
%	A separate command, |authorname|, is provided for use with
%       your mailing address.  It might be wise to put your real name
%       here.  If you omit the |authorname| command, the value of
%       |author| will be used with your mailing address.
%\begin{verbatim}
%\authorname{Lois Bujold}
%\end{verbatim}
%
%\DescribeMacro\surname
%	Like |runningtitle|, |surname| is used in page headers.  Whose
%	surname goes in |surname| is up to you.  
%\begin{verbatim}
%\surname{Bujold}
%\end{verbatim}
%       If you omit |surname|, the full value of |author| will be used.
%
%    \subsection{Other Information}
%
%\DescribeMacro\address
%	Your mailing address for the title page is specified with
%	the |address| command.  Separate lines with the \LaTeX\ 
%	linebreak symbol |\\| thus: 
%\begin{verbatim}
%\address{One Vor Way\\
%         Vor. Surleau\\
%         VKD 28945}
%\end{verbatim}
%       Other requested contact information (such as a phone number
%       or email address) should be included here.
%
%\DescribeMacro\wordcount
%	Your word count should also be included on the title page.
%	An approximate word count based on the number of pages will
%       appear automatically.  However, the automatic word count is
%       not rounded off (much) and ought to be replaced by your own
%       rounded-up opinion of the word count.  The |\wordcount| command
%  	is used to set the value manually thus:
%\begin{verbatim}
%\wordcount{85,000}
%\end{verbatim}
%	The automatic word count is generated by multiplying the page
%	count (not including a novel synopsis) by either 250 or 295, 
%       depending on the font pitch and margin size.  The latter
%       figure was obtained by taking a typical page of one of the
%	author's stories, finding the average number of characters
%	per line (71), dividing by six (a ``word''), multiplying by
%	the number of lines on a full page (25), and rounding off.  
%       You may wish to repeat this process or a similar one for your 
%       own stories, since a4 paper and partial pages (among other 
%       things) were not taken into account.
%
%\DescribeMacro\disposable
%       The |disposable| command causes the words ``Disposable Copy''
%       to be printed under the word count on the title page of
%       submissions. 
%
%  \subsection{Sectioning Commands}
%
%\DescribeMacro\newscene
%	For short stories, the only breaks should be scene breaks.
%	Place the |newscene| command wherever you want a scene break.
%\begin{verbatim}
%...the last few words of the previous scene.
%
%\newscene
%
%Time to start a new scene...
%\end{verbatim}
%	This command inserts the proper scene break character, a
%	centered hash mark (|#|), in
%	submissions, and a blank line in non-submissions.
%
%\DescribeMacro\sceneseparator
%	If you would prefer to use a different scene separator, such
%       as |*****|, the |sceneseparator| command will change it.
%\begin{verbatim}
%\sceneseparator{$\star\star\star\star\star$}
%\end{verbatim}
%       Beware of \LaTeX\ special characters when using this command. 
%
%\DescribeMacro\chapter
%	For a novel, you can use both chapters and scenebreaks.  The
%	\LaTeX\ chapter commands have been redefined in |sffms| to 
%	fit the |submission| format.  Begin a new chapter thus: 
%\begin{verbatim}
%\chapter{Miles High}
%\end{verbatim}
%\DescribeMacro{\chapter*}
%	The \LaTeX\ |\chapter*| command also works in submissions.
%	It creates an unnumbered chapter, such as a preface or
%	appendix. 
%\begin{verbatim}
%\chapter*{Preface}
%\end{verbatim}
%
%\DescribeMacro\thirty
%	Last, but not least, comes the end.  The default
%	end-of-story symbol, five hash marks (|# # # # #|), is inserted
%	automatically at the end of your story.  To change it, use the
%	|thirty| command. 
%\begin{verbatim}
%\thirty{The End}
%\end{verbatim}
%
% \subsection{Italics, Boldface and Small Caps}
%
%	In submission mode, italicized text is automatically converted
%       to underlined text.  Boldface is replaced 
%       by wavy underlining and small caps by double underlining.
%
%\DescribeMacro\em
%       The |\em| command may be used for single italicized words; it 
%	goes inside the braces with the word, thus:
%\begin{verbatim}
%I can't believe that {\em you}, of all people...
%\end{verbatim}
%       This produces underlining by default and italics in
%       non-submissions.
%\DescribeMacro\emph
%       To underline (italicize) anything from a word to a paragraph,
%       use the |\emph| command.  With |\emph|, the curly braces come
%       after the command.  
%\begin{verbatim}
%\emph{I can't believe that they, of all people...}
%\end{verbatim}
%\DescribeMacro\thought
%       The |\thought| command works exactly like |\emph|, but may
%       be useful to the author for distinguishing between normal 
%       italics and italicized thoughts within the source file. 
%       To italicize more than one paragraph, use one |\emph|
%       or |\thought| per paragraph.
%
%\DescribeMacro\bfseries
%\DescribeMacro\textbf
%       The |\bfseries| font declaration and the |\textbf| font command
%       will produce boldface in
%       non-submissions and wavy underlines in |submission| mode.  The 
%       font declaration goes inside the curly braces and the font 
%       command outside, thus: 
%\begin{verbatim}
%I can't believe that {\bfseries you}, of \textbf{all people}...
%\end{verbatim}
%
%\DescribeMacro\scshape
%\DescribeMacro\textsc
%       The |\scshape| font declaration and the |\textsc| font command 
%       will produce small caps in
%       |nonsubmission| mode and double-underlined text in submissions.
%       They work exactly like the corresponding boldface commands:
%\begin{verbatim}
%I can't believe that {\scshape you}, of \textsc{all people}...
%\end{verbatim}
%
%	Since they can be used for individual words as well as phrases 
%	and paragraphs, you may wish to use |\emph{}|, |\textbf{}|,
%	and |\textsc{}| in all cases to avoid confusion.
%
% \subsection{Other Commands}
%
%\DescribeMacro\ifsubmission
%	The |ifsubmission| command is used to hide latex code or text.
%	The first argument is evaluated for submissions, and ignored
%	otherwise, and vice versa for the second.  It can be used in
%	various ways.
%\begin{verbatim}
%\ifsubmission{}{Some comments to myself...}
%\end{verbatim}
%\begin{verbatim}
%\ifsubmission{\thirty{-30-}}{
%  \setlength{\textheight}{8.5in}
%  \setlength{\topmargin}{0in}
%}
%\end{verbatim}
%
%\DescribeMacro\submit
%        Two commands are provided as a convenient shorthand for the 
%        |\ifsubmission| command.  They take one argument each.  
%        Text or commands inside a |\submit| command will be used
%        only for submissions, 
%\DescribeMacro\nosubmit
%        and that in a |\nosubmit| will be used only for
%        non-submissions.  For example, the following command is 
%        equivalent to the first |\ifsubmission| command above.
%\begin{verbatim}
%\nosubmit{Some comments to myself...}
%\end{verbatim}
%
%\DescribeMacro\msheading
%       If for some reason you wish to deviate from the standard running
%       page headings, you can use the |\msheading| command to change
%	them.  To remove headings entirely, use the command:
%\begin{verbatim}
%\msheading{}
%\end{verbatim}
%       To keep just the page number, use: 
%\begin{verbatim}
%\msheading{\thepage}
%\end{verbatim}
%       To add more space between the default heading parts, use:
%\begin{verbatim}
%\msheading{\getsurname\ /\ \getrunningtitle\ /\ \thepage}
%\end{verbatim}
%	For page numbers of the form ``Page 3 of 135,'' use:
%\begin{verbatim}
%\msheading{\pageofpages}
%\end{verbatim}
%       (Check the code for |\pageofpages| to see how it was done.)
%       Reckless use of the |\msheading| command may cause \LaTeX\ 
%       errors.
%
%	Any other \LaTeX\ commands may be used for non-submissions.
%	Using them for submissions may generate unexpected results.
%
%
%  \section{Environments}
%
%\DescribeEnv{synopsis}
%    The only new \LaTeX\ environment in |sffms| is |synopsis|, 
%    intended for use with novels.  
%    In |submission| mode, the synopsis is typeset
%    single-spaced with roman numerals for page numbers to distinguish
%    it from the rest of the novel.
%\begin{verbatim}
%\begin{synopsis}
%Summarize your novel here.
%\end{synopsis}
%\end{verbatim}
%    The synopsis can be placed anywhere after the |\begin{document}|
%    command.    The synopsis environment can
%    also be used without the |novel| option.
%
%\DescribeEnv{singlespace}
%    The |singlespace| and |doublespace| environments are inherited
%    from the |setspace| package which is provides the doublespacing 
%    for |sffms|.  The following will single-space a poem, for example:
%\begin{verbatim}
%\begin{singlespace}
%\begin{verse}
%Oh, what a bore,\\
%To be a Vor.
%\end{verse}
%\end{singlespace}
%\end{verbatim}
%    (See the \LaTeX\ Tricks section for an explanation of the |verse|
%    and |quotation| environments.)
%    You should not need the |doublespace| environment, but it works the 
%    same way.  
%
%
%  \section{Troubleshooting}
%
%	Problems with |sffms| are usually caused by typos in the source 
%	file or by a local \LaTeX\ misconfiguration.  This section
%	covers the most common issues.
%
%  \subsection{Processing Errors}
%
%       If \LaTeX\ complains that it cannot find one or more of |sffms|, 
%	|fancyhdr|, |setspace|, |ulem|, or |geometry|, they may not 
%	have been installed in the correct directory.  If you cannot find
%	the correct spot, or if you are working on a public server
%	where you do not have permission to install new \LaTeX\ packages,
%	you can always put all required files in the folder where the
%       the story file itself is located.  \LaTeX\ will find them 
%	automatically.
%
%	If, in particular, \LaTeX\ cannot find |sffms.cls|, 
%	|sffdumb.sty|, |sffsmart.sty|, or
%	|geometry.sty|, these files may not have been extracted from
%	|sffms.dtx| or |geometry.dtx|.  To create the appropriate files,
%	run latex on |sffms.ins| or |geometry.ins|, respectively,
%	as described in the section on installing |sffms|.
%
%	The first time you run latex on a new story, you may see a 
%	warning that `sffmswc' is undefined and a message telling you
%	to latex the file a second time.  This is normal latex behavior.
%	You should latex the file a second time.
%
%       If \LaTeX\ gives you underfull errors, you can ignore them.
%       If you get overfull errors, you can ignore the small ones
%       (under 5 or 10 points), but for large ones, you should locate 
%       the problem line in the source file (by line number) or in the 
%	output (by looking for lines that poke out into the margin or
%	end suddenly in with black box).  If the overflow is large 
%       you may want to split the problematic line or a word manually 
%       using |\\|.
%	Normally, \LaTeX\ hyphenates words on its own, but hyphenation
%	is suppressed in submission mode.  You should wait until your 
%	story is in a final form before twiddling with overfull errors.
%
%	Font errors can generally be ignored.  If you do not like the
%	appearance of the default font, see the section below on appearance 
%	issues.
%
%	In cases where \LaTeX\ halts with an error, read the error
%	message carefully and then type |x| at the question-mark prompt 
%	to exit.
%	Return to your story file and locate the section that caused 
%	the problem, using either the wording or the line number
%	shown in the error message to help you track it down.
%       Check that you have closed all curly braces and have not
%       accidentally used a special character like |$| or |&|, or 
%       misspelled a command.  See the \LaTeX\ Basics section for
%	a full list of reserved characters.
%
%	If you get a cryptic error like ``There's no line here to end'' 
%	while using the |daw| option,
%	be sure you've included at least a |title|, |author|, and
%	|address|.
%
% \subsection{Margin Problems}
%
%	Margin problems are almost always caused by an incorrect default 
%	paper size setting within your \LaTeX\ installation.  Several
%	popular \LaTeX\ installations come with |a4| set as the default
%	paper size.  Before you blame \LaTeX, however, be sure you 
%	understand what |sffms| is supposed to do.
%
%	For a submission, the bottom margin should be about the same 
%	as the side margins---one inch.  The running page header with
%	your name, title and the page number pokes up into the top
%	margin, making it appear to be less than an inch on the right
%	side.  Everywhere else, however, it should be an inch, or an
%	inch and a half if you are using the |baen| option.
%
% 	If you still think your top margin is too small and the bottom 
%	too big, the problem is almost certainly due to your default
%       paper size setting.  You can use the |geometry| option to
%	attempt to force the correct paper size, thus:
%\begin{verbatim}
%\documentclass[geometry,letterpaper]{sffms}
%\end{verbatim}
%
%	You can add papersize flags to certain commands, such as |dvips|,
%	to work around these problems, but the best approach
%	is to fix your default paper size once and for all, especially if
%	you intend to use the |nonsubmission| option
%	or if the geometry option fails.
%
%	If you are using MiKTeX or a version of teTeX besides the one 
%	installed with TeXShop, you may need to change your
%	default paper size to letter paper.
%	For teTeX, you should be able to adjust this setting
%	either during the installation process or afterwards
%	with the |texconfig| command:
%\begin{verbatim}
%texconfig dvips paper letter
%texconfig xdvi us 
%\end{verbatim}
%	You may also need to edit the \\
%	|/usr/local/teTeX/share/texmf/pdftex/config/pdftex.cfg|
%	file as described below for MiKTeX.  The changes are the same.
%
%	You can fix pdf output in MiKTeX by editing the file \\
%       |\texmf\pdftex\config\pdftex.cfg| in your
%	text editor, replacing the lines
%\begin{verbatim}
%page_width 210 true mm
%page_height 297 true mm
%\end{verbatim}
%	with the following:
%\begin{verbatim}
%page_width 8.5 true in
%page_height 11 true in
%\end{verbatim}
%	You can fix postscript output by editing the file \\
%	|\texmf\dvips\config\config.ps|, changing
%\begin{verbatim}
%@ A4size 210mm 297mm
%@+ %%PaperSize: A4
%
%@ letterSize 8.5in 11in
%\end{verbatim}
%to read only:
%\begin{verbatim}
%@ letterSize 8.5in 11in
%@+ %%PaperSize: Letter
%\end{verbatim}
%	You may still see a problem if you view dvi files in Yap.
%	In that case, open View $\vert$ Options... $\vert$ Display in the
%	Yap menu and change the paper size setting to letter paper.
%	Another possible, but unlikely, culprit is 
%	|\texmf\dvipdfm\config\config|, in which you may wish to change
%	|p a4| to |p letter|.
%
%
%
% \subsection{Other Appearance Issues}
%
%       If your PDF output looks grainy, try using the |courier| option.
%
%       If you get a wordcount of |??|, you probably forgot to latex
%       your file twice.  Latex the file a second time.
%
%	Problems with underlining for italics and boldface have a 
%	couple of likely causes.  
%	The (required) |ulem.sty| package does not officially 
%       support underlining across paragraph breaks, so for 
%       long stretches of underlined text, you should use a separate 
%	font command for each paragraph.  You should use the |\emph|
%	|\textbf| or |\textsc| font commands for multiple words, rather
%	than the |\em|, |\bfseries| or |\scshape| font declarations.
%       Also, other \LaTeX\ font commands which produce boldface, 
%       italics or slanted text, such as |\bf|, |\it|, or |\slshape|,
%       are not supported by |sffms| and will not be converted
%	properly to underlined text.
%
%
%  \section{Credits}
%
%       Many thanks to Kevin Russell for writing |sfms.cls|, which
%       was itself inspired by code posted by Michael Grant
%       to {\tt rec.arts.sf.composition} in July 2000.
%
%	The code for |sffsmart.sty| was adapted from |quote.sty| by
%       Hunter Goatley, available from {\sc ctan}.
%
%	The code for |sffdumb.sty| was adapted from code posted to
%       |comp.text.tex| by Donald Arseneau and improved by advice from
%       the same source.
%
%	Manuscript-style underlining is provided by |ulem.sty| by
%       Donald Arseneau.  Double-spacing is provided by |setspace.sty|
%       by (at least) Geoffrey Tobin and Erica Harris.  Running
%       headers are provided by |fancyhdr.sty| by Piet van Oostrum.
%	The geometry option loads |geometry.sty| by Hideo Umeki.
%
%	Posts to |comp.text.tex| and |rec.arts.sf.composition|,
%       and email from users, notably Daniel Richard G., aided the 
%       development of |sffms|.  Any remaining errors are my own.
%
% \StopEventually{%
%  \ifmulticols
%  \addtocontents{toc}{\protect\end{multicols}}
%  \fi
% }
%
%    \begin{macrocode}
%<*sffms>

\newcounter{wordcounter}
\newcount\wordc
\newif\ifsffms@submit
\newif\ifsffms@novel
\newif\ifsffms@smart
\newif\ifsffms@dumb
\newif\ifsffms@notitle
\newif\ifsffms@courier
\newif\ifsffms@baen
\newif\ifsffms@daw
\newif\ifsffms@wotf
\newif\ifsffms@runningtitle
\newif\ifsffms@surname
\newif\ifsffms@afour
\newif\ifsffms@geometry
\sffms@submittrue

\sfcode`\" = 0

\def\word@count{\ref{sffmswc}}
\def\author@name{\@author}
\def\author@address{}
\def\sur@name{}
\def\running@title{}
\def\scenesepstring{\#}
\def\thirtystring{\# \# \# \# \#}
\def\disposablestring{}
\def\pageofpages{Page {\thepage} of \pageref{sffmswc}}
\def\msheadstring{\getsurname\hspace{.5ex}/\hspace{.5ex}\getrunningtitle\hspace{.5ex}/\hspace{.5ex}\thepage}

\DeclareOption{courier}{%
   \sffms@couriertrue%
   \AtBeginDocument{
        \fontfamily{pcr}\selectfont
     	\renewcommand{\ttdefault}{pcr}
   	\renewcommand{\bfdefault}{pcr}
   	\renewcommand{\itdefault}{pcr}
   	\renewcommand{\sldefault}{pcr}
   	\renewcommand{\scdefault}{pcr}
   	\renewcommand{\updefault}{pcr}
   }
}

\DeclareOption{nonsubmission}{\sffms@submitfalse}
\DeclareOption{submission}{\sffms@submittrue}%obsolete
\DeclareOption{novel}{\sffms@noveltrue}

\DeclareOption{smart}{%
   \sffms@smarttrue%
   \AtBeginDocument{\begindoublequotes}
   \AtEndDocument{\enddoublequotes}
}                         

\DeclareOption{dumb}{\sffms@dumbtrue}
\DeclareOption{notitle}{\sffms@notitletrue}

\DeclareOption{baen}{\sffms@baentrue}
\DeclareOption{daw}{\sffms@dawtrue}
\DeclareOption{wotf}{\sffms@wotftrue}

\DeclareOption{geometry}{\sffms@geometrytrue}

\DeclareOption{a4paper}{
  \sffms@afourtrue%
  \PassOptionsToClass{\CurrentOption}{geometry}
  \PassOptionsToClass{\CurrentOption}{report}}

\DeclareOption{letterpaper}{
  \sffms@afourfalse%
  \PassOptionsToClass{\CurrentOption}{geometry}
  \PassOptionsToClass{\CurrentOption}{report}}


\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
\ProcessOptions



\ifsffms@submit%
 \LoadClass[12pt]{report}
 \RequirePackage[T1]{fontenc}
 \RequirePackage{fancyhdr}
 \RequirePackage{ulem}
 \RequirePackage{setspace}\setstretch{1.83}
 \ifsffms@geometry 
    \ifsffms@baen \RequirePackage[hmargin=1.5in,bmargin=1.5in,tmargin=1.5in,headheight=.38in,headsep=.12in,nofoot]{geometry}%
    \else \RequirePackage[hmargin=1in,bmargin=1in,tmargin=1in,headheight=.88in,headsep=.12in,nofoot]{geometry}%
     \fi%endbaenif
     \fi%endgeometryif
\else\LoadClass{report}%
 \RequirePackage{setspace} \fi

\ifsffms@smart \RequirePackage{sffsmart} \fi
\ifsffms@dumb \RequirePackage{sffdumb} \fi

\ifsffms@submit%
  \ifsffms@geometry%    then margins are all set so do nothing
    \sffms@geometrytrue
  \else% 		have to set margins manually from paperdim
  \setlength\headheight{.38in}
  \setlength\headsep{.12in}
  \setlength\textwidth{\paperwidth}
  \newlength{\sffms@margin}
  \setlength{\sffms@margin}{0in}
  \ifsffms@baen \addtolength{\sffms@margin}{.5in} \fi
  \setlength\textwidth{\paperwidth}
  \addtolength\textwidth{-2in}
  \addtolength\textwidth{-2\sffms@margin}
  \setlength\oddsidemargin{\sffms@margin}
  \setlength\textheight{\paperheight}
  \addtolength\textheight{-2in}
  \addtolength\textheight{-2\sffms@margin}
  \setlength\topmargin{\sffms@margin}
  \addtolength\topmargin{-.5in}
  \fi%
\fi%


\newcommand{\authorname}[1]{\def\author@name{#1}}
\newcommand{\address}[1]{\def\author@address{#1}}
\newcommand{\wordcount}[1]{\def\word@count{#1}}
\newcommand{\surname}[1]{\def\sur@name{#1} \sffms@surnametrue}
\newcommand{\runningtitle}[1]{\def\running@title{#1} \sffms@runningtitletrue}
\newcommand{\sceneseparator}[1]{\def\scenesepstring{#1}}
\newcommand{\thirty}[1]{\def\thirtystring{#1}}
\newcommand{\disposable}{\def\disposablestring{Disposable~Copy}}
\ifsffms@wotf%
  \def\msheadstring{\MakeUppercase{\@title}\hspace{.5ex}/\hspace{.5ex}\thepage} \fi%
\newcommand{\msheading}[1]{\def\msheadstring{#1}}

\newcommand{\penname}[1]{}		% obsolete
\newcommand{\getpenname}{\@author}	% obsolete

\newcommand{\getrunningtitle}{\ifsffms@runningtitle%
  \MakeUppercase{\running@title}%
  \else \MakeUppercase{\@title}%
\fi}

\newcommand{\getsurname}{\ifsffms@surname%
  \sur@name \else \@author \fi}

\ifsffms@submit%
\newcommand{\newscene}{\centerline {\scenesepstring}}
 \newcommand{\ifsubmission}[2]{#1}%
\else \newcommand{\newscene}{\vspace{1\baselineskip}}
 \newcommand{\ifsubmission}[2]{#2} \fi

\newcommand{\submit}[1]{\ifsubmission{#1}{}}
\newcommand{\nosubmit}[1]{\ifsubmission{}{#1}}

\newcommand{\scenebreak}{\newscene}

\newcommand{\thought}[1]{\emph{#1}}


\ifsffms@submit
 \AtBeginDocument{
   \ttfamily
   \useunder{\uwave}{\bfseries}{\textbf}%ulem command for boldface
   \useunder{\uuline}{\scshape}{\textsc}%ulem command for smallcaps
   \renewcommand\chapter{\if@openright\clearpage\else\cleardoublepage\fi
                        \secdef\@chapter\@schapter}
    \def\@makechapterhead#1{\vspace*{4\baselineskip} 
        \begin{center}\@chapapp\space\thechapter\\ #1 \end{center}
        \vspace*{1\baselineskip}} 
    \def\@schapter#1{%
        \if@twocolumn\@topnewpage[\@makeschapterhead{#1}]%
        \else\@makeschapterhead{#1}\@afterheading\fi}
    \def\@makeschapterhead#1{\vspace*{4\baselineskip} 
        \begin{center} #1 \end{center} \vspace*{1\baselineskip}}
    }%
\fi

\ifsffms@novel%
 \newcounter{tempcounter}
 \newenvironment{synopsis}
  {\setcounter{tempcounter}{\value{page}}
   \pagenumbering{roman}
   \singlespace 
   \chapter*{Synopsis of \MakeUppercase{\@title}}}
  {\clearpage \setcounter{page}{\value{tempcounter}}
   \pagenumbering{arabic} \pagestyle{fancy}}%
\else \newenvironment{synopsis}{SYNOPSIS:  }{\scenebreak} \fi

\newcommand{\sffms@commonsubsetup}%
{\pagestyle{fancy}
 \fancyhead[r]{{\ttfamily \msheadstring}}
 \fancyfoot{}
 \renewcommand{\headrulewidth}{0pt}
 \renewcommand{\footrulewidth}{0pt}
 \raggedright
 \settowidth{\parindent}{\texttt{~~~~~}}
}


\AtBeginDocument{
\ifsffms@notitle%
    \ifsffms@submit \sffms@commonsubsetup \fi%
 \else%
   \ifsffms@submit%beginning of + 2nd submit if
    \sffms@commonsubsetup
    \thispagestyle{empty}
    \newsavebox{\sffms@fronttopsavebox}
    \begin{lrbox}{\sffms@fronttopsavebox}
    \begin{minipage}[t]{\textwidth}
    \begin{singlespace}%
    \ifsffms@daw \hfill\parbox[t]{.40\textwidth}{\raggedright\author@name\\%
        \author@address\\[\baselineskip]%
        \word@count\ words\\ \disposablestring}%
    \else%
     \parbox[t]{.65\textwidth}{\author@name\\\author@address}\hfill
     \parbox[t]{.30\textwidth}{\raggedleft\word@count\ words\\[\baselineskip]%
     \disposablestring}%
    \fi%
    \end{singlespace}
    \end{minipage}
    \end{lrbox}
    \noindent\raisebox{0pt}[0pt][0pt]{\usebox{\sffms@fronttopsavebox}}
    \vspace{0.39\textheight}
    \begin{center}\MakeUppercase{\@title}\\by \@author\end{center}
    \vspace{1\baselineskip}%
   \else \maketitle \setcounter{page}{2} \fi%
  \ifsffms@wotf \setcounter{page}{0} \clearpage%
  \else \ifsffms@novel\clearpage\fi%
  \fi%
\fi%
}

\AtEndDocument{\vspace{12pt}\centerline{\thirtystring}%
  \ifsffms@submit%
     	\wordc=\thepage%
	\ifsffms@courier \multiply\wordc by 250%
	   \else \ifsffms@baen \multiply\wordc by 250%
           \else \multiply\wordc by 295 \fi \fi%
	\setcounter{wordcounter}{\the\wordc}%
	\addtocounter{wordcounter}{-1}%
	\refstepcounter{wordcounter}%
  \fi%
  \label{sffmswc}%
}
%</sffms>
%    \end{macrocode}
%    \begin{macrocode}
%<*smart>
{%
\catcode`\"=\active	
\catcode`\@=11			
\gdef\begindoublequotes{%
    \global\catcode`\"=\active
    \global\chardef\dq=`\"
    \global\let\dblqu@te=L
    }	
\gdef"{\ifinner\else\ifvmode\let\dblqu@te=L\fi\fi
	\if L\dblqu@te``\global\let\dblqu@te=R%
	\else
	   \let\xxx=\spacefactor	
	   ''\global\let\dblqu@te=L%
	   \spacefactor\xxx	
	\fi		
	}		
}			

\gdef\enddoublequotes{\catcode`\"=12}
%</smart>
%<*dumb>
\def\dumbquote{\afterassignment"\let\next= }
\sfcode`\" = 0
\def\rquote{'}
\def\lquote{`}
\catcode`'=\active \def'{\actrq}
\catcode``=\active \def`{\actlq}
\def\rqtest{\ifx\next'\let\next=\dumbquote\else\let\next=\rquote\fi\next}
\def\lqtest{\ifx\next`\let\next=\dumbquote\else\let\next=\lquote\fi\next}
\def\actrq{\futurelet\next\rqtest}
\def\actlq{\futurelet\next\lqtest}
%</dumb>
%    \end{macrocode}
%
% \Finale
\endinput