The sffms package

M. C. DeMarco

                  mcd@sdf.lonestar.org

2004/03/01

Abstract

Documentation for sffms, a L^{A}TEX class for typesetting fiction manuscripts in the standard formats used in science-fiction/fantasy publishing.

This L^{A}TEX class was modified from sfms.cls, copyright Kevin Russell 2000, under the terms of the L^{A}TEX Project Public License. The file sffms.dtx may be redistributed and/or modified under the terms of the L^{A}TEX 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.

Contents

1 About sffms 1

2 Getting Started 2 2.1 Installing L^{A}TEX …. 2 2.2 Installing sffms …. 2 2.3 Using sffms . . . . . . 3 2.4 L^{A}TEX Basics . . . . . 3 2.5 L^{A}TEX Tricks . . . . . 3

3 Declaration of Options 5 3.1 The Submission Options 5 3.2 Options for Quotation

Marks . . . . . . . . . 6 3.3 Non-submission Options 6 3.4 Other Options …. 7

4 Commands 7 4.1 Title . . . . . . . . . . 7 4.2 Author . . . . . . . . . 7 4.3 Other Information . . 8 4.4 Sectioning Commands 8 4.5 Italics, Boldface and

Small Caps . . . . . . 9 4.6 Other Commands … 9

5 Environments 10

6 Troubleshooting 11 6.1 Processing Errors … 11 6.2 Margin Problems … 11 6.3 Other Appearance Is-

sues . . . . . . . . . . 13

7 Credits 13

1 About 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, with options for anonymous submissions.

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 L^{A}TEX’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 L^{A}TEX document preparation system is free and available for all operating systems. This package and all supporting packages are available from 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://sffms.ficml.org/. If you still have questions or suggestions after reading through this documentation, feel free to email the author

at mcd@sdf.lonestar.org.

2 Getting Started

If you are already familiar with L^{A}TEX, you may wish to skip this section.

2.1 Installing L^{A}TEX

L^{A}TEX 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.

2.2 Installing 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 L^{A}TEX on sffms.ins. You can do this either by opening sffms.ins in your front-end (WinEdt or TeXShop) and hitting the L^{A}TEX button, or by typing the following at the command line:

latex sffms.ins

L^{A}TEX 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 L^{A}TEX 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 L^{A}TEX or sffms distribution. Try running a sample story file through L^{A}TEX (see below). If L^{A}TEX 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:

fancyhdr.sty
setspace.sty
ulem.sty

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 ctan (www.ctan.org).

2.3 Using sffms

All you need to use sffms is a plain text file with the following contents:

\documentclass{sffms}
\author{Lois McMaster Bujold}
\title{Komarr}
\begin{document}
Your story goes here.
\end{document}

Call this source file filename.tex and latex it by typing

latex filename.tex
latex filename.tex

L^{A}TEX should be run twice in order to get the correct word count.

Depending on your L^{A}TEX 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.

2.4 L^{A}TEX Basics

