Mom -- Document processing, bibliographies and references

Back to Table of Contents | Next: Writing letters

# Bibliographies and references

- Introduction to bibliographies and references
- Tutorial on `refer` usage with mom
  - Create a `refer` database
  - Insert a `refer` block
  - Tell mom where you want your references (if footnotes or endnotes)
  - Accessing references in the database
  - Entering footnote/endnote references
  - Parenthetical insertions
  - Generating a bibliography from parenthetical insertions
  - Generating a comprehensive bibliography
  - Invoking groff with mom and `refer`
- MLA (Modern Language Association) style
  - Types of references (endnote, footnote, or embedded in text)
  - Inserting parenthetical references into the text
- The `refer` database
  - Introduction
  - Rules
  - Quick guide to field identifiers (%A for author, %T for title, etc)
  - Field identifiers: specifics, usage and examples
    - avoiding ibid, idem and their ilk
- The bibliography and reference macros
  - Bibliography control macros and defaults

## Introduction to bibliographies and references

Mom provides the ability to format and generate bibliographies, as well as footnote or endnote references, in MLA (Modern Language Association) style. She accomplishes this by working in conjunction with a special groff program called `refer`.

`Refer` requires first that you create a database of works that will be cited in your documents. Once that’s done, special macros let you briefly key in references to entries in the database and have mom format them with respect to order, punctuation and italicization in footnotes, endnotes, or a full bibliography.

`Refer` has been around for a long time. It’s powerful and has many, many features. Unfortunately, the manpage (`man refer`), while complete and accurate, is dense and not a good introduction. (It’s a classic manpage Catch-22: the manpage is useful only after you know how to use the program.)

In order to get mom users up and running with `refer`, this section of mom’s documentation focuses exclusively, in a recipe-like manner, on what you need to know to use `refer` satisfactorily in conjunction with mom. The instructions are not to be taken as a manual on full `refer` usage.

If you’re already a `refer` user, the information herein will be useful for adapting your current `refer` usage to mom’s way of doing things. If you’ve never used `refer`, the information is essential, and, in many cases, may be all you need.

I encourage anyone interested in what MLA style looks like—and, by extension, how your bibliographies and references will look after mom formats them—to check out
http://www.aresearchguide.com/12biblio.html or any other website or reference book on MLA style.

### Tutorial on refer usage with mom

1. Create a `refer` database
   - example `refer` database
2. Insert a `refer` block
   - refer block for footnotes/endnotes
   - refer block for parenthetical insertions into running text
   - refer block for comprehensive bibliographies (reading lists)
3. Tell mom where you want your references (if footnotes or endnotes)
4. Accessing references in the database
5. Entering footnote/endnote references
6. Parenthetical insertions
7. Generating a bibliography from parenthetical insertions
8. Generating a comprehensive bibliography
9. Invoking groff with mom and `refer`

#### 1. Create a refer database

The first step in using `refer` with mom is creating a database. The database is a text file containing entries for the works you will be citing. You may set up separate databases for individual documents, or create a large database that can be accessed by many documents.

Entries (“records” in refer-speak) in the database are separated from each other by a single, blank line. The records themselves are composed of single lines (“fields”) with no blank lines between them. Each field begins with a percent sign and a single letter (the "field identifier") e.g., `%A` or `%T`. The letter identifies what part of a bibliographic entry the field refers to: Author, Title, Publisher, Date, etc. After the field identifier comes a single space, followed by the information appropriate to field.

Here’s an example database containing two records so you can visualize what the above paragraph says.

Example `refer` database
%A Terry Pratchett %A Neil Gaiman %T Good Omens %C London %I Gollancz %D 1990 %A Peter Schaffter %T The Schumann Proof %C Toronto %I RendezVous Press %D 2004

The order in which you enter fields doesn’t matter. `Refer` will re-arrange them for you.

#### 2. Insert a refer block

Having set up your database, you now need to put some `refer`-specific commands in your mom file.

`Refer` commands are introduced by a single line containing `.R1`, and concluded with a single line containing `.R2`. What goes between the `.R1` and `.R2` lines is called a “refer block”. `Refer` commands in a refer block should be entered one per line, in lowercase letters, with no initial period (dot). The actual commands depend on whether you want your references

- in footnotes/endnotes
- parenthetically inserted (in abbreviated form) into running text, referring to a works-cited list (bibliography)
- to generate a comprehensive bibliography (a reading list)

##### Refer block for footnotes/endnotes

If you want footnote or endnote references, place this block at the top of your mom file.

.R1 no-label-in-text no-label-in-reference join-authors " and " ", " ", and " database <full path to database> .R2

`<full path to the database>` means the full path including the filename, e.g., `/home/user/refer/my-database-file`.

##### Refer block for parenthetical insertions into running text

If you want short, parenthetical insertions into running text, referring to works cited in a bibliography, place this block at the top of your mom file.

.R1 label "(A.n|Q)" bracket-label " (" ")" ", " join-authors ", and " ", " ", and " move-punctuation reverse A1 sort A1Q1T1B1E1 database <full path to database> .R2

`<full path to the database>` means the full path including the filename, e.g., `/home/user/refer/my-database-file`.

##### Refer block for comprehensive bibliographies

If you want to output an entire `refer` database, or generate a comprehensive bibliography (a reading list) from a database, place this block at the bottom of your mom file, either prior to or immediately after invoking BIBLIOGRAPHY.

