<\body> bibliography styles> admits support both for and a native tool for managing bibliographies. styles are denoted by their usual names. styles are prefixed by . For example, the > style is the replacement for the style. Equivalents for the following styles have been implemented: , , , et . These styles can therefore be used without installation of . New bibliography styles can be defined by the user. Each style is associated to aunique file, which should be added to the directory . Style files are treated as regular Scheme programs. Since the creation of a style file from scratch is a complex task, we recommend you customize existing style files or modules. In the next sections, we will describe the creation of a new style on a simple example and give a detailed lists of available functions which facilitate the creation of new styles. Bibliographic style files are stored in directory . They have the name of the style followed with extension . For example, is the file name associated to the style , which is denoted by when it is used in a document. All style files must be declared as a module as follows: <\scm-fragment> (texmacs-module (bibtex example) \ \ (:use (bibtex bib-utils))) The module contains all usefull fonctions needed to write bibliographic styles. All style files must me declared as a bibliographic style as follows: The first argument to is the name of the current style. The second argument is the name of a fall-back style, in our case. If a function is not defined in current style, the function from the fall-back style is used instead. Hence, the following minimalistic style file behaves in an identical way as the style: <\scm-fragment> (texmacs-module (bibtex example) \ \ (:use (bibtex bib-utils))) \; (bib-define-style "example" "plain") Each formatting function defined in the default style can be overloaded in the current style. For example, the function is used to format the date in the style. It is redefinable in our example style as follows: <\scm-fragment> (tm-define (bib-format-date e) \ \ (:mode bib-example?) \ \ (bib-format-field e "year")) All exported functions must be prefixed with . Overloaded functions must be followed with directive , in which is the name of the current style. Our complete example file is as follows: <\scm-fragment> (texmacs-module (bibtex example) \ \ (:use (bibtex bib-utils))) \; (bib-define-style "example" "plain") \; (tm-define (bib-format-date e) \ \ (:mode bib-example?) \ \ (bib-format-field e "year")) It behaves in a similar way as the style, except that all dates are formatted according to our custom routine. functions for writing bibliography styles> <\explain> <|explain> This function declares a style called (string) with fall-back style (string). The style is selected by choosing when adding a bibliography to a document. Whenever aformatting function is not defined in the current style, its definition in the fall-back style is used as replacement. <\explain> <|explain> This function evaluates expression as if the current style were (string). <\explain> <|explain> This function creates a tree corresponding to the field (string) of entry without format. In some cases, the output is special: <\itemize-dot> If is or , we return a tree with label followed by a list of author names; each author name is a tree with label containing four elements: first name, particule (von), last name and suffix (jr); If is , then we return a list of integers: the empty list, or a singleton with a page number, or a pair corresponding to a pages interval. <\explain> <|explain> This function creates a tree corresponding to the field (string) of entry , with basic format. <\explain> <|explain> This function is similar to ; but field are formatted in lower case with an upper case letter at the beginning. <\explain> <|explain> This function returns boolean if the field (string) of entry is empty or absent; it returns in the other cases. <\explain> <|explain> This function creates a tree consisting of a block containing tree . <\explain> <|explain> This function creates a tree which is the concatenation of all the elements of list separated with tree . <\explain> <|explain> This function is equivalent to the evaluaton of . <\explain> <|explain> This function creates a tree corresponding to a sentence containing all the elements of list separated by commas. <\explain> <|explain> This function creates a tree corresponding to the abbreviation of the name contained in tree: it retrieves the list of first letters of each word, followed by ( tree) and separated by ( tree). <\explain> <|explain> This function creates a tree with a dot at the end of . <\explain> tree> <|explain> This function creates a tree without label . <\explain> <|explain> This function creates a tree corresponding to the italic version of . <\explain> <|explain> This function creates a tree, which is equal to with all letters in lower case, except for those within blocks. <\explain> tree> <|explain> This function returns a string containing the first characters of . <\explain> <|explain> This function creates a tree, which is equal to with all letters in upper case, except for those within blocks. <\explain> <|explain> This function creates a tree, which is equal to with its first letter in upper case, except inside blocks. <\explain> <|explain> This function returns boolean if value is empty; it returns in the other cases. <\explain> tree> <|explain> This function returns a string made of all letters of the tree . <\explain> tree> <|explain> This function returns a tree corresponding to the simplification of tree . <\explain> tree> <|explain> This function returns the length of tree . <\explain> <|explain> This function translates the string message from english into the current language. <\initial> <\collection>