A L^{A}TEX 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, etc.), it will be almost ready for L^{A}TEX. 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 L^{A}TEX “smart quotes” are produced using a pair of accents (usually found under the ∼ key) and a pair of apostrophes, like so: ``smart quotes''. A good L^{A}TEX editor (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 “ ‘. To produce ‘ “ instead, use braces, like so: `{``}. Likewise, use '{''} if ''' fails to do the job.

Certain characters are reserved by L^{A}TEX for special purposes:

# $ % & ~ _^\ { }

To use a reserved character in a story, you must put a backslash in front of it (\$, \%, 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 L^{A}TEX. Anything between an unescaped % and the end of the line will be silently ignored by L^{A}TEX when it processes your file.

2.5 L^{A}TEX Tricks

Depending on your L^{A}TEX installation, you may be able to produce some common accent marks thus:

á \'{a}  è \`{e}  ï \"{\i}  õ \~{o}  û \^{u}  ç \c{c}

If you want something a little more alien, try some of the following:

\.{h}  \^{m}  \u{n}  \v{q}  \H{r}  \d{v}  \b{x}
\i  \j  \ae  \OE  \l  \o  \ss  \S  ?`  !`  \pounds

Many more symbols are available in L^{A}TEX’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.)

L^{A}TEX 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

\frenchspacing

at the beginning of your document. To force a single space in those rare cases where L^{A}TEX chooses the wrong spacing, use \ (a backslash followed by a space) or ~.

``Put only one space after a quote!''\ she demanded.
``Of course, Dr.~Jones!''

The ~ also prevents a linebreak from occurring between the two words. Use it with caution.

All L^{A}TEX commands begin with a backslash, as in \documentclass{sffms} or \frenchspacing. L^{A}TEX environments begin with a \begin command and end with an \end command. Two L^{A}TEX environments that may be of use are verse

and quotation:
\begin{verse}

First line of your verse,\\
Second line\\
Third line
Beginning of a new stanza\\
Etc.
\end{verse}
\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}

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.

3 Declaration of Options

The sffms class has several 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:

\documentclass[novel,baen]{sffms}

3.1 The Submission Options

[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, oneinch 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.)

[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 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.

[anon] The anon option removes all information about the author (name, address, and running surname) to comply with the rules of the CONduit story contests and other anonymous submissions. To produce a title page with this information but running headers without a surname, use the wotf option instead.

\documentclass[anon]{sffms}

[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).

\documentclass[baen]{sffms}

[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).
\documentclass[daw]{sffms}

[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.

\documentclass[wotf]{sffms}

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.

3.2 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 L^{A}TEX 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-ascii “smart” quotation marks in your source file. All non-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.

[smart] The smart option turns pairs of normal ascii quotation marks ("dumb quotes") into L^{A}TEX quotation marks (``smart quotes''), so that the output file will show true “smart quotes.” This option also correctly handles quotations continued between paragraphs.

[dumb] The dumb option suppresses L^{A}TEX ``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. Caveat emptor. They can handle mixed quotation mark styles (L^{A}TEX smart with ascii dumb) if the two sorts of marks are balanced—for example, if some chapters use ascii quotes and others L^{A}TEX 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.

3.3 Non-submission Options

[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:
\documentclass[nonsubmission]{sffms}

[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 L^{A}TEX layout; notitle is also useful for saving paper.

Because sffms is based on the standard L^{A}TEX report class, any other L^{A}TEX report class options may be used for non-submissions, including font size options (10pt, 12pt, etc.), paper size and other useful typesetting options (twoside, twocolumn, etc.). Using report-class options together with a submission option may generate unexpected results.

3.4 Other Options

[courier] The courier option switches to a 12-point, 10-pitch Courier font that may look better than L^{A}TEX’s default monospaced font, depending on your local L^{A}TEX setup. Try this option if you want a fatter font than the default or if your pdf files are looking grainy.

[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.

[a4paper] If you use geometry with the intent of fixing your papersize, you should declare [letterpaper] 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.

4 Commands

4.1 Title

\title Every story should have a title. You must specify the title using the L^{A}TEX title command thus:

\title{The Hobbit: or There and Back Again}

\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:

\runningtitle{The Hobbit}

If you fail to provide a runningtitle, your title will be used instead, no matter how long it is.

4.2 Author

\author Every story must also have an author. The name included in the L^{A}TEX 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.

\author{Lois McMaster Bujold}

\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.

\authorname{Lois Bujold}

\surname Like runningtitle, surname is used in page headers. Whose surname goes in surname is up to you.

\surname{Bujold}

If you omit surname, the full value of author will be used.

4.3 Other Information

\address Your mailing address for the title page is specified with the address command. Separate lines with the L^{A}TEX linebreak symbol \\ thus:

\address{One Vor Way\\
         Vor. Surleau\\
         VKD 28945}

Other requested contact information (such as a phone number or email address) should be included here.

\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:

\wordcount{85,000}

The following will suppress the word count entirely:

\wordcount{}

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.

\disposable The disposable command causes the words “Disposable Copy” to be printed under the word count on the title page of submissions.

4.4 Sectioning Commands

\newscene For short stories, the only breaks should be scene breaks. Place the newscene command wherever you want a scene break.

...the last few words of the previous scene.
\newscene
Time to start a new scene...

This command inserts the proper scene break character, a centered hash mark (#), in submissions, and a blank line in non-submissions.

\sceneseparator If you would prefer to use a different scene separator, such as *****, the sceneseparator command will change it.

\sceneseparator{$\star\star\star\star\star$}

Beware of L^{A}TEX special characters when using this command.

\chapter For a novel, you can use both chapters and scenebreaks. The L^{A}TEX chapter commands have been redefined in sffms to fit the submission format. Begin a new chapter thus:

\chapter{Miles High}

\chapter* The L^{A}TEX \chapter* command also works in submissions. It creates an unnumbered chapter, such as a preface or appendix.

\chapter*{Preface}

\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.

\thirty{The End}

4.5 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.

\em The \em command may be used for single italicized words; it goes inside the braces with the word, thus:

I can't believe that {\em you}, of all people...

\emph This produces underlining by default and italics in non-submissions. To underline (italicize) anything from a word to a paragraph, use the \emph command. With \emph, the curly braces come after the command.

\emph{I can't believe that they, of all people...}

\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.

\bfseries The \bfseries font declaration and the \textbf font command will produce

\textbf boldface in non-submissions and wavy underlines in submission mode. The font declaration goes inside the curly braces and the font command outside, thus:

I can't believe that {\bfseries you}, of \textbf{all people}...

\scshape The \scshape font declaration and the \textsc font command will produce \textsc small caps in nonsubmission mode and double-underlined text in submissions.

They work exactly like the corresponding boldface commands:

I can't believe that {\scshape you}, of \textsc{all people}...

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.

4.6 Other Commands

\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.

\ifsubmission{}{Some comments to myself...}
\ifsubmission{\thirty{-30-}}{
  \setlength{\textheight}{8.5in}
  \setlength{\topmargin}{0in}
}

\submit Two commands are provided as a convenient shorthand for the \ifsubmission

command. They take one argument each. Text or commands inside a \submit

\nosubmit command will be used only for submissions, 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.

\nosubmit{Some comments to myself...}

\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:

\msheading{}

To keep just the page number, use:

\msheading{\thepage}

To add more space between the default heading parts, use:

\msheading{\getsurname\ /\ \getrunningtitle\ /\ \thepage}

For page numbers of the form “Page 3 of 135,” use:

\msheading{\pageofpages}

(Check the code for \pageofpages to see how it was done.) Reckless use of the \msheading command may cause L^{A}TEX errors.

Any other L^{A}TEX commands may be used for non-submissions. Using them for submissions may generate unexpected results.

5 Environments

synopsis The only new L^{A}TEX 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{synopsis}
Summarize your novel here.
\end{synopsis}

The synopsis can be placed anywhere after the \begin{document} command. The synopsis environment can also be used without the novel option.

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{singlespace}
\begin{verse}
Oh, what a bore,\\
To be a Vor.
\end{verse}
\end{singlespace}

(See the L^{A}TEX Tricks section for an explanation of the verse and quotation environments.) You should not need the doublespace environment, but it works the same way.

6 Troubleshooting

Problems with sffms are usually caused by typos in the source file or by a local L^{A}TEX misconfiguration. This section covers the most common issues.

6.1 Processing Errors

If L^{A}TEX 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 L^{A}TEX packages, you can always put all required files in the folder where the the story file itself is located. L^{A}TEX will find them automatically.

If, in particular, L^{A}TEX 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 L^{A}TEX 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 with a black box). If the overflow is large you may want to split the problematic line or word manually using \\. Normally, L^{A}TEX 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 care for the default font, see the section below on appearance issues.

In cases where L^{A}TEX 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 L^{A}TEX Basics section for a full list of reserved characters.

6.2 Margin Problems

Margin problems are almost always caused by an incorrect default paper size setting within your L^{A}TEX installation. Several popular L^{A}TEX installations come with a4 set as the default paper size. Before you blame L^{A}TEX, 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:

\documentclass[geometry,letterpaper]{sffms}

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:

texconfig dvips paper letter
texconfig xdvi us

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

page_width 210 true mm
page_height 297 true mm

with the following:

page_width 8.5 true in
page_height 11 true in

You can fix postscript output by editing the file

\texmf\dvips\config\config.ps, changing
@ A4size 210mm 297mm
@+ %%PaperSize: A4
@ letterSize 8.5in 11in

to read only:

@ letterSize 8.5in 11in
@+ %%PaperSize: Letter

You may still see a problem if you view dvi files in Yap. In that case, open View | Options... | 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.

6.3 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 L^{A}TEX 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.

7 Credits

Many thanks to Kevin Russell for writing sfms.cls, which was itself inspired by code posted by Michael Grant to rec.arts.sf.composition in July 2000.

The code for sffsmart.sty was adapted from quote.sty by Hunter Goatley, available from 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.