.R1 no-label-in-text no-label-in-reference join-authors ", and " ", " ", and " sort A1Q1T1B1E1 reverse A1 database <full path to database> .R2

`<full path to the database>` means the full path including the filename, e.g., `/home/user/refer/my-database`.

#### 3. Tell mom where you want your references

If you want references in footnotes, issue the instruction
.FOOTNOTE_REFS anywhere before the first citation in your file. Footnote markers will be inserted into the text, and the bibliographic information for the citation will appear as a footnote.

If you want references in endnotes, issue the instruction
.ENDNOTE_REFS anywhere before the first citation in your file. Endnote markers will be inserted into the text, and the bibliographic information for the citation will appear as an endnote entry.

Note that if you want references parenthetically inserted into running text, referring to entries in a works-cited list (bibliography) that `mom` and `refer` assemble automatically, no special instructions are required. See Generating a bibliography from parenthetical insertions for how to output the collected references.

For outputting an entire `refer` database, or generating a comprehensive reading list from a database, see the macro BIBLIOGRAPHY.

#### 4. Accessing references in the database

References are accessed by putting keywords from the desired database record between two special `refer` commands:
.[ and
.] Keywords are any word, or set of words, that identify a database record unambiguously. Thus, if you have only one database record for the author Ray Bradbury,
.[ bradbury .] is sufficient. However, if your database contains several records for books by Bradbury, say, Fahrenheit 451 and The Martian Chronicles, “`bradbury 451`” and “`bradbury martian`” would identify the two records unambiguously.

A special database field identifier, `%K`, lets you create unique keywords for database records to help clear up any ambiguity.

Notice that you don’t have to worry about capitalization when entering keywords.

#### 5. Entering footnote/endnote references

Depending on which you have issued, a `.FOOTNOTE_REFS` or an `.ENDNOTE_REFS` command, entering references is done like this:
.REF .[ keyword(s) .] .REF If FOOTNOTE_REFS is in effect, the reference between the first and second `.REF` will be treated as a footnote. If ENDNOTE_REFS, it will be treated as an endnote. Endnote references must be explicitly output with ENDNOTES at the end of your file, before TOC.

Important: REF behaves identically to FOOTNOTE and ENDNOTE with respect to the use of the `\c` inline escape. Please read the HYPER IMPORTANT NOTE found in the document entry for FOOTNOTE (which also applies to ENDNOTE).

#### 6. Parenthetical insertions

See Inserting parenthetical references into text.

#### 7. Generating a bibliography from parenthetical insertions

To generate a bibliography from works cited by parenthetical insertions in the text, put this at the end of your document, before `.TOC`.
.BIBLIOGRAPHY .[ $LIST$ .] .BIBLIOGRAPHY OFF

#### 8. Generating a comprehensive bibliography

You can also generate a comprehensive bibliography, which is to say a bibliography containing more works than are actually cited (a “reading list”), by placing references between `.BIBLIOGRAPHY` and `.BIBLIOGRAPHY OFF`. Once you have input the desired references, insert
.[ $LIST$ .] and follow it with `.BIBLIOGRAPHY OFF`. Study the example below if you’re having trouble visualizing this.

Example bibliography
.BIBLIOGRAPHY .R1 no-label-in-text no-label-in-reference join-authors ", and " ", " ", and " sort A1Q1T1B1E1 reverse A1 database <full path to database> .R2 .[ bradbury .] .[ pratchett .] .[ $LIST$ .] .BIBLIOGRAPHY OFF

Alternatively, you can output an entire database as a bibliography. Do the following at the end of your document, before `.TOC`.
.BIBLIOGRAPHY .R1 no-label-in-text no-label-in-reference join-authors ", and " ", " ", and " sort A1Q1T1B1E1 reverse A1 bibliography <full path to database> .R2 .BIBLIOGRAPHY OFF

#### 9. Invoking groff with mom and refer

So, now you’ve got a document formatted properly to use references processed with `refer`, what do you do to output the document?

It’s simple. Instead of invoking groff with just the `-mom` option, as explained here, invoke groff with the `-R` option as well, like this:
groff -R -mom <filename> ...

## MLA (Modern Language Association) style

### Types of references (endnote, footnote, or embedded in text)

MLA allows for three types of references, or referencing styles:

- short, parenthetical references in the text, linked to a works-cited list (bibliography) at the end of the document
- footnote references
- endnote references

There are significant differences between the way footnote/endnote references should be formatted, and the formatting style of bibliographies. One example is that footnote/endnote references should have their first lines indented, whereas bibliographic references should have their second lines indented. Fortunately, with mom, there’s no need to concern yourself with the differences; they’re taken care of automatically.

In terms of inserting references into your documents, footnote/endnote references are input in a manner similar to entering any other kind of footnote or endnote. Parenthetical references, however, need to be handled differently. See the next section.

### Inserting parenthetical references into the text

MLA style prefers restricting the information in parenthetical references to the barest minimum needed to identify works in the works-cited list (the bibliography). Typically, a parenthetical insertion is just the author’s last name followed by the page number of the cited work (if only one work by that author is cited), or by the author, a shortened title of the work, and the page number (if more than one work is cited).

This necessitates a slightly fiddly way of entering parenthetical references, though not by any means difficult or hard to make sense of.

