Provided by: stx2any_1.56-2_all bug

NAME

       stx2any - converter from structured text to multiple formats

SYNOPSIS

       stx2any [ -T format ] [ stx and m4 options ] [ file  file ... ]

DESCRIPTION

       stx2any  converts  files  in  structured  text  (Stx)  format into other formats.  Formats
       currently implemented are HTML, man, raw text, PostScript, LaTeX, XHTML and DocBook XML.

       The source format, structured text, is a kind of plain text format  with  standard  markup
       for  representing  headings, lists, emphasis etc.  The markup is both quicker to write and
       easier to remember than  conventional  tag-based  markup  languages,  and  is  beautifully
       legible  also  in source form.  Stx markup is better explained in Stx quickie guide, which
       is available in the examples directory.

       Most of the conversion happens in m4, and you can define your own macros and  other  stuff
       for  giving  structure  to  your  documents.   stx2any  provides  a  LaTeX-like extensible
       environment system and a diversion system for rearranging input.  (Tårta på tårta, as they
       say in Swedish.)

       Because  stx2any  doesn't  perform  any  kind  of  quoting on the input, markup that isn't
       available can be written directly in the destination language  (losing  convertibility  to
       multiple  languages).   This  way,  if  you  are only interested in one output format (eg.
       LaTeX), you can use Stx as an abbreviation format for the most common constructs.

       Some formatting is not available as abbreviations, but by calling  m4  macros.   You  need
       macros  relatively  rarely:  for  example, floats (material that can “float” around in the
       document) are created by macros.

OPTIONS

       stx2any accepts all command line options of m4, passing them directly on.  Of  these,  the
       -D argument is important enough to mention here separately.

          -DNAME=VALUE
                 Define  macro  NAME  to  have  the  expansion  VALUE.   This  allows you to pass
                 information into the document from the command line.

          -T format
                 Sets the output format.  Default format is html.  format should be one of:

             html   produces basic HTML (hypertext markup language) output.

             man    produces man macro output.  This output is usable  as  a  man  page  directly
                    (although  see  WRITING  MAN PAGES below), or can be fed to troff / groff for
                    formatting to e.g.  postscript.

             latex  produces LaTeX document preparation language output.  You can  run  latex  on
                    the result to produce e.g. high quality pdf's.

             text   produces  raw  text  output  by  postprocessing  HTML  output  with w3m.  The
                    resulting output is very basic, like stripping away most Stx markup;  if  you
                    want more formatted output, consider piping man output to nroff -man.

             ps     produces  simple  postscript  output by postprocessing man output with groff.
                    If you want to do real publishing, consider the LaTeX format instead.

             xhtml  produces XHTML output by postprocessing HTML output with W3C  tidy.   By  the
                    way,  check  http://hixie.ch/advocacy/xhtml  for  discussion  about  HTML and
                    XHTML.

             docbook-xml
                    produces rudimentary DocBook XML output.  See BUGS below for more  discussion
                    about this.

          --link-abbrevs
                 Take  link  abbreviation  syntax  into use.  Note that because link abbreviation
                 processing occurs in two phases, it doesn't work totally when  the  input  comes
                 from  standard  input  (for  example,  if  you use stx2any as a middle part of a
                 pipeline).

          --quote
                 Request quoting of characters (other than underscores and dollar signs) that are
                 somehow  magical  in  the  requested  output  format.   This  will make it quite
                 difficult to put markup in the output format directly in your document, but will
                 greatly  increase  the  possibility that your document will be correct (ie. does
                 not have syntax errors) in the output format.

          --quote-me-harder
                 Request quoting of underscores and dollar signs.  This  might  make  some  LaTeX
                 documents  work  but  might  break  some documents where underscores are used in
                 macro names or dollar signs in macro definitions.

          --numbering { on | off }
                 Request numbering of section headings.  The default  varies  by  output  format:
                 section numbering is by default off for HTML, DocBook XML and man, on for LaTeX.

          --table-of-contents { on | off }
                 Request  producing  a  table  of  contents from the headings.  The default is to
                 produce a TOC when numbering is on.  Not implemented for DocBook XML.

          --make-title { on | off }
                 Request a “title page”.  The default is “on”.  This setting does  not  have  any
                 effect  in some formats.  In HTML, it produces a big heading at the beginning of
                 the document.  In LaTeX, it produces the canonical maketitle.

          --no-template
                 Do not produce a document template at all, only the formatted input  text.   You
                 probably  need  this  if  your  document  will be included as a part of a bigger
                 document.  If that bigger document is written totally in Stx, however,  it  will
                 be  cleaner to give all the source files directly as arguments to stx2any rather
                 than combine the results afterwards.

          --symmetric-crossrefs
                 In document formats that support linking (HTML, DocBook), produce reverse  links
                 from labels to referrers as well as links from referrers to labels.

          --latex-params params
                 Set  the document class parameters for LaTeX documents.  The default is affected
                 by system paper size;  for  example,  on  a  European  system  it  is  typically
                 a4paper,notitlepage.  (See “ENVIRONMENT” below.)

          --html-params params
                 Set the body tag parameters for HTML documents.  The default is no parameters.

          --picture-suffix suffix
                 Inline  images  will  refer to files with suffix suffix.  The default is png for
                 HTML and DocBook, eps for LaTeX and man.

          --no-emdash-separate
                 In the output, don't separate em dashes from adjacent text with spaces.  This is
                 in accordance to traditional English typography (if I understand correctly), but
                 is not standard in many other languages — including Finnish, my mother tongue.

          --more-secure
                 Disable some insecure features of m4 and check some command line arguments  that
                 are  passed  to  shell  for  problematic characters.  This might be desirable if
                 you've received the document from somewhere else and want to make sure it  won't
                 do  anything malicious when converted.  Currently this denies execution of shell
                 escapes.

                 Note that clearly no implementation of m4 has been  designed  with  security  in
                 mind.  As  a  consequence,  this option cannot prevent every potentially harmful
                 thing.  Things not prevented which  I'm  aware  of  are  including  contents  of
                 arbitrary  files  in  the  output and writing busy loops (so that the conversion
                 will use all processor time it can get, until terminated).

          --sed-preprocessor scriptname
                 Run the sed script scriptname for all input.  This  allows  you  to  add  custom
                 abbreviation  markups.   It  is almost the same as preprocessing input with sed,
                 then piping it into stx2any, but interacts better with --link-abbrevs  (see  its
                 explanation for details).

          --version, -V
                 Just show version information and exit.

          --help, -?
                 Just show a short help message and exit.

