(texi2html.info)Specificities


Next: Indexop Prev: Incompatibilities Up: Top
Enter node , (file) or (file)node

3 How little texi2html texinfo differs from GNU texinfo
*******************************************************

For features documented in the texinfo manual, the texinfo
interpretation by `texi2html' shouldn't differ from the interpretation
of `makeinfo' or `texi2dvi'. However for constructs with unspecified
behaviour `texi2html' often doesn't lead to the same result than
`makeinfo' or `texi2dvi'. `makeinfo' and `texi2dvi' are also
inconsistent in most of these cases (or broken). You are urged not to
use these features unless absolutely necessary.  This information is
only here to help understand why `texi2html' differ from other texinfo
interpreters, it may be inacurate and the `texi2html' behaviour may
change in the future and was different in the past.

@-commands with text on the line
     In the texinfo manual it is specified that block @-commands should
     appear on a line without text and the closing `@end' should also
     be on a line by himself. With `texi2html' it is possible to add
     text before and after the command, so the following is right:

          something @example the example @end example after the example

     `makeinfo' and `texi2dvi' may also accept text before the command
     and text after the `@end' command, sometimes ignoring it after the
     `@end'.

     This is a feature you should especially not rely on.

special @-commands handling
     The special @-commands are commands like `@pagesizes', `@sp',
     `@evenheading', `@raisesections', `@defindex' and a lot more. In
     many cases `makeinfo' and `texi2dvi' don't parse those commands
     the same way too. `texi2html' may also show some differences in
     parsing of the arguments of these commands, in case there are
     wrong arguments, and also ignore differently things following
     those commands. How user defined macros, set and values are
     expanded in those commands may also be different.  Part of the
     specification of how these commands are handled is configureable
     (Note: Other and unknown commands), but not what happens during
     the beginning of the parsing for some of those commands.

features different between `makeinfo' and `texi2dvi'
     When `makeinfo' or `texi2dvi' use a feature which is reserved for
     one or the other translator, `texi2html' uses that feature. So for
     example `@definfoenclose' which is ignored by `texi2dvi' is taken
     into account and `@kbdinputstyle' which is ignored by `makeinfo'
     is taken into account.

user defined macros and values
     In this area `makeinfo' and `texi2dvi' also differ a lot.  The
     reference implementation is the `makeinfo' implementation as
     `texi2dvi' is easily broken when macros are not used simply.

        * `@rmacro' and `@macro' behave exactly the same. In fact this
          goes against a documented behaviour, however if a user don't
          want a recursive macro he can simply avoid reusing the macro
          in the definition. If somebody report that the feature is
          usefull we could try to implement it.

        * It is possible to escape the end of a macro definition with
               \@end macro
          with the `\' being removed after the first expansion.
          Otherwise it is not possible to produce a `\@end macro' in a
          macro.

        * `@unmacro' is interpreted during the macro argument expansion.
          Don't know what `makeinfo' exactly do.

        * Some `@value' may be expanded later than the others, those
          that are in special commands, like `@node'.

`@,' in `@node'
     Like `texi2dvi' but unlike `makeinfo' `@,' don't break `@node'
     arguments like a regular `,'.

Things before first node or preamble
     Things before the first node or before the preamble may not be
     exactly interpreted or discarded as `makeinfo' or `texi2dvi' do.

encodings
     `texi2html' knows more encodings, in fact all encodings `perl'
     knows about.

commands in `@ifset' and `@ifclear'
     `texi2html' doesn't need a proper nesting of internal `@ifset' or
     `@ifclear' if they are in ignored or raw regions (like `@html' or
     `@verbatim'). For example the following is accepted by `texi2html'
     and not by `makeinfo':

          @ifset notset
          @ignore
          @ifset
          @end ignore
          @end ifset

     In `@ifset' and `@ifclear' texi2html also accepts a lot more of
     invalid constructs. For example the following is accepted by
     `texi2html' but not by `makeinfo':

          @set flag
          @ifset flag
          @itemize
          @item my item
          @end ifset
          text
          @ifset flag
          @end itemize
          @end ifset


automatically generated by info2www version 1.2.2.9