The `refer` block suggested here for parenthetical references prints only the author’s last name from the database record identified by your keywords (the `label` command), surrounded by parentheses (the `bracket-label` command). Therefore, assuming you are citing Ray Bradbury’s The Martian Chronicles, and it is the only work by Bradbury mentioned in the text,
...end of sentence. .[ martian chronicles .] A new sentence... will insert “...end of sentence (Bradbury). A new sentence...” into the text. The Martian Chronicles will be added to the works-cited list generated at the end of the document if it is not already present as the result of an earlier reference.

If you need a page number to identify where in The Martian Chronicles to find a specific quote
"...aluminum roaches and iron crickets." .[ [ martian chronicles .] 168) A new sentence... results in ““...aluminum roaches and iron crickets.” (Bradbury 168) A new sentence...” (which is excruciatingly correct MLA style). The “`[`” before `martian chronicles` tells refer to print the opening parenthesis; any text immediately following the “`.]`”, including spaces, replaces the closing parenthesis. (Notice that you have to add the closing parenthesis yourself after the page number.)

If your document cites more than one work by Bradbury and you need a title and page number in addition to the author's name in the inline reference,
"...aluminum roaches and iron crickets." .[ [ bradbury martian .], \fIChronicles\fP 168) A new sentence... will produce ““...aluminum roaches and iron crickets.” (Bradbury, Chronicles 168) A new sentence...”.

### The ‘label’ and ‘bracket-label’ commands

The `label` and `bracket-label` commands in the refer block allow you to customize what information goes into parenthetical references, and how they should be formatted. `label` dictates which fields from the database record to print and how to punctuate them. `bracket-label` controls the bracketing style. Users are encouraged to consult `man refer` for usage.

Here’s an example of how to set up APA-style references, which require the author and date of publication, optionally with a page number or range of pages.
.R1 label "(A.n|Q) ', ' D.y" bracket-label " (" ")" ", " join-authors ", and " ", " ", and " move-punctuation reverse A1 sort A1Q1T1B1E1 database /home/peter/Groff-mom/Testing/Refer/refer-database .R2 Assuming a reference to a work by Ursula Leguin published in 1980
.[ leguin .] produces (Leguin, 1980) . If a page number is also required
.[ [ leguin .], p. 73) produces (Leguin, 1980, p. 73).

## The refer database

### Introduction

The heart and soul of `refer` is the bibliographic database. Knowing how to create records (ie. the entries for works cited in a document) is largely a question matching data (author, title, publisher, etc) with the correct field identifier. For example, if you’re citing from a scholarly journal, you need to know that `%J` is the field identifier for journal names and `%N` is the field identifier for the journal number. Use the Quick list of field identifiers as your guide.

### The rules

Entering the data correctly is also important. Fortunately, there are very few rules, and those there are make sense. In a nutshell:

- enter the data in each field in natural order; author John Smith is “John Smith”, editor Jane Doe is “Jane Doe”
- capitalize all proper nouns and words in titles as you expect to see them; otherwise, use lowercase
- use no terminating punctuation unless required; typically, required punctuation is the period after a shortform (“ed.” or “eds.”, “Jr.”, etc) or a question mark or exclamation mark at the end of a title
- if part of a field needs to be set off in single-quotes, use `\[oq]` and `\[cq]` (openquote, closequote) rather than the single-quote (or apostrophe) character on your keyboard
- if part of a field needs to be forced into italics, use the escapes `\*[IT]` and `\*[PREV]`; if the italicized portion concludes the field, omit `\*[PREV]`
- if you require characters with accents, ligatures or special symbols, use groff’s “named” glyphs (e.g., `\['e]` for `é`); a full list can be found in `man groff_char`

### Quick guide to field identifiers (click on any that are links for more information)

%A author – records may contain multiple authors, one per line %Q non-human author – corporate author, e.g., National Geographic; may also be used for exceptional reference types %m multiple authors – whenever "et al." is desirable %i idem – multiple works by the same author %p post-author – post-author information (e.g., appendix, foreword, letter) %T title – primary title (of a book) or the title of an article (within a scholarly journal or a magazine) %B book title – when %T contains the title of an article; %q force quote – force a title into double-quotes %t reprint title – if different from a work's original title %b main author – when citing a preface, foreword, introduction, or afterword, the author of the complete original work %E editor – records may contain multiple editors, one per line %l translator – if more than one translator, all the names %r translator – if tr. and ed. are one in the same and editor %M magazine or – when %T contains the title of an article newspaper %J journal – when %T contains the title of an article %e edition – number or name of an edition (e.g., Second, 2nd, Collector's, etc.) %S series – series name of books or journals %V volume – volume number (of books) %N journal number – journal or magazine number %R report number – technical report number %G gov’t. – government ordering number %O other – information for which there is no appropriate field letter %C city – city of publication %I publisher – publisher %D date – publication date %d original publication date – if different from date of publication %P page(s) – page number or range %n annotation – annotation to the reference %s site name – for internet references, the website name %c content – for internet references, the source of the material (e.g., Web or Email); for websites, the content, if unclear %o organization – for internet sites, the organization, group or sponsor of the site %a access date – for internet sites, the date of access %u URL – for internet sites, the full URL %K keywords – words that help clear up ambiguities in the database

### Field identifiers: specifics, usage and examples

#### %A – author field

For multiple authors, enter each in a separate `%A` field in the order in which they should appear. If the author on the title page is the editor (say, a book of short stories edited by Ray Bradbury), add `, ed.` to the end of the `%A` field, like this:
%A Ray Bradbury, ed. Do not use the `%E` field in these instances. If the work has several such editors, enter each in a separate `%A` field, as for multiple authors, and add `, eds.` to the last one, like this:
%A Jane Dearborne %A Bill Parsons, eds.