WRITING MAN PAGES

       Basically,  man  pages  are simply files in the man macro format.  However, there are some
       programs (first and foremost mandb) that require parts of man pages to be  in  a  specific
       format, and man pages should generally adhere to the standard sectioning and form (see man
       (1) and lexgrog (1) for details).

       When  writing  a  man  page,  the  title   (w_title)   of   the   page   should   be   the
       program/file/format/utility  name, and you should define the section (w_section).  To make
       the page suitable for mandb parsing, you should start the page with one or more  calls  to
       w_man_desc.   This will create a proper “NAME” section for you.  (Although you could write
       one by yourself.)

DIAGNOSTICS

       stx2any may give any error message that m4 may give, e.g. on malformatted input  (a  macro
       call  with  missing closing parenthesis etc).  In addition, it has the following own error
       messages:

          unknown output format: “X”
                 You requested unsupported output format X with the -T option.

          unknown macro “X” called
                 stx2any encountered a macro beginning with w_, but knows no definition  for  it.
                 This  is  a  warning,  not  an error — the offending macro and its arguments are
                 stripped from the output.

          environment “X” closed by “Y” in layer N
                 Environments in stx2any must be properly nested.  stx2any  encountered  w_end(Y)
                 when it was expecting w_end(X).  Often this is a sign of a forgotten w_end(X).

                 If N (the layer) is something other than 0, then the problem is probably in your
                 environment definitions, not at the point that stx2any was  processing  when  it
                 encountered the error.

          unknown environment “X”
                 There  was  an attempt to begin an environment whose name is unknown to stx2any,
                 i.e. no such environment has been defined.

          diversion “X” closed by “Y”

          unknown diversion “X”
                 Same as above, but for diversions (w_begdiv and w_enddiv).

          attempt to use “X” in secure environment
                 You requested secure processing with --more-secure and the document contained an
                 “insecure”  macro.   This is a warning message, not an error — the causing macro
                 is left in the text verbatim.

          unknown cross link to “X”
                 There was a cross link to document X, but stx2any does not  know  about  such  a
                 document.   Probably  you didn't gather /X/'s data with gather_stx_titles or you
                 misspelled the document reference.  This is  a  warning,  not  an  error  —  the
                 reference is left in the output verbatim, without any kind of link.

       The return value of stx2any is zero on success, one if there was some problem.

ENVIRONMENT

          PAPERCONF

          PAPERSIZE
                 used for determining the default paper size for LaTeX documents.

FILES

          /etc/papersize
                 used for determining the default paper size for LaTeX documents.

          /usr/share/stx2any/common
                 directory for the definitions shared by all formats

          /usr/share/stx2any/{html,man,latex,docbook-xml}
                 directory for output format specific definitions

SEE ALSO

       m4  (1), latex (1), groff (1), lexgrog (1), w3m (1), strip_stx (1), gather_stx_titles (1),
       html2stx (1), extract_usage_from_stx (1)
       Stx quickie guide (/usr/share/doc/stx2any/Stx-doc.txt)
       Stx markup reference (/usr/share/doc/stx2any/Stx-ref.txt)

BUGS

       The structured text format is not yet fully standardised.  There  are  some  corner  cases
       where  it  is  unclear  what  the result of the formatting should be.  In these cases, the
       output of stx2any is authoritative, so it cannot have bugs :)

       Some old GNU libc's seem to be abysmally slow on some instances of the  emphasis  regexps.
       It  would be possible to make the regexps faster and less correct, but as newer GNU libc's
       and BSD libc seem to work OK in these cases, I guess it's not worth it.

       The --more-secure switch is not really very secure for reasons explained above.

       The support for DocBook XML sucks.  It is only  included  because  someone  will  show  up
       anyway  and  ask,  “hey,  does  it support DocBook XML?”  Partly this sucking is due to my
       laziness, but partly it is because of the nature of DocBook.  For instance,  stx2any  will
       transform literal formatting into DocBook Literal elements, but the point of using DocBook
       is to convey more information than that — whether it is  some  ComputerOutput,  UserInput,
       EnVar, or Application, or... and the result is still very abstract, not actually meant for
       humans to read but rather for computers to process into something readable.  Now the truth
       is  that  I  doubt  you will ever come up with a DSSSL stylesheet whose output outperforms
       LaTeX (for publishing on paper) or direct conversion to HTML (for publishing on the web).

       The only sensible reasons I can think of for using Stx as a DocBook frontend are:

           1.  the ability to use both DocBook constructs and Stx abbreviations

           2.  if you have to write DocBook for some interesting reason (your boss told  you  so)
               but don't want to learn it

           3.  you  happen  to  already have infrastructure for processing DocBook documents, and
               you want to take advantage of it

AUTHOR

       This page is written by Panu A. Kalliokoski.