Slightly outdated -- Latest info available using C-M-? (as defined by BIBLIO).

-- Summarys

  BIBLIO is an extension of EMACS[3] designed to aid in creating and
maintaining SCRIBE bibliographic (.BIB) files.[See chapter 8 of the SCRIBE
manual[2] for more information on bibliographic files.]  BIBLIO provides
three types of aid: bibliographic entry templates, predefined function keys
and directly callable functions.  A template is an empty copy of a
bibliography entry which greatly simplifies typing entries by providing
matching delimiters, a complete set of field names for an entry and a
reminder of the fields' type.  A template is inserted in the bibliographic
file by typing its name and can easily be modified and formatted using the
predefined function keys.  For the advanced user, BIBLIO provides a group
of directly callable functions to sort entries, convert old files, allow
word abbreviations and do personal customization.

  The following notations are used throughout this document:
M- = Ascii escape character.  In Emacs terminology the meta-key.

C-M- = Ascii control Z(^Z).  In Emacs the control-meta-key.

$ = Ascii escape character.

<sp> = Ascii space character.

<cr> = Ascii return character.

_ = underlined characters are the minimum needed to identify a directly
    callable function.

names = italicized names are generic.

entry = refers to an entire bibliographic entry such as Article or Book.

field = refers to a subpart of an entry (e.g., key, publisher, etc.)

  BIBLIO is an EMACS library.[If you are interested in using EMACS and
would like an EMACS manual[1], send a message to <EMACS>@ISIF or
PUBLICATIONS@AI and ask for AI Memo 555.]  To use it type M-X Load
Library$BIBLIO<cr>, and then type M-X BIBLIO; when the library is loaded,
`biblio' will be displayed on the mode line.  To invoke a bibliographic
entry template, type @Entry Name<sp>; after typing the space, the template
for that entry will expand.  The lines of the entry will indicate with @?
which fields are optional and which can be satisfied by an alternative
field.  Any field not marked with a @?  is a required field.  These field
types are used by BIBLIO to remind the user which fields SCRIBE requires.

  Once an entry has been expanded it can be filled out by entering text in  the
usual  way  or  by  using  the  predefined  function keys.  The predefined keys
provide movement and manipulation functions described in the examples below and
completely defined, along with the directly callable functions, in the sections
on basic and advanced functions.

  Three  examples  are  given  below.  The first example expands a template and
discusses the type of fields displayed.  The second example shows how  to  move
among  the  fields  using  BIBLIO's predefined keys.  Finally, the last example
shows how to clean up an entry by removing the useless fields.

@proc<sp>                                         ;Comment 1

@Proceedings[  ,
		^                                 ;Comment 2
   Key=<>,                                        ;Comment 3
   Editor=<>,                 @? or Organization  ;Comment 4
   Organization=<>,           @? or Editor
   Publisher=<>,
   Title=<>,
   Year=<>,
   Address=<>,                @? Optional         ;Comment 5
   Note=<>,                   @? Optional
   ]

@proc<sp>
	 ^                                        ;Comment 6

                       Figure 4-1: Expanding a template

Comments:

   1. Entering  @proc<sp> causes the Proceedings bibliographic entry to be
      expanded, displaying all the associated fields.

   2. The typing cursor is represented as ^.  After the entry is  expanded
      the    cursor is at the codeword position waiting for codeword to be
      entered.

   3. This is an example of a required field.  See the SCRIBE manual for a
      description of the field types.

   4. This is an example of an alternative field.

   5. Here's an optional field.

   6. Typing C-M-u when the cursor is at the  position  shown  on  comment
      line  2,  results in the original word and space (i.e., It unexpands
      the entry).  This is  useful if you accidentally  expand  the  wrong
      entry.

@Misc[  ThisIsTheCodeWord,
			  ^1                      ;Comment 1
   Key=<BIBLIO>,                                  ;Comment 2
   Author=<>,
	     ^3               @? Optional         ;Comment 3
   HowPublished=<>,           @? Optional
   Note=<>,                   @? Optional
   Title=<>,                  @? Optional
   Year=<>                    @? Optional
   ]
    ^4                                            Comment 4

                     Figure 4-2: Using the motion commands

Comments:

   1. This  is  where  the  cursor (^1) would be after expanding the  Misc
      entry and entering a codeword.

   2. To move to and enter a value for a new field,  type  M-n  (the  next
      entry) and  the value.  In this case BIBLIO was entered.

   3. Typing  another  M-n moves the cursor to ^3.  Use M-p  (the previous
      entry) to move the cursor prior to the word BIBLIO on  the  previous
      line.

   4. A  ]  indicates  the  end  of the entry.  Typing M-] (move to end of
      entry)  will position the cursor to the right of the ]  (^4).    M-[
      (move  to  start  of entry) moves the cursor to the beginning of the
      codeword.

@Proceedings[  Test,                              Comment 1
   Key=<AKey>,                                    ;Comment 2
   Editor=<>,                 @? or Organization  ;Comment 3
   Organization=<Instead of an Editor>,           @? or Editor
   Publisher=<Penguin>,
   Title=<CleanupExample>,
   Year=<1980>,
   Address=<>,                @? Optional         ;Comment 4
   Note=<>,                   @? Optional
   ]

@Proceedings[  Test,                              ;Comment 5
   Key=<AKey>,
   Organization=<Instead of an Editor>,
   Publisher=<Penguin>,
   Title=<CleanupExample>,
   Year=<1980>,
   ]
    ^

                       Figure 4-3: Cleaning up an entry

Comments:

   1. When a entry is expanded all possible  fields  for  that  entry  are
      displayed.  You  probably don't want to enter information for all of
      the  fields  displayed.    After the entry is completed to suit your
      needs, type M-Z to  delete  empty    optional  and  empty  satisfied
      alternative  entries.    If  you have forgotten one of  the required
      fields, you will be warned and  the  cursor  left  at  the  required
      field needing information.  Enter the missing information and retype
      M-Z.    When  the  entire  entry  is  acceptable, no message will be
      displayed and the  cursor will be after the closing ].

   2. A required field must be filled in, otherwise M-Z will complain.

   3. To satisfy M-Z either the Editor or the Organization field  must  be
      filled  in.

   4. If  you  don't  fill  in  an optional field M-Z, won't care and will
      delete  the line if the field is empty.

   5. This would be the result of typing M-Z  on  the  top  half  of  this
      example.  Notice that the cursor is at the end of the entry.

  The  process  of  loading  the  BIBLIO library automatically defines a set of
functions  and  connects  these  functions  to  predefined  characters  on  the
keyboard.    These  functions  override  any  previously defined action for the
characters and are specifically tailored to work with bibliographic entries.

  A list of basic functions, their predefined key and a description follow:

Next bibliographic field (M-n):
                Skips to the start of the next field,  positioning  the  typing
                cursor at the beginning of the field's value.

Previous bibliographic field (M-p):
                Skips  to  the previous field, also positions the cursor at the
                value.

Skip to end of field (M-s):
                Skips to the end of the current field.

Next blank bibliographic field (C-M-n):
                Initially all of the field values for a entry are empty and M-n
                and C-M-n work the same.  As you fill in values, you  may  want
                to  skip  over  the fields with values, C-M-n does this.  C-M-n
                skips forward to the next blank field.

Previous blank bibliographic field (C-M-p):
                Similar to C-M-n, but skips backwards to a blank field value.

Start of entry (M-[):
                Moves the typing cursor to the beginning of  the  codeword  for
                the current entry.

End of entry (M-]):
                Moves  the  cursor to the end of the current entry (i.e., after
                the closing ]).

Unexpand entry (C-M-u):
                If you expanded an entry template by  accident,  this  function
                will  restore  the  entry  name as it was before the expansion.
                This function is only valid immediately after the template  has
                been expanded.

Copy codeword (C-M-c):
                Makes  a  copy  of the codeword for this entry after the typing
                cursor.  This is useful for copying the codeword into  the  key
                and  author's fields, when the fields all use the author's last
                name.

Create no field (C-M-f):
                Creates a value by combining the word no with the current field
                name and inserts the combination in the field's value.  Helpful
                when you don't know what to enter but want something to show up
                in the bibliography.

Remove blank entries (M-Z):
                When a entry is expanded all possible fields for that entry are
                displayed.  You probably don't want to  enter  information  for
                all  of  the fields displayed.  After the entry is completed to
                suit your needs, type M-Z, to delete empty optional  and  empty
                satisfied  alternative  entries.   If you have forgotten one of
                the required fields, you will be warned and the cursor left  at
                the  required  field  needing  information.   Enter the missing
                information  and  retype  M-Z.    When  the  entire  entry   is
                acceptable, no message will be displayed and the cursor will be
                after the closing ].

Restore blank entries (M-/):
                After  typing  M-Z,  all  of  the  empty  fields will have been
                deleted.  To reinstate these fields use M-/.  Typing  M-/  will
                redisplay  all  of the blank fields at the end of the entry and
                place the cursor at the first blank field.

Print bibliographic summary (M-?):
                Displays a short summary.  The summary is two  pages  long;  if
                you  want  to  see the second page type a space, otherwise type
                ^G.

Permanently display entry names (M-X Show BIBLIO entries in window$<cr>):
                Creates a second window at the top of the screen  and  displays
                the bibliographic entry names in it for quick reference.

Disable BIBLIO keys (M-X BIBLIO$<cr>):
                Toggles  between  the  standard character definitions and those
                specially defined for BIBLIO.    By  toggling  BIBLIO  off  the
                library remains loaded but inactive.

  All  of  the  BIBLIO motion commands take an optional argument.  For example,
M-3 M-] will skip to the end of the  third  entry  starting  from  the  current
cursor position.

  The  BIBLIO  library is, in reality, a series of extensions built on the Word
Abbreviation  Library.<Detailed  information  on  Word   Abbreviation   Library
(WORDAB)  library  can be found in INFO or the EMACS manual.>   That is to say,
SCRIBE bibliographic entries are just very elaborate word abbreviations.    For
the  sophisticated  user this can be of an enormous benefit since all the power
of the WORDAB library is available while using BIBLIO;  e.g.,  customizing  the
entry templates.

  Below  are  some  of  the  features  of  WORDAB and the remaining features of
BIBLIO:

Sort by codeword (M-X Sort entries by codeword$<cr>):
                Sorts the bibliographic entries by  codeword.    This  function
                will  be automatically invoked by M-Z if the variable automatic
                codeword sort is set non-zero.

Mark bibliographic entry (C-M-H):
                Places the mark at the end of the entry and the  point  at  the
                beginning.    This  is  useful for deleting or moving an entire
                bibliographic entry.  With an  argument,  n  entries  from  the
                cursor are marked.

Add Global Word Abbreviation[WORDAB] (C-X +):
                Typed  after  a  word  asks for its abbreviation and stores the
                abbreviation with word in the word abbreviation list for  later
                use.    If  this function is given a negative argument, it will
                delete a prior abbreviation.

Inverse Add Global Word Abbreviation[WORDAB] (C-X -):
                Typed after  an  abbreviation  asks  for  a  word,  stores  the
                abbreviation with the word and expands the abbreviation.

Abbreviation Expand Only[WORDAB] (C-M-<sp>):
                Normally  an  abbreviation is expanded after the punctuation is
                entered.  C-M-<sp> forces the immediate expansion  without  any
                punctuation.

View an entry[WORDAB] (M-X List Word Abbrevs$Entry Name$<cr>):
                Displays the fields of an entry.

Edit Word Abbreviations[WORDAB] (M-X Edit Word Abbrevs$<cr>):
                Calls  EMACS  recursively  on  the word abbreviations, allowing
                modifications of the bibliographic entries to suit your tastes.
                To exit use C-M-z.

Write  Word  Abbreviation  File[WORDAB]  (M-X  Write  Word  Abbrev   file$<Your
                Directory Name>$<cr>):
                This  stores a personal copy of the words you've added plus any
                changes made to the bibliographic entries.  Next time BIBLIO is
                loaded it  will  automatically  restore  your  copy  if  it  is
                available.

Converting existing bibliography files

  BIBLIO  provides a conversion function to rewrite any bibliographic file into
the form expected by BIBLIO.  This conversion is not guaranteed to be complete,
so you may have to hand translate a small portion.  Try it and see.  To do this
type, M-X Convert to BIBLIO format$<cr>.

Assumptions

  The TECO macros implementing the BIBLIO library make several assumptions.  If
you didn't create your .BIB file using BIBLIO here are somethings to consider:

   1. The bibliographic file must contain only bibliographic entries.

   2. All bibliographic entries start with @entry-name then a  [  and  end
      with a ].

   3. A  field  has  the  form  `field-name=<text>'  and an empty field is
      considered to be `field-name=<>'.  The text  of  a  field  must  not
      contain `=<'.

   4. The  @?  is  reserved  for  BIBLIO.    M-Z will complain if @? isn't
      followed by the `optional' or the `alternative' indicators.

   5. Optional fields have the indicator, `@? Optional'.

   6. Alternative fields are commented, `@? or Alt. field {, Alt.  field}'
      where a value for any one of the alternative fields will allow  this
      field value to be empty.

   7. All  field  names in the word abbreviations file should have a comma
      after them including the last one.  M-Z removes the  trailing  comma
      automatically.

     Article
     Book
     InBook
     Misc

                     Figure 8-1: Bibliographic Entry Names

     M-n = Next field;                  M-p = Previous field;
     M-[ = Start of entry;              M-] = End of entry;
     M-Z = Remove all blank fields;     M-/ = Reinsert blank fields;
     C-M-n = Next blank field;          C-M-p = Previous blank field;
     M-s = Skip to end of field;        C-M-H = Mark entry;
     C-M-u = Unexpand entry;            M-u = Unexpand word;
     C-M-c = Copy codeword;             C-M-f = Create no field;
     M-? = BIBLIO summary.

             Figure 8-2: Predefined Characters and their Functions

 M-X Load Library$BIBLIO<cr>
 M-X Show BIBLIO entries in window$<cr>
 M-X BIBLIO$<cr>
 M-X Sort entries by codeword$<cr>
 M-X Convert to BIBLIO format$<cr>
 M-X Write Word Abbrev$<Your Directory Name>$<cr>
 M-X Edit Word Abbrev$<cr>
 M-X List Word Abbrevs$Entry Name$<cr>

                    Figure 8-3: Directly Callable Functions

  If  you have any suggestions about the design, function and/or implementation
of this library send them to <CTaylor>@ISIF.

References

[EMACS 80]  Richard Stallman, EMACS Manual for Twenex Users, 1980.  Generated
    from the online documentation at ISI for version 142 of EMACS

[Reid 80]  SCRIBE Introductory User's Manual, Third Edition Preliminary Draft
    edition, 1980.

[Stallman 79]  Richard Stallman, EMACS, the Extensible, Customizable
    Self-Documenting Display Editor, Massachusetts Institute Technology, AI
    Memo 519, June 1979.