#### %Q – exceptional entries

Sometimes, a work has no author or title information, for example a book review in a newspaper. In such cases, use `%Q`, like this:
%Q Rev. of \*[IT]Mean Streets Omnibus\*[PREV], ed. Raymond Hammett %M Times Literary Supplement %D 7 July 1972

#### %m – multiple authors (et al.)

Whenever it’s desirable to abbreviate a list of authors with “et al.” enter it in the `%m field`, like this:
%A Paul Lauter %A Doug Scofield %m et al.

#### %i – idem

Whenever there are several works by the same author, fill out the `%A` field with the author’s name and follow it with the `%i idem`, like this:
%A Jonathon Schmidt %i idem Per MLA style, the author’s name will be replaced by a long dash.

If it’s necessary to state the role the author served (say, editor or translator), fill out the `%i` field with the information minus `idem`, like this:
%A Ray Bradbury %i ed. %T Timeless Stories for Today and Tomorrow

#### %p – post-author information

When citing from a preface, foreword, introduction, afterword or appendix, MLA requires that the information come between the author’s name and the work’s title, like this:
%A Martin Packham, Jr. %p appendix %T Why the West was Won Do not capitalize the first word in the `%p` field unless it is a proper noun.

#### %q – force title into double-quotes

Occasionally, you may not be able to use `%T` for the title because doing so will cause it to come out in italics when double-quotes are called for. An example of this is when citing from a dissertation. Use `%q` to get around the problem, like this:
%A Carol Sakala %q Maternity Care Policy in the United States %O diss., Boston U, 1993

#### %E – editor

Use this only if the author and the editor are not one in the same, e.g.,
%A Geoffrey Chaucer %T The Works of Geoffrey Chaucer %E F. W. Robinson

#### %l – translator

If there is more than one translator, enter all the names, with appropriate conjunctions and punctuation, like this:
%A Feodor Dostoevsky %T Crime and Punishment %l Jessie Coulson, Marjorie Benton, and George Bigian

#### %O – other

Occasionally, MLA requires additional information after the title but before the publication data (city/publisher/date), for instance, the number of volumes in a series, or the fact that the work cited is a dissertation. Here are two examples:
%A Arthur M. Schlesinger %T History of U.S. Political Parties %O 4 vols. %C New York %I Chelsea %D 1973 %A Carol Sakala %q Maternity Care Policy in the United States %O diss., Boston U, 1993 Do not capitalize the first word of the `%O` field unless it is a proper noun.

Generally, consider `%O` a catch-all for information that does not match the criterion of any existing field identifier.

#### %C – city

Normally, `%C` takes the name of the city of publication, and that’s all. In the case of a republished book, if new material has been added, put such information in the `%C` field, like this:
%A Theodore Dreiser %T Sister Carrie %d 1900 %C Introd. E. L. Doctorow, New York

#### %d – original date of publication

Normally, all that is required in the `%d` field is the original date of publication. However, if supplementary original publication data is desired, include it in the field, like this:
%A Kazuo Ishiguro %T The Remains of the Day %d London: Faber, 1989 %C New York %I Knopf %D 1990

#### %K – keywords

`Refer` hates ambiguity, and complains when encountering it. Ambiguities result from the duplication of any word in more than one database record when that word is used to identify a reference in your input file. Use `%K` to create unique keywords found nowhere else in the database.

Imagine, for example, that your database contains records for Ray Bradbury’s The Illustrated Man, another record for The Illustrated Bradbury and a third for Bradbury, Illustrated. `%K` can be used to clear up any ambiguities by assigning a unique word to each record, for example `%K ill-man` for the first, `%K ill-brad` for the second, and `%K brad-ill` for the third.

#### %P – pages

When citing page numbers, which is often the case with footnotes and endnotes, it is not necessary to put the numbers in the database records. The `%P` field can be added underneath the keyword(s) in the `.[` / `.]` entries in your input file, allowing you to recycle database records. For example,
%A Frye %T Anatomy %K frye-anat could be your short record for Northrop Frye’s The Anatomy of Criticism. Any time you wanted to cite a particular page or range of pages from that work in a footnote or endnote, you can put
.REF .[ frye-anat %P 67-8 .] .REF in your input file, and have it show up with the correct page(s).

#### %n – annotations

Annotations come at the very end of references. Capitalize all words that require it, including, for bibliographic references (but not for footnotes/endnotes) the first.

### The bibliography and reference macros

- REF – begin/end a `refer` reference that will go in a footnote or endnote
- FOOTNOTE_REFS – instruct mom to put REFs in footnotes
- ENDNOTE_REFS – instruct mom to put REFs in endnotes
- INDENT_REFS – manage indenting of references, per MLA standards
- HYPHENATE_REFS – enable/disable hyphenation of references
- BIBLIOGRAPHY – begin a bibliography
- BIBLIOGRAPHY_TYPE – plain, or numbered list bibliography
- Bibliography control macros and defaults

### Begin/end a reference that goes in a footnote or endnote

Macro: REF

The macro REF tells mom that what follows is `refer`-specific, a keyword-identified reference to a `refer` database record. Depending on whether you’ve issued a `.FOOTNOTE_REFS` or `.ENDNOTE_REFS` instruction, the reference will be formatted and placed in a footnote, or collected for output in the endnotes. Parenthetical insertion of references into the text do not require `.REF` (see Inserting parenthetical references into the text.)

