(This ASCII text file is the basis of the man.macros.7 man page)

Since, no where to the extent of my knowledge, is there a complete 
description of the nroff -man macros, I have decided to make one myself

This is a list of the macros available for man pages

Title, sections, and sub sections:

.TH name number Date Program Section
Where name is the name of the man page, number is the section number, date is
the date the man page was written, Program is the name of the program, and 
section (optional) is the "Section" this manual page falls under.

TH *must* be the first uncommented line in the man page.  Any formatting
commands need to be after the .TH, since there is a known groff bug which
causes some formatting commands before .TH to be changed.

.SH "Name of section" 
Is a section heading, where "Name of section" is the name of the section in 
question.

.SS "Name of subsection"
Is a sub-section heading, where "Name of subsection" is the name of the
sub-section in question.

Bold and italics:

.B bold
.I Italics
.BI bold and italic alternating
.BR Bold and normal alternating
.IB Italics and bold alternating
.IR Italics and normal alternating
.RB Normal and bold alternating
.RI Roman and italics alternating
.SM This is a little smaller than other text
.SB This is a little smaller and in bold

Lists:

The first kind of list is a list where the name of the list 
item is small enough to fit on the same line as the description 
of the list item:

.TP #
Name of item
Description of item
.PP

Starts this kind of list a list, where # is the number of characters (points 
with troff) we use for the name of the item.  The data is formatted like this:

Name	Description.  If the description is long enough that we need
	to wrap a line, we do so.

	In addition, the description can be longer than one paragraph long

We terminate the description with either a .PP macro, or by having
another .TP macro

Example of a bulleted list:

.TP 2
*
This is item one in the list. 
.\" By default, subsequent .TPs will use the same size for the name as
.\" the last .TP which defined the item size
.TP 
*
This is item two
.TP
* 
And so on
.PP
Until we finish the list.

In cases where list item names are long enough that the name and the
description can not fit on the same line, the format is as follows:

.IP "Name of item" #
Description of item, which is shifted over by # characters
.IP "Another name"
Another description.  Since # was not specified, we use the previous
definition of #
.PP
End of list

Example:

.IP "Name of item" 2
Description of item, shifted over two characters
.IP "Another name"
Another description
.PP
End of list

Shifting:

.LP is identical to .PP
.P is identical to .PP

.RS and .RE allow for nested shifts

Example:

Unshifted
.RS 5
Shifted over five characters
.RS 2
And over two move
.RE
back again
.RE
and back to the top

.HP: Have one line of text which is at the standand margin for a man pages.  
All susequent lines are indented over by the amount given as an argument 
to .HP until a .LP or .PP is seen

Other weird stuff:

.PD: I have no idea what this does, apprantently nothing interesting
.DT: "This sets tabs every .5 inches"


Useful raw *roff (read the troff documentation, freely available on 
the 'net, for all raw troff macros):

Comments:

.\" This is a comment that will not be visible in the rendered man page

Stop *roff formatting:
.nf: is akin to the HTML PRE tag: It passes all susequent text unformatted
until a .fi tag is hit
.fi: Turns on text formatting again.

Example:
.nf
This is some text 
which we want to 
preserve the form of
(ASCII art, simple tables, etc.)
.fi

