> <\body> Using the / extension language, it is possible to add new data formats and converters to in a modular way. Usually, the additional formats and converters are declared in your personal or a dedicated plug-in. Some examples may be found in the directory , like |$TEXMACS_PATH/progs/convert/html/init-html.scm>. A new format is declared using the command <\scm-code> (define-format \ \ (:name ) \ \ ) Here > is a symbol which stands for the format and > a string which can be used in menus. In fact, a data format usually comes in several variants: a format -file> for files, a format -document> for entire documents, a format -snippet> for snippets, like selections, and -object> for the preferred internal scheme representation for doing conversions ( the parsed variant of the format). Converters from -file> to -document> and are provided automatically. The user may specify additional options for the automatic recognition of formats by their file suffix and contents. The possible suffixes for a format, with the default one listed first, may be specified using <\scm-code> (:suffix ... ) A (heuristic) routine for recognizing whether a given document matches the format can be specified using either one of the following: <\scm-code> (:recognize ) (:must-recognize ) In the first case, suffix recognition takes precedence over document recognition and in the second case, the heuristic recognition is entirely determined by the document recognition predicate. A format can be removed from menus using the following: <\scm-code> (:hidden) New converters are declared using <\scm-code> (converter \ \ ) The actual converter is specified using either one of the following options: <\scm-code> (:function ) (:function-with-options ) (:shell from to ) In the first case, the > is a routine which takes an object of the > format and returns a routine of the > format. In the second case, the > takes an additional association list as its second argument with options for the converter. In the last case, a shell command is specified in order to convert between two file formats. The converter is activated only then, when > is indeed found in the path. Also, auxiliary files may be created and destroyed automatically. automatically computes the transitive closure of all converters using a shortest path algorithm. In other words, if you have a converter from to and a converter from to , then you will automatically have a converter from to . A \Pdistance between two formats via a given converter\Q may be specified using <\scm-code> (:penalty ) Further options for converters are: <\scm-code> (:require ) (:option ) The first option specifies a condition which must be satisfied for this converter to be used. This option should be specified as the first or second option and always after the option. The option specifies an option for the converter with its default value. This option automatically become a user preference and it will be passed to all converters with options. >