Before you use REF, you must create a `refer` block containing `refer` commands (see Required refer commands in the tutorial, above).

REF usage always looks like this:
.REF .[ keyword(s) .] .REF Notice that REF “brackets” the `refer` instructions, and never takes an argument.

What REF really is is a convenience. One could, for example, put a reference in a footnote by doing
.FOOTNOTE .[ keyword(s) .] .FOOTNOTE OFF However, if you have a lot of references going into footnotes (or endnotes), it’s much shorter to type `.REF/.REF` than `.FOOTNOTE/.FOOTNOTE OFF`. It also helps you distinguish—visually, in your input file—between footnotes (or endnotes) which are references, and footnotes (or endnotes) which are explanatory, or expand on the text.

Note: If you’re using REF to put references in footnotes and your footnotes need to be indented, you may (indeed, should) pass REF the same arguments used to indent footnotes. See FOOTNOTE.

Additional note: REF behaves identically to FOOTNOTE or ENDNOTE, so please read the HYPER IMPORTANT NOTE found in the document entry for FOOTNOTE and/or ENDNOTE for instructions on correct entry of text preceding and following REF.

### Instruct mom to put references in footnotes

Macro: FOOTNOTE_REFS

FOOTNOTE_REFS is an instruction to REF, saying, “put all subsequent references bracketed by the REF macro into footnotes.” You invoke it by itself, with no argument.

When FOOTNOTE_REFS is in effect, regular footnotes, (ie those introduced with `.FOOTNOTE` and terminated with `.FOOTNOTE OFF`) continue to behave normally.

You may switch between FOOTNOTE_REFS and ENDNOTE_REFS at any time.

By default, FOOTNOTE_REFS sets the FOOTNOTE_MARKER_STYLE to `NUMBER` (ie superscript numbers). You may change change that if you wish by invoking FOOTNOTE_MARKER_STYLE, with the argument you want after FOOTNOTE_REFS.

If you have a lot of footnote references, and are identifying footnotes by line number rather than by markers in the text, you may want to enable FOOTNOTES_RUN_ON in conjunctions with FOOTNOTE_REFS.

### Instruct mom to put references in endnotes

Macro: ENDNOTE_REFS

ENDNOTE_REFS is an instruction to REF, saying, “add all subsequent references bracketed by the REF macro to endnotes.” You invoke it by itself, with no argument.

When ENDNOTE_REFS is in effect, mom continues to format regular endnotes, (ie those introduced with `.ENDNOTE` and terminated with `.ENDNOTE OFF`) in the normal way.

You may switch between ENDNOTE_REFS and FOOTNOTE_REFS at any time.

### Manage indenting of references, per MLA standards

Macro: INDENT_REFS `FOOTNOTE | ENDNOTE | BIBLIO <indent>`

• `<indent>` requires a unit of measure

MLA-style requires that footnote or endnote references should have their first lines indented, whereas bibliographic references should have their second and subsequent lines indented. Thus, if you invoke INDENT_REFS with a first argument of `FOOTNOTE` or `ENDNOTE`, the value you give to `<indent>` sets the indent of the first line for those types of references; if you invoke it with `BIBLIO`, the value you give `<indent>` sets the indent of second and subsequent lines in bibliographies.

By default, the indent for all three types of references is 1/2-inch for PRINTSTYLE `TYPEWRITE` and 2 ems for PRINTSTYLE `TYPESET`.

If you’d like to change the indent for footnote, endnote or bibliography references, just invoke `.INDENT_REFS` with a first argument saying which one you want the indent changed for, and a second argument saying what you’d like the indent to be. For example, if you want the second-line indent of references on a bibliography page to be 3 picas,
.INDENT_REFS BIBLIO 3P is how you’d set it up.

Tip: If you are identifying endnotes by line number (ENDNOTE_MARKER_STYLE `LINE`) and have instructed mom to put references bracketed by `.REF` into endnotes (with ENDNOTE_REFS), you will almost certainly want to adjust the second-line indent for references in endnotes, owing to the way mom formats line-numbered endnotes. Study the output of such documents to see whether an indent adjustment is required.

The same advice applies to references in endnotes when you have enabled
.ENDNOTE_NUMBERS_ALIGN_LEFT in favour of mom’s default, which is to align them right. Study the output to determine what size of second-line indent works best.

(Frankly, endnote references formatted in MLA-style combined with left-aligned endnote numbers is a no-win situation, and so is best avoided. Wherever you set the indent, you’ll end up with the endnote numbers appearing to hang into the left margin, so you might as well have them hang, as is the case with `.ENDNOTE_NUMBERS_ALIGN_RIGHT`. – Ed.)

### Enable/disable hyphenation of references

Macro: HYPHENATE_REFS `<toggle>`

If you have hyphenation turned on for a document (see HY), and in most cases you probably do, mom will hyphenate references bracketed by the REF macro. Since references typically contain quite a lot of proper names, which shouldn’t be hyphenated, you may want to disable hyphenation for references.

HYPHENATE_REFS is a toggle macro; invoking it by itself will turn automatic hyphenation of REF-bracketed references on (the default). Invoking it with any other argument (`OFF, NO, X`, etc.) will disable automatic hyphenation for references bracketed by REF.

