summaryrefslogtreecommitdiff
path: root/info/bibtex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /info/bibtex
Initial commit
Diffstat (limited to 'info/bibtex')
-rw-r--r--info/bibtex/bibtex.hlp659
-rw-r--r--info/bibtex/tamethebeast/CHANGES9
-rw-r--r--info/bibtex/tamethebeast/Makefile37
-rw-r--r--info/bibtex/tamethebeast/README26
-rw-r--r--info/bibtex/tamethebeast/idxstyle.ist39
-rw-r--r--info/bibtex/tamethebeast/local.bib132
-rw-r--r--info/bibtex/tamethebeast/ttb_en.pdfbin0 -> 910327 bytes
-rw-r--r--info/bibtex/tamethebeast/ttb_en.sec1.tex570
-rw-r--r--info/bibtex/tamethebeast/ttb_en.sec2.tex672
-rw-r--r--info/bibtex/tamethebeast/ttb_en.sec3.tex747
-rw-r--r--info/bibtex/tamethebeast/ttb_en.sec4.tex841
-rw-r--r--info/bibtex/tamethebeast/ttb_en.sec5.tex179
-rw-r--r--info/bibtex/tamethebeast/ttb_en.tex171
-rw-r--r--info/bibtex/tamethebeast/ttb_style.sty130
14 files changed, 4212 insertions, 0 deletions
diff --git a/info/bibtex/bibtex.hlp b/info/bibtex/bibtex.hlp
new file mode 100644
index 0000000000..c8ab10e072
--- /dev/null
+++ b/info/bibtex/bibtex.hlp
@@ -0,0 +1,659 @@
+!!! ======================================================================
+!!! @Digital-HELP-Text-file{
+!!! filename = "bibtex.hlp",
+!!! version = "1.0",
+!!! date = "2 January 1993",
+!!! ISO-date = "1993.01.02",
+!!! time = "21:51:14.28 CST",
+!!! author = "George D. Greenwade",
+!!! address = "Department of Economics and Business Analysis
+!!! College of Business Administration
+!!! P. O. Box 2118
+!!! Sam Houston State University
+!!! Huntsville, Texas, USA 77341-2118",
+!!! email = "bed_gdg@SHSU.edu (Internet)
+!!! BED_GDG@SHSU (BITNET)
+!!! SHSU::BED_GDG (THENET)",
+!!! telephone = "(409) 294-1266",
+!!! FAX = "(409) 294-3712",
+!!! supported = "yes",
+!!! archived = "*Niord.SHSU,edu:[FILESERV.VMS-LATEX-HELP]",
+!!! keywords = "VMS, help, librarian, LaTeX, BibTeX",
+!!! codetable = "ISO/ASCII",
+!!! checksum = "45243 659 3657 26287",
+!!! docstring = "This is a replacement for BIBTEX.HLP in the VMS
+!!! Help Library. It is a modification of the DECUS
+!!! BIBTEX.HLP file with the LaTeX command strings
+!!! copied into a higher level so that the command
+!!! HELP BIBTEX COMMAND topic
+!!! is immediately accessible.
+!!!
+!!! The checksum field above contains a CRC-16
+!!! checksum as the first value, followed by the
+!!! equivalent of the standard UNIX wc (word
+!!! count) utility output of lines, words, and
+!!! characters. This is produced by Robert
+!!! Solovay's checksum utility."
+!!! }
+!!! ======================================================================
+1 BibTeX
+ Invokes the BibTeX utility to compile a bibliography file for
+ LaTeX. Full details can be found in "LaTeX: A Document Preparation
+ System" by Leslie Lamport.
+
+ Format:
+
+ BIBTEX bibliography-file-spec
+2 Parameters
+ bibliography-file-spec
+
+ Specifies the name of the bibliography database file to be compiled
+ by BibTeX. If the file specification does not include a file type,
+ BibTeX assumes a default type of BIB.
+2 Command_Qualifiers
+/BIBINPUTS
+ /BIBINPUTS=(name,...)
+
+ Specify directories containing input files, and the order in which
+ they will be searched to locate each input file. A null value in the
+ list indicates the current directory. The search procedure TeX uses
+ to locate input files is to first search your default directory and
+ then search each of the directories specified by the /BIBINPUTS
+ option.
+
+ Default is /BIBINPUTS=(TEX_BIB:); TeX looks in the directory
+ associated with the logical name TEX_BIB.
+/STATS
+ /STATS
+ /NOSTATS [D]
+
+ This qualifier is used while debugging .BST files to determine BIBTEX
+ memory usage.
+/TEXINPUTS
+ /TEXINPUTS=(name,...)
+
+ Specify directories containing input files, and the order in which
+ they will be searched to locate each input file. A null value in the
+ list indicates the current directory. The search procedure TeX uses
+ to locate input files is to first search your default directory and
+ then search each of the directories specified by the /TEXINPUTS
+ option.
+
+ Default is /TEXINPUTS=(TEX_INPUTS); TeX looks in the directory
+ associated with the logical name TEX_INPUTS.
+/TRACE
+ /TRACE
+ /NOTRACE [D]
+
+ This qualifier is used while debugging .BST files to follow program
+ flow.
+2 bib_files
+ This help entry contains the same information as Appendix B of the
+ LaTeX manual. It describes the format of a bibliography database
+ (.BIB) file.
+
+ A bibliography database file may contains two types of entry - an
+ abbreviation definition or a reference entry for citation.
+3 @STRING_command
+ The @STRING command is used to define abbreviations for use by
+ BibTeX within the bibliography database file. The command
+
+ @string{jgg1 = "Journal of Gnats and Gnus, Series~1"}
+
+ defines 'jgg1' to be the abbreviation for the string "Journal of
+ Gnats and Gnus, Series~1". Parentheses can be used in place of the
+ outermost braces in the @string command, and braces can be used
+ instead of the quotation marks. The text must have matching braces.
+
+ The case of letters is ignored in an abbreviation as well as in the
+ command name @string, so the command above could have been written:
+
+ @STRING{JgG1 = "Journal of Gnats and Gnus, Series~1"}
+
+ A @string command can appear anywhere before or between entries in a
+ bibliography database file. However, it must come before any use of
+ the abbreviation, so a sensible place for @string commands is at the
+ beginning of the file. A @string command in the bibliography
+ database file takes precedence over a definition made by the
+ bibliography style, so it can be used to change the definition of an
+ abbreviation such as 'Feb'.
+3 Entry_format
+ A bibliography database file contains a series of reference
+ entries like the following:
+
+ @BOOK{kn:gnus,
+ AUTHOR = "Donald E. Knudson",
+ TITLE = "1966 World Gnus Almanac",
+ PUBLISHER = {Permafrost Press},
+ ADDRESS = {Novisibirsk} }
+
+ The @BOOK states that this is an entry of type book. various entry
+ types are described below. The 'kn:gnus' is the citation key, as it
+ appears in the argument of a \cite command referring to the entry.
+
+ This entry has four fields, named AUTHOR, TITLE, PUBLISHER and
+ ADDRESS. The meanings of these and other fields are described below.
+ A field consists of the name, an '=' character with optional space
+ around it, followed by its text. The text of a field is a string of
+ characters, with no unmatched braces, surrounded by either a pair of
+ braces or a pair of '"' characters. Entry fields are separated from
+ one another, and from the citation key, by commas. A comma may have
+ optional space around it.
+
+ The outermost braces that surround the entire entry may be replaced
+ by parentheses. As in TeX input files, an end-of-line character
+ counts as a space and one space is equivalent to many spaces. Unlike
+ TeX, BibTeX ignores the case of letters in the entry type, citation
+ key and field names. The above entry could have been typed as
+ follows:
+
+ @BOOK(kn:gnus, author = {Donald E. Knudson},
+ TITLE = "1966 World Gnus
+ Almanac",
+ PUBLISHER = {Permafrost Press},
+ ADDRESS = {Novisibirsk} )
+
+ However, the case of letters does matter to LaTeX, so the citation
+ key ("kn:gnus" in the example above) should appear exactly the same
+ in all \cite commands in the LaTeX input file.
+
+ The quotes or braces can be omitted around text consisting entirely
+ of numerals. the following two fields are equivalent:
+
+ Volume = "27" Volume = 27
+3 Entry_types
+ When entering a reference in the bibliography database, the first
+ thing to decide is what type of entry it is. No fixed classification
+ scheme can be complete, but BibTeX provides enough entry types to
+ handle almost any reference reasonably well.
+
+ References to different types of publications contain different
+ information; a reference to a journal might include the volume and
+ number of the journal, which is usually not meaningful for a book.
+ Therefore, database entries of different types have different fields
+ for each entry type, the fields are divided into three classes:
+
+ o Required
+ omitting the field will produce an error message and may
+ result in a badly formatted bibliography entry. If the
+ required information is not meaningful, you are using
+ the wrong entry type.
+ o Optional
+ the field's information will be used if present, but can
+ be omitted without causing any formatting problems. A
+ reference should contain any available information that
+ might help the reader, so you should include the optional
+ field if it is applicable.
+ o Ignored
+ the field is ignored. BibTeX ignores any field that is
+ not required or optional, so you can include any fields
+ you want in a bibliography entry. It's often a good idea
+ to put all relevant information about a reference in its
+ bibliography entry - even information that may never
+ appear in the bibliography. For example, if you want to
+ keep an abstract of a paper in a computer file, put it in
+ an 'abstract' field in the paper's bibliography entry.
+ The bibliography database file is likely to be as good a
+ place as any for the abstract, and it is possible to
+ design a bibliography style for printing selected
+ abstracts.
+
+ BibTeX ignores the case of letters in the entry type.
+4 article_entry
+ An article from a journal or magazine.
+
+ Format: @ARTICLE{citation_key,
+ required_fields [, optional_fields] }
+
+ Required fields: author, title, journal, year
+ Optional fields: volume, number, pages, month, note, key
+4 book_entry
+ A book with an explicit publisher.
+
+ Format: @BOOK{citation_key,
+ required_fields [, optional_fields] }
+
+ Required fields: author or editor, title, publisher, year
+ Optional fields: volume, series, address, edition, month, note, key
+4 booklet_entry
+ A work that is printed and bound, but without a named publisher
+ or sponsoring institution.
+
+ Format: @BOOKLET{citation_key,
+ required_fields [, optional_fields] }
+
+ Required fields: title
+ Optional fields: author, howpublished, address, month, year, note,
+ key
+4 conference_entry
+ An article in the proceedings of a conference. This entry is
+ identical to the 'inproceedings' entry and is included for
+ compatibility with another text formatting system.
+
+ Format: @CONFERENCE{citation_key,
+ required_fields [, optional_fields] }
+
+ Required fields: author, title, booktitle, year
+ Optional fields: editor, pages, organization, publisher, address,
+ month, note, key
+4 inbook_entry
+ A part of a book, which may be a chapter and/or a range of
+ pages.
+
+ Format: @INBOOK{citation_key,
+ required_fields [, optional_fields] }
+
+ Required fields: author or editor, title, chapter and/or pages,
+ publisher, year
+ Optional fields: volume, series, address, edition, month, note, key
+4 incollection_entry
+ A part of a book with its own title.
+
+ Format: @INCOLLECTION{citation_key,
+ required_fields [, optional_fields] }
+
+ Required fields: author, title, booktitle, year
+ Optional fields: editor, pages, organization, publisher, address,
+ month, note, key
+4 inproceedings_entry
+ An article in the proceedings of a conference.
+
+ Format: @INPROCEEDINGS{citation_key,
+ required_fields [, optional_fields] }
+
+ Required fields: author, title, booktitle, year
+ Optional fields: editor, pages, organization, publisher, address,
+ month, note, key
+4 manual_entry
+ Technical documentation.
+
+ Format: @MANUAL{citation_key,
+ required_fields [, optional_fields] }
+
+ Required fields: title
+ Optional fields: author, organization, address, edition, month,
+ year, note, key
+4 mastersthesis_entry
+ A Master's thesis.
+
+ Format: @MASTERSTHESIS{citation_key,
+ required_fields [, optional_fields] }
+
+ Required fields: author, title, school, year
+ Optional fields: address, month, note, key
+4 misc_entry
+ Use this type when nothing else seems appropriate.
+
+ Format: @MISC{citation_key,
+ required_fields [, optional_fields] }
+
+ Required fields: none
+ Optional fields: author, title, howpublished, month, year, note, key
+4 phdthesis_entry
+ A PhD thesis.
+
+ Format: @PHDTHESIS{citation_key,
+ required_fields [, optional_fields] }
+
+ Required fields: author, title, school, year
+ Optional fields: address, month, note, key
+4 proceedings_entry
+ The proceedings of a conference.
+
+ Format: @PROCEEDINGS{citation_key,
+ required_fields [, optional_fields] }
+
+ Required fields: title, year
+ Optional fields: editor, publisher, organization, address, month,
+ note, key
+4 techreport_entry
+ A report published by a school or other institution, usually
+ numbered within a series.
+
+ Format: @TECHREPORT{citation_key,
+ required_fields [, optional_fields] }
+
+ Required fields: author, title, institution, year
+ Optional fields: type, number, address, month, note, key
+4 unpublished_entry
+ A document with an author and title, but not formally published.
+
+ Format: @UNPUBLISHED{citation_key,
+ required_fields [, optional_fields] }
+
+
+ Required fields: author, title, note
+ Optional fields: month, year, key
+3 Field_text
+ The text of the field is enclosed in braces or double quote
+ characters. A part of the text is said to be enclosed in braces if
+ it lies inside a matching pair of braces other than the ones
+ enclosing the entire entry or the entire field text.
+
+ BibTeX manipulates the case of letters in the field text as described
+ in the subtopics below.
+4 Names
+ The text of an author or editor field represents a list of
+ names. The bibliography style determines the format in which the
+ name is printed: whether the first name or last name appears first,
+ if the full first name or just the first initial is used, etc. The
+ bibliography file entry simply tells BibTeX what the name is.
+
+ You should type an author's complete name and let the bibliography
+ style decide what to abbreviate. (But an author's complete name may
+ be "Donald~E. Knuth" or even "J.~P.~Morgan"; you should type it the
+ way the author would like it to appear, if that's known.)
+
+ Most names can be entered in the obvious way, either with or without
+ a comma, as in the following examples.
+
+ "John Paul Jones" "Jones, John Paul"
+ "Ludwig von Beethoven" "von Beethoven, Ludwig"
+
+ Some people have multiple last names - for example, Per Brinch
+ Hansen's last name is Brinch~Hansen. His name should be typed with a
+ comma:
+
+ "Brinch Hansen, Per"
+
+ To understand why, you must understand how BibTeX handles names (for
+ what follows, a "name" corresponds to a person).
+
+ Each name consists of four parts: First, von, Last, and~Jr; each
+ part consists of a (possibly empty) list of name-tokens. For example
+ the First part of Per Brinch~Hansen's name has the single token
+ "Per"; the Last part has two, "Brinch" and "Hansen"; and the von and
+ Jr parts are empty. If you had typed
+
+ "Per Brinch Hansen"
+
+ instead, BibTeX would erroneously think "Brinch" were a First-part
+ token, just as "Paul" is a First-part token in "John~Paul Jones".
+
+ Here's another example:
+
+ "Charles Louis Xavier Joseph de la Vallee Poussin"
+
+ This name has four tokens in the First part, two in the von, and two
+ in the Last. Here BibTeX knows where one part ends and the other
+ begins because the tokens in the von part begin with lower-case
+ letters.
+
+ If you want BibTeX to consider something a single token, enclose it
+ in braces. You should do this, for example, if a comma is part of a
+ name:
+
+ "{Barnes and Noble, Inc.}"
+ "{Barnes and} {Noble, Inc.}"
+ "{Barnes} {and} {Noble,} {Inc.}"
+
+ The braces surrounding the comma keep "Inc." from being interpreted
+ as a First token; this name has only a Last part, with either one,
+ two, or four tokens (there must be a space separating the tokens in
+ the second and third forms). Probably the second form is slightly
+ more meaningful, but don't lose sleep over this since only rarely
+ will an institution be an author or editor.
+
+ So the two names
+
+ "von Beethoven, Ludwig" "{von Beethoven}, Ludwig"
+
+ are considered by BibTeX to be different names. In the first,
+ "Beethoven" is the Last part and "von" is the von part; in the
+ second, which in this case happens to be incorrect, the Last part has
+ a single token and there's no von part. The bibliography style will
+ probably print both the same, but it may alphabetize and label them
+ differently.
+
+ "Juniors" pose a special problem. Most people having "Jr." in their
+ name precede it with a comma. Such a name should be entered as
+ follows:
+
+ "Ford, Jr., Henry"
+
+ However, a few people do not use a comma. They are handled by
+ considering the "Jr." to be part of the last Last token:
+
+ "{Steele Jr.}, Guy L." "Guy L. {Steele Jr.}"
+
+ This name has no Jr part.
+
+ To summarize, you may type a name in one of three forms:
+
+ "First von Last"
+ "von Last, First"
+ "von Last, Jr, First"
+
+ You may almost always use the first form; you shouldn't if either
+ there's a Jr part or the Last part has multiple tokens but there's no
+ von part.
+
+ If there are multiple authors or editors, their names must be
+ separated by the word "and", surrounded by spaces, not enclosed in
+ braces:
+
+ AUTHOR = "Ralph Alpher and Bethe, Hans and George Gamow"
+
+ Since BibTeX interprets commas as separating parts of a name and
+ "and" as separating names themselves, this example has three
+ coauthors: Ralph Alpher, Hans Bethe, and George Gamow. If the word
+ "and" appears as part of a name, it must be enclosed in braces, as in
+ the example of "Barnes and Noble,~Inc." given above. If you have too
+ many names to list in a field, you can end the list with "and
+ others"; the standard styles appropriately append an "et al."
+
+ BibTeX's rules are actually a bit more complicated than indicated
+ here, but this description will suffice for most names.
+4 Titles
+ The bibliography style determines whether or not a title is
+ capitalized; the titles of books usually are, the title of articles
+ usually are not. You type a title the way it should appear if it is
+ capitalized (you should capitalize everything but articles and
+ unstressed conjunctions and prepositions, and even these should be
+ capitalized as the first word or the first after a colon):
+
+ TITLE = "The Agony and the Ecstasy"
+
+ BibTeX will change uppercase letters to lowercase if appropriate.
+ Uppercase letters that should not be changed are enclosed in braces.
+ The following two titles are equivalent; the "A" of "Africa" will not
+ be made lowercase.
+
+ "The Gnats and Gnus of {Africa}"
+ "The Gnats and Gnus of {A}frica"
+4 Abbreviations
+ Instead of an ordinary text string, the text of a field can be
+ replaced by an abbreviation for it. An abbreviation is a string of
+ characters that starts with a letter and does not contain a space or
+ any of the following ten characters:
+
+ " # % ' ( ) , = { }
+
+ The abbreviation is typed in place of the text field, with no braces
+ or quotation marks. If 'jgg1' is an abbreviation for
+
+ Journal of Gnats and Gnus, Series~1
+
+ then the following are equivalent:
+
+ JOURNAL = jgg1
+ JOURNAL = "Journal of Gnats and Gnus, Series~1"
+
+ Some abbreviations are predefined by the bibliography style. These
+ always include the usual 3 letter abbreviations for the month: jan,
+ feb, mar etc.
+
+ Bibliography styles usually contain abbreviations for the names of
+ commonly referenced journals. Consult the Local Guide for a list of
+ the predefined abbreviations for the bibliography styles available.
+
+ You can define your own abbreviations by using BibTeX's @STRING
+ command.
+3 Field_types
+ Below is a list of all fields recognized by the standard
+ bibliography styles. An entry can also contain other fields, which
+ are ignored by those styles.
+
+ BibTeX ignores the case of letters in the field names.
+4 address_field
+ Publisher's address. For major publishing houses, just the city
+ is given. For small publishers, you can help the reader by giving
+ the complete address.
+
+ Format: ADDRESS = field_text
+4 annote_field
+ An annotation, used only for annotated bibliography styles
+ (which are not among the standard ones).
+
+ Format: ANNOTE = field_text
+4 author_field
+ The name(s) of the author(s).
+
+ Format: AUTHOR = field_text
+4 booktitle_field
+ Title of a book, part of which is being cited.
+
+ Format: BOOKTITLE = field_text
+4 chapter_field
+ A chapter number.
+
+ Format: CHAPTER = field_text
+4 edition_field
+ The edition of a book - for example, "second".
+
+ Format: EDITION = field_text
+4 editor_field
+ Name(s) of editor(s). If there is also an "author" field, then
+ the "editor" field gives the editor of the book or collection in
+ which the reference appears.
+
+ Format: EDITOR = field_text
+4 howpublished_field
+ How something strange has been published.
+
+ Format: HOWPUBLISHED = field_text
+4 institution_field
+ The institution that published the work.
+
+ Format: INSTITUTION = field_text
+4 journal_field
+ A journal name. Abbreviations are provided for many journals;
+ see the Local Guide.
+
+ Format: JOURNAL = field_text
+4 key_field
+ Used for alphabetizing and creating a label when the "author"
+ and "editor" fields are missing. This field should not be confused
+ with the citation key that appears in the \cite command and at the
+ beginning of the entry.
+
+ Format: KEY = field_text
+4 month_field
+ The month in which the work was published or, for an unpublished
+ work, in which it was written.
+
+ Format: MONTH = field_text
+4 note_field
+ Any additional information that can help the reader.
+
+ Format: NOTE = field_text
+4 number_field
+ The number of a journal, magazine, or technical report. An
+ issue of a journal or magazine is usually identified by its volume
+ and number; the organization that issues a technical report usually
+ gives it a number.
+
+ Format: NUMBER = field_text
+4 organization_field
+ The organization sponsoring a conference.
+
+ Format: ORGANIZATION = field_text
+4 pages_field
+ A page number or range of numbers such as "42--111"; you may
+ also have several of these, separating them with commas:
+ "7,41,73--97". The standard styles convert a single dash to a
+ double.
+
+ Format: PAGES = field_text
+4 publisher_field
+ The publisher's name.
+
+ Format: PUBLISHER = field_text
+4 school_field
+ The name of the school where a thesis was written.
+
+ Format: SCHOOL = field_text
+4 series_field
+ The name of a series or set of books. When citing an entire
+ book, the the "title" field gives its title and an optional "series"
+ field gives the name of a series in which the book is published.
+
+ Format: SERIES = field_text
+4 title_field
+ The work's title.
+
+ Format: TITLE = field_text
+4 type_field
+ The type of a technical report - for example, "Research Note".
+
+ Format: TYPE = field_text
+4 volume_field
+ The volume of a journal or multivolume book work.
+
+ Format: VOLUME = field_text
+4 year_field
+ The year of publication or, for an unpublished work, the year it
+ was written. This field's text should contain only numerals.
+
+ Format: YEAR = field_text
+2 bst_files
+ Bibliography style files define the style of a bibliography source
+ list.
+
+ The standard bibliography style files are PLAIN, UNSRT, ALPHA and
+ ABBRV.
+
+ If you want to make a bibliography style of your own, look at
+ SAMPLE.BST.
+3 ABBRV.BST
+ This style is the same as the style defined in PLAIN.BST, except that
+ entries are more compact because first names, month names and journal
+ names are abbreviated.
+3 ALPHA.BST
+ This style is the same as the style defined in PLAIN.BST except that
+ entry labels like "Knu66", formed from the author's name and the year
+ of publication, are used.
+3 PLAIN.BST
+ This style is formatted more or less as suggested by Mary-Claire van
+ Leunen in "A Handbook for Scholars" (Alfred A. Knopf, New York,
+ 1979). Entries are sorted alphabetically and are labelled with
+ numbers.
+3 SAMPLE.BST
+ This is a sample bibliography style file meant to help you construct
+ a new style. It creates a bibliography in which entries appear as
+ follows:
+
+ [Jones79] Jones, R. L. and Richards, P. Q. The Birds and the Bees.
+ {\it Journal of Irreproducible Results 4}, 2 (Jan. 1979), 27-33.
+
+ [Jones82a] Jones, P. G. The Bees and the Trees ... (1982).
+
+ [Jones82b] Jones, R. L. The Trees and the Peas ... (1982).
+
+ [Krist74] Kristofferson, R. P. Peopl and Places ... (1974)
+
+ It should illustrate how you write a style file. The functions are
+ described in an informal Pascal-like style in comments. Because of
+ the way while loops and if-then-else statements must use functions,
+ the following convention is used. If a while loop is labeled 'foo'
+ in the informal description, then its test and body are the functions
+ named 'foo.test' and 'foo.body'. If an if statement is labeled
+ 'foo', then its two clauses are the functions named 'foo.then' and
+ 'foo.else'. (Null clauses just use the 'skip$' function.) Note that
+ because functions have to be defined in terms of already-defined
+ functions, the actual function definitions are given in a 'bottom-up'
+ order.
+3 UNSRT.BST
+ This style is that same as PLAIN.BST except that entries appear in
+ the order of their first citation.
+
diff --git a/info/bibtex/tamethebeast/CHANGES b/info/bibtex/tamethebeast/CHANGES
new file mode 100644
index 0000000000..dc421c47ec
--- /dev/null
+++ b/info/bibtex/tamethebeast/CHANGES
@@ -0,0 +1,9 @@
+v1.00 2004/07/21 First release on CTAN.
+v1.01 2004/08/15 Corrected two related errors in sec3
+ (about left brace and @preamble)
+v1.1 2005/03/06 Some corrections.
+ Added hyperref.
+v1.2 2005/06/10 Added LPPL licence notes
+ Minor corrections and additions
+v1.3 2005/10/16 Corrected many typos
+v1.4 2009/10/11 Corrected some more typos
diff --git a/info/bibtex/tamethebeast/Makefile b/info/bibtex/tamethebeast/Makefile
new file mode 100644
index 0000000000..f397c29d7e
--- /dev/null
+++ b/info/bibtex/tamethebeast/Makefile
@@ -0,0 +1,37 @@
+## Makefile
+## Copyright 2003-2005 Nicolas Markey
+#
+# This work may be distributed and/or modified under the
+# conditions of the LaTeX Project Public License, either version 1.3
+# of this license or (at your option) any later version.
+# The latest version of this license is in
+# http://www.latex-project.org/lppl.txt
+# and version 1.3 or later is part of all distributions of LaTeX
+# version 2003/12/01 or later.
+#
+# This work has the LPPL maintenance status "maintained".
+# The Current Maintainer of this work is Nicolas Markey
+#
+# This work consists of the files
+# ttb_en.tex
+# ttb_en.sec1.tex ttb_en.sec2.tex ttb_en.sec3.tex
+# ttb_en.sec4.tex ttb_en.sec5.tex ttb_style.sty
+# local.bib idxstyle.ist Makefile
+# and the derived ttb_en.dvi, ttb_en.ps and ttb_en.pdf
+
+all:
+ LATEX=pdflatex make tex
+
+tex: *.tex
+ ${LATEX} ttb_en.tex
+ makeindex -s idxstyle.ist bibtex
+ makeindex -s idxstyle.ist latex
+ bibtex ttb_en
+ ${LATEX} ttb_en.tex
+ ${LATEX} ttb_en.tex
+
+clean:
+ rm -f *.aux ttb_en.log ttb_en.blg *.ilg *.ind *.idx \
+ ttb_en.bbl ttb_en.toc ttb_en.dvi ttb_en.out \
+ ttb_en.ptc* ttb_en.mtc* ttb_en.bmt *
+~
diff --git a/info/bibtex/tamethebeast/README b/info/bibtex/tamethebeast/README
new file mode 100644
index 0000000000..7ea6fe2830
--- /dev/null
+++ b/info/bibtex/tamethebeast/README
@@ -0,0 +1,26 @@
+Tame the BeaST -- The B to X of BibTeX
+========================================
+ Nicolas MARKEY
+ <markey@lsv.ens-cachan.fr>
+ v1.4 2009/10/11
+
+
+This is an (as complete as possible) documentation
+about bibliographies in LaTeX, thus mainly about
+BibTeX.
+
+Comments welcome!
+
+
+--------------------------------------------------------
+This work may be distributed and/or modified under
+the conditions of the LaTeX Project Public License,
+either version 1.3 of this license or (at your option)
+any later version. The latest version of this license
+is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions
+of LaTeX version 2003/12/01 or later.
+This work has the LPPL status "maintained".
+The current maintainer of this work is Nicolas Markey.
+
diff --git a/info/bibtex/tamethebeast/idxstyle.ist b/info/bibtex/tamethebeast/idxstyle.ist
new file mode 100644
index 0000000000..d93f54269f
--- /dev/null
+++ b/info/bibtex/tamethebeast/idxstyle.ist
@@ -0,0 +1,39 @@
+%% idxstyle.ist
+%% Copyright 2003-2005 Nicolas Markey
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+% The Current Maintainer of this work is Nicolas Markey
+%
+% This work consists of the files
+% ttb_en.tex
+% ttb_en.sec1.tex ttb_en.sec2.tex ttb_en.sec3.tex
+% ttb_en.sec4.tex ttb_en.sec5.tex ttb_style.sty
+% local.bib idxstyle.ist Makefile
+% and the derived ttb_en.dvi, ttb_en.ps and ttb_en.pdf
+%
+%
+% This file is derived from fridx1.ist:
+% FICHIER fridx1.ist
+% Personnalisation Numero 1 d'un index (faire makeindex -s fridx1.ist)
+% --------------------------------------------------------------------
+
+headings_flag 1
+heading_prefix "{\\large \\bf \\hfil--\\ "
+heading_suffix " --\\ \\hfil}\\nopagebreak\n"
+symhead_negative "symbols"
+symhead_positive "Symbols"
+
+delim_0 " \\dotfill \ "
+delim_1 " \\dotfill \ "
+delim_2 " \\dotfill \ "
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
diff --git a/info/bibtex/tamethebeast/local.bib b/info/bibtex/tamethebeast/local.bib
new file mode 100644
index 0000000000..f24ffb664c
--- /dev/null
+++ b/info/bibtex/tamethebeast/local.bib
@@ -0,0 +1,132 @@
+%% local.bib
+%% Copyright 2003-2005 Nicolas Markey
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+% The Current Maintainer of this work is Nicolas Markey
+%
+% This work consists of the files
+% ttb_en.tex
+% ttb_en.sec1.tex ttb_en.sec2.tex ttb_en.sec3.tex
+% ttb_en.sec4.tex ttb_en.sec5.tex
+% local.bib idxstyle.ist Makefile
+% and the derived ttb_en.dvi, ttb_en.ps and ttb_en.pdf
+
+@book{latex:dps,
+ author = "Lamport, Leslie",
+ title = "{{\LaTeX}}: a Document Preparation System",
+ publisher = "Addison-Wesley",
+ year = 1997,
+ month = mar,
+}
+
+@book{latex:lc,
+ title = "The {{\LaTeX}} Companion",
+ author = "Goossens, Michel and Mittelbach, Frank and Samarin,
+ Alexander",
+ publisher = "Addison-Wesley",
+ year = 1993,
+ month = dec,
+}
+
+@book{latex:lc2,
+ title = "The {{\LaTeX}} Companion~--- Second Edition",
+ author = "Mittelbach, Frank and Goossens, Michel and
+ Braams, Johannes and Carlisle, David and Rowley, Chris",
+ publisher = "Addison-Wesley",
+ year = 2004,
+ month = apr,
+}
+
+
+@manual{natbib,
+ author = "Daly, Patrick W.",
+ title = "Natural Sciences Citations and References",
+ year = 1999,
+ month = may,
+ }
+
+@manual{bibentry,
+ author = "Daly, Patrick W.",
+ title = "A {{\LaTeX}} Package to Place Bibliography Entries in Text",
+ year = 1999,
+ month = feb,
+ }
+
+@manual{multibib,
+ author = "Hansen, Thorsten",
+ title = "The {\textbf{multibib}} package",
+ year = 2000,
+ month = jan,
+}
+
+@manual{bibunit,
+ author = "Hansen, Thorsten",
+ title = "The {\textbf{bibunits}} package",
+ year = 2000,
+ month = oct,
+}
+
+@manual{footbib,
+ author = "Dommenjoud, {\'E}ric",
+ title = "The {\textbf{footbib}} package",
+ year = 1997,
+ month = mar,
+}
+
+@manual{merlin,
+ author = "Daly, Patrick W.",
+ title = "A Master Bibliographic Style File",
+ year = 1999,
+ month = may,
+ }
+
+@manual{splitbib,
+ author = "Markey, Nicolas",
+ title = "The {\textbf{splitbib}} package",
+ year = 2005,
+ month = feb,
+}
+
+@manual{jurabib,
+ author = "Berger, Jens",
+ title = "The {\textbf{jurabib}} package",
+ year = 2002,
+ month = sep,
+}
+
+@manual{jmpl,
+ author = "Bayart, Benjamin",
+ title = "Joli Manuel pour {{\LaTeX}}",
+ year = 1995,
+ month = dec,
+}
+
+@book{desg,
+ title = "{{\LaTeX}}~: Apprentissage, Guide et R{\'e}f{\'e}rences",
+ author = "Desgraupes, Bernard",
+ publisher = "Vuibert",
+ year = 2000,
+ month = nov,
+ }
+
+@manual{btxdoc,
+ author = "Patashnik, Oren",
+ title = "{\textsc{Bib}}{{\TeX}}ing",
+ year = 1988,
+ month = feb,
+}
+
+@manual{btxhak,
+ author = "Patashnik, Oren",
+ title = "Designing {\textsc{Bib}}{{\TeX}} styles",
+ year = 1988,
+ month = feb,
+}
diff --git a/info/bibtex/tamethebeast/ttb_en.pdf b/info/bibtex/tamethebeast/ttb_en.pdf
new file mode 100644
index 0000000000..9279ebd627
--- /dev/null
+++ b/info/bibtex/tamethebeast/ttb_en.pdf
Binary files differ
diff --git a/info/bibtex/tamethebeast/ttb_en.sec1.tex b/info/bibtex/tamethebeast/ttb_en.sec1.tex
new file mode 100644
index 0000000000..a56c88686e
--- /dev/null
+++ b/info/bibtex/tamethebeast/ttb_en.sec1.tex
@@ -0,0 +1,570 @@
+%% ttb_en.sec1.tex
+%% Copyright 2003-2005 Nicolas Markey
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+% The Current Maintainer of this work is Nicolas Markey
+%
+% This work consists of the files
+% ttb_en.tex
+% ttb_en.sec1.tex ttb_en.sec2.tex ttb_en.sec3.tex
+% ttb_en.sec4.tex ttb_en.sec5.tex ttb_style.sty
+% local.bib idxstyle.ist Makefile
+% and the derived ttb_en.dvi, ttb_en.ps and ttb_en.pdf
+
+\mypart{Basic bibliography with \LaTeX}\label{part1}
+\parttoc
+\mtcskip
+
+\bt is often seen as something magical, as well as \LaTeX
+bibliography-related commands in general. Many users simply copy and paste
+classical examples without trying to understand how it works. But in
+fact, a bibliography in \LaTeX is nothing but a \emph{list} of
+\emph{references} mentioned in a document. If we had to do it ``by
+hand'',
+without knowing anything about the \env{thebibliography} environment,
+it could look like this:
+
+\medskip
+\begin{verbatim}
+This is the main matter of the document, mentioning
+[\ref{doc1}] and [\ref{doc2}], for instance.
+\section*{References}
+\begin{enumerate}
+ \renewcommand\labelenumi{[\theenumi]} %% numbers are surrounded with brackets
+ \item \label{doc1} Michel Goossens, Franck Mittelbach and Alexander
+ Samarin, \emph{The \LaTeX{} Companion}, Addison Wesley, 1993.
+ \item \label{doc2} Leslie Lamport, \emph{\LaTeX: A Document Preparation
+ System}, Addison Wesley, 1997.
+\end{enumerate}
+\end{verbatim}
+\noindent which, when compiled, gives
+\begin{myex}
+This is the main matter of the document, mentioning
+[\ref{doc1}] and [\ref{doc2}], for instance.
+\section*{References}
+\begin{enumerate}
+ \renewcommand\labelenumi{[\theenumi]} %% numbers are between brackets
+ \item \label{doc1} Michel Goossens, Franck Mittelbach and Alexander
+ Samarin, \emph{The \LaTeX Companion}, Addison Wesley, 1993.
+ \item \label{doc2} Leslie Lamport, \emph{\LaTeX: A Document Preparation
+ System}, Addison Wesley, 1997.
+\end{enumerate}
+\end{myex}
+
+This is mostly what the \env{thebibliography} environment does (it
+starts a \env{list} environment, similar to~\env{enumerate}),
+\cmd{bibitem} corresponding
+to the \cmd{item} commands. One major difference is that \cmd{bibitem}
+allows for more general cross-references than \cmd{item} and
+\cmd{label} (for example, one can cite~\cite{latex:lc}).
+
+
+This is what this part deals with: ``Writing a bibliography
+\emph{without} \bt''. This is not the main goal of this manual, but
+it is a cornerstone for understanding the sequel.
+
+
+\mysection{The \nienv{thebibliography} environment}
+
+
+%%
+%% Fin trad.
+%%
+
+The \env{thebibliography} environment is not defined in \LaTeX
+itself (neither is it in \TeX\footnote{\bt may be used with plain \TeX,
+you'll simply have to input the \sty[tex]{btxmac} package}, of course). It has
+to be defined by the
+class file used in the document (\emph{e.g.} \cls{article} or
+\cls{book}). As mentioned earlier, it is a \env{list}-like
+environment inside a new \cmd{section} (or \cmd{chapter}, depending on
+the document class\footnote{This is the reason why \env{thebibliography}
+has to be defined in the class files. The
+other bibliographic commands are defined in the standard \LaTeX format.}).
+This list has to be set up carefully, however, in order to avoid indentation
+problems. For instance, if we put ``alphanumerical'' labels in the previous
+example, we would get:
+\begin{myex}
+\section*{References}
+\begin{enumerate}
+\renewcommand\labelenumi{[\theenumi]}
+\item[{[GMS93]}] Michel Goossens, Franck Mittelbach, and Alexander
+Samarin, \emph{The \LaTeX Companion}, Addison Wesley, 1993.
+\item[{[Lam97]}] Leslie Lamport, \emph{\LaTeX: A Document Preparation
+System}, Addison Wesley, 1997.
+\end{enumerate}
+\end{myex}
+
+In order to avoid this problem, \env{thebibliography} has a mandatory
+argument, which should be the largest label occurring in the list. This will
+allow to set up margins properly.
+
+\medskip
+Let's now have a look at the precise definition of the
+\env{thebibliography} environment (as defined in the \cls{article}
+class, for instance):
+\begin{listing}{1}
+\newenvironment{thebibliography}[1]
+ {\section*{\refname
+ \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}}%
+\end{listing}
+As mentioned earlier, \env{thebibliography} starts a new
+section\footnote{It is in fact a \cmd{section*}, so that it won't
+ appear in the table of contents. In order to cleanly insert the
+ bibliography in your table of contents, use the \sty{tocbibind}
+ package. Other methods you can think of will probably lead to wrong
+ page numbers.}. The environment also sets the page headers\footnote{The
+ standard
+ \sty{apalike} package hard-codes the headers to ``REFERENCES'' or
+ ``BIBLIOGRAPHY'', depending on the class file.
+ But another package (with the same name, unfortunately) correctly sets
+ the headers to \cmd{refname} or \cmd{bibname}. Simply check in the sources if you have
+ problems for redefining the headers with that package.}.
+
+\begin{listingcont}
+ \list{\@biblabel{\@arabic\c@enumiv}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+\end{listingcont}
+This is not surprising either: We start a new \env{list}
+environment\footnote{The \cmd{list} command is equivalent to a
+ \texttt{\bs begin\{list\}}, and has to be followed with a
+ \cmd{endlist}.}. It takes two mandatory arguments:
+\begin{itemize}
+\item the first one (\texttt{\bs\at biblabel\{...\}}) defines the format of
+the default command for
+ generating labels. Here it is defined with the \verb+enumiv+
+ counter, using \cmdat{biblabel}{}\footnote{\cmdat{biblabel} is
+ defined in \LaTeX. It outputs its argument surrounded with
+ brackets. The precise definition is:
+\texttt{\bs def\bs\at biblabel\#1\{[\#1]\}}.}.
+ Thus we have [1], [2], ... Since \cmd{bibitem} is a sort of
+ \cmd{item}, it may have an optional argument for modifying this
+ default label.
+\item The second argument(lines~5 above to~11 below) is a set of commands that
+ are run at the
+ beginning of the environment. They set the values
+ of different lengths and parameters of the \env{list} environment.
+ This is where we need the longest label (which the mandatory
+ argument of the \env{thebibliography} environment should be set to),
+ in order to correctly indent the whole list.
+ People often write \verb+\begin{thebibliography}{99}+, but this is
+ correct only if there are between $10$ and $99$ cited references
+ (assuming all digits have the same length, which is the case with
+ the \textsf{cmr} fonts).
+\end{itemize}
+
+
+The rest of the definition of \env{thebibliography} contains some
+borderline definitions for the list environment and the use of the
+\verb+enumiv+ counter:
+\begin{listingcont}
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \@openbib@code
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+\end{listingcont}
+\cmdat{openbib\at code}, which is empty by default, allows
+to modify some parameters if necessary. Option \texttt{openbib} of
+classical style files uses this command for resetting some parameters.
+Line~9 to~11 set the list counter.
+
+Last, within the reference list, spacing rules as well as some special
+penalties are used:
+\begin{listingcont}
+ \sloppy
+ \clubpenalty4000
+ \@clubpenalty \clubpenalty
+ \widowpenalty4000%
+ \sfcode`\.\@m}
+\end{listingcont}
+
+
+That's it for the initialization of this environment. Ending the
+\env{thebibliography} is much easier:
+we just echo a warning if no reference has been included, and we close
+the \env{list} environment:
+\begin{listingcont}
+ {\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist}
+\end{listingcont}
+
+
+
+\mysection{The \protect\nicmd{bibitem} command}\label{bibitem}
+
+Inside the \env{list} environment described above, we have to insert
+\cmd{item}{}s, as is usual. It will be a special \cmd{item}, though, in
+order to have a correct rendering of each bibliographical item. The
+adequate command is named \cmd{bibitem}, and has two roles: Writing
+the new entry in the list, and defining the cross-reference to be used
+when citing this entry, which defaults to
+\verb+\@biblabel{\@arabic\c@enumiv}+. The result is [1] for instance,
+but of course can be modified into [GMS94], say,
+with an optional argument,
+exactly in the same way as for an \cmd{item}.
+Here is the precise definition of \cmd{bibitem}:
+\begin{listing}{1}
+\def\bibitem{\@ifnextchar[\@lbibitem\@bibitem}
+\end{listing}
+\cmd{bibitem} calls \cmdat{lbibitem} if
+there is an optional argument, and \cmdat{bibitem} otherwise.
+Those auxiliary commands are defined as follows:
+%
+\begin{listing}{1}
+\def\@lbibitem[#1]#2{\item[\@biblabel{#1}\hfill]\if@filesw
+ {\let\protect\noexpand
+ \immediate
+ \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
+\end{listing}
+%
+Let's take an example in order to see how it works: Assume we wrote
+\verb+\bibitem[GMS94]{companion}+.
+The command first creates an item having the same optional argument,
+which will be surrounded with brackets by \cmdat{biblabel} and flushed
+to the left by \cmd{hfill}.\label{biblabel}
+It then write a \cmd{bibcite} command, with two arguments, into the
+\ext{aux} file\footnote{More precisely, the file pointed to by
+the \cmdat{auxout} command, but this generally is the \ext{aux}
+file.}.
+\cmd{bibcite} is simply defined as follows:
+\label{bibcite}
+\begin{listing}{1}
+\def\bibcite{\@newl@bel b}
+\end{listing}
+
+The \cmdat{newl\at bel} command requires three arguments, \texttt{\#1},
+ \texttt{\#2} and \texttt{\#3}, and defines a command named
+ \texttt{\#1\at\#2} (with of course \texttt{\#1} and \texttt{\#2} being
+ replaced by their values) whose value is the third argument \texttt{\#3}.
+
+This behavior is the same as when defining a cross reference (with
+\cmd{label}) in the document: when the \ext{aux} file is read by
+\LaTeX (namely at the \verb+\begin{document}+ and
+\verb+\end{document}+), those \cmdat{newl\at bel} commands are
+executed, and a \verb+\b@companion+ command is defined, containing,
+in our case, \texttt{GMS93}.
+
+When there is no optional argument, it is quite similar:
+%
+\begin{listing}{1}
+\def\@bibitem#1{\item\if@filesw \immediate\write\@auxout
+ {\string\bibcite{#1}{\the\value{\@listctr}}}\fi\ignorespaces}
+\end{listing}
+%
+The new \cmd{item} is created, and the \cmd{bibcite} command is
+output in the \ext{aux} file. The only new thing to know here is that
+\cmdat{listctr} is the list counter, and points to \verb+enumiv+ as requested
+by the \cmd{usecounter} command in the definition of \env{thebibliography}.
+Everything after the \cmd{bibitem} (and its argument(s)) is
+output in the document, within the recently created item of the
+list, until the next \cmd{bibitem} or the end of the
+\env{thebibliography} environment\footnote{Some packages redefine
+ \cmd{bibitem} and could not meet this last rule. See
+ section~\ref{redefbibitem} on this topic.}.
+
+\medskip
+To conclude, here is a small example of a bibliography, having two
+entries, as it could be defined in a document:
+
+\begin{verbatim}
+\begin{thebibliography}{GMS93} %% GMS93 is the longest label.
+\bibitem[GMS93]{companion} Michel Goossens, Franck Mittelbach and Alexander
+ Samarin, \emph{The \LaTeX{} Companion}, Addison Wesley, 1993.
+\bibitem[Lam97]{lamport} Leslie Lamport, \emph{\LaTeX: A Document Preparation
+ System}, Addison Wesley, 1997.
+\end{thebibliography}
+\end{verbatim}
+And here is the result:
+
+\begin{myex}
+\begin{thebibliography}{GMS93}
+\bibitem[GMS93]{companion1} Michel Goossens, Franck Mittelbach and Alexander
+ Samarin, \emph{The \LaTeX Companion}, Addison Wesley, 1993.
+\bibitem[Lam97]{lamport1} Leslie Lamport, \emph{\LaTeX: A Document Preparation
+ System}, Addison Wesley, 1997.
+\end{thebibliography}
+\end{myex}
+
+
+\mysection{The \protect\nicmd{cite} command}\label{cite}
+
+When considering a bibliography as a list of cross-references,
+\cmd{cite} is the equivalent for \cmd{ref}. It has one mandatory
+argument, which is the internal label to be cited. It also has an
+optional argument, that can be used to add some comments to the
+reference. For instance, a good reference concerning \bt is
+\cite[Chap.~13]{latex:lc}, which is obtained by entering
+\verb+\cite[Chap.~13]{companion}+.\label{citeopt}
+
+
+Here is how it is defined\footnote{Details about
+ \cmd{DeclareRobustCommand} are given at page~\pageref{DRC}. If you
+ don't know what it is, you can see it as a simple
+ \cmd{newcommand}.}:
+%
+\begin{listing}{1}
+\DeclareRobustCommand\cite{%
+ \@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
+\end{listing}
+%
+If there is an optional argument, the boolean variable \cmdat{tempswa}
+is set to true (we need to remember that an optional argument was provided),
+and \cmdat{citex} is called. Otherwise, \cmdat{tempswa} is false, and
+\cmdat{citex} is called with an empty optional argument.
+
+
+Before explaining \cmdat{citex}, we first have a quick look at
+\cmdat{cite}, which will be used by \cmdat{citex}. This will help
+understand how \cmdat{tempswa} is used:
+%
+\begin{listing}{1}
+\def\@cite#1#2{[{#1\if@tempswa , #2\fi}]}
+\end{listing}
+This is the command used for outputting the reference in the
+document. The second argument is used only if \cmdat{tempswa} has been
+set to true. Together with the first argument, they are put into
+brackets, and output in the document.
+
+Now \cmdat{citex}~will be the ``bridge'' between \cmd{cite} and \cmdat{cite}:
+\label{citex}
+%
+\begin{listing}{1}
+\def\@citex[#1]#2{%
+ \let\@citea\@empty
+ \@cite{\@for\@citeb:=#2\do
+\end{listing}
+
+This calls \cmdat{cite}. Its first argument will be computed by the
+\cmdat{for} command, in case several references are cited at one
+time.\index{latex}{citea@\texttt{\protect\bs\protect\at citea}}
+%
+\begin{listingcont}
+ {\@citea\def\@citea{,\penalty\@m\ }%
+\end{listingcont}
+%
+Starting from the second run through the \cmdat{for}-loop, we add a
+comma, and a penalty for a line break not to occur between references.
+The default is to never have a line break inside a set of references.
+%
+\begin{listingcont}
+ \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
+\end{listingcont}
+%
+This redefines \cmdat{citeb}, the variable used in the loop. The
+\cmdat{for} command successively sets \cmdat{citeb} to all the values
+that have been cited, and \cmdat{citeb} is redefined here in order to
+remove extra spaces. This is somewhat tricky, but it works.
+\label{citation}
+
+\begin{listingcont}
+ \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
+\end{listingcont}
+%
+This writes a \cmd{citation} command in the \ext{aux} file, indicating
+that \cmdat{citeb} has been cited in the document. This is not useful
+here, but will be crucial for \bt to generate the bibliography (see
+section~\ref{bibtex}).
+
+\begin{listingcont}
+ \@ifundefined{b@\@citeb}{\mbox{\reset@font\bfseries ?}%
+ \G@refundefinedtrue
+ \@latex@warning
+ {Citation `\@citeb' on page \thepage \space undefined}}%
+\end{listingcont}
+%
+This handles cases where the requested reference does not exist yet. In
+that case, the reference is replaced by a boldface question mark. A
+warning is also echoed in the \ext{log} file.
+
+\begin{listingcont}
+ {\@cite@ofmt{\csname b@\@citeb\endcsname}}}}{#1}}
+\end{listingcont}
+If the reference exists, it is written here, using the
+\nicmd{b\at...} command created when reading the \ext{aux} file (\cf
+page~\pageref{bibcite}).
+\cmdat{cite\protect\at ofmt} is equivalent to~\cmd{hbox}\footnote{The
+command~\cmdat{citex} is defined with \cmd{hbox} in old (before 2003) versions
+of \LaTeX.}.
+The loop is executed for all the requested
+references, and the whole result is then passed to \cmdat{cite},
+together with the optional second argument, which is \verb+#1+ here.
+
+\medskip
+This may look intricate, but it is really easy to use: You simply
+enter \verb+\cite{companion, lamport}+ in order to get \cite{latex:lc,
+ latex:dps}, with the bibliographic items shown at the end of the previous
+ section.
+
+
+
+\mysection{Some more little tricks}\label{truc1}
+
+\mysubsection{What is \protect\nicmd{DeclareRobustCommand}?}
+\label{DRC}
+
+A command having an optional argument, such as \cmd{cite}, is said to
+be \emph{fragile}: Generally speaking, they cannot be directly used
+in the argument of other commands (for instance, \cmd{cite} in the
+argument of a \cmd{section}). These problems can be overcome by preceding
+the fragile command by a \cmd{protect}, but this is annoying. The
+other solution is to declare the command as robust, by defining it
+with \cmd{DeclareRobustCommand} instead of \cmd{newcommand}.
+
+
+\mysubsection{Changing the name of the bibliography}
+
+This is obvious from the definition of the \env{thebibliography}
+environment: We simply have to redefine \cmd{refname}, which defaults
+to \emph{\refname}. However, this
+only works with the \cls{report} class. The \cls{book} and
+\cls{article} classes use \cmd{bibname} instead, which defaults to
+\emph{\bibname}.
+
+For instance, when using \cls{report}, you'll write:
+\begin{verbatim}
+ \renewcommand{\refname}{Some references}
+\end{verbatim}
+while with \cls{book} or \cls{article}, it should be:
+\begin{verbatim}
+ \renewcommand{\bibname}{Some references}
+\end{verbatim}
+As mentioned earlier, \sty{apalike} does not use \cmd{refname} and hard-codes
+the reference name in the page headers.
+
+\mysubsection{Adding text before the first reference}
+
+Putting text just after the beginning of the \env{thebibliography}
+environment raises an error, since the \env{list} environment demands
+an \cmd{item} command. Thus we will put a real \cmd{item}, then add
+some negative horizontal space back to the left margin, and write our
+text within a \env{minipage} environment (in order to avoid
+indentation due to the list):
+
+\begin{verbatim}
+\begin{thebibliography}{GMS93}
+\item[]
+\hskip-\leftmargin
+\begin{minipage}{\textwidth}
+Here are some useful references about \LaTeX. They are
+available in every worthy bookshop. Much other good documentation
+may be found on the web (the FAQ of \textsf{comp.text.tex} for
+instance).
+\end{minipage}
+\bigskip
+\bibitem[GMS93]{companion} Michel Goossens, Franck Mittelbach and
+ Alexander
+ Samarin, \emph{The \LaTeX{} Companion}, Addison Wesley, 1993.
+\bibitem[Lam97]{lamport} Leslie Lamport, \emph{\LaTeX: A Document Preparation
+ System}, Addison Wesley, 1997.
+\end{thebibliography}
+\end{verbatim}
+This code gives:
+
+\begin{myex}
+\begin{thebibliography}{AAA00}
+\item[]
+\hskip-\leftmargin
+\begin{minipage}{\textwidth}
+Here are some useful references about \LaTeX. They are
+available in every worthy bookshop. Much other good documentation
+may be found on the web (the FAQ of \textsf{comp.text.tex} for
+instance).
+\end{minipage}
+
+\bigskip
+\bibitem[GMS93]{companion2} Michel Goossens, Franck Mittelbach and
+ Alexander
+ Samarin, \emph{The \LaTeX{} Companion}, Addison Wesley, 1993.
+\bibitem[Lam97]{lamport2} Leslie Lamport, \emph{\LaTeX: A Document Preparation
+ System}, Addison Wesley, 1997.
+\end{thebibliography}
+\end{myex}
+
+
+\mysubsection{Redefining \protect\nicmd{bibitem}}\label{redefbibitem}
+
+
+Some style files need redefining the \cmd{bibitem} command, or in
+fact \cmdat{bibitem} and \cmdat{lbibitem}, so that an entry has to
+end with a \cmd{par} command (or an empty line). \sty{backref} is an
+example of such a style file. Some other will turn the optional
+argument of \cmd{bibitem} into a mandatory one. \sty{apalike} does
+so.
+
+I've nothing to add about that, but it is useful to know this to
+avoid spending too much time on debugging...
+
+
+
+\mysubsection{Turning brackets into parentheses}
+
+
+As we saw earlier, \cmd{biblabel} is in charge of adding brackets
+around reference labels, in the reference list. It is easy
+to redefine it in order to get parentheses:
+
+\begin{verbatim}
+\makeatletter % @ is now a letter
+\def\bibleftdelim{(}
+\def\bibrightdelim{)}
+\def\@biblabel#1{\bibleftdelim #1\bibrightdelim}
+\makeatother % @ is a symbol
+\end{verbatim}
+
+This does the trick, and it is now easy to change parentheses into
+anything else, by redefining \nicmd{bibleftdelim} and
+\nicmd{bibrightdelim}.
+
+However, this won't change the behavior of \cmdat{cite}, which will
+still write brackets around cited reference labels. Thus we also have
+to redefine \cmdat{cite}:
+\begin{verbatim}
+\makeatletter
+\def\@cite#1#2{\bibleftdelim{#1\if@tempswatrue , #2\fi}\bibrightdelim}
+\makeatother
+\end{verbatim}
+
+\mysubsection{... and more}
+
+Several packages have been written for modifying the look
+of bibliographies and citations. For instance,
+the package \sty{cite} allows to modify the result of the
+\cmd{cite} command: turning brackets into parentheses, but also
+sorting and compressing a set of numeric references.
+The package \sty{overcite} allows, moreover, to get references
+displayed as superscript.
+
+The package \sty{splitbib} changes the output of the list of
+references: it allows to split the bibliography into several
+categories, and\slash or reordering that list. See the
+documentation~\cite{splitbib} for more details.
+
+\mysubsection{Can the symbol \$ be used in an internal key?}
+
+Probably not, but I don't know exactly which character may or may not
+be used. Obviously, any letter and digit can be used, and my opinion
+is that it is quite enough. On the other hand, commas, curly brackets
+and backslashes are clearly forbidden. For the other ones, I don't
+know, just give it a try and you'll know.
+
+
+\mysection*{Conclusion}
+
+Well... It could be over right now, since we know how to write a
+bibliography. However, typesetting all references by hand is long and
+annoying. Moreover, when writing several articles on related areas,
+we often cite the same sets of references, but possibly with different styles.
+It would be interesting to have a \emph{database} containing a large
+set of references, some of which would be picked up, formatted and typeset by
+\LaTeX. This does exist, and is described in the sequel.
diff --git a/info/bibtex/tamethebeast/ttb_en.sec2.tex b/info/bibtex/tamethebeast/ttb_en.sec2.tex
new file mode 100644
index 0000000000..66a008dfc2
--- /dev/null
+++ b/info/bibtex/tamethebeast/ttb_en.sec2.tex
@@ -0,0 +1,672 @@
+%% ttb_en.sec2.tex
+%% Copyright 2003-2005 Nicolas Markey
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+% The Current Maintainer of this work is Nicolas Markey
+%
+% This work consists of the files
+% ttb_en.tex
+% ttb_en.sec1.tex ttb_en.sec2.tex ttb_en.sec3.tex
+% ttb_en.sec4.tex ttb_en.sec5.tex ttb_style.sty
+% local.bib idxstyle.ist Makefile
+% and the derived ttb_en.dvi, ttb_en.ps and ttb_en.pdf
+
+
+\mypart{How to use \bt?}
+\parttoc
+\mtcskip
+
+\mysection{How does it work?} \label{bibtex}
+
+As mentioned earlier, \bt can be seen as a general database manager:
+It extracts items from a database, sorts them, and exports the
+result, generally as a \LaTeX{}able \env{thebibliography}
+environment.
+
+This description is a somewhat optimistic view, however, and reality
+is a little more complex: In order to tell \bt which entries have to
+be extracted, you have to first run \LaTeX on your document. And once
+\bt has finished its job, you have to run \LaTeX anew in order to take
+the resulting bibliography into account. Here are some more details:
+
+\begin{itemize}
+\item At the very first stage, you run \LaTeX on your document. Since this is
+ the first time you compile it, no bibliographic
+ information is included, and references are left
+ empty. Nevertheless, each time \LaTeX encounters a bibliographic reference
+ in the document, it writes the key of the reference in the \ext{aux}
+ file\footnote{This is the role of the \cmd{citation} command issued
+ by the \cmd{cite} command (\cf page~\pageref{citation}).}. During
+ the compilation, \LaTeX also indicates in the \ext{aux} file which
+ databases have to be used, and which bibliography style has
+ to be applied for typesetting the bibliography;
+
+\item \bt can now be executed: It takes the \ext{aux} file as
+ argument, which contains all the relevant informations
+ for extracting the bibliography: The style (\ext{bst} file) to be
+ applied to the
+ bibliography, the database (\ext{bib} file) to be used, and the
+ entries to be extracted from the database. With this stuff, \bt
+ will then extract the \cmd{cite}{}d references
+ and write the bibliography in a \ext{bbl}
+ file. Logs of this operation are written in a \ext{blg} file;
+
+\item The next step is to rerun \LaTeX. The \ext{bbl} file will then
+ be included, and its \cmd{bibitem} commands executed. This writes
+ the necessary bibliographic cross references in the \ext{aux}
+ file. However, this does not define the cross references for the
+ current compilation, and bibliographic references still won't be
+ defined;
+
+\item We then run \LaTeX a third time: When reading the \ext{aux} file
+ at the beginning of the compilation, \LaTeX will store the
+ references of the bibliographic citations, and those references
+ will be correct in the document.
+\end{itemize}
+
+
+It follows that, in the best case, we need to compile the file three
+times, and to run \bt once. There are some cases where this is still
+not sufficient: If, for instance, a bibliographic entry cites another
+one, another run of both \bt and \LaTeX is needed. And so on.
+Finally, here is the global pattern to be applied:
+\begin{center}
+\LaTeX (\bt {} \LaTeX )$^+$ \LaTeX.
+\end{center}
+
+
+Everything else works as in part~\ref{part1}, since \bt generally creates the
+complete \env{thebibliography} environments with all the \cmd{bibitem}{}s of
+the references that are cited in your document.
+There are two new \LaTeX commands, however: Those
+defining the style file to consider and bibliographic database(s):
+\begin{itemize}
+\item \cmd{bibliographystyle} is the command to be used to declare the
+ bibliography style to be used by \bt. Here is how it is defined:
+\begin{listing}{1}
+\def\bibliographystyle#1{%
+ \ifx\@begindocumenthook\@undefined\else
+ \expandafter\AtBeginDocument
+ \fi
+ {\if@filesw
+ \immediate\write\@auxout{\string\bibstyle{#1}}%
+ \fi}}
+\end{listing}
+
+
+This simply writes a \cmd{bibstyle} command in the \ext{aux} file,
+whose argument is the name of the style. \cmd{bibstyle} itself is a
+command that has one argument, but does nothing. Indeed, the
+name of the bibliography style is only needed by \bt, and \LaTeX doesn't
+care about it.
+
+\item \cmd{bibliography} is the command for defining the bibliographic
+ database to be used. Contrary to the previous command, the argument
+ of \cmd{bibliography} might be a comma-separated list of
+ bibliographic databases. Note that ``comma-separated'' is strict
+ here: No space and no line break are allowed. Apart from this, the
+ behavior of this command is similar to the behavior of the previous
+ one: It writes its argument in the \ext{aux} file, as the
+ argument of
+ a command named \cmd{bibdata} (which is then read by \bt,
+ but does nothing in \LaTeX). Last, this
+ \cmd{bibliography} command includes the \ext{bbl} file,
+ which writes
+ the bibliography. Here is the precise definition:
+\begin{listing}{1}
+\def\bibliography#1{%
+ \if@filesw
+ \immediate\write\@auxout{\string\bibdata{#1}}%
+ \fi
+ \@input@{\jobname.bbl}}
+\end{listing}
+
+You've probably already understood that \cmd{jobname} returns the name
+of the file being compiled.
+\end{itemize}
+
+
+Last precision: The \ext{aux} file also contains the list of keys of
+the entries to be extracted. This is achieved by the \cmd{citation}
+commands echoed by \cmd{cite} in the \ext{aux} file. \cmd{citation}
+does the same thing as \cmd{bibstyle} and \cmd{bibdata}: Nothing.
+
+
+\mysection{Some bibliography styles...}
+
+There exist quite a bunch
+of bibliography styles, since each publisher has his own
+needs
+and preferences. I'll present some generic styles here, together with their
+specificities.
+
+\mysubsection{Classical bibliography styles}
+
+The following four styles were originally written by Oren
+\textsc{Patashnik}, whom I forgot to introduce but is in fact the
+author of \bt. The styles are named \bst{plain}, \bst{alpha},
+\bst{unsrt} and \bst{abbrv}. If you want to use the
+\bst{plain}~style, you'll write \verb+\bibliographystyle{plain}+
+(anywhere) in your document.
+
+
+Globally speaking, the bibliography style has to manage
+everything. ``Everything'' here can be decomposed into three points:
+Defining the available entry types, with their relevant
+fields\footnote{I insist that entry types and field names depend
+on the bibliography style, and are not fixed by \bt.};
+Extracting and sorting
+bibliographic items; And typesetting the bibliography.
+
+
+So the first role of the style file is to define entry types, such as
+\ent{book}, \ent{article} or \ent{inproceedings} in classical styles,
+and for each of them, the relevant fields that will be
+either mandatory or optional or just ignored\footnote{The following
+ rule applies: A field that is neither mandatory nor optional, is
+ ignored. Thus you can add any comment or personal field in your
+ bibliography, even if they're not in the list below. Some other
+ fields might of course be used by other, non classical styles.}.
+The table below describes the role of the fields that are used in
+classical style files. Descriptions are short, but more details can be
+easily found in any \LaTeX book.\label{champ}
+
+\begin{center}
+%\centerline{%
+\begin{longtable}{|>{\vrule height8pt depth0pt width 0pt\noindent\bgroup\bfseries}p{.17\textwidth}<{\egroup}>{\noindent}p{.77\textwidth}<{\vrule height0pt depth7pt width 0pt}|}
+\hline\endfirsthead
+\hline\endhead
+\hline\endfoot
+\hline\endlastfoot
+address & Generally the city or complete address of the publisher.
+\\
+author & For author names. The input format is quite special, since
+\bt
+has to be able to distinguish between the first and last
+names. Section~\ref{author} and~\ref{noms-start} are completely
+dedicated to this topic.
+\\
+booktitle & For the title of a book one part of which is cited.
+\\
+chapter & The number of the chapter (or any part) of a book being
+cited. If not a chapter, the \texttt{type} field might be used for
+precising the type of sectioning.
+\\
+crossref & This one is quite peculiar. It's used to cross-reference
+within the bibliography. For instance, you might cite a
+document, and a part of it. In that case, the second one
+can reference
+the first one, or at least inherit some of its fields from the first
+one. This deserves some more comments, see section~\ref{crossref}.
+\label{cetaitla} \\
+edition & The edition number. Or in fact its ordinal, for instance
+\texttt{edition = "First"}. This might raise
+problems when trying to export a bibliography into another language.
+\\
+editor & The name of the editor(s) of the entry. The format is the
+same as for authors.
+\\
+howpublished & Only used in rare cases where the document being cited
+is not a classical type such as a \ent{book}, an \ent{article} or an
+\ent{inproceedings} publication.
+\\
+institution & For a technical report, the name of the institution that
+published it.
+\\
+journal & The name of the journal in which the cited article has
+been published.
+\\
+key & Used for defining the label, in case it cannot be computed by
+\bt. It does not force the label, but defines the label when
+\bt needs one but can't compute it.
+\\
+month & Well... The month during which the document has been
+published. This also raises the problem of the translation of the
+bibliography: It's better having a numerical value, or an abbreviation,
+instead of the
+complete name of the month. Having the number would also allow \bt
+to sort the entries more precisely (even though, as far as I know, no
+bibliography style does this at the present time).
+\\
+note & For any additional data you would want to add. Since classical
+styles were written in 1985, they don't have a \texttt{url} field, and
+\texttt{note} is often used for this purpose, together with the
+\sty{url} package.
+\\
+number & A number... Not whichever, but the number of a report. For
+volume numbers, a special
+\texttt{volume} field exists.
+\\
+organization & The organizing institution of a conference.
+\\
+pages & The relevant pages of the document. Useful for the reader when
+you cite a huge book; Note that such a precision could be added
+through the optional argument of \cmd{cite} (see
+page~\pageref{citeopt}), in which case it would appear in the document
+but not in the bibliography.
+\\
+publisher & The institution that published the document.
+\\
+school & For theses, the name of the school the thesis has been
+prepared in.
+\\
+series & The name of a collection of series or books.
+\\
+title & The title of the document being cited. There are some rules to
+be observed when entering this field, see section~\ref{title}.
+\\
+type & The type. Which type? It depends... The type of publication, if
+needed. For thesis, for instance, in order to distinguish between
+a masters thesis and a PhD. Or the type of section being cited (see
+\texttt{chapter} above).
+\\
+volume & The volume number in a series or collection of books.
+\\
+year & The publication year.
+\\
+%\hline
+%\caption{ }\label{chp}
+\end{longtable}
+\end{center}
+\label{fin-champ}
+
+
+The table below describes the different entry types. Once again, you
+can find more details in any \LaTeX documentation, so I won't go deep
+into the details. \label{type}
+{%
+\hfuzz=50pt%
+\begin{longtable}{|>{\vrule height11pt depth0pt width 0pt}p{.45\textwidth}
+%>{\noindent}p{.27\textwidth}
+>{\noindent\raggedright\relax}p{.22\textwidth}
+>{\noindent\raggedright\relax}p{.25\textwidth}<{\vrule height0pt depth9pt width 0pt}|}
+\hline\endfoot
+\hline\endlastfoot
+\hline
+\vrule depth7pt height 10pt width 0pt\normalfont Entry type &
+Mandatory fields & Optional fields \tabularnewline\hline\endhead
+\hline\vrule depth7pt height 10pt width 0pt\normalfont Entry type &
+Mandatory fields & Optional fields \tabularnewline\hline\endfirsthead
+
+\ent{article} : An article published in a journal. &
+\chp{author}, \chp{title}, \chp{year}, \chp{journal}. &
+\chp{volume}, \chp{number}, \chp{pages}, \chp{month}, \chp{note}.\tabularnewline
+
+\ent{book} : Well... A book. &
+\chp{author} or \chp{editor}, \chp{title}, \chp{publisher}, \chp{year}.&
+\chp{volume} or \chp{number}, \chp{series}, \chp{address}, \chp{edition}, \chp{month}, \chp{note}.\tabularnewline
+
+\ent{booklet} : A \emph{small} book, that has no \chp{publisher} field.&
+\chp{title}.&
+\chp{author}, \chp{howpublished}, \chp{address}, \chp{address}, \chp{month}, \chp{year}, \chp{note}. \tabularnewline
+
+\ent{conference} : Article that appeared in the proceedings of a
+conference, a meeting... &
+\chp{author}, \chp{title}, \chp{booktitle}, \chp{year}.&
+\chp{editor}, \chp{volume} or \chp{number}, \chp{series}, \chp{pages},
+\chp{address}, \chp{month}, \chp{organization}, \chp{publisher}, \chp{note}.\tabularnewline
+
+\ent{inbook} : Part (generally a chapter) of a book.&
+\chp{author} or \chp{editor}, \chp{title}, \chp{chapter} or \chp{pages}.&
+\chp{volume}, \chp{number}, \chp{series}, \chp{type}, \chp{address},
+\chp{edition}, \chp{month}, \chp{note}.\tabularnewline
+
+\ent{incollection} : Part of a book having its own title. &
+\chp{author}, \chp{title}, \chp{booktitle}, \chp{publisher}, \chp{year}.&
+\chp{editor}, \chp{volume} or \chp{number}, \chp{series}, \chp{type},
+\chp{chapter}, \chp{pages}, \chp{address},
+\chp{edition}, \chp{month}, \chp{note}. \tabularnewline
+
+\ent{inproceedings} & \multicolumn{2}{c|}{Same as \ent{conference}.}
+\tabularnewline
+
+\ent{manual} : A little manual, such as this one for instance. &
+\chp{title}.&
+\chp{author}, \chp{organization}, \chp{year}, \chp{address},
+\chp{edition}, \chp{month}, \chp{note}.\tabularnewline
+
+\ent{mastersthesis} : Masters thesis, or something equivalent. &
+\chp{author}, \chp{title}, \chp{school}, \chp{year}.&
+\chp{type}, \chp{address}, \chp{month}, \chp{note}.\tabularnewline
+
+\ent{misc} : When nothing else fits...&
+at least one of the optional fields. &
+\chp{author}, \chp{title}, \chp{howpublished}, \chp{year}, \chp{month}, \chp{note}.
+\tabularnewline
+
+\ent{phdthesis} : PhD dissertation, or similar. &
+\chp{author}, \chp{title}, \chp{school}, \chp{year}.&
+\chp{type}, \chp{address}, \chp{month}, \chp{note}.\tabularnewline
+
+\ent{proceedings} : Conference proceedings. &
+\chp{title}, \chp{year}.&
+\chp{editor}, \chp{volume} or \chp{number}, \chp{series},
+\chp{address}, \chp{month}, \chp{organization}, \chp{publisher}, \chp{note}.
+\tabularnewline
+
+\ent{techreport} : Technical report, published by a laboratory, a
+research center, ... &
+\chp{author}, \chp{title}, \chp{institution}, \chp{year}.&
+\chp{type}, \chp{address}, \chp{number}, \chp{month}, \chp{note}.
+\tabularnewline
+
+\ent{unpublished} : A document that has not been published. Very
+close to \ent{misc}, but \texttt{author} and \texttt{title} are needed
+here. &
+\chp{author}, \chp{title}, \chp{note}.&
+\chp{month}, \chp{year}.\tabularnewline
+%\hline
+\end{longtable}
+%\end{center}
+}
+
+
+Concerning the order and typesetting of all this stuff, it's similar
+in all the classical style files. Of course it depends on the entry
+type, but it generally begins with the author names and the
+title. Then the references of the journal or of the proceedings...
+The best thing to do if you need more details is to give it a try, or
+have a look directly in the style files (but read Part~\ref{bst} before if
+you don't know how \bt style files are built).
+\medskip
+
+
+Up to now, there are no differences between the four standard
+style files.
+The only possible difference now can only be related to labelling and
+typesetting method to be used.
+
+
+\begin{itemize}
+\item the \bst{plain} style sorts the entries according to the name of
+ their authors (using the alphabetical order\footnote{The standard
+alphabetical order with $26$~letters. Unfortunately, some language
+have a different alphabet, for instance Swedish, in which
+``\texttt{\aa}'' and~``\texttt{\"o}'' are considered as letters and placed
+after~``\texttt{z}''.}, of course), and, for
+ papers by the same author(s), the year they have been published
+(the
+ older first). The last criterion in case of equality is the title,
+ being a little bit modified. If two references can't be
+ distinguished with the above, the first one being cited in the
+ document appears first. Labels are numbers,
+ starting with $1$.
+
+\item the \bst{alpha} style file is named \emph{alpha} because it uses
+ alphanumerical labels: Those labels are computed by \bt using the
+ first three letters of the author name
+ (or initials of the author names
+ if multiple authors), followed by the last two digits of the
+ publication year. Sorting the entries is done according to the label
+ first, and then to the same criteria as for \bst{plain},
+ in case several
+ publication have the same label\footnote{You certainly don't want
+ that several publications have the same labels. Thus computing the
+ labels is done in two phases: First computing the label with the
+ standard method, and then adding a supplementary letter (``a'',
+ ``b'',~...) for multiple labels. And sorting is done just between
+ those two phases...};
+\item you probably understood what \bst{unsrt} does:
+It does not sort
+ its references, which appears in the order they are cited in the
+ document. Everything else is done as in \bst{plain};
+\item \bst{abbrv} abbreviates first names
+ of the authors and the names of predefined journal and month names.
+I forgot to mention that bibliography styles historically
+ predefine some shorthands for computer science journal names (Oren
+ \textsc{Patashnik} is a computer scientist...). Those shorthands are
+ abbreviated journal names in this style file. These are the only
+ difference between \bst{abbrv} and \bst{plain}.
+\end{itemize}
+
+
+That's all for classical styles. Those styles suffer from several
+problems, for instance not having a \texttt{url} field, or not being
+multilingual, or sorting in a weird way... Moreover, publishers
+often impose precise
+typographic rules for bibliographies. This entails that many other
+styles have been proposed. Let's have a look at some of them.
+
+
+
+
+\mysubsection{Some other bibliography styles}
+
+%There are numerous other bibliography style files. I really can't
+%describe all of them, just mentionning some of them together with
+%their main characteristics.
+
+\mysubsubsection{The \protect\nibst{apalike} style}
+
+\bst{apalike} was (also) written by Oren \textsc{Patashnik}. It uses a
+special construction for labels, generally called \emph{author-year}.
+I think the best way to understand is with some examples:
+
+\begin{myex}
+\makeatletter
+\def\@cite#1#2{(#1\if@tempswa , #2\fi)}
+\def\@biblabel#1{}
+\makeatother
+
+On page~$384$ of \cite{latex:lcici}, you'll find a complete example of
+what \bst{apalike} does.
+
+\begin{thebibliography}{}
+\bibitem[Goossens et~al., 1993]{latex:lcici}
+Goossens, M., Mittelbach, F., and Samarin, A. (1993).
+\newblock {\em the \LaTeX{} Companion}.
+\newblock Addison-Wesley.
+
+\bibitem[Lamport, 1997]{latex:dpsici}
+Lamport, L. (1997).
+\newblock {\em \LaTeX{}: A Document Preparation System}.
+\newblock Addison-Wesley.
+\end{thebibliography}
+\end{myex}
+
+Don't forget to include the \sty{apalike} package when using
+the \bst{apalike} style: Indeed, if you remember how \cmdat{biblabel}
+and \cmd{cite} are defined, you should have seen why...
+Moreover, labels created
+by \bst{apalike} might be long, and you probably will accept that
+\LaTeX hyphenates them if necessary, which the default
+\cmd{cite} won't do (\cf section~\ref{cite}).
+
+%Last, I always like to quote the following comments
+%written in the \bst{apalike} file:
+%\begin{verbatim}
+%% Many journals require a style like `apalike', but I recommend that you
+%% not use it if you have a choice---use something like `plain' instead.
+%\end{verbatim}
+
+Also: There are some other \emph{author-year} style files, named
+\bst{authordate1}, \bst{authordate2}, \bst{authordate3},
+\bst{authordate4}, and that slightly differ from \bst{apalike}.
+They must be used together with the
+\sty{authordate1-4} package.
+
+Very last important thing: \sty{apalike} redefined \cmd{bibitem}
+so that the optional argument becomes mandatory (but must still be
+within square brackets). But you probably don't care since, of course,
+the bibliography style file tells \bt to always output it.
+
+
+\mysubsubsection{The \protect\nisty{natbib} package}
+
+The \sty{natbib} package, written by Patrick~W. \textsc{Daly},
+goes a bit further: It mainly redefines \cmd{cite} so that you can
+get \emph{author-year} or numerical labels, in a very elegant way.
+
+Classical bibliography styles have been ported to \sty{natbib},
+except \bst{alpha} since it already was an \emph{author-year}
+style. The names of the ports are
+\bst{plainnat}, \bst{abbrvnat} et \bst{unsrtnat}.
+Moreover, those styles have a \texttt{url} field for adding reference
+to articles on the web. Also note that \sty{natbib} can be used with
+\bst{apalike} or \bst{authordate1} to \bst{authordate4}.
+
+Last interesting remark: There is a very clean
+documentation~\cite{natbib} for
+\sty{natbib}, it's really worth reading.
+
+\mysubsubsection{The \protect\nisty{jurabib} package}
+
+The package \sty{jurabib}, by Jens Berger, is another
+package for adapting
+the output to the typographic rules used in legal studies.
+It is associated to a bibliography style \bst{jurabib}, and
+rests on a very special format for the optional argument
+of~\cmd{bibitem}. It also redefines \cmd{cite}, and defines
+many flavors of that command.
+See~\cite{jurabib} for detailed comments on \sty{jurabib}.
+
+\mysubsubsection{\textsf{custom-bib}}
+
+Since there are many possible criteria for defining a bibliographic
+style,
+Patrick~W. \textsc{Daly} decided to write a little piece of software
+for automatically generating customized bibliography styles. It asks
+you about $20$~questions and produces a pretty ready-to-use
+bibliography style file.
+
+As usual with Patrick~\textsc{Daly},
+the documentation~\cite{merlin} is excellent, and I
+won't go any further in the details. I just mention how to create your
+\ext{bst}-file:
+Simply type
+\verb+latex makebst.tex+, and answer the questions. All along the
+execution, the style file is being created. It's really easy and
+intuitive.
+
+
+
+\mysection{Questions and answers}
+
+This section ends the \LaTeX part of this manual with some
+frequently asked questions. We'll then tackle the \bt part, which was
+intended to be the central topic...
+
+
+
+\mysubsection{How to get several bibliographies?}
+
+I did not insist on that, but it is of course recommended that you
+only have one occurrence of each
+\cmd{bibliography} and \cmd{bibliographystyle} commands.
+\LaTeX won't mind if it is not the case, but \bt won't appreciate,
+since it can't choose which style or bibliographic file to use.
+
+
+Thus the only possible thing is to write several \ext{aux} files, each
+of them containing a complete set of data for one bibliography.
+This is precisely what
+\sty{multibib}, \sty{chapterbib} and \sty{bibunit} do.
+\begin{itemize}
+\item \sty{multibib}, written by
+Thorsten \textsc{Hansen},
+allows for precising in which bibliography a document lies.
+This is achieved by using different \cmd{cite} commands, one for each
+bibliography.
+For this manual, I could have used \sty{multibib} to define special
+\nicmd{citelatex} and \nicmd{citebibtex} commands defining two
+separate bibliographies\footnote{For those who know the \sty{multind}
+ package for getting multiple indexes, the idea is similar.}.
+Of course, this requires that you run \bt against each of the
+\ext{aux} files created. For more details, refer to the
+documentation~\cite{multibib}, which (also) is really worth
+reading. The doc also mentions the main issue with such a method: The
+same label could be used in several bibliographies for different
+references. And you can't easily avoid this problem...
+
+\item The \sty{chapterbib} package, mainly written by
+Donald \textsc{Arseneau}, provides a way to get
+one bibliography for each
+chapter or part of a (long) document (short documents won't need
+several bibliographies). Indeed, a long document will be
+made of several files \cmd{include}{}d by a main file.
+\sty{chapterbib} creates one \ext{aux} file for each of those included
+files, each of which being intended to contain the
+necessary \cmd{bibstyle}, \cmd{bibdata} and
+\cmd{citation} commands.
+Documentation for this package may be found at the end of the package
+file itself.
+
+\item The \sty{bibunit} package, also written by
+Thorsten \textsc{Hansen}, is pretty similar to \sty{chapterbib}:
+it allows to create one bibliography for each ``unit'', a unit
+being any part of the document beginning with
+\verb+\begin{bibunit}+ and ending with
+\verb+\end{bibunit}+.
+
+
+Inside such a unit, all occurrences of \cmd{cite} refer to the
+bibliography of the current unit. \cite{bibunit} gives many
+details of how it works.
+\end{itemize}
+
+
+There are some other packages for creating several bibliographies:
+\sty{camel}, \sty{bibtopic}... I can't detail everything since it is
+not the aim of this manual.
+
+
+\mysubsection{How to have references closer to where they are cited?}
+
+There are two solutions to this problem, depending on what you
+precisely want: The first solution consists in putting references in
+footnotes. This might be practical for the reader, since he has the
+complete references without always going back and forth to the end of
+the book. There is a package just designed to this purpose:
+\sty{footbib}. It's quite well documented~\cite{footbib}.
+
+
+The second solution is to write the complete references in the
+text. Instead of citing~\cite{latex:lc}, you cite
+Michel Goossens, Franck Mittelbach et Alexander
+ Samarin, \emph{The \LaTeX Companion}, Addison Wesley, 1993.
+This may enhance your document, but can sometimes become
+annoying for the reader. However, just have a look a the package \sty{bibentry}, and
+its documentation~\cite{bibentry}, if you want some more details.
+
+
+Note that both of these packages might conflict with some other ones,
+such as \sty{hyperref}. This is due to the fact that each of them
+wants to impose its own definition of the \env{thebibliography}
+environment or of the \cmd{bibitem} command. The last one being included
+will win, but the other ones will eventually complain. There is no
+simple solution to avoid this, the only way, if any, is to merge all
+the definitions by hand.
+
+
+\mysubsection{How to add entries in the reference list without
+ citing them in the document?}
+
+This is achieved by the \cmd{nocite} command. It works exactly like
+\cmd{cite}, but writes nothing in the document. It just includes the
+\cmd{citation} command in the \ext{aux} file.
+
+
+A variant of this command is \verb+\nocite{*}+: it
+amounts to \cmd{nocite}-ing the whole bibliography at one time.
+Those references are included in the same order as they appear in the
+\ext{bib} file, except for those having been cited earlier.
+Note that \verb+\cite{*}+ is also correct, but I'm not sure it has
+any interest...
+
+
+\bigskip
+
+
+Well... That's all for this part.
+We now forget \LaTeX, and go closer to the core of the problem. The
+next section explains how to create a clean \ext{bib} file.
+
+
diff --git a/info/bibtex/tamethebeast/ttb_en.sec3.tex b/info/bibtex/tamethebeast/ttb_en.sec3.tex
new file mode 100644
index 0000000000..7c295710b1
--- /dev/null
+++ b/info/bibtex/tamethebeast/ttb_en.sec3.tex
@@ -0,0 +1,747 @@
+%% ttb_en.sec3.tex
+%% Copyright 2003-2005 Nicolas Markey
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+% The Current Maintainer of this work is Nicolas Markey
+%
+% This work consists of the files
+% ttb_en.tex
+% ttb_en.sec1.tex ttb_en.sec2.tex ttb_en.sec3.tex
+% ttb_en.sec4.tex ttb_en.sec5.tex ttb_style.sty
+% local.bib idxstyle.ist Makefile
+% and the derived ttb_en.dvi, ttb_en.ps and ttb_en.pdf
+
+
+\mypart{The \protect\niext{bib} file}\label{part3}
+\parttoc
+\mtcskip
+
+The \ext{bib} file is the database. Its contents heavily
+depends on the style being applied to it, even though
+bibliography styles are generally ``compatible'' with each w.r.t.\ the
+database. I will only describe here
+the case of standard styles\footnote{Thus using entry types
+and fields as described at pages~\pageref{champ}
+to~\pageref{fin-champ}.}.
+But remember that
+\bt can do many other things, we'll see some examples in
+section~\ref{autres}.
+
+\mysection{Structure of the \protect\niext{bib} file}
+
+We start with an example:
+
+\begin{verbatimtab}
+@book{companion,
+ author = "Goossens, Michel and Mittelbach, Franck and Samarin, Alexander",
+ title = "The {{\LaTeX}} {C}ompanion",
+ publisher = "Addison-Wesley",
+ year = 1993,
+}
+\end{verbatimtab}
+We just consider the structure of this entry for the moment, not its
+contents. The general form is the following\footnote{The
+outermost braces can be replaced by parentheses:
+ \texttt{\at{\itshape entry\_type}({\itshape internal\_key}, ...)}.}:
+\bigskip
+
+\noindent\begin{minipage}{\textwidth}
+\obeylines
+\ttfamily \at{\itshape entry\_type}\{internal\_key,
+\ \ {\bfseries field\_1}\ \ \ \ \ \ \ = "value\_1",
+\ \ {\bfseries field\_2}\ \ \ \ \ \ \ = "value\_2",
+\ \ ...
+\ \ {\bfseries field\_n}\ \ \ \ \ \ \ = "value\_n"
+\}
+\end{minipage}
+
+\bigskip
+
+\noindent Some basic remarks:
+\begin{itemize}
+\item New entries always start with \texttt\at. Anything outside
+ the ``argument'' of a ``command'' starting with an \texttt\at{} is
+ considered as a comment. This gives an easy way to comment a given
+ entry: just remove the initial \texttt\at.
+ As usual when a language allows comments, don't hesitate to use
+ them so that you have a clean, ordered, and easy-to-maintain
+ database. Conversely, anything starting with an \texttt\at{} is
+ considered as being a new entry\footnote{There is a special entry
+ type named \ent{comment}. The main use of such an
+ entry type is to comment a large part of the bibliography easily,
+since anything outside an entry is already a comment, and commenting
+out one entry may be achieved by just removing its
+initial~\texttt{\at}.}.
+
+\item \bt does not distinguish between normal and capital
+ letters in entry and field names. \bt will complain if two entries
+ have the same internal key, even if they aren't capitalized in the
+ same way. For instance, you cannot have two entries named
+ \texttt{Example} and \texttt{example}.
+
+ In the same way, if you cite both \texttt{example} and
+ \texttt{Example}, \bt will complain. Indeed, it~would have to
+ include the same entry twice, which probably is not what you want;
+
+
+\item Spaces and line breaks are not important, except for
+ readability. On the contrary, commas are compulsory between any two
+ fields;
+
+
+\item Values (\emph{i.e.} right hand sides of each assignment) can be either
+ between curly braces or between double quotes. The main difference
+ is that you can write double quotes in the first case, and not in
+ the second case. For citing
+ \emph{Comments on ``Filenames and Fonts''} by Franck
+\textsc{Mittelbach}, you can use one of the following solutions:
+\begin{verbatimtab}
+ title = "Comments on {"}Filenames and Fonts{"}",
+ title = {Comments on "Filenames and Fonts"},
+\end{verbatimtab}
+
+Curly braces have to match, since they will appear in the output to be
+compiled by \LaTeX.
+A problem occurs if you need to write a (left-, say) brace in an entry. You
+could of course write \verb+\{+, but the entry will have to also include the
+corresponding right brace. To include a left brace without its
+corresponding right brace, you'll have use a \LaTeX~function having no
+brace in its name. \cmd{leftbrace} is the right choice here. Another solution
+is to add an extra \cmd{bgroup} in the entry, so that both \LaTeX and \bt will
+find the correct number of ``braces''.
+
+\item For numerical values, curly braces and double quotes can be
+ omitted.
+\end{itemize}
+
+
+As I already mentioned, you can define fields even if they aren't
+used by the style being applied. For instance, the following can be
+used for the \LaTeX Companion:
+\begin{verbatimtab}
+@book{companion,
+ author = "Goossens, Michel and Mittelbach, Franck and Samarin, Alexander",
+ title = "The {{\LaTeX}} {C}ompanion",
+ booktitle = "The {{\LaTeX}} {C}ompanion",
+ publisher = "Addison-Wesley",
+ year = 1993,
+ month = "December",
+ ISBN = "0-201-54199-8",
+ library = "Yes",
+}
+\end{verbatimtab}
+It gives complementary information about the book\footnote{Filling
+both \nichp{title} and \nichp{booktitle} for a book may be of real
+interest, as we will see in the section dedicated to cross references
+(see section~\ref{crossref} for some more details).}, for instance the
+fact that it is available in your local library. You really should
+not hesitate to use auxiliary, personal fields, giving them explicit
+names in order to be sure that no bibliography style will use them
+incidentally\footnote{You'll ask ``Is it really useful?''. First of
+all, it doesn't take long to add those informations each time you add a
+new entry; it~takes much longer to add a field to several
+entries. Moreover, we'll see later how to design bibliography styles,
+and you'll be able to write styles that take those new fields into
+account.}.
+
+
+\mysection{The \protect\nient{string} and \protect\nient{preamble}
+ entries}\label{strpre}
+
+These are not really entry types: \ent{string}
+entries can be used in order to define abbreviations. For instance,
+we've cited two books published by Addison-Wesley. It might be useful
+to define a shortcut for this publisher. Thus we write:
+\begin{verbatimtab}
+@string{AW = "Addison-Wesley"}
+
+@book{companion,
+ author = "Goossens, Michel and Mittelbach, Franck and Samarin, Alexander",
+ title = "The {{\LaTeX}} {C}ompanion",
+ booktitle = "The {{\LaTeX}} {C}ompanion",
+ publisher = AW,
+ year = 1993,
+ month = "December",
+ ISBN = "0-201-54199-8",
+ library = "Yes",
+}
+\end{verbatimtab}
+
+This does not only spare some time, but most importantly, it ensures that
+you won't misspell it, and helps you maintain a homogeneous database.
+I find this really interesting for author names, so that you're sure
+to always write them correctly (or always incorrectly, but it would
+be easy to detect and correct a global mistake anyway).
+
+
+As regards \ent{preamble}, it may be used for inserting commands or
+text in the file created by \bt. Anything declared in a \ent{preamble}
+command will be concatenated and put in a variable named
+\fn{preamble}, for being used in the bibliography style and,
+generally, inserted at the beginning of the \ext{bbl} file, just
+before the \env{thebibliography} environment. This is useful for
+defining new commands used in the bibliography. Here is a small
+example:
+\begin{verbatimtab}
+@preamble{ "\makeatletter" }
+@preamble{ "\@ifundefined{url}{\def\url#1{\texttt{#1}}}{}" }
+@preamble{ "\makeatother" }
+\end{verbatimtab}
+This way, you may safely use the \nicmd{url} command in your
+entries. If it is not defined at the beginning of the bibliography, the
+default command defined in the \ent{preamble} will be used.
+
+Please note that you should never define style settings
+in the \ent{preamble} of a bibliography database,
+since it would be applied to
+any bibliography built from this database.
+
+
+
+
+
+
+\mysection{The \nichp{title} field}\label{title}
+
+Let's see how to fill the ``title'' field. We start by studying how I entered
+the title field for the
+\emph{\LaTeX Companion} :
+\begin{verbatimtab}
+ title = "The {{\LaTeX}} {C}ompanion"
+\end{verbatimtab}
+
+We'll need several definitions before going further.
+The \emph{brace depth} of an item is the number of braces surrounding
+it. This is not a very formal definition, but for instance, in
+the title above, \verb+\LaTeX+ has brace depth $2$, the \verb+C+ has
+brace depth $1$, and everything else has depth $0$\footnote{Of course,
+surrounding the field with braces instead of quotes does not modify
+the brace depth.}.
+A~\emph{special character} is a part of a field starting with a left
+brace
+being at brace depth $0$ immediately
+followed with a backslash, and ending
+with the corresponding right brace.
+For instance, in the above example, there is
+no special character, since \verb+\LaTeX+ is at depth~$2$. It should
+be noticed that anything in a special character is considered as being at
+brace depth~$0$, even if it is placed between another pair of braces.
+
+That's it for the definitions.
+Generally speaking, several modifications can be applied to the
+title by the bibliography style:
+\begin{itemize}
+\item first of all, the title might be used for sorting. When sorting,
+ \bt computes a string, named \fn{sort.key}, for each
+ entry. The \fn{sort.key} string is an (often long)
+ string defining the order in which
+ entries will be sorted. To avoid any ambiguity, \fn{sort.key} should
+ only contain alphanumeric characters. Classical non-alphanumeric
+ characters\footnote{Except hyphens and tildes
+ that are replaced
+ by spaces. Spaces are preserved. The precise behavior of
+ \fn{purify} is explain on page~\pageref{purify}.},
+ except special characters, will be removed by
+ a \bt function named \fn{purify}. For special characters, \fn{purify}
+ removes spaces and
+ \LaTeX commands (strings beginning with a backslash), even those
+ placed between brace pairs. Everything else is left unmodified. For
+ instance,
+ \verb+t\^ete+, \verb+t{\^e}te+ and \verb+t{\^{e}}te+
+are transformed into \verb+tete+,
+while \texttt{t\^ete} gives \texttt{t\^ete};
+\verb+Bib{\TeX}+ gives \verb+Bib+ and
+\verb+Bib\TeX+ becomes \verb+BibTeX+.
+There are thirteen \LaTeX commands that won't follow the above rules:
+\verb+\OE+, \verb+\ae+, \verb+\AE+, \verb+\aa+, \verb+\AA+,
+\verb+\o+, \verb+\O+, \verb+\l+, \verb+\L+, \verb+\ss+.
+Those commands correspond to \i, \j, \oe,
+\OE, \ae, \AE, \aa, \AA, \o, \O,
+\l, \L, \ss, and \fn{purify} transforms them (if they are in a special
+character,
+in \verb+i+, \verb+j+,
+ \verb+oe+,
+\verb+OE+, \verb+ae+, \verb+AE+, \verb+aa+, \verb+AA+, \verb+o+,
+ \verb+O+,
+\verb+l+, \verb+L+, \verb+ss+, respectively.
+
+
+\item the second transformation applied to a title is to be turned to
+ lower case (except the first character).
+ The function named
+ \fn{change.case} does this job. But it only applies to letters that
+ are a brace depth~$0$, except within a special character. In a
+ special character, brace depth is always $0$, and letters are
+ switched to lower case, except \LaTeX commands, that
+ are left unmodified.
+\end{itemize}
+Both transformations might be applied to the \chp{title} field by
+standard styles, and you must ensure that your title will be treated correctly
+in all cases.
+
+Let's try to apply it now,
+for instance to \emph{the \LaTeX Companion}.
+Several solutions might be tried:
+\begin{itemize}
+\item \verb+ title = "The \LaTeX Companion"+: This won't work, since
+ turning it to lower case will produce \verb+The \latex companion+,
+ and
+ \LaTeX won't accept this...
+\item \verb+ title = "The {\LaTeX} {C}ompanion"+ : This ensures that
+ switching to lower case will be correct. However, applying
+ \fn{purify} gives \verb+The Companion+. Thus sorting could be
+ wrong;
+\item \verb+ title = "The {\csname LaTeX\endcsname} {C}ompanion"+:
+ This won't work since \texttt{LaTeX} will be turned to \texttt{latex};
+\item \verb+ title = "The { \LaTeX} {C}ompanion"+ : In this case,
+ \verb+{ \LaTeX}+ is \emph{not} a special character, but a set of
+ letters at depth~$1$. It won't be modified by
+ \fn{change.case}. However, \fn{purify} will leave both spaces, and
+ produce \verb+The LaTeX Companion+, which could result in wrong
+ sorting;
+\item \verb+ title = "The{ \LaTeX} {C}ompanion"+: This solution also
+ works, but is not as elegant as the next one;
+\item \verb+ title = "The {{\LaTeX}} {C}ompanion"+ : This is the
+ solution I used. It solves the problems mentioned above.
+\end{itemize}
+
+For encoding an accent in a title, say \emph{\'E} (in upper case) as
+in the French word \emph{\'Ecole}, we'll write
+\verb+{\'{E}}cole+, \verb+{\'E}cole+ or \verb+{{\'E}}cole+,
+depending on whether we want it to be turned to lower case (the first
+two solutions) or not (the last one). \fn{purify} will give the same
+result in the three cases.
+However, it should be noticed that the third one is not a special
+character. If you ask \bt to extract the first character of each
+string using \fn{text.prefix}, you'll get \verb+{\'{E}}+ in the first case,
+\verb+{\'E}+ in the second case and
+\verb+{{\}}+ in the third case.
+
+
+That's all for subtleties of titles. Let's have a look at author
+names, which is even more tricky.
+
+
+\mysection{The \nichp{author} field}\label{author}
+
+
+We still begin with the entry for the \emph{\LaTeX Companion}:
+\begin{verbatim}
+ author = "Goossens, Michel and Mittelbach, Franck and Samarin, Alexander"
+\end{verbatim}
+The first point to notice is that two authors are separated with the
+keyword \texttt{and}\index{bibtex}{and}. The format of the names is
+the second important point: The last name first, then the first name,
+with a separating comma. In fact, \bt understands other formats.
+
+Before going further, we remark an important point: \bt will have to
+\emph{guess} which part is the first name and which part is the last
+name. It also has to distinguish a possible ``von'' part (as in John
+von Neumann) and a possible ``Jr'' part.
+
+The following explanation is somewhat technical. The first name will
+be called \verb+First+, the last name is denoted by \verb+Last+, the
+``von'' with \verb+von+ and the ``Jr'' part, \verb+Jr+.
+
+
+So, \bt must be able to distinguish between the different parts of the
+\chp{author} field. To that aim, \bt recognizes three
+possible formats:
+\begin{itemize}
+\item \verb+First von Last+;
+\item \verb+von Last, First+;
+\item \verb+von Last, Jr, First+.
+\end{itemize}
+
+The format to be considered is obtained by counting the number of
+commas in the name.
+ Here are the characteristics of these formats:
+
+\begin{itemize}
+\item \verb+First von Last+: Suppose you entered
+\verb+Jean de La Fontaine+. There is no comma, hence the format is
+\verb+First von Last+. The \verb+Last+ name cannot be empty, unless
+the whole field is. It should then contain at least \verb+Fontaine+.
+\bt then looks at the first character\footnote{In the sequel, the
+ first character means ``the first non-brace character that at brace depth
+ $0$, if
+ any, characters of a special character being
+ at depth $0$, even if there are $15$ braces around.'' If there is
+ no
+ character at depth $0$, then the item will go with its neighbour,
+ first and foremost with the \texttt{First}, then with the \texttt{Last}. It
+ will be in the \texttt{von} if, and only if, it is surrounded with
+ two \texttt{von} items. Moreover, two words in the same group
+ (in \LaTeX sense) will go to the same place. Last, for a
+ \LaTeX command outside a special character, the backslash is removed
+ and \bt considers the remaining word. If you did not understand,
+ please take a while for reading this note anew, since it will be
+ used
+ in the sequel.} of each remaining word. If some
+of them are lower cases alphabetic letters,
+anything between the first and the last ones
+(beginning with lower cases) is considered as being in the
+\verb+von+. Anything before the
+\verb+von+ is in the \verb+First+, anything after is in the
+\verb+Last+. If no first letter is in lower case, then everything
+(except the part already put in the \verb+Last+) is put in the
+\verb+First+.
+
+\verb+Jean de La Fontaine+ will then give \verb+La Fontaine+ as the
+\verb+Last+, \verb+Jean+ for the \verb+First+ and \verb+de+ for the
+\verb+von+.
+
+Here is what it gives for several other combinations. This is for you
+to check if you understood:
+\begin{center}
+\begin{longtable}{|>{\vrule height 4mm depth 2mm width 0pt}p{.3\textwidth}|p{.15\textwidth}|p{.15\textwidth}|p{.18\textwidth}|}
+\hline
+Name & \verb+First+ & \verb+von+ & \verb+Last+ \endfirsthead
+\hline
+Name & \verb+First+ & \verb+von+ & \verb+Last+ \endhead
+\hline
+\verb+jean de la fontaine+ & \verb++ & \verb+jean de la+ & \verb+fontaine+ \\
+\hline
+\verb+Jean de la fontaine+ & \verb+Jean+ & \verb+de la+ & \verb+fontaine+ \\
+\hline
+\verb+Jean {de} la fontaine+ & \verb+Jean de+ & \verb+la+ & \verb+fontaine+ \\
+\hline
+\verb+jean {de} {la} fontaine+ & \verb++ & \verb+jean+ & \verb+de la fontaine+ \\
+\hline
+\verb+Jean {de} {la} fontaine+ & \verb+Jean de la+ & \verb++ & \verb+fontaine+ \\
+\hline
+\verb+Jean De La Fontaine+ & \verb+Jean De La+ & \verb++ & \verb+Fontaine+ \\
+\hline
+\verb+jean De la Fontaine+ & \verb++ & \verb+jean De la+ & \verb+Fontaine+ \\
+\hline
+\verb+Jean de La Fontaine+ & \verb+Jean+ & \verb+de+ & \verb+La Fontaine+ \\
+\hline
+\end{longtable}
+\end{center}
+The last line is the only one (in this table) that is correct.
+Of course, some of you will have a counter example where the
+\verb+von+ has to begin with an upper case letter. We'll see this at section~\ref{trucsbib}.
+
+\item \verb+von Last, First+: The idea is similar, but identifying
+ the \verb+First+ is easier: It's everything after the comma. Before
+ the comma, the last word is put in the \verb+Last+ (even if it
+ starts with a lower case). If any other word begins with a lower
+ case, anything from the first word to the last one starting with a
+ lower case is in the \verb+von+, and what remains is in the
+ \verb+Last+.
+Once again, an example should make everything clear:
+
+\begin{center}
+\begin{longtable}{|>{\vrule height 4mm depth 2mm width 0pt}p{.3\textwidth}|p{.15\textwidth}|p{.15\textwidth}|p{.18\textwidth}|}
+\hline
+Name & \verb+First+ & \verb+von+ & \verb+Last+ \endfirsthead
+\hline
+Name & \verb+First+ & \verb+von+ & \verb+Last+ \endhead
+\hline
+\verb+jean de la fontaine,+\footnotemark & \verb++ & \verb+jean de la+ & \verb+fontaine+ \\
+\noalign{\footnotetext{This case raises an error message from \bt, complaining
+ that a name ends with a comma.
+It is a common error to separate names with commas instead of ``\texttt{and}''.}}%
+\hline
+\verb+de la fontaine, Jean + & \verb+Jean+ & \verb+de la+ & \verb+fontaine+ \\
+\hline
+\verb+De La Fontaine, Jean+ & \verb+Jean+ & \verb++ & \verb+De La Fontaine+ \\
+\hline
+\verb+De la Fontaine, Jean+ & \verb+Jean+ & \verb+De la+ & \verb+Fontaine+ \\
+\hline
+\verb+de La Fontaine, Jean+ & \verb+Jean+ & \verb+de+ & \verb+La Fontaine+ \\
+\hline
+\end{longtable}
+\end{center}
+%\medskip
+
+\item \verb+von Last, Jr, First+: Well... It's still the same, except
+ that anything between the commas is put in the \verb+Jr+.
+\end{itemize}
+
+Names are separated by spaces above, but it may occur that two
+first names are separated by a hyphen, as in ``Jean-Fran\c cois''
+for instance. \bt splits that string, and if both parts are in the
+\verb+First+, the abbreviated surnames is ``J.-F.'' as (generally)
+wanted. A tilde is also seen as a string separator. This all boils
+down to the fact that, if you enter \verb+Jean-baptiste Poquelin+,
+the string \verb+baptiste+ will be in the \verb+von+ part of the
+name, since it erroneously begins with a lower case letter.
+\medskip
+
+I think it's a good place for coming back to abbreviations: You probably agree
+that names are something not that easy to enter, and are
+error-prone. I personally advise defining an abbreviation for each
+author. You'll then concatenate them with \verb+``and''+ using
+\verb+#+\index{bibtex}{\#@\texttt{\#}(concatenation)}\index{bibtex}{concatenation@concatenation (\texttt{\#})} (actually, even \verb+``and''+ will be defined as an abbreviation).
+
+For instance, I always include a \ext{bib} file containing the
+following lines:
+\begin{verbatimtab}
+@string{and = "and"}
+...
+@string{goossens = "Goossens, Michel"}
+@string{mittelbach = "Mittelbach, Franck"}
+@string{samarin = "Samarin, Alexander"}
+\end{verbatimtab}
+another one containing:
+\begin{verbatimtab}
+@string{AW = "Addison-Wesley"}
+\end{verbatimtab}
+and my main bibliographic file contains\footnote{This is not quite
+ true, since \texttt{December} still depends on the language, and I
+ prefer using \texttt{12} and letting the style file translate that
+ into the corresponding month in the correct language.}:
+\begin{verbatimtab}
+@book{companion,
+ author = goossens # and # mittelbach # and # samarin,
+ title = "The {{\LaTeX}} {C}ompanion",
+ booktitle = "The {{\LaTeX}} {C}ompanion",
+ year = 1993,
+ publisher = AW,
+ month = "December",
+ ISBN = "0-201-54199-8",
+ library = "Yes",
+}
+\end{verbatimtab}
+This makes adding an entry much easier when you're used to such an
+encoding. Moreover, you can easily recover self-contained entries by using
+\texttt{bibexport.sh}~tool (see section~\ref{bibexport}).
+
+
+
+\mysection{Cross-references (\protect\nichp{crossref})}\label{crossref}
+As mentioned earlier (can't remember where... Oh, yes, on
+page~\pageref{cetaitla}), \bt allows for cross-referencing. This is
+very useful, for instance, when citing a part of a book, or an article
+in conference proceedings. For instance, for citing chapter~$13$ of
+the \LaTeX~Companion:
+\begin{verbatimtab}
+@incollection{companion-bib,
+ crossref = "companion",
+ title = "Bibliography Generation",
+ chapter = 13,
+ pages = "371-420",
+}
+\end{verbatimtab}
+This shows why having defined the \chp{booktitle} field
+of the \verb+companion+~entry is useful: It is not used in the \ent{book} entry,
+but
+it is inherited in the above \ent{incollection} entry. We could of
+course have added it by hand, but we should have added it in each
+chapter we cite.
+
+The other possible interesting feature is that, when cross-referencing
+several times an entry that is not cited by itself, \bt can
+``factor'' it, \emph{i.e.} add it in the list of references and
+explicitly \cmd{cite} it in each entry. On the other hand, if the cross
+reference appears only once, it inherits from the fields of the
+reference, which is not included in the bibliography.
+Here is an example of both behaviours:
+
+\medskip
+\begin{myex}
+\begin{thebibliography}{1}
+
+\bibitem{bib}
+Michel Goossens, Franck Mittelbach, and Alexander Samarin.
+\newblock Bibliography generation.
+\newblock In {\em The {{\LaTeX}} {C}ompanion\/} \cite{companion4}, chapter~13,
+ pages 371--420.
+
+\bibitem{math}
+Michel Goossens, Franck Mittelbach, and Alexander Samarin.
+\newblock Higher mathematics.
+\newblock In {\em The {{\LaTeX}} {C}ompanion\/} \cite{companion4}, chapter~8,
+ pages 215--258.
+
+\bibitem{ind}
+Michel Goossens, Franck Mittelbach, and Alexander Samarin.
+\newblock Index generation.
+\newblock In {\em The {{\LaTeX}} {C}ompanion\/} \cite{companion4}, chapter~12,
+ pages 345--370.
+
+\bibitem{companion4}
+Michel Goossens, Franck Mittelbach, and Alexander Samarin.
+\newblock {\em The {{\LaTeX}} {C}ompanion}.
+\newblock Addison-Wesley, December 1993.
+
+\end{thebibliography}
+\end{myex}
+
+\medskip \noindent or\medskip
+
+\begin{myex}
+\begin{thebibliography}{1}
+
+\bibitem{bib2}
+Michel Goossens, Franck Mittelbach, and Alexander Samarin.
+\newblock Bibliography generation.
+\newblock In {\em The {{\LaTeX}} {C}ompanion}, chapter~13, pages 371--420.
+ Addison-Wesley, December 1993.
+
+\bibitem{math2}
+Michel Goossens, Franck Mittelbach, and Alexander Samarin.
+\newblock Higher mathematics.
+\newblock In {\em The {{\LaTeX}} {C}ompanion}, chapter~8, pages 215--258.
+ Addison-Wesley, December 1993.
+
+\bibitem{ind2}
+Michel Goossens, Franck Mittelbach, and Alexander Samarin.
+\newblock Index generation.
+\newblock In {\em The {{\LaTeX}} {C}ompanion}, chapter~12, pages 345--370.
+ Addison-Wesley, December 1993.
+
+\end{thebibliography}
+\end{myex}
+
+In order to have one presentation or the other, we can tell \bt the
+number of cross-references needed for an entry to be explicitly
+\cmd{cite}{}'d. We use the \verb+-min-crossrefs+ command line argument
+of \bt for that.
+For the first example above, I used
+\verb+bibtex biblio+,
+while the second example was obtained with
+\verb+bibtex -min-crossrefs=5 biblio+.
+
+
+One other important remark is that cross-referenced entries must be
+defined \emph{after} entries containing the corresponding
+\chp{crossref} field. And you can't embed
+cross-references, that is, you cannot \chp{crossref} an entry that
+already contains a \chp{crossref}.
+
+
+Last, the \chp{crossref} field has a particular behaviour: it always
+exists, whatever the bibliography style. If a \chp{crossref}{}'ed entry
+is included (either by a \cmd{cite} command or by \bt if there are
+sufficiently many \chp{crossref}{}s), then the entries cross-referencing
+it have their original \chp{crossref} field. Otherwise, that field is
+empty.
+
+
+
+\mysection{Quick tricks}\label{trucsbib}
+
+\mysubsection{How to get \emph{Christopher} abbreviated as \emph{Ch.}?}
+
+First names abbreviation is done when extracting names from the \chp{author}
+field. If the function is asked to abbreviate the first name (or any other part
+of it), it will return the first character of each ``word'' in that part.
+Thus \emph{Christopher} gets abbreviated into \emph{C.} Special characters
+ provide a solution against this problem: If you enter
+ \verb+{\relax Ch}ristopher+, the abbreviated version would be
+ \verb+{\relax Ch}.+, which gives \emph{Ch.}, while the long version is
+ \verb+{\relax Ch}ristopher+, \emph{i.e.} \emph{{Ch}ristopher}.
+
+\mysubsection{How to get caps in \texttt{von}?}
+
+Note: This part is somewhat technical. You should probably read and understand
+how \bt extracts names, which is explained at pages~\pageref{noms-start}
+and~\pageref{noms-end}.
+
+It may occur that the \verb+von+ part of a name begins with a capital letter.
+For some reason, the standard example is \emph{Maria De La Cruz}.
+
+The basic solution is to write
+\verb+"{\uppercase{d}e La} Cruz, Maria"+. When analyzing this name, \bt will
+place \verb+Cruz+ in the
+\verb+Last+ part, then \verb+Maria+ as the \verb+First+ name. Then
+\verb+{\uppercase{d}e La}+ is a special character,
+whose first letter is \verb+d+, and is thus placed in the \verb+von+ part.
+
+In that case, however, if you use an ``alphanumeric'' style such as
+\bst{alpha}, \bt will use the first character of the
+\verb+von+ part in the label\footnote{It could be argued \texttt{von} parts
+should not be used when computing the label, but classical style file do use
+it.}. But the first character here is
+\verb+{\uppercase{d}e La}+, and the label would be
+\verb+{\uppercase{d}e La}C+, and you'll get \texttt{[{\uppercase{d}e La}C]}.
+You'd probably prefer \texttt{[DLC]} or \texttt{[Cru]}. The second solution
+would then be
+\begin{verbatimtab}
+ author = "{\uppercase{d}}e {\uppercase{l}}a Cruz, Maria"
+\end{verbatimtab}
+The label would be \verb+{\uppercase{d}}{\uppercase{l}}C+, which is correct.
+Another (easier) proposal would be
+\begin{verbatimtab}
+ author = "{D}e {L}a Cruz, Maria"
+\end{verbatimtab}
+This also solves the problem, because \bt only considers characters at level~0 when
+determining which part a word belongs to, but takes all letters into account
+when extracting the first letter.
+
+
+\mysubsection{How to get lowercase letters in the \texttt{Last}?}
+
+This is precisely the reverse problem, but the solution will be different.
+Assume you cite a paper by the famous Spanish scientist
+\emph{Juan de la Cierva y Codorn\'\i u}. The basic ideas are
+\begin{verbatimtab}
+ author = "de la Cierva {\lowercase{Y}} Codorn{\'\i}u, Juan"
+\end{verbatimtab}
+or
+\begin{verbatimtab}
+ author = "de la Cierva {y} Codorn{\'\i}u, Juan"
+\end{verbatimtab}
+However, these solutions yields labels such as \verb+CYC+ or \verb+CyC+, where
+we would prefer \verb+CC+.
+
+Several solutions are possible:
+\begin{verbatimtab}
+ author = "de la Cierva{ }y Cordon{\'\i}u, Juan"
+\end{verbatimtab}
+or
+\begin{verbatimtab}
+ author = "de la {Cierva y} Cordon{\'\i}u, Juan"
+\end{verbatimtab}
+Both solutions work: In the first case, \bt won't see the space, and
+considers that the \verb+y+ belongs to the previous word. In the second case,
+\verb+Cierva y+ is at brace-level~$1$, and thus goes into the \verb+Last+ part,
+which has priority over the \verb+von+ part.
+
+\mysubsection{How to remove space between \texttt{von} and \texttt{Last}?}
+
+Here the example will be \emph{Jean d'Ormesson}.
+The best way to encode this appears to be
+\begin{verbatimtab}
+ author = "d'\relax Ormesson, Jean"
+\end{verbatimtab}
+Indeed, the \nicmd{relax} commands will gobble spaces until the next
+non-space character.
+
+\mysubsection{How to get \emph{et al.} in the author list?}
+
+Some special bibliography styles will automatically replace long lists of
+authors with the name of the first author, followed by \emph{et al.}
+However, standard \bt styles won't. You can however get the same result by
+using the special name \verb+others+. For instance, if you enter
+\begin{verbatimtab}
+ author = "Dupont, Jean and others"
+\end{verbatimtab}
+you get "Jean Dupont \emph{et al.}" in the resulting bibliography.
+
+\mysubsection{The \protect\nichp{key} field}
+
+It may happen that no author is given for a document. In that case,
+bibliography styles such as \bst{alpha}, when computing the ``label'' of such
+an entry, will use the \chp{key} field (the first three letters for
+\bst{alpha}, but the entire field for \bst{apalike}, for instance).
+When no \texttt{key} is given, the first three letters of the internal
+citation key are used.
+
+\bigskip
+
+Is it ok with everyone? Yes ?!
+Right, we can go to the next, most exciting part of
+this doc: How to create or modify a bibliography style...
+
+
diff --git a/info/bibtex/tamethebeast/ttb_en.sec4.tex b/info/bibtex/tamethebeast/ttb_en.sec4.tex
new file mode 100644
index 0000000000..c6d81e4d57
--- /dev/null
+++ b/info/bibtex/tamethebeast/ttb_en.sec4.tex
@@ -0,0 +1,841 @@
+%% ttb_en.sec4.tex
+%% Copyright 2003-2005 Nicolas Markey
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+% The Current Maintainer of this work is Nicolas Markey
+%
+% This work consists of the files
+% ttb_en.tex
+% ttb_en.sec1.tex ttb_en.sec2.tex ttb_en.sec3.tex
+% ttb_en.sec4.tex ttb_en.sec5.tex ttb_style.sty
+% local.bib idxstyle.ist Makefile
+% and the derived ttb_en.dvi, ttb_en.ps and ttb_en.pdf
+
+
+\mypart{Bibliography style (\protect\niext{bst}) files}\label{bst}
+\parttoc
+\mtcskip
+
+\mysection{What's that?}
+
+The \ext{bst} file is responsible for building the reference list. It is
+crucial to distinguish between the role of \bt and the role of \LaTeX, and,
+inside the role of \bt,
+between what is done by the style file and what should be done in the
+\ext{bib} file.
+
+Roughly speaking, \bt reads three files, in the following order: The \ext{aux}
+file first, where it finds the name of the style file to be used, the name of
+the database(s), and the list of cited entries. The \ext{bst} file is read
+next, and the \ext{bib} file last.
+
+The \ext{bst} file tell \bt what to do with each cited entry. Namely:
+\begin{itemize}
+\item Which entry-type are defined;
+\item Which fields are mandatory, or just allowed, depending on the entry;
+\item And, mainly, how to handle all that stuff in order to produce a clean,
+ \LaTeX-able bibliography.
+\end{itemize}
+
+In view of this, \bt uses a language with two types of instructions: The
+so-called \emph{commands}\index{bibtex}{command}, first, and the
+\emph{internal functions}\index{bibtex}{internal function}. The following section
+deals with commands, and the other ones with internal functions.
+
+
+\mysection{The structure of a \protect\niext{bst} file}
+
+Here is, roughly speaking, the structure of a \ext{bst} file:
+
+\begin{myexv}
+\begin{verbatimtab}
+ENTRY
+ { ... }
+ { ... }
+ { ... }
+
+INTEGERS { ... }
+STRINGS { ... }
+
+MACRO { ... }{ ... }
+FUNCTION { ... }{ ... }
+
+READ
+EXECUTE { ... }
+ITERATE { ... }
+SORT
+ITERATE { ... }
+REVERSE { ... }
+EXECUTE { ... }
+\end{verbatimtab}
+\end{myexv}
+
+This example shows all the
+commands\index{bibtex}{command} understood by \bt.
+Here is their meaning:
+\begin{description}
+\item[\texttt{ENTRY}]\index{bibtex}{entry@\texttt{ENTRY}}: This command defines
+ the list of all possible fields. More precisely, it takes three arguments
+ (between braces), defining the list of possible ``external'' (string)
+ entries\footnote{Except the \chp{crossref} field, which is added
+ automatically by \bt.}, the list of ``internal'' integer variables, and a
+ list of ``internal'' string variables. Those variables are used for internal
+ computations of \bt, for instance when building the label with the
+ \bst{alpha} style.
+
+ Inside braces, variable names are
+ separated with spaces. I shall also mention that \bt does not distinguish
+ between upper- and lowercase in the names of functions and variables. I will
+ generally write command names in uppercase, and everything else in lowercase.
+
+ For instance, \bst{plain} starts with:
+\begin{myexv}
+\begin{verbatimtab}
+ENTRY
+ { address
+ author
+ booktitle
+ ...
+ volume
+ year
+ }
+ {}
+ { label }
+\end{verbatimtab}
+\end{myexv}
+\noindent This defines the classical fields, plus an internal
+string variable for the label. In fact, \bst{plain} uses numbers as labels,
+but remember that the length of the longest label has to be evaluated and
+given as argument to the \env{thebibliography} environment. This is the only
+reason why this \verb+label+ variable is defined.
+
+Note that \texttt{ENTRY} must appear once and only once in each style file.
+
+\item[\texttt{INTEGERS}]\index{bibtex}{integers@\texttt{INTEGERS}}: This command
+ declares integer variables\footnote{Those variables are not linked with any
+ entry, contrary to variables defined in the second argument of
+ \texttt{ENTRY}.}. The argument of this command is a space-separated
+ list of names.
+
+\item[\texttt{STRINGS}]\index{bibtex}{strings@\texttt{STRINGS}}: This commands
+ defines string variables in the same way as \texttt{INTEGERS} defines
+ integer variables. Contrary to integer variables, string variables are very
+ ``expensive'', and \bt limits the number of such variables to twenty. You
+ should really spare string variables if you plan to develop a large style
+ file.
+
+\item[\texttt{MACRO}]\index{bibtex}{macro@\texttt{MACRO}}: This command defines
+ abbreviations, in the same way as \ent{string} does\footnote{Note that
+ \ent{string} has nothing to do with
+ \texttt{STRINGS}\index{bibtex}{strings@\texttt{STRINGS}}...}.
+ If an abbreviation is defined in both the \ext{bst} and in the
+ \ext{bib} file, the definition in the \ext{bib} file is used. Also note that
+ you can define \ent{string} definitions involving \texttt{MACRO}
+ definitions. But this is probably not a good advice...
+
+ As regards the syntax, \texttt{MACRO} requires two arguments, the first one
+ being the name of the abbreviation to be defined, the second one being the
+ definition itself. It must be a string surrounded with double-quotes.
+ As an example, standard style files define the following:
+\begin{myexv}
+\begin{verbatimtab}
+MACRO {jan} {"January"}
+MACRO {feb} {"February"}
+MACRO {mar} {"March"}
+...
+\end{verbatimtab}
+\end{myexv}
+\item[\texttt{FUNCTION}]\index{bibtex}{function@\texttt{FUNCTION}}: The most useful
+ command: It allows to define macro functions that will be executed later on.
+ The first argument is the name of the function, the second one is its
+ definition. No example for the moment since there will be numerous ones in
+ the following.
+\item[\texttt{READ}]\index{bibtex}{read@\texttt{READ}}: As for \texttt{ENTRY},
+ this command must occur exactly once in any \ext{bst} style file. This is
+ not surprising since it tells \bt to read the \ext{bib} file: Reading it
+ several time would not change anything, and not reading it would seriously limit the
+ interest of the bibliography style. So, that command extracts from the
+ \ext{bib}-file the entries that are cited in the \ext{aux} file. Commands
+ \texttt{ENTRY} and \texttt{MACRO} should appear before \texttt{READ}, while
+ \texttt{ITERATE} and \texttt{REVERSE} may only appear after.
+\item[\texttt{EXECUTE}]\index{bibtex}{execute@\texttt{EXECUTE}}: This executes
+ the function whose name is given as argument. Note that the function must
+ have been defined earlier. The argument could also be a sequence of \bt
+ internal functions. For some more comments, see the
+ description of \texttt{ITERATE} below.
+\item[\texttt{ITERATE}]\index{bibtex}{iterate@\texttt{ITERATE}}:
+This commands also execute the function given in the argument, but contrary to
+\texttt{EXECUTE}, the function is executed as many times as the number of
+entries imported by \texttt{READ}. The function may use the fields of
+each entry. \texttt{EXECUTE} only executes its argument once, and it can not
+use any field of any entry.
+\item[\texttt{SORT}]\index{bibtex}{sort@\texttt{SORT}}:
+This command sorts the entries according to the variable \fn{sort.key}. That
+special variable is a string variable, implicitly declared for each entry,
+and that can be set by \texttt{ITERATE}{}ing a function. The entries are then
+sorted alphabetically according to that string. Of course, some styles won't
+sort the entries, in which case they will appear in the same order as in the
+document.
+\item[\texttt{REVERSE}]\index{bibtex}{reverse@\texttt{REVERSE}}:
+Like \texttt{ITERATE}, but from the last entry to the first one.
+\end{description}
+
+That's all for the list of commands. You probably can imagine how this will be
+set up. It remains to define the relevant \texttt{FUNCTION}{}s... This is the
+subject of the next two sections: We will first see the notation used by \bt,
+and then how to define functions.
+
+\mysection{Reverse Polish Notation}
+
+\bt uses the so-called Reverse Polish Notation. This is the main reason why
+people say that \bt language is hard to understand. It is a stack-based
+language: You put arguments on a stack (think of a stack of plates), and each
+function takes as many arguments as necessary on the top of the stack, and
+replace them with its result. Addition, for instance, will take the first two
+elements on the stack, add them, and put the result on the top of the stack.
+Another example\footnote{This part is crucial, that's why I insist on it.
+ But if you really understood how it works,
+ you can skip the explanation.}: \verb/ 1 3 5 + 2 3 * - / is executed as
+follows:
+\begin{itemize}
+\item \verb+1+ is put on the stack. Assuming the stack was initially empty, it
+ now contains \verb+1+;
+\item \verb+3+ is then put on the stack, which now contains
+\verb+1+ and \verb+3+ (\verb+3+ being on the top of the stack);
+\item \verb+5+ is added on the stack, which now contains \verb+1+, \verb+3+
+ and \verb+5+;
+\item \verb/+/ is a binary operator: it reads (and removes) the topmost two
+ elements on the
+ stack, which are \verb+5+ and \verb+3+, adds them, and put the resulting
+ value, \verb+8+, on the top of the stack. The stack is now \verb+1+,
+ \verb+8+, with \verb+8+ being on the top;
+\item \verb+2+ is put on the top of the stack;
+\item \verb+3+ is put on the stack. It now contains \verb+1+, \verb+8+,
+ \verb+2+ and \verb+3+.
+\item \verb+*+ is applied to the topmost two elements, which are removed.
+The resulting value\footnote{We assume that $\mathtt *$ is the
+ multiplication in that example, but it is not the case in \bt. In fact,
+ there is no multiplication operator in \bt, as we will see later, and
+ $\mathtt{*}$ is the concatenation on strings.}~$3\times 2=6$
+is put on top of the stack, which is now made of \verb+1+, \verb+8+ and
+\verb+6+.
+\item \verb+-+ is now applied to \verb+6+ and \verb+8+. As defined in
+ \bt\footnote{This operator is not commutative, and it could have been
+ defined in the other way.}, the
+ first value, \verb+6+, is subtracted to the second one, \verb+8+.
+ Finally, the stack contains \verb+1+ and \verb+2+.
+\end{itemize}
+
+If you did not understand this example, you'd better re-read it, or try to
+find more informations somewhere. This is really the core of \bt language, and
+you'll probably won't understand anything below if you did not understand
+this example.
+
+But for most of you, it should be ok, and we can tackle the most exciting part.
+
+
+\mysection{Internal functions}
+
+The table below describes all internal functions\index{bibtex}{internal function}.
+For each of them, I give
+\begin{itemize}
+\item on the left, the items it requires to be present on the top of the
+stack, the rightmost item being the uppermost on the stack;
+\item on the right, what the function puts on the top of the stack.
+\end{itemize}
+I will use the following conventions: \el I represents an integer, \el S is a
+string, \el F is a function, \el N is a variable name\footnote{A variable name
+ is a name that has been declared with \texttt{STRINGS} or \texttt{INTEGERS},
+ or with \texttt{ENTRY}.
+ Moreover, it must be preceded with a single quote, so that \bt understands
+ that you mean the name of the variable and not its value. For instance,
+ \texttt{'label}.}, \el C is the name of a field declared with
+\texttt{ENTRY}\footnote{It could also be \chp{crossref}, which is implicitly
+ declared by \bt.}, and \el E is an item that can be either a string or an integer..
+
+\begin{longtable}{|>{\vrule height9pt depth5pt width0pt}rlr|p{.58\textwidth}<{\vrule height5pt depth7pt width0pt}|}
+\hline\endhead
+\hline\endfirsthead
+\hline\endfoot
+\hline\endlastfoot
+\eli I1 \eli I2 & \texttt+ & (\eli I1$+$\el I2) &
+integer addition\footnotemark; \\
+\noalign{\footnotetext{Integers must be preceded with a
+\texttt\#. For instance, if you want to compute $2+5$, you'll enter
+\texttt{\#2 \#5 +}. Negative numbers are entered with \texttt{\#-3}, for
+instance. }}
+\eli I1 \eli I2 & \texttt- & (\eli I1$-$\eli I2) &
+integer subtraction; \\
+\eli I1 \eli I2 & \texttt> & \el I &
+returns $1$ if \eli I1 is strictly greater than \eli I2, and~$0$
+otherwise\footnotemark;\\
+\noalign{\footnotetext{There is no boolean type in \bt, because integers are
+ sufficient. Negative numbers (including $0$) mean \texttt{false}, and
+ strictly positive mean \texttt{true}.}}
+\eli I1 \eli I2 & \texttt< & \el I & returns $1$ if \eli I2 is strictly
+greater than \eli I1, and $0$ otherwise; \\
+\eli I1 \eli I2 & \texttt= & \el I & returns $1$ if both integers are equal,
+and $0$ otherwise;\\
+\eli S1 \eli S2 & \texttt = & \el I & returns $1$ if both strings are equal,
+and $0$ otherwise;\\
+\eli S1 \eli S2 & \texttt* & (\eli S1\eli S2) & concatenates both strings\footnotemark; \\
+\noalign{\footnotetext{As mentioned earlier, there is not multiplication in
+ \bt{}\footnotemark.}}%
+\noalign{\footnotetext{We will define one later, since it may be useful.}}
+\el E \el N & \texttt{:=} & & assignment operation. Provided that variable \el
+N has the same type as item \el E, it is set to that value; \\
+\el S & \fn{add.period} & \el S & adds a period at the end of string \el S,
+except if \el S already ends with a period, or an exclamation or question
+mark (after removing right braces); \\
+& \fn{call.type} && executes the function whose name is the type of the
+current entry. For instance, for an entry \nient{book}, it runs the function
+\texttt{book}. Of course, this command cannot be executed through an
+\texttt{EXECUTE} command, it can only be called with \texttt{ITERATE} or
+\texttt{REVERSE}.
+This explains how to add new entry-types: you simply have to define a function
+whose name is the entry-type. If an entry-type is used and the
+corresponding function has not been defined before the \texttt{READ} command,
+ \bt will complain; \\
+\el S \texttt{"t"} & \fn{change.case} & \el S &
+turns \el S to lower case, except for the first letter and for letters that
+appear at brace-depth strictly positive. Remember that special characters are
+at depth~0; \\
+\el S \texttt{"l"} & \fn{change.case} & \el S &
+turns \el S to lower case, except parts that are at strictly positive
+brace-depth; \\
+\el S \texttt{"u"} & \fn{change.case} & \el S &
+turns \el S to upper case, except... \\
+\el S & \fn{chr.to.int} & \el I &
+if \el S contains only one character (in the classical sense, \emph{i.e.} not
+considering special characters), returns its ASCII code; \\
+& \fn{cite} & \el S & puts on the stack the internal key of the current entry.
+Only meant to be used with \texttt{ITERATE} or \texttt{REVERSE}, of course;\\
+\el E & \fn{duplicate} & \el E \el E &
+adds a copy of the first item on the top of the stack;\\
+\el E & \fn{empty} & \el I & adds $1$ on the top of the stack if \el E is an
+empty string or an empty (but defined) field, and $0$ otherwise; \\
+\eli S1 \el I \eli S2 & \fn{format.name} & \el S &
+extract the \el I-th name of string \eli S1 (in which names are separated by
+\texttt{and}), and formats it according to specification given by string \eli
+S2. I can't explain all that here, see the next section for more details; \\
+& \fn{global.max} & \el I &
+put on the stack the maximal length allowed for strings. This is useful to
+ensure that a string obtained by concatenation is not too long, but the value
+is generally quite high (5000~characters); \\
+\el I \eli F1 \eli F2 & \fn{if} && execute \eli F1 if \el I is strictly
+positive, and \eli F2 otherwise; \\
+\el I & \fn{int.to.chr} & \el S & turns \el I to its corresponding character
+in the ASCII table. \el I must be between $0$ and $127$; \\
+\el I & \fn{int.to.str} & \el S & turns an integer to the equivalent
+string\footnotemark; \\
+\noalign{\footnotetext{Scientists would remark that I did not define the
+ equivalence relation I deal with. I think an example will be sufficient:
+ if \el I is 147, the equivalent string is \texttt{"147"}.}}
+\el C & \fn{missing} & \el I & returns $1$ if field \el C has been defined in
+the current entry, and $0$ otherwise;\\
+& \fn{newline} & & flushes the output buffer to the \ext{bbl} file, and
+ starts a new line; \\
+\el S & \fn{num.names} & \el I & returns the number of names in string \el S.
+This is done by counting the number of occurrences of \texttt{and}, surrounded
+with spaces and at level~$0$, and adding~$1$; \\
+\el E & \fn{pop} & & removes the topmost item on the stack; \\
+& \fn{preamble} & \el S & puts on the stack a string made of the concatenation
+of all \chp{preamble} declarations found in the \ext{bib} file; \\
+\el S & \fn{purify} & \el S &
+removes all non-alphanumeric characters of string~\el S. More precisely, this
+functions preserves letters and numbers and spaces, replaces each tabulation,
+hyphen and tilde with a space, and removes other standard characters, namely
+characters not listed above and appearing in the table given in appendix~C of
+the \TeX{}book. Special characters are an exception: \LaTeX commands are
+removed, as well as spaces, tabulations, hyphens and tildes. Only numbers and
+letters appearing outside \LaTeX command names are preserved.%
+\label{purify}
+
+Practically, this commands is used for cleaning strings before comparing them,
+when sorting entries. This is why it is important to keep only ``known''
+characters. I insists on the fact that ``\texttt{\bs'e}'' and ``\texttt{\'e}''
+are different, from this point of view, since the first one will be
+transformed into an \texttt e, while the second one will be unchanged, but,
+when sorting, will be put after the standard 26~letters. \\
+& \fn{quote} & \el S & adds the 1-character string
+ \verb+"+ on the stack;\\
+& \fn{skip} && does nothing; \\
+& \fn{sort.key} & \el S & this function is in fact a string variable,
+implicitly declared for each entry, and that is used by \texttt{SORT}. It
+must therefore be defined accordingly before sorting; \\
+... \el E \el E& \fn{stack} && clears the stack, and prints its contents on
+standard output (not in the output file); \\
+\el S \eli I1 \eli I2 & \fn{substring} & \el S & extracts from \el S the
+string of length \eli I2 starting at position~\eli I1. By convention, the
+first character is at position~$1$. Note that special characters and braces
+are not considered here, so that the substring of \verb+{\LaTeX}+ of length~3
+starting at position~2 is \verb+\LaT+; \\
+\eli E1 \eli E2 & \fn{swap} & \eli E2 \eli E1 &
+swaps both topmost items on the stack; \\
+\el S & \fn{text.length} & \el I & returns the number of characters of \el S,
+special characters being considered as only one character, and braces being
+omitted; \label{textlength} \\
+\el S \el I & \fn{text.prefix} & \el S &
+returns the first \el I characters of \el S, still considering special
+characters as only one character, and omitting braces. Braces are output,
+however. For instance, the prefix of length~3 of \verb+{{\LaTeX}}1234+ is
+\verb+{{\LaT}}+, while it is \verb+{\LaTeX}12+ for \verb+{\LaTeX}1234+; \\
+\el E & \fn{top} && echoes the first item of the stack on standard output (not
+in the output file) and removes it from the stack; \\
+& \fn{type} & \el S & adds on the stack the type of the current entry; \\
+\el S & \fn{warning} && writes \el S in a warning message on the standard
+output; \\
+\eli F1 \eli F2 & \fn{while} & &
+successively executes \eli F1 and \eli F2 while \eli F1 returns a strictly
+positive value. \eli F1 has to return an integer; \\
+\el S & \fn{width} &\el I& returns the length of string \el S, in hundredths
+of a point, when written using font \emph{cmr}10 of June 1987. You probably
+don't mind the details... This function is used for comparing widths of
+labels, the longest label being passed as the argument of the
+\env{thebibliography} environment; \\
+\el S & \fn{write} && write \el S in the output \ext{bbl} file.
+\end{longtable}
+
+We're done. This should be sufficient for defining plenty of functions for
+managing entries, sorting them, label them and typeset them. Before using
+them, I promised to explain how \fn{format.name} works.
+
+
+\mysection{The \protect\nifn{format.name} function}\label{noms-start}
+
+This function is quite complicated. The syntax is as follows:
+\begin{center}
+\begin{minipage}{.8\textwidth}
+\eli S1 \el I \eli S2 \ \fn{format.name}\ \el S
+\end{minipage}
+\end{center}
+
+The first argument \eli S1 is generally the content of fields \chp{author} or
+\chp{editor}. It is a list of names separated
+with \verb+and+. If names are in one of the three formats recognized by \bt
+(see section~\ref{author}), \bt will be able to detect the last name, first
+name, ``von'' and ``complement''. String \eli S2 defines the output format.
+Here is an example:
+\begin{center}
+\begin{minipage}{.8\textwidth}
+\begin{verbatimtab}
+"{ff }{vv }{ll}{, jj}"
+\end{verbatimtab}
+\end{minipage}
+\end{center}
+The format of such a specification is defined as follows:
+\begin{itemize}
+\item globally, it is a list of strings, each one being surrounded with
+ braces;
+\item \verb+ff+ represents the \verb+First+ part, \emph{i.e.} the first name;
+ \verb+ll+ is the \verb+Last+ part, \emph{i.e.} the last name, and \verb+vv+ and
+ \verb+jj+ are the \verb+von+ and \verb+jr+ part of the name;
+\item \fn{format.name} replaces, in each string of list \el S2, strings
+ \verb+ff+, \verb+ll+, \verb+vv+ and \verb+jj+, with their respective values.
+ If a value is empty, the complete string is removed. Otherwise, the other
+ characters in the string are output. In the example above, for instance, if
+ the \verb+jr+ part is empty, the comma won't be output, and if the
+ \verb+First+ part is not empty, it will be followed with a space.
+\end{itemize}
+
+This should be almost clear, now. I just mention, but you've probably already
+understood, that the integer \el I indicates that we are working on the \el
+I-th name of \eli S1.
+
+Last, there exists abbreviated forms for name formats. They are used to
+extract the first letter of first names, for instance. It suffices to replace
+\verb+{ff }+ with \verb+{f }+. For multiple names in one part
+(several first names, for instance), the first
+letter of each name is written, followed with a period. Different names must
+be separated with a space, a tabulation, a tilde or an hyphen. Tabulations
+are turned to spaces, tildes and hyphens are preserved. Note that there is no
+period at the end, and it must be specified by hand by writing \verb+{f. }+.
+For instance
+\begin{myexv}
+\begin{verbatimtab}
+"Goossens, Michel and Mittelbach, Franck and Samarin, Alexander"
+#2 "{f. }{vv }{ll}{, jj}" format.name$
+\end{verbatimtab}
+\end{myexv} %$
+\noindent returns \textit{F. Mittelbach}.
+Let's have a look at several other interesting examples:
+\begin{myexv}
+\begin{verbatimtab}
+"Charles Jean Gustave Nicolas de La Vall{\'e}e Poussin"
+#1 "{vv }{ll}{, f}" format.name$
+\end{verbatimtab}
+\end{myexv} %$
+\noindent
+yields \emph{de La Vall\'ee Poussin, C.J.G.N}
+without the final period, since we did not ask for it.
+\begin{myexv}
+\begin{verbatimtab}
+"Doppler, {\relax Ch}ristian Andreas"
+#1 "{f. }{vv }{ll}" format.name$
+\end{verbatimtab}
+\end{myexv} %$
+\noindent gives \emph{Ch.~A. Doppler}.
+Last,
+\begin{myexv}
+\begin{verbatimtab}
+"Jean-Baptiste Poquelin" #1 "{f. }{vv }{ll}" format.name$
+\end{verbatimtab}
+\end{myexv} %$
+\noindent outputs \emph{J.-B. Poquelin}.
+
+You probably remarked that one problem is still unsolved: For creating
+labels from author names, we will of course use \fn{format.name}, and we'd
+like to get \verb+LVP+, say, for a book by
+La Vall\'ee Poussin. The first idea, of course, is:
+\begin{myexv}
+\begin{verbatimtab}
+"Charles Jean Gustave Nicolas de La Vall{\'e}e Poussin"
+#1 "{l}" format.name$
+\end{verbatimtab}
+\end{myexv} %$
+\noindent
+which unfortunately gives \emph{L. V. P}, which would look awful as a label.
+But in fact, the period added between names is a default value, but can be
+explicitly given. In our case, we would like to replace the period with empty strings:
+\begin{myexv}
+\begin{verbatimtab}
+"Charles Jean Gustave Nicolas de La Vall{\'e}e Poussin"
+#1 "{l{}}" format.name$
+\end{verbatimtab}
+\end{myexv} %$
+\noindent
+which gives the expected \emph{LVP}.
+Braces following \verb+l+ mean that nothing should be put between names or
+letters. It is also possible to add some text only once, before or after
+the names. Spaces can be entered directly, while text and commands should be
+put between braces, so that \bt distinguished them with \verb+ff+,
+\verb+ll+,~... specifications. An example should make this clear:
+\begin{myexv}
+\begin{verbatimtab}
+"Charles Jean Gustave Nicolas de La Vall{\'e}e Poussin"
+#1 "{{\scshape\bgroup}ff{ }{\egroup}" format.name$
+\end{verbatimtab}
+\end{myexv} %$
+\noindent gives
+\verb+{\scshape\bgroup}Charles Jean Gustave Nicolas{\egroup}+, and thus
+<<~{\scshape\bgroup}Charles Jean Gustave Nicolas{\egroup}~>>.
+Note that we had to trick \bt and \LaTeX regarding the \cmd{bgroup}: braces,
+which are necessary in \bt name specifications, are copied verbatim in the
+output...
+\label{noms-end}
+
+\medskip
+Well... Once again, I could stop here, since you know everything, at least
+from the theoretical point of view. But this would not be a good
+idea. So the next sections are devoted to some examples and tricks that could
+be useful.
+
+\clearpage
+\mysection{Some practical tricks}
+
+In fact, the main trick to know is how to build a minimal file, in order to
+test \bt{}'s behavior, for instance for testing the encoding of a name. This
+basic style file will simply output its result on the standard output.
+Assume you want to see how \bt cuts the following name:
+%\begin{myexv}
+\begin{center}
+\begin{minipage}{.8\textwidth}
+\begin{verbatimtab}
+de la Cierva y Codorn{\'\i}u, Juan
+\end{verbatimtab}
+\end{minipage}
+\end{center}
+%\end{myexv} %$
+
+The minimal \ext{bst} file must contain
+\texttt{ENTRY}\index{bibtex}{entry@\texttt{ENTRY}} and
+\texttt{READ}\index{bibtex}{read@\texttt{READ}}
+commands, even if we won't use any entry. It must also compute the desired
+result. Our style file, \verb+min.bst+, will be:
+\begin{myexv}
+\begin{verbatimtab}
+ENTRY {}{}{}
+
+FUNCTION {test}
+{"de la Cierva y Codorn{\'\i}u, Juan"
+#1 "{ff - }{vv - }{ll}" format.name$ top$}
+
+READ
+
+EXECUTE{test}
+\end{verbatimtab}
+\end{myexv}
+\noindent This will split the name and write the different parts, separated
+with hyphens.
+
+The \ext{aux} file now: it will simply define the style file to be used:
+\begin{myexv}
+\begin{verbatimtab}
+\bibstyle{min}
+\end{verbatimtab}
+\end{myexv}
+
+This file, called \verb+min.aux+, contains neither the \cmd{bibdata}
+precising the \ext{bib} file to use, nor the \cmd{citation}{}s declaring the
+entries to be extracted. \bt will, of course, complain about that, but will
+continue the execution anyway.
+
+The result is as follows:
+\begin{myexv}
+\begin{verbatimtab}
+% bibtex min
+This is BibTeX, Version 0.99c (Web2C 7.4.5)
+The top-level auxiliary file: min.aux
+The style file: min.bst
+I found no \citation commands---while reading file min.aux
+I found no \bibdata command---while reading file min.aux
+Warning--I didn't find any fields--line 1 of file min.bst
+Juan - de~la Cierva~y - Codorn{\'\i}u
+(There were 2 error messages)
+\end{verbatimtab}
+\end{myexv}
+
+We get the error messages, but also the result, showing that our encoding is
+not correct (since the \verb+von+ part should only contain \verb+de la+).
+As regards unbreakable spaces: \bt automatically adds unbreakable spaces
+instead of the first and last spaces.
+
+This provides you with a way to test all your future \bt functions, which can
+be quite useful since \bt error messages are generally difficult to understand.
+You can also try to test if \fn{purify} behaves as I said previously.
+
+
+\mysection{Some small simple functions}
+
+\mysubsection{Boolean functions}
+
+As you know, \bt does not know about booleans. In particular, there is no
+negation, conjunction or disjunction, while it would be quite useful.
+Those operations are defined on figure~\ref{fig1}.
+
+\begin{figure}[!htbp]
+\begin{myexv}
+\begin{verbatimtab}
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+\end{verbatimtab}
+\end{myexv} %$
+\caption{Basic boolean functions}\label{fig1}
+\end{figure}
+Let me just explain the first two: For negation, you assume there is a boolean
+(\emph{i.e.} an integer) on the top of the stack. Function \fn{if} will test that
+boolean. If it evaluates to \verb+true+, the function returns \verb+#0+ (\emph{i.e.}
+\verb+false+), and otherwise it returns \verb+#1+ (\emph{i.e.} \verb+true+).
+This is precisely what we wanted.
+
+For the conjunction: we have two booleans on the stack. Function \fn{if} tests
+the first one. If it is \verb+true+, then we do nothing (thus leaving the
+second boolean on the top of the stack, it's value being the result of the
+conjunction). If it is \verb+false+, the conjunction is false: We remove the
+second argument and put \verb+#0+ on the top of the stack.
+
+\mysubsection{Multiplication}
+
+Figure~\ref{fig2} shows how to compute the multiplication of two integers.
+I won't enter into the details, comments should be sufficient. In the same
+way, you can try to define integer division, gcd, primality testing,~...
+But I'm not sure if it is useful. Multiplication can be, as you'll see below.
+
+\begin{figure}[!htbp]
+\begin{myexv}
+\begin{verbatimtab}
+INTEGERS { a b }
+
+FUNCTION {mult}
+{
+ 'a := %% we store the first value
+ 'b := %% we store the second value
+
+ b #0 < %% We remember the sign of b, and
+ {#-1 #0 b - 'b :=} %% then consider its absolute value.
+ {#1} %%
+ if$ %%
+
+ #0 %% Put 0 on the stack.
+ {b #0 >} %% While b is strictly positive,
+ { %% we add a to the value on the stack
+ a + %% and decrement b.
+ b #1 - 'b := %%
+ } %%
+ while$ %%
+
+ swap$ %% Last, we take the opposite
+ 'skip$ %% if b was negative.
+ {#0 swap$ -} %%
+ if$ %%
+}
+\end{verbatimtab}
+\end{myexv}
+\caption{The ``multiplication'' function}\label{fig2}
+\end{figure}
+
+
+\mysubsection{Converting a string to an integer}
+
+There is no direct way for converting a string (made of digits) to the
+corresponding integer. We will define a function achieving this, and returning
+an error message whenever the string is not a number.
+This is done recursively, as shown on figure~\ref{fig3}.
+
+\begin{figure}[!htbp]
+\begin{myexv}
+\begin{verbatimtab}
+FUNCTION {chr.to.value} %% The ASCII code of a character
+{
+ chr.to.int$ #48 - %% ASCII value of "0" -> 48
+ duplicate$ duplicate$ %% "1" -> 49
+ #0 < swap$ #9 > or %% ...
+ { %% "9" -> 57
+ #48 + int.to.chr$
+ " is not a number..." *
+ warning$ %% Return 0 if it is not a number
+ pop$ #0 %%
+ }
+ {}
+ if$
+}
+
+FUNCTION {str.to.int.aux} %% The auxiliary function
+{
+ {duplicate$ empty$ not} %% While the string is not empty
+ { %% consider its first char
+ swap$ #10 mult 'a := %% and ``add'' it at the end of
+ duplicate$ #1 #1 substring$ %% the result.
+ chr.to.value a +
+ swap$
+ #2 global.max$ substring$
+ }
+ while$
+ pop$
+}
+
+FUNCTION {str.to.int}
+{ %% Handling negative values
+ duplicate$ #1 #1 substring$ "-" =
+ {#1 swap$ #2 global.max$ substring$}
+ {#0 swap$}
+ if$
+ %% Initialization, and then
+ #0 swap$ str.to.int.aux %% call to the aux. funtion
+ swap$
+ {#0 swap$ -} %% And handle the sign.
+ {}
+ if$
+}
+\end{verbatimtab}
+\end{myexv} %$
+\caption{Converting a string to an integer}\label{fig3}
+\end{figure}
+
+There are several interesting points: first, it requires boolean functions,
+and multiplications. Those functions must thus be added before the above
+definitions. Moreover, function \verb+chr.to.value+ emphasizes an important
+rule of thumb: A function must always behave in the same way as regards the
+stack: Same type and numbers of inputs, same type and number of outputs. For
+instance, here, if the character is not an integer, we complain, but we return
+an integer, as if everything was ok. This rule is very important unless you
+want to spend some time in debugging.
+
+
+\mysubsection{Counting the number of characters in a string}
+
+As we saw on page~\pageref{textlength}, \fn{text.length} counts the number of
+characters in a string, but assuming \bt's meaning of ``character''.
+In fact, the only function that assumes the standard definition of a character
+is \fn{substring}. We will use it repeatedly for counting the number of
+characters of a string, by computing the successive prefixes until they equal
+the original string.
+
+\begin{figure}[!htbp]
+\begin{myexv}
+\begin{verbatimtab}
+INTEGERS{ l }
+FUNCTION{ string.length }
+{
+ #1 'l :=
+ {duplicate$ duplicate$ #1 l substring$ = not}
+ {l #1 + 'l :=}
+ while$
+ pop$ l
+}
+\end{verbatimtab}
+\end{myexv} %$
+\caption{A function for counting the \emph{real} number of characters}\label{fig4}
+\end{figure}
+
+As an exercise, the reader can try to implement another algorithm: removing
+one after the other the first characters of the string until the resulting
+string is empty.
+
+\mysubsection{A ``search-and-replace'' function}
+
+With the function above, we can now design an algorithm for searching and
+replacing the occurrences of a string in a given text. Once again, we cannot
+use \fn{text.length} and \fn{text.prefix} since they assume a special
+definition of a character. We only use the function \verb+string.length+ and
+\fn{substring}. The idea is to successively extract the first $n$ characters
+of the text, compare them with the pattern, and replace it or drop the first
+character, depending on the result of the comparison.
+
+\begin{figure}[!htbp]
+\begin{myexv}
+\begin{verbatimtab}
+STRINGS{replace find text}
+INTEGERS{find_length}
+FUNCTION{find.replace}
+{ 'replace :=
+ 'find :=
+ 'text :=
+ find string.length 'find_length :=
+ ""
+ { text empty$ not }
+ { text #1 find_length substring$ find =
+ {
+ replace *
+ text #1 find_length + global.max$ substring$ 'text :=
+ }
+ { text #1 #1 substring$ *
+ text #2 global.max$ substring$ 'text :=
+ }
+ if$
+ }
+ while$
+}
+\end{verbatimtab}
+\end{myexv} %$
+\caption{Search-and-replacing with \bt}\label{fig5}
+\end{figure}
+
+This function replaces all the occurrences of the pattern, but it can easily be
+adapted for replacing only the first occurrence. As an exercise, the reader can
+try to implement the same algorithm using only two string
+variables\footnote{Hint: try to leave \texttt{find} on the stack.} (it may be
+important to spare string variables since their number is very limited).
diff --git a/info/bibtex/tamethebeast/ttb_en.sec5.tex b/info/bibtex/tamethebeast/ttb_en.sec5.tex
new file mode 100644
index 0000000000..1f74d6a597
--- /dev/null
+++ b/info/bibtex/tamethebeast/ttb_en.sec5.tex
@@ -0,0 +1,179 @@
+%% ttb_en.sec5.tex
+%% Copyright 2003-2005 Nicolas Markey
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+% The Current Maintainer of this work is Nicolas Markey
+%
+% This work consists of the files
+% ttb_en.tex
+% ttb_en.sec1.tex ttb_en.sec2.tex ttb_en.sec3.tex
+% ttb_en.sec4.tex ttb_en.sec5.tex ttb_style.sty
+% local.bib idxstyle.ist Makefile
+% and the derived ttb_en.dvi, ttb_en.ps and ttb_en.pdf
+
+
+\mypart{Other use of \bt}\label{autres}
+\parttoc
+\mtcskip
+
+Here are some general extensions, showing how to use \bt for other purposes.
+I'm developing some of those extensions, and you can get the latest news on my web
+page:
+\begin{center}
+\url{http://www.lsv.ens-cachan.fr/~markey/bibla.php}.
+\end{center}
+Don't hesitate to give me your comments and ideas.
+
+\mysection{A publication list}
+
+This is not really a wide extension of the use of \bt, since it still deals
+with bibliography. In this example, we use classical \ext{bib} files in order
+to extract only publications by one single person, indicating the names of the
+possible other authors. This gives, for instance:
+\begin{myex}
+\def\refname{Books by Michel \textsc{Goossens}}
+\begin{thebibliography}{9}
+\bibitem{companion}
+{\em the \LaTeX{} Companion}.
+Addison-Wesley, 1993.
+Joint work with Frank Mittelbach and Alexander Samarin.
+
+\bibitem{graphics}
+{\em the \LaTeX{} Graphics Companion}.
+Addison-Wesley, 1999.
+Joint work with Sebastian Rahtz and Frank Mittelbach.
+
+\bibitem{webc}
+{\em the \LaTeX{} Web Companion}.
+Addison-Wesley, 1999.
+Joint work with Sebastian Rahtz.
+
+\end{thebibliography}
+\end{myex}
+
+There are three important points here:
+\begin{itemize}
+\item In this case, the entries to be cited are extracted by the style file;
+\item Typesetting of names is a little bit different.
+\end{itemize}
+
+The third difference consists in the way the style is configured: Instead of
+asking the user to modify the \ext{bst} file, which is rarely desirable, we
+add a new entry-type, named \nient{config}. A \nient{config} entry will define
+the name of the author whose publications are to be extracted, as well as some
+other configuration variables.
+
+\mysection{An addressbook}
+
+A list of addresses is a database, that has to be sorted, grouped and typeset.
+\bt should be able to do that...
+
+To that aim, we have to completely redefine the fields, entry-types, and
+functions. Fields include names, addresses, phone numbers, e-mail
+addresses,~... Here is an example of the output:
+
+\bigskip
+\makeatletter
+\font\lettre=cmssdc10 at 20pt
+\def\at{@}
+\ifx\sautepage\@undefined%
+\def\sautepage{\null\cleardoublepage}\fi
+\ifx\ecritlettre\@undefined%
+\def\ecritlettre#1#2#3#4#5{
+\vbox to 0pt{
+\vspace{#3mm}\hspace{#1mm}
+\smash{\colorbox[rgb]{.8,.8,.8}{\lettre \ \
+\vrule height #2mm depth #2mm width 0pt%
+\vrule height 8mm depth 0mm width 0pt%
+\hbox to #4mm{#5\hfil\null}%
+}}
+\vspace{-#3mm}\hspace{-#1mm}}}\fi
+\small
+\makeatother
+\ecritlettre{157}{5}{10}{20}{mn}
+\noindent
+\begin{center}
+\begin{tabular}{|p{.30\textwidth}|p{.4\textwidth}p{.18\textwidth}|}
+\hline
+{\vrule height 5mm width 0mm
+{\normalsize \textsc{Markey} Nicolas
+}} \vrule height 0mm depth 5mm width 0mm &
+\vrule height 5mm width 0mm
+LSV -- ENS Cachan\endgraf
+61, avenue du Pr\'esident Wilson\endgraf
+94235 \textsc{Cachan} C\'edex\vrule depth 3mm width 0mm
+& \vrule height 5mm width 0mm
+\Telefon \hfill01.47.40.75.32\endgraf
+\Faxmachine \hfill01.47.40.24.64\endgraf
+\\ &
+\multicolumn{2}{l|}{\texttt{markey\at lsv.ens-cachan.fr}} \vrule depth 2mm
+ width 0mm
+\\ \hline
+\end{tabular}
+\end{center}
+
+As in the previous example, I defined a \nient{config} entry-type in order to
+define how letters should be grouped together,~...
+
+\mysection{Exporting, extracting and cleaning bibliographic entries}
+\label{bibexport}
+
+It sometimes occurs that you have to extract a part of your bibliographic
+database, for instance for sending it together with a \LaTeX~document. Several
+tools already exist for doing this, but they generally can't handle crossrefs,
+macros, string abbreviations,~... If fact, \bt can do this on its own: You
+simply have to ask the bibliography style to format its output as a
+\ext{bib} database (The result will be named \ext{bbl}, since there is no way
+to tell \bt to write somewhere else). This technique has many advantages: It
+ensures that the fields are treated exactly as \bt would treat them with
+another style file; abbreviations are automatically expanded; It is easy to
+extract all the references by one author (remember that names could be encoded
+in many different manners inside a \ext{bib} database),~...
+The package \verb+bibexport+ implements these techniques:
+\url{http://www.ctan.org/tex-archive/biblio/bibtex/utils/bibexport/}
+
+\mysection{Using several languages in one bibliography}
+
+Classical bibliography style only handle one language, generally English.
+Handling several languages is quite tricky: First, when filling the \ext{bib}
+file, you must ensure not to write language-dependant data. Namely, for
+instance, months should be entered numerically. Moreover, \bt adds some words
+while processing the entries, such as the ``and'' before the last author name.
+
+There are several solution for handling several languages:
+\begin{itemize}
+\item Designing one style file per language. This is somewhat tiring to do,
+ but not really complicated, and many such translations already exist.
+
+ French styles are available on
+ \url{http://www.ctan.org/tex-archive/biblio/bibtex/contrib/bib-fr/}. In
+ those styles, I put every translated word at the beginning of the file, so
+ that it is easy to adapt the translation.
+
+\item Another solution is to replace language-dependant words with a \LaTeX
+ command. This is done in \textsf{babelbib}
+ (\url{http://www.ctan.org/tex-archive/biblio/bibtex/contrib/babelbib/}),
+ developed by Harald Harders.
+ Those style files require that you use the package \sty{babel}, and allows
+ you to define one language for each entry (and thus to use the right
+ hyphenation patterns).
+\end{itemize}
+
+
+\mysection{A glossary}
+
+A glossary is a dictionary defining technical terms that appear in a
+document. Glossaries are generally made using the index mechanisms of \LaTeX.
+But \bt can also do that (and even better than with \nicmd{index}, since it
+could extract definitions from a general dictionary). Moreover, it is
+possible to add reference to pages where the term is used by using the
+\sty{backref} package. See for instance the package \sty{gloss}, developed by
+Jose Luis Diaz de Arriba and Javier Bezos.
diff --git a/info/bibtex/tamethebeast/ttb_en.tex b/info/bibtex/tamethebeast/ttb_en.tex
new file mode 100644
index 0000000000..045f625337
--- /dev/null
+++ b/info/bibtex/tamethebeast/ttb_en.tex
@@ -0,0 +1,171 @@
+%% ttb_en.tex
+%% Copyright 2003-2005 Nicolas Markey
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+% The Current Maintainer of this work is Nicolas Markey
+%
+% This work consists of the files
+% ttb_en.tex
+% ttb_en.sec1.tex ttb_en.sec2.tex ttb_en.sec3.tex
+% ttb_en.sec4.tex ttb_en.sec5.tex ttb_style.sty
+% local.bib idxstyle.ist Makefile
+% and the derived ttb_en.dvi, ttb_en.ps and ttb_en.pdf
+
+\def\ttbversion{1.4}
+\def\ttbdate{11/10/2009}
+
+\documentclass[twoside,openright]{article}
+\usepackage[T1]{fontenc}
+\usepackage{ifpdf}
+\ifpdf
+ \usepackage{lmodern}
+\fi
+\usepackage[latin1]{inputenc}
+\usepackage[english]{babel}
+\usepackage{moreverb}
+\usepackage{url}
+\usepackage[margin=3cm,bottom=2.5cm,top=3cm]{geometry}
+\usepackage{multind}
+\usepackage{array}
+\usepackage{longtable}
+\usepackage{marvosym}
+\usepackage{color}
+\usepackage{ttb_style}
+\usepackage{xcolor}
+\usepackage[colorlinks,breaklinks]{hyperref}
+\makeatletter
+\def\@citecolor{green!50!black}
+\def\@linkcolor{red!80!black}
+\makeatother
+\usepackage{advdate}
+\makeatletter
+\let\save@ssect\@ssect
+\usepackage{minitoc}
+\expandafter\ifx\csname mtcskip\endcsname\relax
+ \def\mtcskip{}
+ \message{WARNING -- Please update your minitoc package.}
+\fi
+
+\makeindex{latex}
+\makeindex{bibtex}
+
+
+
+\begin{document}
+\SetDate[\ttbdate]
+\setcounter{parttocdepth}{3}
+\doparttoc
+
+%% Title page
+\begin{center}
+{\Huge\bfseries Tame the BeaST}
+\par\bigskip
+{\large The B to X of \bt}
+\par\bigskip
+Nicolas \textsc{Markey}
+\par
+\href{mailto:markey@lsv.ens-cachan.fr}{markey@lsv.ens-cachan.fr}
+\end{center}
+\widowpenalty10000
+\vfil\vfil
+\begin{center}
+\fbox{Version \ttbversion{} -- \today}
+\vfil
+\begin{minipage}{.8\textwidth}
+This \pageref{lastpage}-page tutorial presents and explains, as clearly and
+exhaustively as possible, what \bt can do.
+Indeed, \bt manuals, essentially two documents by its
+author~\cite{btxdoc,btxhak} and chapters in some \LaTeX
+books~\cite[...]{latex:dps,latex:lc,latex:lc2}, are often
+short and incomplete.
+
+The capital letters ``BST'' in the title represent the standard extension of
+\bt style files. ``B~to~X'' means that I tried to be as complete as
+possible. Don't hesitate to e-mail me your \TeX{}nical as well as
+(mis)spelling remarks.
+\end{minipage}
+\end{center}
+\vfil\vfil
+\begin{center}
+\begin{minipage}{.8\textwidth}
+\tableofcontents
+\end{minipage}
+\end{center}
+\vfil
+
+\clearpage
+
+\vbox{}
+\vfill
+
+\noindent
+\begin{center}
+\begin{minipage}{.7\linewidth}
+\centerline{\Large\textsf{Acknowledgements:}}
+
+\bigskip
+Several readers of this document have helped me improve it. I~would
+like to thank them:
+Bj\"orn~Bringert,
+Maarten~Grachten,
+Roger~Jeurissen,
+John~Kewley,
+W.~Trevor~King,
+Carsten~Lemmen,
+Tristan~Miller,
+Jochen~Vo\ss.
+\end{minipage}
+\end{center}
+\vfill
+\vfill
+
+\include{ttb_en.sec1}
+\include{ttb_en.sec2}
+\include{ttb_en.sec3}
+\include{ttb_en.sec4}
+\include{ttb_en.sec5}
+
+
+%\nocite{merlin}
+\def\addcontentsline#1#2#3{}
+\cleardoublepage
+\bibliographystyle{alpha}
+\bibliography{local}
+\printindex{latex}{\LaTeX}
+\clearpage
+\let\oldendindex\endtheindex
+\def\copyright{\vfill
+\null\hfill\begin{minipage}{.5\textwidth}
+\setlength\parindent{0pt}
+\obeyspaces
+Copyright \textcopyright{} 2003-\the\year{} Nicolas \textsc{Markey}
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in\par
+\hfil\url{http://www.latex-project.org/lppl.txt}\par
+and version 1.3 or later is part of all distributions of LaTeX
+version 2003/12/01 or later.
+
+This work has the LPPL status "maintained".\par
+The current maintainer of this work is Nicolas \textsc{Markey}.
+ \end{minipage}}
+
+
+\def\endtheindex{\label{lastpage}\copyright\oldendindex}
+\printindex{bibtex}{\bt}
+%\leavevmode\label{lastpage}
+
+
+
+\end{document}
+
diff --git a/info/bibtex/tamethebeast/ttb_style.sty b/info/bibtex/tamethebeast/ttb_style.sty
new file mode 100644
index 0000000000..62ed2af81c
--- /dev/null
+++ b/info/bibtex/tamethebeast/ttb_style.sty
@@ -0,0 +1,130 @@
+%% ttb_style.sty
+%% Copyright 2003-2005 Nicolas Markey
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+% The Current Maintainer of this work is Nicolas Markey
+%
+% This work consists of the files
+% ttb_en.tex
+% ttb_en.sec1.tex ttb_en.sec2.tex ttb_en.sec3.tex
+% ttb_en.sec4.tex ttb_en.sec5.tex ttb_style.sty
+% local.bib idxstyle.ist Makefile
+% and the derived ttb_en.dvi, ttb_en.ps and ttb_en.pdf
+
+
+\RequirePackage{xspace}
+\RequirePackage{boxedminipage}
+
+%\let\nospaceTeX\TeX
+%\def\TeX{\nospaceTeX\xspace}
+\def\bt{Bib\TeX\xspace}
+\let\nospaceLaTeX\LaTeX
+\def\LaTeX{\nospaceLaTeX\xspace}
+\def\gomo{\emph{grosso modo}\xspace}
+\def\ie{ie.\xspace}
+\def\cf{cf. }
+\catcode`\*=0
+*catcode`*\=11
+*def*bs{\}
+*catcode`*\=0
+\catcode`\*=12
+\def\at{@}
+\catcode`\$=11
+\def\dol{$}
+\catcode`\$=3 %$
+\def\cmd#1{\index{latex}{#1@\texttt{\protect\bs #1}}{\ttfamily \bs #1}\xspace}
+\def\cmdat#1{\index{latex}{#1@\texttt{\protect\bs\protect\at #1}}{\ttfamily \bs\at #1}\xspace}
+\def\env#1{\index{latex}{#1@\texttt{#1}}{\ttfamily #1}\xspace}
+\def\ext#1{{\ttfamily .#1}\xspace}
+
+\def\sty{\@ifnextchar[{\@sty}{\@sty[sty]}}
+\def\@sty[#1]#2{\index{latex}{#2@\textsf{#2.#1}}{\sffamily #2.#1}\xspace}
+
+\def\cls#1{\index{latex}{#1@\textsf{#1.cls}}{\sffamily #1.cls}\xspace}
+\def\bst#1{\index{bibtex}{#1@\textsf{#1.bst}}{\sffamily #1.bst}\xspace}
+\def\chp#1{\index{bibtex}{#1@\texttt{#1}}{\ttfamily #1}\xspace}
+\def\ent#1{\index{bibtex}{#1@\protect\at #1}{\bfseries \at #1}\xspace}
+\def\fn#1{\index{bibtex}{#1@\texttt{#1\protect\dol}}{\ttfamily #1\dol}\xspace}
+
+\def\el#1{$\cal #1$}
+\def\eli#1#2{$\mathcal{#1}_{#2}$}
+
+\def\nicmd#1{{\ttfamily \bs #1}\xspace}
+\def\nienv#1{{\ttfamily #1}\xspace}
+\def\niext#1{{\ttfamily .#1}\xspace}
+\def\nisty#1{{\sffamily #1.sty}\xspace}
+\def\nicls#1{{\sffamily #1.cls}\xspace}
+\def\nibst#1{{\sffamily #1.bst}\xspace}
+\def\nichp#1{{\ttfamily #1}\xspace}
+\def\nient#1{{\bfseries \at #1}\xspace}
+\def\nifn#1{{\ttfamily #1\dol}\xspace}
+
+\newenvironment{myex}{\bigskip\par
+ \noindent\begin{boxedminipage}{\textwidth}}{%
+ \end{boxedminipage}\bigskip\par}
+\newenvironment{myexv}{\bigskip\par
+ \noindent\begin{center}\begin{boxedminipage}{.8\textwidth}}{%
+ \end{boxedminipage}\end{center}
+ \bigskip\par}
+
+%\AtBeginDocument{%
+\setcounter{tocdepth}{0}%
+\def\thepart{\arabic{part}}%
+\def\mypart{\cleardoublepage\part}%
+\def\@part[#1]#2{ \ifnum\c@secnumdepth>\m@ne\relax
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \fi
+ {\parindent \z@ \raggedleft
+ \interlinepenalty \@M
+ \normalfont
+ \ifnum \c@secnumdepth >\m@ne\relax
+ \Large\sffamily\bfseries \partname\nobreakspace\thepart
+ \par\nobreak
+ \fi
+ \huge \sffamily \bfseries #2%
+ \markboth{}{}\par}%
+ \nobreak
+ \vskip 12ex%
+ \@afterheading}%
+\renewcommand*\l@part[2]{%
+ \ifnum \c@tocdepth >-2\relax
+ \addpenalty\@secpenalty
+ \addvspace{2.25em \@plus\p@}%
+ \setlength\@tempdima{3em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ {\leavevmode
+ \large \sffamily #1
+ \leaders\hbox{$\m@th
+ \mkern 2mu\hbox{\small.}\mkern 2mu$}\hfill
+ \hb@xt@\@pnumwidth{\hss #2}}\par
+ \nobreak
+ \if@compatibility
+ \global\@nobreaktrue
+ \everypar{\global\@nobreakfalse\everypar{}}%
+ \fi
+ \endgroup
+ \fi}
+\let\mysection\section
+\def\mysubsection{\subsection}
+\def\mysubsubsection{\subsubsection}
+\def\floatpagefraction{.8}
+
+\def\section{\let\@ssect\save@ssect\@startsection {section}{1}{\z@}%
+ {-3.5ex \@plus -1ex \@minus -.2ex}%
+ {2.3ex \@plus.2ex}%
+ {\normalfont\Large\bfseries}}
+%}
+