An alternative to turning reference hyphenation off is to prepend to selected proper names in your `refer` database the groff discretionary hyphen character, `\%`. (See here in the tutorial for an example.)

Note: References embedded in the body of a document are considered part of running text, and are hyphenated (or not) according to whether hyphenation is turned on or off for running text. Therefore, if you want to disable hyphenation for such references, you must do so temporarily, with HY, like this:
.HY OFF .[ keyword(s) .] .HY Alternatively, sprinkle your database fields liberally with `\%`.

### Begin a bibliography

Macro: BIBLIOGRAPHY `toggle`

To append a bibliography to your document, whether of references inserted parenthetically into text or a comprehensive reading list derived from a large `refer` database, all you need do is invoke `.BIBLIOGRAPHY`. `.BIBLIOGRAPHY` breaks to a new page, prints the title (BIBLIOGRAPHY by default, but that can be changed), and awaits `refer` instructions. How to create bibliographies is covered in the tutorial section, Generating a bibliography from parenthetical insertions and Generating a comprehensive bibliography. When all the required data has been entered, type
.BIBLIOGRAPHY OFF to complete the bibliography.

See the Bibliography control macros and defaults for macros to tweak, design and control the appearance of bibliography pages.

### Plain, or numbered list bibliography

Macro: BIBLIOGRAPHY_TYPE `PLAIN | LIST [ <list separator> ] [ <list prefix> ]`

Mom offers two styles of bibliography output: plain, or numbered list style. With the argument, `PLAIN`, bibliography entries are output with no enumerators. With the argument, `LIST`, each entry is numbered.

The two optional arguments, `<list separator>` and `<list prefix>` have the same meaning as the equivalent arguments to LIST (ie `<separator>` and `<prefix>`).

You may enter the BIBLIOGRAPHY_TYPE either before or after `.BIBLIOGRAPHY`. It must, however, always come before the any `refer` commands. See Generating a bibliography from parenthetical insertions and Generating a comprehensive bibliography.

Mom’s default BIBLIOGRAPHY_TYPE is PLAIN.

### Bibliography control macros and defaults

Mom processes bibliography pages in a manner very similar to the way she processes endnotes pages. The bibliography page control macros, therefore, behave in the same way as their endnotes pages equivalents.

1. General bibliography style control
   - Base family/font/quad
   - Base point size
   - Leading
   - Adjust the space between bibliography entries
   - Singlespace bibliographies (for TYPEWRITE only)
   - Turning off column mode during bibliography output
2. Pagination of bibliographies
   - Page numbering style
   - Setting the first page number of bibliographies
   - Omitting a page number on the first page of bibliographies
   - Suspending pagination during bibliography output
3. Header/footer control
   - Modifying what goes in bibliography headers/footers
   - Header/footer centre string when doctype is CHAPTER
   - Allow headers on bibliography pages
4. Bibliography first-page title control
   - Title string
   - Title string control macros and defaults
   - Title string placement
   - Title string underscoring
   - Title string capitalization

#### 1. General bibliography page style control

##### • Base family/font/quad

See Arguments to the control macros.

.BIBLIOGRAPHY_FAMILY default = prevailing document family; default is Times Roman .BIBLIOGRAPHY_FONT default = roman .BIBLIOGRAPHY_QUAD* default = justified *Note: BIBLIOGRAPHY_QUAD must be set to either L (LEFT) or J (JUSTIFIED); R (RIGHT) and C (CENTER) will not work.

##### • Base point size

Macro: BIBLIOGRAPHY_PT_SIZE `<base type size of bibliography>`

Unlike most other control macros that deal with size of document elements, BIBLIOGRAPHY_PT_SIZE takes as its argument an absolute value, relative to nothing. Therefore, the argument represents the size of bibliography type in points, unless you append an alternative unit of measure. For example,
.BIBLIOGRAPHY_PT_SIZE 12 sets the base point size of type on the bibliography page to 12 points, whereas
.BIBLIOGRAPHY_PT_SIZE .6i sets the base point size of type on the bibliography page to 1/6 of an inch.

The type size set with BIBLIOGRAPHY_PT_SIZE is the size of type used for the text of the bibliographies, and forms the basis from which the point size of other bibliography page elements is calculated.

The default for PRINTSTYLE `TYPESET` is 12.5 points (the same default size used in the body of the document).

##### • Leading

Macro: BIBLIOGRAPHY_LEAD `<base leading of bibliographies> [ ADJUST ]`

• Does not require a unit of measure; points is assumed

Unlike most other control macros that deal with leading of document elements, BIBLIOGRAPHY_LEAD takes as its argument an absolute value, relative to nothing. Therefore, the argument represents the leading of bibliographies in points unless you append an alternative unit of measure. For example,
.BIBLIOGRAPHY_LEAD 14 sets the base leading of type on the bibliography page to 14 points, whereas
.BIBLIOGRAPHY_LEAD .5i sets the base leading of type on the bibliography page to 1/2 inch.

If you want the leading of bibliographies adjusted to fill the page, pass BIBLIOGRAPHY_LEAD the optional argument, `ADJUST`. (See DOC_LEAD_ADJUST for an explanation of leading adjustment.)

The default for PRINTSTYLE `TYPESET` is the prevailing document lead (16 by default), adjusted.

Note: Even if you give mom a `.DOC_LEAD_ADJUST OFF` command, she will still, by default, adjust bibliography leading. You must enter `BIBLIOGRAPHY_LEAD <lead>` with no `ADJUST` argument to disable this default behaviour.

##### • Adjust the space between bibliography entries

Macro: BIBLIOGRAPHY_SPACING `<amount of space>`

• Requires a unit of measure

By default, mom inserts no space between bibliography entries. If you’d prefer she add some, instruct her to do so with BIBLIOGRAPHY_SPACING. Say, for example, you want a half a linespace between entries,
.BIBLIOGRAPHY_SPACING .5v would do the trick.

Note: As with endnotes pages, inserting space between bibliography entries will most likely result in hanging bottom margins.

##### • Singlespace bibliography (TYPEWRITE only)

Macro: SINGLESPACE_BIBLIOGRAPHY `<toggle>`

If your PRINTSTYLE is `TYPEWRITE` and you use TYPEWRITE’s default double-spacing, bibliographies are double-spaced. If your document is single-spaced, bibliographies are single-spaced.

If, for some reason, you’d prefer that bibliographies be single-spaced in an otherwise double-spaced document (including double-spaced collated documents), invoke `.SINGLESPACE_BIBLIOGRAPHY` with with no argument.

##### • Turning off column mode during bibliography output

Macro: BIBLIOGRAPHY_NO_COLUMNS `<toggle>`

By default, if your document is set in columns, mom sets the bibliographies in columns, too. However, if your document is set in columns and you’d like the bibliographies not to be, just invoke `.BIBLIOGRAPHY_NO_COLUMNS` with no argument. The bibliography pages will be set to the full page measure of your document.

If you output bibliographies at the end of each document in a collated document set in columns, column mode will automatically be reinstated for each document, even with BIBLIOGRAPHY_NO_COLUMNS turned on. In such circumstances, you must re-enable BIBLIOGRAPHY_NO_COLUMNS for each separate collated document.

#### 2. Pagination of bibliographies

##### • Page numbering style

Macro: BIBLIOGRAPHY_PAGENUM_STYLE `DIGIT | ROMAN | roman | ALPHA | alpha`

Use this macro to set the page numbering style of bibliography pages. The arguments are identical to those for PAGENUM_STYLE. The default is `digit`. You may want to change it to, say, `alpha`, which you would do with
.BIBLIOGRAPHY_PAGENUM_STYLE alpha

##### • Setting the first page number of bibliographies

Macro: BIBILOGRAPHY_FIRST_PAGENUMBER `<page # that appears on page 1 of bibliographies>`

Use this macro with caution. If the bibliography for a collated document is to be output at the document’s end, BIBLIOGRAPHY_FIRST_PAGENUMBER tells mom what page number to put on the first page of the bibliography.

However, if you’re outputting a bibliography at the end of each section (chapter, article, etc) of a collated document, you have to reset every section’s first page number after COLLATE and before START.

##### • Omitting a page number on the first page of bibliographies

Macro: BIBLIOGRAPHY_NO_FIRST_PAGENUM `<toggle>`

This macro is for use only if FOOTERS are on. It tells `BIBLIOGRAPHY` not to print a page number on the first bibliography page. Mom’s default is to print the page number.

##### • Suspending pagination during bibliography output

Macro: SUSPEND_PAGINATION
Macro: RESTORE_PAGINATION

SUSPEND_PAGINATION doesn’t take an argument. Invoked immediately prior to `BIBLIOGRAPHY`, it turns off pagination for the duration of the bibliography. Mom continues, however to increment page numbers silently.

To restore normal document pagination after bibliographies, invoke `.RESTORE_PAGINATION` (again, with no argument) immediately after you’ve finished with your bibliography.

#### 3. Header/footer control

##### • Modifying what goes in the bibliography header/footer

If you wish to modify what appears in the header/footer that appears on bibliography pages, make the changes before you invoke `.BIBLIOGRAPHY`, not afterwards.

Except in the case of DOCTYPE `CHAPTER`, mom prints the same header or footer used throughout the document on bibliography pages. Chapters get treated differently in that, by default, mom does not print the header/footer centre string (normally the chapter number or chapter title.) In most cases, this is what you want. However, should you not want mom to remove the centre string from the bibliography pages headers/footers, or you would like her to add one in cases where there hasn't been one before (e.g. DOCTYPE DEFAULT) invoke `.BIBLIOGRAPHY_HEADER_CENTER` with no argument.

An important change you may want to make is to put the word “Bibliography” in the header/footer centre position. To do so, invoke
.BIBLIOGRAPHY_HEADER_CENTER .HEADER_CENTER "Bibliography" or .BIBLIOGRAPHY_FOOTER_CENTER .FOOTER_CENTER "Bibliography" prior to invoking `.BIBLIOGRAPHY`.

Important: Unless you have a running centre string in your headers or footers, you must invoke .BIBLIOGRAPHY_HEADER_CENTER or .BIBLIOGRAPHY_FOOTER_CENTER in order for the centre string to appear, as demonstrated above.

##### • Header/footer centre string when doctype is CHAPTER

Macro: BIBLIOGRAPHY_HEADER_CENTER `toggle`

If your DOCTYPE is `CHAPTER` and you want mom to include a centre string in the headers/footers that appear on bibliography pages, or if you do not have a running header/footer centre string in the body of the document, invoke `.BIBLIOGRAPHY_HEADER_CENTER` (or `.BIBLIOGRAPHY_FOOTER_CENTER`) with no argument before defining the centre string . Mom’s default is NOT to print the centre string.

If, for some reason, having enabled the header/footer centre string on bibliography pages, you wish to disable it, invoke the same macro with any argument (`OFF, QUIT, Q, X`...).

##### • Allow headers on bibliography pages

Macro: BIBLIOGRAPHY_ALLOWS_HEADERS `<none> | ALL`

By default, if HEADERS are on, mom prints page headers on all bibliography pages except the first. If you don’t want her to print headers on bibliography pages, do
.BIBLIOGRAPHY_ALLOWS_HEADERS OFF If you want headers on every page including the first, do
.BIBLIOGRAPHY_ALLOWS_HEADERS ALL

Note: If FOOTERS are on, mom prints footers on every bibliography page. This is a style convention. In mom, there is no such beast as BIBLIOGRAPHY_ALLOWS_FOOTERS OFF.

#### 4. Bibliography first-page title control

##### • Title string

Macro: BIBLIOGRAPHY_STRING `"<title to print at the top of bibliography pages>"`

Alias: BIBLIOGRAPHY_HEADER

By default, mom prints the word “BIBLIOGRAPHY” as a title at the top of the first page of a bibliography. If you want her to print something else, invoke `.BIBLIOGRAPHY_STRING` with the title you want, surrounded by double-quotes.

If you don’t want a title at the top of the first bibliography page, invoke `.BIBLIOGRAPHY_STRING` with a blank argument (either two double-quotes side by side—`""`—or no argument at all).

##### • Title string control macros and defaults

See Arguments to the control macros.

.BIBLIOGRAPHY_STRING_FAMILY default = prevailing document family; default is Times Roman .BIBLIOGRAPHY_STRING_FONT default = bold .BIBLIOGRAPHY_STRING_SIZE* default = +1 .BIBLIOGRAPHY_STRING_QUAD default = centred *Relative to the size of the bibliography text (set with BIBLIOGRAPHY_PT_SIZE)

##### • Title string placement

Macro: BIBLIOGRAPHY_STRING_ADVANCE `<distance from top of page>`

• Argument requires a unit of measure

By default, mom places the title (the docheader, as it were) of bibliographies (typically "BIBLIOGRAPHY") on the same baseline that is used for the start of running text. If you’d prefer another location, higher or lower on the page (thereby also raising or lowering the starting position of the bibliography itself), invoke `.BIBLIOGRAPHY_STRING_ADVANCE` with an argument stating the distance from the top edge of the page at which you’d like the title placed.

The argument requires a unit of measure, so if you’d like the title to appear 1-1/2 inches from the top edge of the page, you’d tell mom about it like this:
.BIBLIOGRAPHY_STRING_ADVANCE 1.5i

##### • Title string underscoring

Macro: BIBLIOGRAPHY_STRING_UNDERSCORE `[DOUBLE] [<underline weight> [<underline gap> [<distance between double rules]]] | <none> | <anything>`

Alias: BIBLIOGRAPHY_STRING_UNDERLINE

• The argument `<underscore weight>` must not have the unit of measure, `p`, appended to it

Invoked without an argument, `.BIBLIOGRAPHY_STRING_UNDERSCORE` will place a single rule underneath the bibliography’s first-page title. Invoked with the argument, `DOUBLE`, BIBLIOGRAPHY_STRING_UNDERSCORE will double-underscore the title. Invoked with any other non-numeric argument, (e.g., `OFF, NO, X`, etc.) the macro disables underlining of the title.

In addition, you can use BIBLIOGRAPHY_STRING_UNDERSCORE to control the weight of the underscore rule(s), the gap between the title and the underscore, and, in the case of double-underscores, the distance between the two rules.

Some examples:
.BIBLIOGRAPHY_STRING_UNDERLINE 1 - turn underlining on; set the rule weight to 1 point .BIBLIOGRAPHY_STRING_UNDERLINE 1 3p - turn underlining on; set the rule weight to 1 point; set the gap between the string and the underline to 3 points .BIBLIOGRAPHY_STRING_UNDERLINE DOUBLE .75 3p - turn double-underlining on; set the rule weight to 3/4 of a point; set the gap between the string and the upper underline to 3 points; leave the gap between the upper and the lower underline at the default .BIBLIOGRAPHY_STRING_UNDERLINE DOUBLE 1.5 1.5p 1.5p - turn double-underlining on; set the rule weight to 1-1/2 points; set the gap between the string and the upper underline to 1-1/2 points; set the gap between the upper and the lower underline to 1-1/2 points Note, from the above, that in all instances, underscoring (single or double) is enabled whenever BIBLIOGRAPHY_STRING_UNDERSCORE is used in this way.

By default, mom double-underscores the title if your PRINTSTYLE is `TYPEWRITE`.

##### • Title string capitalization

Macro: BIBLIOGRAPHY_STRING_CAPS `toggle`

Invoked by itself, `.BIBLIOGRAPHY_STRING_CAPS` will automatically capitalize the bibliography first-page title. Invoked with any other argument, the macro disables automatic capitalization of the title.

If you’re generating a table of contents, you may want the bibliography first-page title to be in caps, but the toc entry in caps/lower case. If the argument to `BIBLIOGRAPHY_STRING` is in caps/lower case and BIBLIOGRAPHY_STRING_CAPS is on, this is exactly what will happen.

Mom’s default is to capitalize the bibliography first-page title.

Back to Table of Contents | Top | Next: Writing letters