docbook2X-0.8.8/0000777000175000017500000000000010572276010010366 500000000000000docbook2X-0.8.8/doc/0000777000175000017500000000000010572276010011133 500000000000000docbook2X-0.8.8/doc/manpages.html0000644000175000017500000001305210572275345013543 00000000000000 docbook2X: Converting to man pages

Converting to man pages

DocBook documents are converted to man pages in two steps:

  1. The DocBook source is converted by a XSLT stylesheet into an intermediate XML format, Man-XML.

    Man-XML is simpler than DocBook and closer to the man page format; it is intended to make the stylesheets’ job easier.

    The stylesheet for this purpose is in xslt/man/docbook.xsl. For portability, it should always be referred to by the following URI:

    http://docbook2x.sourceforge.net/latest/xslt/man/docbook.xsl
    

    Run this stylesheet with db2x_xsltproc.

    Customizing.  You can also customize the output by creating your own XSLT stylesheet — changing parameters or adding new templates — and importing xslt/man/docbook.xsl.

  2. Man-XML is converted to the actual man pages by db2x_manxml.

The docbook2man command does both steps automatically, but if any problems occur, you can see the errors more clearly if you do each step separately:

$ db2x_xsltproc -s man mydoc.xml -o mydoc.mxml
$ db2x_manxml mydoc.mxml

Options to the conversion stylesheet are described in the man-pages stylesheets reference.

Pure XSLT conversion.  An alternative to the db2x_manxml Perl script is the XSLT stylesheet in xslt/backend/db2x_manxml.xsl. This stylesheet performs a similar function of converting Man-XML to actual man pages. It is useful if you desire a pure XSLT solution to man-page conversion. Of course, the quality of the conversion using this stylesheet will never be as good as the Perl db2x_manxml, and it runs slower. In particular, the pure XSLT version currently does not support tables in man pages, but its Perl counterpart does. For instructions on how to use the stylesheet, see Example 1, “Convert to man pages using pure-XSLT db2x_manxml.

docbook2X-0.8.8/doc/docbook2texi.html0000644000175000017500000004742410572275345014356 00000000000000 docbook2X: docbook2texi

Name

docbook2texi — Convert DocBook to Texinfo

Synopsis

docbook2texi [options] xml-document

Description

docbook2texi converts the given DocBook XML document into one or more Texinfo documents. By default, these Texinfo documents will be output to the current directory.

The docbook2texi command is a wrapper script for a two-step conversion process.

Options

The available options are essentially the union of the options for db2x_xsltproc and db2x_texixml.

Some commonly-used options are listed below:

--encoding=encoding

Sets the character encoding of the output.

--string-param parameter=value

Sets a stylesheet parameter (options that affect how the output looks). See “Stylesheet parameters” below for the parameters that can be set.

--sgml

Accept an SGML source document as input instead of XML.

Stylesheet parameters

captions-display-as-headings

Brief. Use heading markup for minor captions?

Default setting. 0 (boolean false)

If true, title content in some (formal) objects are rendered with the Texinfo @heading commands.

If false, captions are rendered as an emphasized paragraph.

links-use-pxref

Brief. Translate link using @pxref

Default setting. 1 (boolean true)

If true, link is translated with the hypertext followed by the cross reference in parentheses.

Otherwise, the hypertext content serves as the cross-reference name marked up using @ref. Typically info displays this contruct badly.

explicit-node-names

Brief. Insist on manually constructed Texinfo node names

Default setting. 0 (boolean false)

Elements in the source document can influence the Texinfo node name generation specifying either a xreflabel, or for the sectioning elements, a title with role='texinfo-node' in the *info container.

However, for the majority of source documents, explicit Texinfo node names are not available, and the stylesheet tries to generate a reasonable one instead, e.g. from the normal title of an element. The generated name may not be optimal. If this option is set and the stylesheet needs to generate a name, a warning is emitted and generate-id is always used for the name.

When the hashtable extension is not available, the stylesheet cannot check for node name collisions, and in this case, setting this option and using explicit node names are recommended.

This option is not set (i.e. false) by default.

Note

The absolute fallback for generating node names is using the XSLT function generate-id, and the stylesheet always emits a warning in this case regardless of the setting of explicit-node-names.

show-comments

Brief. Display comment elements?

Default setting. 1 (boolean true)

If true, comments will be displayed, otherwise they are suppressed. Comments here refers to the comment element, which will be renamed remark in DocBook V4.0, not XML comments (<-- like this -->) which are unavailable.

funcsynopsis-decoration

Brief. Decorate elements of a FuncSynopsis?

Default setting. 1 (boolean true)

If true, elements of the FuncSynopsis will be decorated (e.g. bold or italic). The decoration is controlled by functions that can be redefined in a customization layer.

function-parens

Brief. Generate parentheses after a function?

Default setting. 0 (boolean false)

If true, the formatting of a <function> element will include generated parenthesis.

refentry-display-name

Brief. Output NAME header before 'RefName'(s)?

Default setting. 1 (boolean true)

If true, a "NAME" section title is output before the list of 'RefName's.

manvolnum-in-xref

Brief. Output manvolnum as part of refentry cross-reference?

Default setting. 1 (boolean true)

if true, the manvolnum is used when cross-referencing refentrys, either with xref or citerefentry.

prefer-textobjects

Brief. Prefer textobject over imageobject?

Default setting. 1 (boolean true)

If true, the textobject in a mediaobject is preferred over any imageobject.

(Of course, for output formats other than Texinfo, you usually want to prefer the imageobject, but Info is a text-only format.)

In addition to the values true and false, this parameter may be set to 2 to indicate that both the text and the images should be output. You may want to do this because some Texinfo viewers can read images. Note that the Texinfo @image command has its own mechanism for switching between text and image output — but we do not use this here.

The default is true.

semantic-decorations

Brief. Use Texinfo semantic inline markup?

Default setting. 1 (boolean true)

If true, the semantic inline markup of DocBook is translated into (the closest) Texinfo equivalent. This is the default.

However, because the Info format is limited to plain text, the semantic inline markup is often distinguished by using explicit quotes, which may not look good. You can set this option to false to suppress these. (For finer control over the inline formatting, you can use your own stylesheet.)

custom-localization-file

Brief. URI of XML document containing custom localization data

Default setting. (blank)

This parameter specifies the URI of a XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document.

The text translations pointed to by this parameter always override the default text translations (from the internal parameter localization-file). If a particular translation is not present here, the corresponding default translation is used as a fallback.

This parameter is primarily for changing certain punctuation characters used in formatting the source document. The settings for punctuation characters are often specific to the source document, but can also be dependent on the locale.

To not use custom text translations, leave this parameter as the empty string.

custom-l10n-data

Brief. XML document containing custom localization data

Default setting. document($custom-localization-file)

This parameter specifies the XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document.

This parameter is internal to the stylesheet. To point to an external XML document with a URI or a file name, you should use the custom-localization-file parameter instead.

However, inside a custom stylesheet (not on the command-line) this paramter can be set to the XPath expression document(''), which will cause the custom translations directly embedded inside the custom stylesheet to be read.

author-othername-in-middle

Brief. Is othername in author a middle name?

Default setting. 1

If true, the othername of an author appears between the firstname and surname. Otherwise, othername is suppressed.

output-file

Brief. Name of the Info file

Default setting. (blank)

This parameter specifies the name of the final Info file, overriding the setting in the document itself and the automatic selection in the stylesheet. If the document is a set, this parameter has no effect.

Important

Do not include the .info extension in the name.

(Note that this parameter has nothing to do with the name of the Texi-XML output by the XSLT processor you are running this stylesheet from.)

directory-category

Brief. The categorization of the document in the Info directory

Default setting. (blank)

This is set to the category that the document should go under in the Info directory of installed Info files. For example, General Commands.

Note

Categories may also be set directly in the source document. But if this parameter is not empty, then it always overrides the setting in the source document.

directory-description

Brief. The description of the document in the Info directory

Default setting. (blank)

This is a short description of the document that appears in the Info directory of installed Info files. For example, An Interactive Plotting Program.

Note

Menu descriptions may also be set directly in the source document. But if this parameter is not empty, then it always overrides the setting in the source document.

index-category

Brief. The Texinfo index to use

Default setting. cp

The Texinfo index for indexterm and index is specified using the role attribute. If the above elements do not have a role, then the default specified by this parameter is used.

The predefined indices are:

c, cp

Concept index

f, fn

Function index

v, vr

Variable index

k, ky

Keystroke index

p, pg

Program index

d, tp

Data type index

User-defined indices are not yet supported.

qanda-defaultlabel

Brief. Sets the default for defaultlabel on QandASet.

Default setting. 

If no defaultlabel attribute is specified on a QandASet, this value is used. It must be one of the legal values for the defaultlabel attribute.

qandaset-generate-toc

Brief. Is a Table of Contents created for QandASets?

Default setting. 

If true, a ToC is constructed for QandASets.

Examples

$ docbook2texi tdg.xml
$ docbook2texi --encoding=utf-8//TRANSLIT tdg.xml
$ docbook2texi --string-param semantic-decorations=0 tdg.xml

Limitations

  • Internally there is one long pipeline of programs which your document goes through. If any segment of the pipeline fails (even trivially, like from mistyped program options), the resulting errors can be difficult to decipher — in this case, try running the components of docbook2X separately.

docbook2X-0.8.8/doc/testing.xml0000644000175000017500000000566310422454477013271 00000000000000 Discussion of correctness-testing How docbook2X is tested testing correctness validation The testing of the process of converting from DocBook to man pages, or Texinfo, is complicated by the fact that a given input (the DocBook document) usually does not have one specific, well-defined output. Variations on the output are allowed for the result to look “nice”. When docbook2X was in the early stages of development, the author tested it simply by running some sample DocBook documents through it, and visually inspecting the output. Clearly, this procedure is not scaleable for testing a large number of documents. In the later 0.8.x versions of docbook2X, the testing has been automated as much as possible. The testing is implemented by heuristic checks on the output to see if it comprises a “good” man page or Texinfo file. These are the checks in particular: Validation of the Man-XML or Texi-XML output, from the first stage, XSLT stylesheets, against the XML DTDs defining the formats. Running &groff_ref; and &makeinfo_ref; on the output, and noting any errors or warnings from those programs. Other heuristic checks on the output, implemented by a Perl script. Here, spurious blank lines, uncollapsed whitespace in the output that would cause a bad display are checked. There are about 8000 test documents, mostly refentry documents, that can be run against the current version of docbook2X. A few of them have been gathered by the author from various sources and test cases from bug reports. The majority come from using doclifter on existing man pages. Most pages pass the above tests. To run the tests, go to the test/ directory in the docbook2X distribution. The command make check will run some tests on a few documents. For testing using doclifter, first generate the DocBook XML sources using doclifter, then take a look at the test/mass/test.pl testing script and run it. Note that a small portion of the doclifter pages will fail the tests, because they do not satisfy the heuristic tests (but are otherwise correct), or, more commonly, the source coming from the doclifter heuristic up-conversion has errors. docbook2X-0.8.8/doc/docbook2X.html0000644000175000017500000001677010572275345013614 00000000000000 docbook2X: Documentation Table of Contents

docbook2X

Version 0.8.8

Author: Steve Cheng ()


Table of Contents

Quick start
Converting to man pages
docbook2man - Convert DocBook to man pages
db2x_manxml - Make man pages from Man-XML
Converting to Texinfo
docbook2texi - Convert DocBook to Texinfo
db2x_texixml - Make Texinfo files from Texi-XML
The XSLT stylesheets
db2x_xsltproc - XSLT processor invocation wrapper
sgml2xml-isoent - Convert SGML to XML with support for ISO entities
Character set conversion
utf8trans - Transliterate UTF-8 characters according to a table
FAQ
Performance analysis
How docbook2X is tested
To-do list
Release history
Design notes
Package installation
Installation
Dependencies on other software
Index

docbook2X converts DocBook documents into man pages and Texinfo documents.

It aims to support DocBook version 4.2, excepting the features that cannot be supported or are not useful in a man page or Texinfo document.

For information on the latest releases of docbook2X, and downloads, please visit the docbook2X home page.

Quick start

To convert to man pages, you run the command docbook2man. For example,

$ docbook2man --solinks manpages.xml

The man pages will be output to your current directory.

The --solinks options tells docbook2man to create man page links. You may want to omit this option when developing documentation so that your working directory does not explode with many stub man pages. (If you don’t know what this means, you can read about it in detail in db2x_manxml, or just ignore the previous two sentences and always specify this option.)

To convert to Texinfo, you run the command docbook2texi. For example,

$ docbook2texi tdg.xml

One (or more) Texinfo files will be output to your current directory.

The rest of this manual describes in detail all the other options and how to customize docbook2X’s output.

docbook2X-0.8.8/doc/docbook2X.info0000644000175000017500000034174710572275335013607 00000000000000This is docbook2X.info, produced by makeinfo version 4.8 from docbook2X.texi. INFO-DIR-SECTION Document Preparation START-INFO-DIR-ENTRY * docbook2X: (docbook2X). Convert DocBook into man pages and Texinfo END-INFO-DIR-ENTRY  File: docbook2X.info, Node: Top, Next: Quick start, Up: (dir) docbook2X ********* docbook2X converts DocBook documents into man pages and Texinfo documents. It aims to support DocBook version 4.2, excepting the features that cannot be supported or are not useful in a man page or Texinfo document. For information on the latest releases of docbook2X, and downloads, please visit the docbook2X home page (http://docbook2x.sourceforge.net/). * Menu: * Quick start:: Examples to get you started * Converting to man pages:: Details on man-page conversion * Converting to Texinfo:: Details on Texinfo conversion * The XSLT stylesheets:: How to run the docbook2X XSLT stylesheets * Character set conversion:: Discussion on reproducing non-ASCII characters in the converted output * FAQ:: Answers and tips for common problems * Performance analysis:: Discussion on conversion speed * How docbook2X is tested:: Discussion of correctness-testing * To-do list:: Ideas for future improvements * Release history:: Changes to the package between releases * Design notes:: Author's notes on the grand scheme of docbook2X * Package installation:: Where to get docbook2X, and details on how to install it * Index: Concept index. --- The Detailed Node Listing --- Converting to man pages * docbook2man: docbook2man wrapper script. Convert DocBook to man pages * db2x_manxml:: Make man pages from Man-XML Converting to Texinfo * docbook2texi: docbook2texi wrapper script. Convert DocBook to Texinfo * db2x_texixml:: Make Texinfo files from Texi-XML The XSLT stylesheets * db2x_xsltproc:: XSLT processor invocation wrapper * sgml2xml-isoent:: Convert SGML to XML with support for ISO entities Character set conversion * utf8trans:: Transliterate UTF-8 characters according to a table Package installation * Installation:: Package install procedure * Dependencies on other software:: Other software packages that docbook2X needs  File: docbook2X.info, Node: Quick start, Next: Converting to man pages, Prev: Top, Up: Top 1 Quick start ************* To convert to man pages, you run the command `docbook2man' (*note docbook2man wrapper script::). For example, $ docbook2man --solinks manpages.xml The man pages will be output to your current directory. The `--solinks' options tells `docbook2man' to create man page links. You may want to omit this option when developing documentation so that your working directory does not explode with many stub man pages. (If you don't know what this means, you can read about it in detail in `db2x_manxml', or just ignore the previous two sentences and always specify this option.) To convert to Texinfo, you run the command `docbook2texi' (*note docbook2texi wrapper script::). For example, $ docbook2texi tdg.xml One (or more) Texinfo files will be output to your current directory. The rest of this manual describes in detail all the other options and how to customize docbook2X's output.  File: docbook2X.info, Node: Converting to man pages, Next: Converting to Texinfo, Prev: Quick start, Up: Top 2 Converting to man pages ************************* DocBook documents are converted to man pages in two steps: 1. The DocBook source is converted by a XSLT stylesheet into an intermediate XML format, Man-XML. Man-XML is simpler than DocBook and closer to the man page format; it is intended to make the stylesheets' job easier. The stylesheet for this purpose is in `xslt/man/docbook.xsl'. For portability, it should always be referred to by the following URI: http://docbook2x.sourceforge.net/latest/xslt/man/docbook.xsl Run this stylesheet with *Note `db2x_xsltproc': db2x_xsltproc. *Customizing. * You can also customize the output by creating your own XSLT stylesheet -- changing parameters or adding new templates -- and importing `xslt/man/docbook.xsl'. 2. Man-XML is converted to the actual man pages by *Note `db2x_manxml': db2x_manxml. The `docbook2man' (*note docbook2man wrapper script::) command does both steps automatically, but if any problems occur, you can see the errors more clearly if you do each step separately: $ db2x_xsltproc -s man mydoc.xml -o mydoc.mxml $ db2x_manxml mydoc.mxml Options to the conversion stylesheet are described in *Note the man-pages stylesheets reference: (docbook2man-xslt)Top. *Pure XSLT conversion. * An alternative to the `db2x_manxml' Perl script is the XSLT stylesheet in `xslt/backend/db2x_manxml.xsl'. This stylesheet performs a similar function of converting Man-XML to actual man pages. It is useful if you desire a pure XSLT solution to man-page conversion. Of course, the quality of the conversion using this stylesheet will never be as good as the Perl `db2x_manxml', and it runs slower. In particular, the pure XSLT version currently does not support tables in man pages, but its Perl counterpart does. * Menu: * docbook2man: docbook2man wrapper script. Convert DocBook to man pages * db2x_manxml:: Make man pages from Man-XML  File: docbook2X.info, Node: docbook2man wrapper script, Next: db2x_manxml, Up: Converting to man pages 2.1 docbook2man =============== Name ---- `docbook2man' -- Convert DocBook to man pages Synopsis -------- docbook2man [options] xml-document Description ----------- `docbook2man' converts the given DocBook XML document into man pages. By default, the man pages will be output to the current directory. Only the `refentry' content in the DocBook document is converted. (To convert content outside of a `refentry', stylesheet customization is required. See the docbook2X package for details.) The `docbook2man' command is a wrapper script for a two-step conversion process. Options ------- The available options are essentially the union of the options from *Note `db2x_xsltproc': db2x_xsltproc. and *Note `db2x_manxml': db2x_manxml. Some commonly-used options are listed below: `--encoding=ENCODING' Sets the character encoding of the output. `--string-param PARAMETER=VALUE' Sets a stylesheet parameter (options that affect how the output looks). See "Stylesheet parameters" below for the parameters that can be set. `--sgml' Accept an SGML source document as input instead of XML. `--solinks' Make stub pages for alternate names for an output man page. Stylesheet parameters ..................... `uppercase-headings' *Brief. * Make headings uppercase? *Default setting. * `1' (boolean true) Headings in man page content should be or should not be uppercased. `manvolnum-cite-numeral-only' *Brief. * Man page section citation should use only the number *Default setting. * `1' (boolean true) When citing other man pages, the man-page section is either given as is, or has the letters stripped from it, citing only the number of the section (e.g. section `3x' becomes `3'). This option specifies which style. `quotes-on-literals' *Brief. * Display quotes on `literal' elements? *Default setting. * `0' (boolean false) If true, render `literal' elements with quotes around them. `show-comments' *Brief. * Display `comment' elements? *Default setting. * `1' (boolean true) If true, comments will be displayed, otherwise they are suppressed. Comments here refers to the `comment' element, which will be renamed `remark' in DocBook V4.0, not XML comments (<- like this ->) which are unavailable. `function-parens' *Brief. * Generate parentheses after a function? *Default setting. * `0' (boolean false) If true, the formatting of a `' element will include generated parenthesis. `xref-on-link' *Brief. * Should `link' generate a cross-reference? *Default setting. * `1' (boolean true) Man pages cannot render the hypertext links created by `link'. If this option is set, then the stylesheet renders a cross reference to the target of the link. (This may reduce clutter). Otherwise, only the content of the `link' is rendered and the actual link itself is ignored. `header-3' *Brief. * Third header text *Default setting. * (blank) Specifies the text of the third header of a man page, typically the date for the man page. If empty, the `date' content for the `refentry' is used. `header-4' *Brief. * Fourth header text *Default setting. * (blank) Specifies the text of the fourth header of a man page. If empty, the `refmiscinfo' content for the `refentry' is used. `header-5' *Brief. * Fifth header text *Default setting. * (blank) Specifies the text of the fifth header of a man page. If empty, the `manual name', that is, the title of the `book' or `reference' container is used. `default-manpage-section' *Brief. * Default man page section *Default setting. * `1' The source document usually indicates the sections that each man page should belong to (with `manvolnum' in `refmeta'). In case the source document does not indicate man-page sections, this option specifies the default. `custom-localization-file' *Brief. * URI of XML document containing custom localization data *Default setting. * (blank) This parameter specifies the URI of a XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. The text translations pointed to by this parameter always override the default text translations (from the internal parameter `localization-file'). If a particular translation is not present here, the corresponding default translation is used as a fallback. This parameter is primarily for changing certain punctuation characters used in formatting the source document. The settings for punctuation characters are often specific to the source document, but can also be dependent on the locale. To not use custom text translations, leave this parameter as the empty string. `custom-l10n-data' *Brief. * XML document containing custom localization data *Default setting. * `document($custom-localization-file)' This parameter specifies the XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. This parameter is internal to the stylesheet. To point to an external XML document with a URI or a file name, you should use the `custom-localization-file' parameter instead. However, inside a custom stylesheet (_not on the command-line_) this paramter can be set to the XPath expression `document('')', which will cause the custom translations directly embedded inside the custom stylesheet to be read. `author-othername-in-middle' *Brief. * Is `othername' in `author' a middle name? *Default setting. * `1' If true, the `othername' of an `author' appears between the `firstname' and `surname'. Otherwise, `othername' is suppressed. Examples -------- $ docbook2man --solinks manpages.xml $ docbook2man --solinks --encoding=utf-8//TRANSLIT manpages.xml $ docbook2man --string-param header-4="Free Recode 3.6" document.xml Limitations ----------- * Internally there is one long pipeline of programs which your document goes through. If any segment of the pipeline fails (even trivially, like from mistyped program options), the resulting errors can be difficult to decipher -- in this case, try running the components of docbook2X separately.  File: docbook2X.info, Node: db2x_manxml, Prev: docbook2man wrapper script, Up: Converting to man pages 2.2 `db2x_manxml' ================= Name ---- `db2x_manxml' -- Make man pages from Man-XML Synopsis -------- db2x_manxml [options] [xml-document] Description ----------- `db2x_manxml' converts a Man-XML document into one or more man pages. They are written in the current directory. If XML-DOCUMENT is not given, then the document to convert is read from standard input. Options ------- `--encoding=ENCODING' Select the character encoding used for the output files. The available encodings are those of iconv(1). The default encoding is `us-ascii'. The XML source may contain characters that are not representable in the encoding that you select; in this case the program will bomb out during processing, and you should choose another encoding. (This is guaranteed not to happen with any Unicode encoding such as UTF-8, but unfortunately not everyone is able to process Unicode texts.) If you are using GNU's version of iconv(1), you can affix `//TRANSLIT' to the end of the encoding name to attempt transliterations of any unconvertible characters in the output. Beware, however, that the really inconvertible characters will be turned into another of those damned question marks. (Aren't you sick of this?) The suffix `//TRANSLIT' applied to a Unicode encoding -- in particular, `utf-8//TRANSLIT' -- means that the output files are to remain in Unicode, but markup-level character translations using `utf8trans' are still to be done. So in most cases, an English-language document, converted using `--encoding=`utf-8//TRANSLIT'' will actually end up as a US-ASCII document, but any untranslatable characters will remain as UTF-8 without any warning whatsoever. (Note: strictly speaking this is not "transliteration".) This method of conversion is a compromise over strict `--encoding=`us-ascii'' processing, which aborts if any untranslatable characters are encountered. Note that man pages and Texinfo documents in non-ASCII encodings (including UTF-8) may not be portable to older (non-internationalized) systems, which is why the default value for this option is `us-ascii'. To suppress any automatic character mapping or encoding conversion whatsoever, pass the option `--encoding=`utf-8''. `--list-files' Write a list of all the output files to standard output, in addition to normal processing. `--output-dir=DIR' Specify the directory where the output files are placed. The default is the current working directory. This option is ignored if the output is to be written to standard output (triggered by the option `--to-stdout'). `--to-stdout' Write the output to standard output instead of to individual files. If this option is used even when there are supposed to be multiple output documents, then everything is concatenated to standard output. But beware that most other programs will not accept this concatenated output. This option is incompatible with `--list-files', obviously. `--help' Show brief usage information and exit. `--version' Show version and exit. Some man pages may be referenced under two or more names, instead of just one. For example, strcpy(3) and strncpy(3) often point to the same man page which describes the two functions together. Choose one of the following options to select how such man pages are to be generated: `--symlinks' For each of all the alternate names for a man page, erect symbolic links to the file that contains the real man page content. `--solinks' Generate stub pages (using `.so' roff requests) for the alternate names, pointing them to the real man page content. `--no-links' Do not make any alternative names available. The man page can only be referenced under its principal name. This program uses certain other programs for its operation. If they are not in their default installed locations, then use the following options to set their location: `--utf8trans-program=PATH' `--utf8trans-map=CHARMAP' Use the character map CHARMAP with the *Note `utf8trans': utf8trans. program, included with docbook2X, found under PATH. `--iconv-program=PATH' The location of the iconv(1) program, used for encoding conversions. Notes ----- The man pages produced should be compatible with most troff implementations and other tools that process man pages. Some backwards-compatible groff(1) extensions are used to make the output look nicer. See Also -------- The input to `db2x_manxml' is defined by the XML DTD present at `dtd/Man-XML' in the docbook2X distribution.  File: docbook2X.info, Node: Converting to Texinfo, Next: The XSLT stylesheets, Prev: Converting to man pages, Up: Top 3 Converting to Texinfo *********************** DocBook documents are converted to Texinfo in two steps: 1. The DocBook source is converted by a XSLT stylesheet into an intermediate XML format, Texi-XML. Texi-XML is simpler than DocBook and closer to the Texinfo format; it is intended to make the stylesheets' job easier. The stylesheet for this purpose is in `xslt/texi/docbook.xsl'. For portability, it should always be referred to by the following URI: http://docbook2x.sourceforge.net/latest/xslt/texi/docbook.xsl Run this stylesheet with *Note `db2x_xsltproc': db2x_xsltproc. *Customizing. * You can also customize the output by creating your own XSLT stylesheet -- changing parameters or adding new templates -- and importing `xslt/texi/docbook.xsl'. 2. Texi-XML is converted to the actual Texinfo files by *Note `db2x_texixml': db2x_texixml. The `docbook2texi' (*note docbook2texi wrapper script::) command does both steps automatically, but if any problems occur, you can see the errors more clearly if you do each step separately: $ db2x_xsltproc -s texi mydoc.xml -o mydoc.txml $ db2x_texixml mydoc.txml Options to the conversion stylesheet are described in *Note the Texinfo stylesheets reference: (docbook2texi-xslt)Top. * Menu: * docbook2texi: docbook2texi wrapper script. Convert DocBook to Texinfo * db2x_texixml:: Make Texinfo files from Texi-XML  File: docbook2X.info, Node: docbook2texi wrapper script, Next: db2x_texixml, Up: Converting to Texinfo 3.1 docbook2texi ================ Name ---- `docbook2texi' -- Convert DocBook to Texinfo Synopsis -------- docbook2texi [options] xml-document Description ----------- `docbook2texi' converts the given DocBook XML document into one or more Texinfo documents. By default, these Texinfo documents will be output to the current directory. The `docbook2texi' command is a wrapper script for a two-step conversion process. Options ------- The available options are essentially the union of the options for *Note `db2x_xsltproc': db2x_xsltproc. and *Note `db2x_texixml': db2x_texixml. Some commonly-used options are listed below: `--encoding=ENCODING' Sets the character encoding of the output. `--string-param PARAMETER=VALUE' Sets a stylesheet parameter (options that affect how the output looks). See "Stylesheet parameters" below for the parameters that can be set. `--sgml' Accept an SGML source document as input instead of XML. Stylesheet parameters ..................... `captions-display-as-headings' *Brief. * Use heading markup for minor captions? *Default setting. * `0' (boolean false) If true, `title' content in some (formal) objects are rendered with the Texinfo `@HEADING' commands. If false, captions are rendered as an emphasized paragraph. `links-use-pxref' *Brief. * Translate `link' using `@pxref' *Default setting. * `1' (boolean true) If true, `link' is translated with the hypertext followed by the cross reference in parentheses. Otherwise, the hypertext content serves as the cross-reference name marked up using `@ref'. Typically info displays this contruct badly. `explicit-node-names' *Brief. * Insist on manually constructed Texinfo node names *Default setting. * `0' (boolean false) Elements in the source document can influence the Texinfo node name generation specifying either a `xreflabel', or for the sectioning elements, a `title' with `role='texinfo-node'' in the `*info' container. However, for the majority of source documents, explicit Texinfo node names are not available, and the stylesheet tries to generate a reasonable one instead, e.g. from the normal title of an element. The generated name may not be optimal. If this option is set and the stylesheet needs to generate a name, a warning is emitted and `generate-id' is always used for the name. When the hashtable extension is not available, the stylesheet cannot check for node name collisions, and in this case, setting this option and using explicit node names are recommended. This option is not set (i.e. false) by default. *Note* The absolute fallback for generating node names is using the XSLT function `generate-id', and the stylesheet always emits a warning in this case regardless of the setting of `explicit-node-names'. `show-comments' *Brief. * Display `comment' elements? *Default setting. * `1' (boolean true) If true, comments will be displayed, otherwise they are suppressed. Comments here refers to the `comment' element, which will be renamed `remark' in DocBook V4.0, not XML comments (<- like this ->) which are unavailable. `funcsynopsis-decoration' *Brief. * Decorate elements of a FuncSynopsis? *Default setting. * `1' (boolean true) If true, elements of the FuncSynopsis will be decorated (e.g. bold or italic). The decoration is controlled by functions that can be redefined in a customization layer. `function-parens' *Brief. * Generate parentheses after a function? *Default setting. * `0' (boolean false) If true, the formatting of a `' element will include generated parenthesis. `refentry-display-name' *Brief. * Output NAME header before 'RefName'(s)? *Default setting. * `1' (boolean true) If true, a "NAME" section title is output before the list of 'RefName's. `manvolnum-in-xref' *Brief. * Output `manvolnum' as part of `refentry' cross-reference? *Default setting. * `1' (boolean true) if true, the `manvolnum' is used when cross-referencing `refentry's, either with `xref' or `citerefentry'. `prefer-textobjects' *Brief. * Prefer `textobject' over `imageobject'? *Default setting. * `1' (boolean true) If true, the `textobject' in a `mediaobject' is preferred over any `imageobject'. (Of course, for output formats other than Texinfo, you usually want to prefer the `imageobject', but Info is a text-only format.) In addition to the values true and false, this parameter may be set to `2' to indicate that both the text and the images should be output. You may want to do this because some Texinfo viewers can read images. Note that the Texinfo `@image' command has its own mechanism for switching between text and image output -- but we do not use this here. The default is true. `semantic-decorations' *Brief. * Use Texinfo semantic inline markup? *Default setting. * `1' (boolean true) If true, the semantic inline markup of DocBook is translated into (the closest) Texinfo equivalent. This is the default. However, because the Info format is limited to plain text, the semantic inline markup is often distinguished by using explicit quotes, which may not look good. You can set this option to false to suppress these. (For finer control over the inline formatting, you can use your own stylesheet.) `custom-localization-file' *Brief. * URI of XML document containing custom localization data *Default setting. * (blank) This parameter specifies the URI of a XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. The text translations pointed to by this parameter always override the default text translations (from the internal parameter `localization-file'). If a particular translation is not present here, the corresponding default translation is used as a fallback. This parameter is primarily for changing certain punctuation characters used in formatting the source document. The settings for punctuation characters are often specific to the source document, but can also be dependent on the locale. To not use custom text translations, leave this parameter as the empty string. `custom-l10n-data' *Brief. * XML document containing custom localization data *Default setting. * `document($custom-localization-file)' This parameter specifies the XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. This parameter is internal to the stylesheet. To point to an external XML document with a URI or a file name, you should use the `custom-localization-file' parameter instead. However, inside a custom stylesheet (_not on the command-line_) this paramter can be set to the XPath expression `document('')', which will cause the custom translations directly embedded inside the custom stylesheet to be read. `author-othername-in-middle' *Brief. * Is `othername' in `author' a middle name? *Default setting. * `1' If true, the `othername' of an `author' appears between the `firstname' and `surname'. Otherwise, `othername' is suppressed. `output-file' *Brief. * Name of the Info file *Default setting. * (blank) This parameter specifies the name of the final Info file, overriding the setting in the document itself and the automatic selection in the stylesheet. If the document is a `set', this parameter has no effect. *Important* Do _not_ include the `.info' extension in the name. (Note that this parameter has nothing to do with the name of the _Texi-XML output_ by the XSLT processor you are running this stylesheet from.) `directory-category' *Brief. * The categorization of the document in the Info directory *Default setting. * (blank) This is set to the category that the document should go under in the Info directory of installed Info files. For example, `General Commands'. *Note* Categories may also be set directly in the source document. But if this parameter is not empty, then it always overrides the setting in the source document. `directory-description' *Brief. * The description of the document in the Info directory *Default setting. * (blank) This is a short description of the document that appears in the Info directory of installed Info files. For example, `An Interactive Plotting Program.' *Note* Menu descriptions may also be set directly in the source document. But if this parameter is not empty, then it always overrides the setting in the source document. `index-category' *Brief. * The Texinfo index to use *Default setting. * `cp' The Texinfo index for `indexterm' and `index' is specified using the `role' attribute. If the above elements do not have a `role', then the default specified by this parameter is used. The predefined indices are: `c' `cp' Concept index `f' `fn' Function index `v' `vr' Variable index `k' `ky' Keystroke index `p' `pg' Program index `d' `tp' Data type index User-defined indices are not yet supported. `qanda-defaultlabel' *Brief. * Sets the default for defaultlabel on QandASet. *Default setting. * `' If no defaultlabel attribute is specified on a QandASet, this value is used. It must be one of the legal values for the defaultlabel attribute. `qandaset-generate-toc' *Brief. * Is a Table of Contents created for QandASets? *Default setting. * `' If true, a ToC is constructed for QandASets. Examples -------- $ docbook2texi tdg.xml $ docbook2texi --encoding=utf-8//TRANSLIT tdg.xml $ docbook2texi --string-param semantic-decorations=0 tdg.xml Limitations ----------- * Internally there is one long pipeline of programs which your document goes through. If any segment of the pipeline fails (even trivially, like from mistyped program options), the resulting errors can be difficult to decipher -- in this case, try running the components of docbook2X separately.  File: docbook2X.info, Node: db2x_texixml, Prev: docbook2texi wrapper script, Up: Converting to Texinfo 3.2 `db2x_texixml' ================== Name ---- `db2x_texixml' -- Make Texinfo files from Texi-XML Synopsis -------- db2x_texixml [options]... [xml-document] Description ----------- `db2x_texixml' converts a Texi-XML document into one or more Texinfo documents. If XML-DOCUMENT is not given, then the document to convert comes from standard input. The filenames of the Texinfo documents are determined by markup in the Texi-XML source. (If the filenames are not specified in the markup, then `db2x_texixml' attempts to deduce them from the name of the input file. However, the Texi-XML source should specify the filename, because it does not work when there are multiple output files or when the Texi-XML source comes from standard input.) Options ------- `--encoding=ENCODING' Select the character encoding used for the output files. The available encodings are those of iconv(1). The default encoding is `us-ascii'. The XML source may contain characters that are not representable in the encoding that you select; in this case the program will bomb out during processing, and you should choose another encoding. (This is guaranteed not to happen with any Unicode encoding such as UTF-8, but unfortunately not everyone is able to process Unicode texts.) If you are using GNU's version of iconv(1), you can affix `//TRANSLIT' to the end of the encoding name to attempt transliterations of any unconvertible characters in the output. Beware, however, that the really inconvertible characters will be turned into another of those damned question marks. (Aren't you sick of this?) The suffix `//TRANSLIT' applied to a Unicode encoding -- in particular, `utf-8//TRANSLIT' -- means that the output files are to remain in Unicode, but markup-level character translations using `utf8trans' are still to be done. So in most cases, an English-language document, converted using `--encoding=`utf-8//TRANSLIT'' will actually end up as a US-ASCII document, but any untranslatable characters will remain as UTF-8 without any warning whatsoever. (Note: strictly speaking this is not "transliteration".) This method of conversion is a compromise over strict `--encoding=`us-ascii'' processing, which aborts if any untranslatable characters are encountered. Note that man pages and Texinfo documents in non-ASCII encodings (including UTF-8) may not be portable to older (non-internationalized) systems, which is why the default value for this option is `us-ascii'. To suppress any automatic character mapping or encoding conversion whatsoever, pass the option `--encoding=`utf-8''. `--list-files' Write a list of all the output files to standard output, in addition to normal processing. `--output-dir=DIR' Specify the directory where the output files are placed. The default is the current working directory. This option is ignored if the output is to be written to standard output (triggered by the option `--to-stdout'). `--to-stdout' Write the output to standard output instead of to individual files. If this option is used even when there are supposed to be multiple output documents, then everything is concatenated to standard output. But beware that most other programs will not accept this concatenated output. This option is incompatible with `--list-files', obviously. `--info' Pipe the Texinfo output to makeinfo(1), creating Info files directly instead of Texinfo files. `--plaintext' Pipe the Texinfo output to `makeinfo `--no-headers'', thereby creating plain text files. `--help' Show brief usage information and exit. `--version' Show version and exit. This program uses certain other programs for its operation. If they are not in their default installed locations, then use the following options to set their location: `--utf8trans-program=PATH' `--utf8trans-map=CHARMAP' Use the character map CHARMAP with the *Note `utf8trans': utf8trans. program, included with docbook2X, found under PATH. `--iconv-program=PATH' The location of the iconv(1) program, used for encoding conversions. Notes ----- *Texinfo language compatibility. * The Texinfo files generated by `db2x_texixml' sometimes require Texinfo version 4.7 (the latest version) to work properly. In particular: * `db2x_texixml' relies on `makeinfo' to automatically add punctuation after a `@ref' if it it not already there. Otherwise the hyperlink will not work in the Info reader (although `makeinfo' will not emit any error). * The new `@comma{}' command is used for commas (`,') occurring inside argument lists to Texinfo commands, to disambiguate it from the comma used to separate different arguments. The only alternative otherwise would be to translate `,' to `.' which is obviously undesirable (but earlier docbook2X versions did this). If you cannot use version 4.7 of `makeinfo', you can still use a `sed' script to perform manually the procedure just outlined. *Relation of Texi-XML with the XML output format of `makeinfo'. * The Texi-XML format used by docbook2X is _different_ and incompatible with the XML format generated by makeinfo(1) with its `--xml' option. This situation arose partly because the Texi-XML format of docbook2X was designed and implemented independently before the appearance of `makeinfo''s XML format. Also Texi-XML is very much geared towards being _machine-generated from other XML formats_, while there seems to be no non-trivial applications of `makeinfo''s XML format. So there is no reason at this point for docbook2X to adopt `makeinfo''s XML format in lieu of Texi-XML. Bugs ---- * Text wrapping in menus is utterly broken for non-ASCII text. It is probably also broken everywhere else in the output, but that would be `makeinfo''s fault. * `--list-files' might not work correctly with `--info'. Specifically, when the output Info file get too big, `makeinfo' will decide to split it into parts named `ABC.info-1', `ABC.info-2', `ABC.info-3', etc. `db2x_texixml' does not know exactly how many of these files there are, though you can just do an `ls' to find out. See Also -------- The input to `db2x_texixml' is defined by the XML DTD present at `dtd/Texi-XML' in the docbook2X distribution.  File: docbook2X.info, Node: The XSLT stylesheets, Next: Character set conversion, Prev: Converting to Texinfo, Up: Top 4 The XSLT stylesheets ********************** docbook2X uses a XSLT 1.0 processor to run its stylesheets. docbook2X comes with a wrapper script, *Note `db2x_xsltproc': db2x_xsltproc, that invokes the XSLT processor, but you can invoke the XSLT processor in any other way you wish. The stylesheets are described in *Note the man-pages stylesheets reference: (docbook2man-xslt)Top. and *Note the Texinfo stylesheets reference: (docbook2texi-xslt)Top. Pure-XSLT implementations of `db2x_manxml' and `db2x_texixml' also exist. They may be used as follows (assuming libxslt as the XSLT processor). *Convert to man pages using pure-XSLT db2x_manxml* $ xsltproc -o mydoc.mxml \ docbook2X-path/xslt/man/docbook.xsl \ mydoc.xml $ xsltproc \ docbook2X-path/xslt/backend/db2x_manxml.xsl \ mydoc.mxml *Convert to Texinfo using Pure-XSLT db2x_texixml* $ xsltproc -o mydoc.txml \ docbook2X-path/xslt/texi/docbook.xsl \ mydoc.xml $ xsltproc \ docbook2X-path/xslt/backend/db2x_texixml.xsl \ mydoc.txml Here, xsltproc(1) is used instead of `db2x_xsltproc', since if you are in a situtation where you cannot use the Perl implementation of `db2x_manxml', you probably cannot use `db2x_xsltproc' either. If for portability reasons you prefer not to use the file-system path to the docbook2X files, you can use the XML catalog provided in `xslt/catalog.xml' and the global URIs contained therein. * Menu: * db2x_xsltproc:: XSLT processor invocation wrapper * sgml2xml-isoent:: Convert SGML to XML with support for ISO entities  File: docbook2X.info, Node: db2x_xsltproc, Next: sgml2xml-isoent, Up: The XSLT stylesheets 4.1 `db2x_xsltproc' =================== Name ---- `db2x_xsltproc' -- XSLT processor invocation wrapper Synopsis -------- db2x_xsltproc [options] xml-document Description ----------- `db2x_xsltproc' invokes the XSLT 1.0 processor for docbook2X. This command applies the XSLT stylesheet (usually given by the `--stylesheet' option) to the XML document in the file XML-DOCUMENT. The result is written to standard output (unless changed with `--output'). To read the source XML document from standard input, specify `-' as the input document. Options ------- `--version' Display the docbook2X version. Transformation output options ............................. `--output FILE' `-o FILE' Write output to the given file (or URI), instead of standard output. Source document options ....................... `--xinclude' `-I' Process XInclude directives in the source document. `--sgml' `-S' Indicate that the input document is SGML instead of XML. You need this set this option if XML-DOCUMENT is actually a SGML file. SGML parsing is implemented by conversion to XML via sgml2xml(1) from the SP package (or osx(1) from the OpenSP package). All tag names in the SGML file will be normalized to lowercase (i.e. the `-xlower' option of sgml2xml(1) is used). ID attributes are available for the stylesheet (i.e. option `-xid'). In addition, any ISO SDATA entities used in the SGML document are automatically converted to their XML Unicode equivalents. (This is done by a `sed' filter.) The encoding of the SGML document, if it is not `us-ascii', must be specified with the standard SP environment variables: `SP_CHARSET_FIXED=1 SP_ENCODING=ENCODING'. (Note that XML files specify their encoding with the XML declaration `' at the top of the file.) The above conversion options cannot be changed. If you desire different conversion options, you should invoke sgml2xml(1) manually, and then pass the results of that conversion to this program. Retrieval options ................. `--catalogs CATALOG-FILES' `-C CATALOG-FILES' Specify additional XML catalogs to use for resolving Formal Public Identifiers or URIs. SGML catalogs are not supported. These catalogs are _not_ used for parsing an SGML document under the `--sgml' option. Use the environment variable `SGML_CATALOG_FILES' instead to specify the catalogs for parsing the SGML document. `--network' `-N' `db2x_xsltproc' will normally refuse to load external resources from the network, for security reasons. If you do want to load from the network, set this option. Usually you want to have installed locally the relevent DTDs and other files, and set up catalogs for them, rather than load them automatically from the network. Stylesheet options .................. `--stylesheet FILE' `-s FILE' Specify the filename (or URI) of the stylesheet to use. The special values `man' and `texi' are accepted as abbreviations, to specify that XML-DOCUMENT is in DocBook and should be converted to man pages or Texinfo (respectively). `--param NAME=EXPR' `-p NAME=EXPR' Add or modify a parameter to the stylesheet. NAME is a XSLT parameter name, and EXPR is an XPath expression that evaluates to the desired value for the parameter. (This means that strings must be quoted, _in addition_ to the usual quoting of shell arguments; use `--string-param' to avoid this.) `--string-param NAME=STRING' `-g NAME=STRING' Add or modify a string-valued parameter to the stylesheet. The string must be encoded in UTF-8 (regardless of the locale character encoding). Debugging and profiling ....................... `--debug' `-d' Display, to standard error, logs of what is happening during the XSL transformation. `--nesting-limit N' `-D N' Change the maximum number of nested calls to XSL templates, used to detect potential infinite loops. If not specified, the limit is 500 (libxslt's default). `--profile' `-P' Display profile information: the total number of calls to each template in the stylesheet and the time taken for each. This information is output to standard error. `--xslt-processor PROCESSOR' `-X PROCESSOR' Select the underlying XSLT processor used. The possible choices for PROCESSOR are: `libxslt', `saxon', `xalan-j'. The default processor is whatever was set when docbook2X was built. libxslt is recommended (because it is lean and fast), but SAXON is much more robust and would be more helpful when debugging stylesheets. All the processors have XML catalogs support enabled. (docbook2X requires it.) But note that not all the options above work with processors other than the libxslt one. Environment ----------- `XML_CATALOG_FILES' Specify XML Catalogs. If not specified, the standard catalog (`/etc/xml/catalog') is loaded, if available. `DB2X_XSLT_PROCESSOR' Specify the XSLT processor to use. The effect is the same as the `--xslt-processor' option. The primary use of this variable is to allow you to quickly test different XSLT processors without having to add `--xslt-processor' to every script or make file in your documentation build system. Conforming to ------------- XML Stylesheet Language - Transformations (XSLT), version 1.0 (http://www.w3.org/TR/xslt), a W3C Recommendation. Notes ----- In its earlier versions (< 0.8.4), docbook2X required XSLT extensions to run, and `db2x_xsltproc' was a special libxslt-based processor that had these extensions compiled-in. When the requirement for XSLT extensions was dropped, `db2x_xsltproc' became a Perl script which translates the options to `db2x_xsltproc' to conform to the format accepted by the stock xsltproc(1) which comes with libxslt. The prime reason for the existence of this script is backward compatibility with any scripts or make files that invoke docbook2X. However, it also became easy to add in support for invoking other XSLT processors with a unified command-line interface. Indeed, there is nothing special in this script to docbook2X, or even to DocBook, and it may be used for running other sorts of stylesheets if you desire. Certainly the author prefers using this command, because its invocation format is sane and is easy to use. (e.g. no typing long class names for the Java-based processors!) See Also -------- You may wish to consult the documentation that comes with libxslt, SAXON, or Xalan. The W3C XSLT 1.0 specification would be useful for writing stylesheets.  File: docbook2X.info, Node: sgml2xml-isoent, Prev: db2x_xsltproc, Up: The XSLT stylesheets 4.2 `sgml2xml-isoent' ===================== Name ---- `sgml2xml-isoent' -- Convert SGML to XML with support for ISO entities Synopsis -------- sgml2xml-isoent [sgml-document] Description ----------- `sgml2xml-isoent' converts an SGML document to XML, with support for the ISO entities. This is done by using sgml2xml(1) from the SP package (or osx(1) from the OpenSP package), and the declaration for the XML version of the ISO entities is added to the output. This means that the output of this conversion should work as-is with any XML tool. This program is often used for processing SGML DocBook documents with XML-based tools. In particular, *Note `db2x_xsltproc': db2x_xsltproc. calls this program as part of its `--sgml' option. On the other hand, it is probably not helpful for migrating a source SGML text file to XML, since the conversion mangles the original formatting. Since the XML version of the ISO entities are referred to directly, not via a DTD, this tool also works with document types other than DocBook. Notes ----- The ISO entities are referred using the public identifiers `ISO 8879:1986//ENTITIES//...//EN//XML'. The catalogs used when parsing the converted document should resolve these entities to the appropriate place (on the local filesystem). If the entities are not resolved in the catalog, then the fallback is to get the entity files from the `http://www.docbook.org/' Web site. See Also -------- sgml2xml(1), osx(1)  File: docbook2X.info, Node: Character set conversion, Next: FAQ, Prev: The XSLT stylesheets, Up: Top 5 Character set conversion ************************** When translating XML to legacy ASCII-based formats with poor support for Unicode, such as man pages and Texinfo, there is always the problem that Unicode characters in the source document also have to be translated somehow. A straightforward character set conversion from Unicode does not suffice, because the target character set, usually US-ASCII or ISO Latin-1, do not contain common characters such as dashes and directional quotation marks that are widely used in XML documents. But document formatters (man and Texinfo) allow such characters to be entered by a markup escape: for example, `\(lq' for the left directional quote ```'. And if a markup-level escape is not available, an ASCII transliteration might be used: for example, using the ASCII less-than sign `<' for the angle quotation mark `<'. So the Unicode character problem can be solved in two steps: 1. *Note `utf8trans': utf8trans, a program included in docbook2X, maps Unicode characters to markup-level escapes or transliterations. Since there is not necessarily a fixed, official mapping of Unicode characters, `utf8trans' can read in user-modifiable character mappings expressed in text files and apply them. (Unlike most character set converters.) In `charmaps/man/roff.charmap' and `charmaps/man/texi.charmap' are character maps that may be used for man-page and Texinfo conversion. The programs *Note `db2x_manxml': db2x_manxml. and *Note `db2x_texixml': db2x_texixml. will apply these character maps, or another character map specified by the user, automatically. 2. The rest of the Unicode text is converted to some other character set (encoding). For example, a French document with accented characters (such as `e'') might be converted to ISO Latin 1. This step is applied after `utf8trans' character mapping, using the iconv(1) encoding conversion tool. Both *Note `db2x_manxml': db2x_manxml. and *Note `db2x_texixml': db2x_texixml. can call iconv(1) automatically when producing their output. * Menu: * utf8trans:: Transliterate UTF-8 characters according to a table  File: docbook2X.info, Node: utf8trans, Up: Character set conversion 5.1 `utf8trans' =============== Name ---- `utf8trans' -- Transliterate UTF-8 characters according to a table Synopsis -------- utf8trans charmap [file]... Description ----------- `utf8trans' transliterates characters in the specified files (or standard input, if they are not specified) and writes the output to standard output. All input and output is in the UTF-8 encoding. This program is usually used to render characters in Unicode text files as some markup escapes or ASCII transliterations. (It is not intended for general charset conversions.) It provides functionality similar to the character maps in XSLT 2.0 (XML Stylesheet Language - Transformations, version 2.0). Options ------- `-m' `--modify' Modifies the given files in-place with their transliterated output, instead of sending it to standard output. This option is useful for efficient transliteration of many files at once. `--help' Show brief usage information and exit. `--version' Show version and exit. Usage ----- The translation is done according to the rules in the `character map', named in the file CHARMAP. It has the following format: 1. Each line represents a translation entry, except for blank lines and comment lines, which are ignored. 2. Any amount of whitespace (space or tab) may precede the start of an entry. 3. Comment lines begin with `#'. Everything on the same line is ignored. 4. Each entry consists of the Unicode codepoint of the character to translate, in hexadecimal, followed _one_ space or tab, followed by the translation string, up to the end of the line. 5. The translation string is taken literally, including any leading and trailing spaces (except the delimeter between the codepoint and the translation string), and all types of characters. The newline at the end is not included. The above format is intended to be restrictive, to keep `utf8trans' simple. But if a XML-based format is desired, there is a `xmlcharmap2utf8trans' script that comes with the docbook2X distribution, that converts character maps in XSLT 2.0 format to the `utf8trans' format. Limitations ----------- * `utf8trans' does not work with binary files, because malformed UTF-8 sequences in the input are substituted with U+FFFD characters. However, null characters in the input are handled correctly. This limitation may be removed in the future. * There is no way to include a newline or null in the substitution string.  File: docbook2X.info, Node: FAQ, Next: Performance analysis, Prev: Character set conversion, Up: Top 6 FAQ ***** Q: I have a SGML DocBook document. How do I use docbook2X? A: Use the `--sgml' option to `db2x_xsltproc'. (Formerly, we described a quite intricate hack here to convert to SGML to XML while preserving the ISO entities. That hack is actually what `--sgml' does.) Q: docbook2X bombs with this document! A: It is probably a bug in docbook2X. (Assuming that the input document is valid DocBook in the first place.) Please file a bug report. In it, please include the document which causes docbook2X to fail, or a pointer to it, or a test case that reproduces the problem. I don't want to hear about bugs in obsolete tools (i.e. tools that are not in the current release of docbook2X.) I'm sorry, but maintaining all that is a lot of work that I don't have time for. Q: Must I use `refentry' to write my man pages? A: Under the default settings of docbook2X: yes, you have to. The contents of the source document that lie outside of `refentry' elements are probably written in a book/article style that is usually not suited for the reference style of man pages. Nevertheless, sometimes you might want to include inside your man page, (small) snippets or sections of content from other parts of your book or article. You can achieve this by using a custom XSLT stylesheet to include the content manually. The docbook2X documentation demonstrates this technique: see the docbook2man(1) and the docbook2texi(1) man pages and the stylesheet that produces them in `doc/ss-man.xsl'. Q: Where have the SGML-based docbook2X tools gone? A: They are in a separate package now, docbook2man-sgmlspl. Q: I get some `iconv' error when converting documents. A: It's because there is some Unicode character in your document that docbook2X fails to convert to ASCII or a markup escape (in roff or Texinfo). The error message is intentional because it alerts you to a possible loss of information in your document, although admittedly it could be less cryptic, but I unfortunately can't control what `iconv' says. You can look at the partial man or Texinfo output -- the offending Unicode character should be near the point that the output is interrupted. Since you probably wanted that Unicode character to be there, the way you want to fix this error is to add a translation for that Unicode character to the `utf8trans' character map. Then use the `--utf8trans-map' option to the Perl docbook2X tools to use your custom character map. Alternatively, if you want to close your eyes to the utterly broken Unicode handling in groff and Texinfo, just use the `--encoding=utf-8' option. Note that the UTF-8 output is unlikely to display correctly everywhere. Q: Texinfo output looks ugly. A: You have to keep in mind that Info is extremely limited in its formatting. Try setting the various parameters to the stylesheet (see `xslt/texi/param.xsl'). Also, if you look at native Info pages, you will see there is a certain structure, that your DocBook document may not adhere to. There is really no fix for this. It is possible, though, to give rendering hints to the Texinfo stylesheet in your DocBook source, like this this manual does. Unfortunately these are not yet documented in a prominent place. Q: How do I use SAXON (or Xalan-Java) with docbook2X? A: Bob Stayton's DocBook XSL: The Complete Guide has a nice section on setting up the XSLT processors (http://www.sagehill.net/docbookxsl/InstallingAProcessor.html). It talks about Norman Walsh's DocBook XSL stylesheets, but for docbook2X you only need to change the stylesheet argument (any file with the extension `.xsl'). If you use the Perl wrapper scripts provided with docbook2X, you only need to "install" the XSLT processors (i.e. for Java, copying the `*.jar' files to `/usr/local/share/java'), and you don't need to do anything else. Q: XML catalogs don't work with Xalan-Java. (Or: Stop connecting to the Internet when running docbook2X!) A: I have no idea why -- XML catalogs with Xalan-Java don't work for me either, no matter how hard I try. Just go use SAXON or libxslt instead (which do work for me at least). Q: I don't like how docbook2X renders this markup. A: The XSLT stylesheets are customizable, so assuming you have knowledge of XSLT, you should be able to change the rendering easily. See `doc/ss-texinfo.xsl' of docbook2X's own documentation for a non-trivial example. If your customizations can be generally useful, I would like to hear about it. If you don't want to muck with XSLT, you can still tell me what sort of features you want. Maybe other users want them too. Q: Does docbook2X support other XML document types or output formats? A: No. But if you want to create code for a new XML document type or output format, the existing infrastructure of docbook2X may be able to help you. For example, if you want to convert a document in the W3C spec DTD to Texinfo, you can write a XSLT stylesheet that outputs a document conformant to the Texi-XML, and run that through `db2x_texixml' to get your Texinfo pages. Writing the said XSLT stylesheet should not be any more difficult than if you were to write a stylesheet for HTML output, in fact probably even easier. An alternative approach is to convert the source document to DocBook first, then apply docbook2X conversion afterwards. The stylesheet reference documentation in docbook2X uses this technique: the documentation embedded in the XSLT stylesheets is first extracted into a DocBook document, then that is converted to Texinfo. This approach obviously is not ideal if the source document does not map well into DocBook, but it does allow you to use the standard DocBook HTML and XSL-FO stylesheets to format the source document with little effort. If you want, on the other hand, to get troff output but using a different macro set, you will have to rewrite both the stylesheets and the post-processor (performing the function of `db2x_manxml' but with a different macro set). In this case some of the code in `db2x_manxml' may be reused, and you can certainly reuse `utf8trans' and the provided roff character maps.  File: docbook2X.info, Node: Performance analysis, Next: How docbook2X is tested, Prev: FAQ, Up: Top 7 Performance analysis ********************** The performance of docbook2X, and most other DocBook tools(1) can be summed up in a short phrase: _they are slow_. On a modern computer producing only a few man pages at a time, with the right software -- namely, libxslt as the XSLT processor -- the DocBook tools are fast enough. But their slowness becomes a hindrance for generating hundreds or even thousands of man pages at a time. The author of docbook2X encounters this problem whenever he tries to do automated tests of the docbook2X package. Presented below are some actual benchmarks, and possible approaches to efficient DocBook to man pages conversion. *docbook2X running times on 2157 refentry documents* Step Time for all pages Avg. time per page DocBook to Man-XML 519.61s 0.24s Man-XML to man-pages 383.04s 0.18s roff character mapping 6.72s 0.0031s Total 909.37s 0.42s The above benchmark was run on 2157 documents coming from the doclifter (http://www.catb.org/~esr/doclifter/) man-page-to-DocBook conversion tool. The man pages come from the section 1 man pages installed in the author's Linux system. The XML files total 44.484 MiB, and on average are 20.6KiB long. The results were obtained using the test script in `test/mass/test.pl', using the default man-page conversion options. The test script employs the obvious optimizations, such as only loading once the XSLT processor, the man-pages stylesheet, `db2x_manxml' and `utf8trans'. Unfortunately, there does not seem to be obvious ways that the performance can be improved, short of re-implementing the tranformation program in a tight programming language such as C. Some notes on possible bottlenecks: * Character mapping by `utf8trans' is very fast compared to the other stages of the transformation. Even loading `utf8trans' separately for each document only doubles the running time of the character mapping stage. * Even though the XSLT processor is written in C, XSLT processing is still comparatively slow. It takes double the time of the Perl script(2) `db2x_manxml', even though the XSLT portion and the Perl portion are processing documents of around the same size(3) (DocBook `refentry' documents and Man-XML documents). In fact, profiling the stylesheets shows that a significant amount of time is spent on the localization templates, in particular the complex XPath navigation used there. An obvious optimization is to use XSLT keys for the same functionality. However, when that is implemented, the author found that the time used for _setting up keys_ dwarfs the time savings from avoiding the complex XPath navigation. It adds an extra 10s to the processing time for the 2157 documents. Upon closer examination of the libxslt source code, XSLT keys are seen to be implemented rather inefficiently: _each_ key pattern X causes the entire input document to be traversed once by evaluating the XPath `//X'! * Perhaps a C-based XSLT processor written with the best performance in mind (libxslt is not particularly the most efficiently coded) may be able to achieve better conversion times, without losing all the nice advantages of XSLT-based tranformation. Or failing that, one can look into efficient, stream-based transformations (STX (http://stx.sourceforge.net/)). ---------- Footnotes ---------- (1) with the notable exception of the docbook-to-man tool (http://packages.debian.org/unstable/text/docbook-to-man) based on the `instant' stream processor (but this tool has many correctness problems) (2) From preliminary estimates, the Pure-XSLT solution takes only slightly longer at this stage: .22s per page (3) Of course, conceptually, DocBook processing is more complicated. So these timings also give us an estimate of the cost of DocBook's complexity: twice the cost over a simpler document type, which is actually not too bad.  File: docbook2X.info, Node: How docbook2X is tested, Next: To-do list, Prev: Performance analysis, Up: Top 8 How docbook2X is tested ************************* The testing of the process of converting from DocBook to man pages, or Texinfo, is complicated by the fact that a given input (the DocBook document) usually does not have one specific, well-defined output. Variations on the output are allowed for the result to look "nice". When docbook2X was in the early stages of development, the author tested it simply by running some sample DocBook documents through it, and visually inspecting the output. Clearly, this procedure is not scaleable for testing a large number of documents. In the later 0.8.X versions of docbook2X, the testing has been automated as much as possible. The testing is implemented by heuristic checks on the output to see if it comprises a "good" man page or Texinfo file. These are the checks in particular: 1. Validation of the Man-XML or Texi-XML output, from the first stage, XSLT stylesheets, against the XML DTDs defining the formats. 2. Running groff(1) and makeinfo(1) on the output, and noting any errors or warnings from those programs. 3. Other heuristic checks on the output, implemented by a Perl script. Here, spurious blank lines, uncollapsed whitespace in the output that would cause a bad display are checked. There are about 8000 test documents, mostly `refentry' documents, that can be run against the current version of docbook2X. A few of them have been gathered by the author from various sources and test cases from bug reports. The majority come from using doclifter (http://www.catb.org/~esr/doclifter/) on existing man pages. Most pages pass the above tests. To run the tests, go to the `test/' directory in the docbook2X distribution. The command `make check' will run some tests on a few documents. For testing using doclifter, first generate the DocBook XML sources using doclifter, then take a look at the `test/mass/test.pl' testing script and run it. Note that a small portion of the doclifter pages will fail the tests, because they do not satisfy the heuristic tests (but are otherwise correct), or, more commonly, the source coming from the doclifter heuristic up-conversion has errors.  File: docbook2X.info, Node: To-do list, Next: Release history, Prev: How docbook2X is tested, Up: Top 9 To-do list ************ With regards to DocBook support: * `qandaset' table of contents Perhaps allow `qandadiv' elements to be nodes in Texinfo. * `olink' (do it like what the DocBook XSL stylesheets do) * `synopfragmentref' * Man pages should support `qandaset', `footnote', `mediaobject', `bridgehead', `synopfragmentref' `sidebar', `msgset', `procedure' (and there's more). * Some DocBook 4.0 stuff: e.g. `methodsynopsis'. On the other hand adding the DocBook 4.2 stuff shouldn't be that hard. * `programlisting' line numbering, and call-out bugs specified using `area'. Seems to need XSLT extensions though. * A template-based system for title pages, and `biblioentry'. * Setting column widths in tables are not yet supported in man pages, but they should be. * Support for typesetting mathematics. However, I have never seen any man pages or Texinfo manuals that require this, obviously because math looks horrible in ASCII text. For other work items, see the `limitations' or `bugs' section in the individual tools' reference pages. Other work items: * Implement tables in pure XSLT. Probably swipe the code that is in the DocBook XSL stylesheets to do so. * Many stylesheet templates are still undocumented. * Write documentation for Man-XML and Texi-XML. Write a smaller application (smaller than DocBook, that is!) of Man-XML and/or Texi-XML (e.g. for W3C specs). A side benefit is that we can identify any bugs or design misfeatures that are not noticed in the DocBook application. * Need to go through the stylesheets and check/fill in any missing DocBook functionality. Make a table outlining what part of DocBook we support. For example, we have to check that each attribute is actually supported for an element that we claim to support, or else at least raise a warning to the user when that attribute is used. Also some of the DocBook elements are not rendered very nicely even when they are supported. * Fault-tolerant, complete error handling. * Full localization for the output, as well as the messages from docbook2X programs. (Note that we already have internationalization for the output.)  File: docbook2X.info, Node: Release history, Next: Design notes, Prev: To-do list, Up: Top 10 Release history ****************** *docbook2X 0.8.8. * * Errors in the Man-XML and Texi-XML DTD were fixed. These DTDs are now used to validate the output coming out of the stylesheets, as part of automated testing. (Validation provides some assurance that the result of the conversions are correct.) * Several rendering errors were fixed after they had been discovered through automated testing. * Two HTML files in the docbook2X documentation were accidentally omitted in the last release. They have been added. * The pure-XSLT-based man-page conversion now supports table markup. The implemented was copied from the one by Michael Smith in the DocBook XSL stylesheets. Many thanks! * As requested by Daniel Leidert, the man-pages stylesheets now support the `segmentedlist', `segtitle' and `seg' DocBook elements. * As suggested by Matthias Kievermagel, docbook2X now supports the `code' element. *docbook2X 0.8.7. * * Some stylistic improvements were made to the man-pages output. This includes fixing a bug that, in some cases, caused an extra blank line to occur after lists in man pages. * There is a new value `utf-8//TRANSLIT' for the `--encoding' option to `db2x_manxml' and `db2x_texixml'. * Added `-m' to `utf8trans' for modifying (a large number of) files in-place. * Added a section to the documentation discussing conversion performance. There is also a new test script, `test/mass/test.pl' that can exercise docbook2X by converting many documents at one time, with a focus on achieving the fastest conversion speed. * The documentation has also been improved in several places. Most notably, the docbook2X(1) man page has been split into two much more detailed man pages explaining man-page conversion and Texinfo conversion separately, along with a reference of stylesheet parameters. The documentation has also been re-indexed (finally!) Also, due to an oversight, the last release omitted the stylesheet reference documentation. They are now included again. * Craig Ruff's patches were not integrated correctly in the last release; this has been fixed. * By popular demand, man-page conversion can also be done with XSLT alone -- i.e. no Perl scripts or compiling required, just a XSLT processor. If you want to convert with pure XSLT, invoke the XSLT stylesheet in `xslt/backend/db2x_manxml.xsl' in lieu of the `db2x_manxml' Perl script. * Make the `xmlcharmap2utf8trans' script (convert XSLT 2.0 character maps to character maps in utf8trans format) really work. *docbook2X 0.8.6. * * Added rudimentary support for `entrytbl' in man pages; patch by Craig Ruff. * Added template for `personname'; patch by Aaron Hawley. * Fix a build problem that happened on IRIX; patch by Dirk Tilger. * Better rendering of man pages in general. Fixed an incompatibility with Solaris troff of some generated man pages. * Fixed some minor bugs in the Perl wrapper scripts. * There were some fixes to the Man-XML and Texi-XML document types. Some of these changes are backwards-incompatible with previous docbook2X releases. In particular, Man-XML and Texi-XML now have their own XML namespaces, so if you were using custom XSLT stylesheets you will need to add the appropriate namespace declarations. *docbook2X 0.8.5. * * Fixed a bug, from version 0.8.4, with the generated Texinfo files not setting the Info directory information correctly. (This is exactly the patch that was on the docbook2X Web site.) * Fixed a problem with `db2x_manxml' not calling `utf8trans' properly. * Added heavy-duty testing to the docbook2X distribution. *docbook2X 0.8.4. * * There is now an _experimental_ implementation of `db2x_manxml' and `db2x_texixml' using pure XSLT, for those who can't use the Perl one for whatever reason. See the `xslt/backend/' directory. Do not expect this to work completely yet. In particular, tables are not yet available in man pages. (They are, of course, still available in the Perl implementation.) * Texinfo conversion does not require XSLT extensions anymore! See *Note Design notes: the elimination of XSLT extensions: Design notes; the elimination of XSLT extensions. for the full story. As a consequence, `db2x_xsltproc' has been rewritten to be a Perl wrapper script around the stock xsltproc(1). * The `-S' option to `db2x_xsltproc' no longer uses libxml's hackish "SGML DocBook" parser, but now calls sgml2xml(1). The corresponding long option has been renamed to `--sgml' from `--sgml-docbook'. * Fixed a heap of bugs -- that caused invalid output -- in the XSLT stylesheets, `db2x_manxml' and `db2x_texixml'. Some features such as `cmdsynopsis' and `funcsynopsis' are rendered more nicely. * Man-XML and Texi-XML now have DTDs -- these are useful when writing and debugging stylesheets. * Added a `--plaintext' option to `db2x_texixml'. * Updates to the docbook2X manual. Stylesheet documentation is in. *docbook2X 0.8.3. * * Incorporated Michael Smith's much-expanded roff character maps. * There are some improvements to the stylesheets themselves, here and there. Also I made the Texinfo stylesheets adapt to the XSLT processor automatically (with regards to the XSLT extensions). This might be of interest to anybody wanting to use the stylesheets with some other XSLT processor (especially SAXON). * Fixed a couple of bugs that prevented docbook2X from working on Cygwin. * Fixed a programming error in `utf8trans' that caused it to segfault. At the same time, I rewrote parts of it to make it more efficient for large character maps (those with more than a thousand entries). * The Perl component of docbook2X has switched from using libxml-perl (a SAX1 interface) to XML-SAX (a SAX2 interface). I had always wanted to do the switch since libxml-perl is not maintained, but the real impetus this time is that XML-SAX has a pure Perl XML parser. If you have difficulties building `XML::Parser' on Cygwin, like I did, the Perl component will automatically fall back on the pure Perl parser. *docbook2X 0.8.2. * * Added support for tables in man pages. Almost all table features that can be supported with `tbl' will work. The rest will be fixed in a subsequent release. * Copied the "gentext" stuff over from Norman Walsh's XSL stylesheets. This gives (incomplete) localizations for the same languages that are supported by the Norman Walsh's XSL stylesheets. Although incomplete, they should be sufficient for localized man-page output, for which there are only a few strings like "Name" and "Synopsis" that need to be translated. If you do make non-English man pages, you will need to revise the localization files; please send patches to fix them afterwards. * Rendering of bibliography, and other less common DocBook elements is broken. Actually, it was probably also slightly broken before. Some time will be needed to go through the stylesheets to check/document everything in it and to add anything that is still missing. * Added `--info' option to `db2x_texixml', to save typing the `makeinfo' command. * Rename `--stringparam' option in `db2x_xsltproc' to `--string-param', though the former option name is still accepted for compatibility. * Added the stylesheet for generating the XSLT reference documentation. But the reference documentation is not integrated into the main docbook2X documentation yet. * docbook2X no longer uses SGML-based tools to build. HTML documentation is now built with the DocBook XSL stylesheets. * Changed the license of this package to the MIT license. This is in case someone wants to copy snippets of the XSLT stylesheets, and requiring the resulting stylesheet to be GPL seems too onerous. Actually there is no real loss since no one wants to hide XSLT source anyway. * Switched to a newer version of autoconf. * Fixes for portability (to non-Linux OSes). * A number of small rendering bug fixes, as usual. *docbook2X 0.8.1. * * Bug fixes. * Texinfo menu generation has been improved: the menus now look almost as good as human-authored Texinfo pages and include detailed node listings (`@detailmenu') also. * Added option to process XInclude in `db2x_xsltproc' just like standard `xsltproc'. *docbook2X 0.8.0. * * Moved `docbook2man-spec.pl' to a sister package, docbook2man-sgmlspl, since it seems to be used quite a lot. * There are now XSLT stylesheets for man page conversion, superceding the `docbook2manxml'. `docbook2manxml' had some neat code in it, but I fear maintaining two man-page converters will take too much time in the future, so I am dropping it now instead of later. * Fixed build errors involving libxslt headers, etc. that plagued the last release. The libxslt wrapper (name changed to `db2x_xsltproc', formerly called `docbook2texi-libxslt') has been updated for the recent libxslt changes. Catalog support working. * Transcoding output to non-UTF-8 charsets is automatic. * Made some wrapper scripts for the two-step conversion process. *docbook2X 0.7.0. * * More bug squashing and features in XSLT stylesheets and Perl scripts. Too many to list. * Added `docbook2texi-libxslt', which uses libxslt. Finally, no more Java is necessary. * Added a C-based tool to translate UTF-8 characters to arbitrary (byte) sequences, to avoid having to patch `recode' every time the translation changes. However, Christoph Spiel has ported the recode utf8..texi patch to GNU recode 3.6 if you prefer to use recode. * As usual, the documentation has been improved. The documentation for the XSLT stylesheets can be extracted automatically. (Caveat: libxslt has a bug which affects this process, so if you want to build this part of the documentation yourself you must use some other XSLT processor. There is no `jrefentry' support in docbook2X yet, so the reference is packaged in HTML format; this will change in the next release, hopefully.) * Build system now uses autoconf and automake. *docbook2X 0.6.9. * * Removed old unmaintained code such as `docbook2man', `docbook2texi'. Moved Perl scripts to `perl/' directory and did some renaming of the scripts to saner names. * Better make system. * Debugged, fixed the XSLT stylesheets more and added libxslt invocation. * Cut down the superfluity in the documentation. * Fixed other bugs in `docbook2manxml' and the Texi-XML, Man-XML tools. *docbook2X 0.6.1. * * `docbook2man-spec.pl' has an option to strip or not strip letters in man page section names, and xref may now refer to `refsectN'. I have not personally tested these options, but loosing them in the interests of release early and often. * Menu label quirks, `paramdef' non-conformance, and vertical simplelists with multiple columns fixed in `docbook2texixml'. * Brought `docbook2manxml' up to speed. It builds its own documentation now. * Arcane bugs in `texi_xml' and `man_xml' fixed. *docbook2X 0.6.0. * * Introduced Texinfo XSLT stylesheets. * Bugfixes to `texi_xml' and `docbook2texixml'. * Produced patch to GNU `recode' which maps Unicode characters to the corresponding Texinfo commands or characters. It is in `ucs2texi.patch'. I have already sent this patch to the maintainer of `recode'. * Updated documentation. *docbook2X 0.5.9. * * Both `docbook2texixml' transform into intermediate XML format which closely resembles the Texinfo format, and then another tool is used to convert this XML to the actual format. This scheme moves all the messy whitespace, newline, and escaping issues out of the actual transformation code. Another benefit is that other stylesheets (systems), can be used to do the transformation, and it serves as a base for transformation to Texinfo from other DTDs. * Texinfo node handling has been rewritten. Node handling used to work back and forth between IDs and node names, which caused a lot of confusion. The old code also could not support DocBook `set's because it did not keep track of the Texinfo file being processed. As a consequence, the bug in which `docbook2texixml' did not output the `@setinfofile' is fixed. `xreflabel' handling is also sane now. In the new scheme, elements are referred to by their ID (auto-generated if necessary). The Texinfo node names are generated before doing the actual transformation, and subsequent `texinode_get' simply looks up the node name when given an element. * The stylesheet architecture allows internationalization to be implemented easily, although it is not done yet. * The (non-XML-based) old code is still in the CVS tree, but I'm not really interested in maintaining it. I'll still accept patches to them, and probably will keep them around for reference and porting purposes. There are some changes to the old code base in this new release; see old change log for details. * The documentation has been revised. * I am currently rewriting docbook2man using the same transform-to-XML technique. It's not included in 0.5.9 simply because I wanted to get the improved Texinfo tool out quickly. Additional XSLT stylesheets will be written.  File: docbook2X.info, Node: Design notes, Next: Package installation, Prev: Release history, Up: Top 11 Design notes *************** Lessons learned: * Think four times before doing stream-based XML processing, even though it appears to be more efficient than tree-based. Stream-based processing is usually more difficult. But if you have to do stream-based processing, make sure to use robust, fairly scaleable tools like `XML::Templates', _not_ `sgmlspl'. Of course it cannot be as pleasant as tree-based XML processing, but examine `db2x_manxml' and `db2x_texixml'. * Do not use `XML::DOM' directly for stylesheets. Your "stylesheet" would become seriously unmanageable. Its also extremely slow for anything but trivial documents. At least take a look at some of the XPath modules out there. Better yet, see if your solution really cannot use XSLT. A C/C++-based implementation of XSLT can be fast enough for many tasks. * Avoid XSLT extensions whenever possible. I don't think there is anything wrong with them intrinsically, but it is a headache to have to compile your own XSLT processor. (libxslt is written in C, and the extensions must be compiled-in and cannot be loaded dynamically at runtime.) Not to mention there seems to be a thousand different set-ups for different XSLT processors. * Perl is not as good at XML as it's hyped to be. SAX comes from the Java world, and its port to Perl (with all the object-orientedness, and without adopting Perl idioms) is awkward to use. Another problem is that Perl SAX does not seem to be well-maintained. The implementations have various bugs; while they can be worked around, they have been around for such a long time that it does not inspire confidence that the Perl XML modules are reliable software. It also seems that no one else has seriously used Perl SAX for robust applications. It seems to be unnecessarily hard to certain tasks such as displaying error diagnostics on its input, processing large documents with complicated structure. * Do not be afraid to use XML intermediate formats (e.g. Man-XML and Texi-XML) for converting to other markup languages, implemented with a scripting language. The syntax rules for these formats are made for authoring by hand, not machine generation; hence a conversion using tools designed for XML-to-XML conversion, requires jumping through hoops. You might think that we could, instead, make a separate module that abstracts all this complexity from the rest of the conversion program. For example, there is nothing stopping a XSLT processor from serializing the output document as a text document obeying the syntax rules for man pages or Texinfo documents. Theoretically you would get the same result, but it is much harder to implement. It is far easier to write plain text manipulation code in a scripting language than in Java or C or XSLT. Also, if the intermediate format is hidden in a Java class or C API, output errors are harder to see. Whereas with the intermediate-format approach, we can visually examine the textual output of the XSLT processor and fix the Perl script as we go along. Some XSLT processors support scripting to go beyond XSLT functionality, but they are usually not portable, and not always easy to use. Therefore, opt to do two-pass processing, with a standalone script as the second stage. (The first stage using XSLT.) Finally, another advantage of using intermediate XML formats processed by a Perl script is that we can often eliminate the use of XSLT extensions. In particular, all the way back when XSLT stylesheets first went into docbook2X, the extensions related to Texinfo node handling could have been easily moved to the Perl script, but I didn't realize it! I feel stupid now. If I had known this in the very beginning, it would have saved a lot of development time, and docbook2X would be much more advanced by now. Note that even the man-pages stylesheet from the DocBook XSL distribution essentially does two-pass processing just the same as the docbook2X solution. That stylesheet had formerly used one-pass processing, and its authors probably finally realized what a mess that was. * Design the XML intermediate format to be easy to use from the standpoint of the conversion tool, and similar to how XML document types work in general. e.g. abstract the paragraphs of a document, rather than their paragraph _breaks_ (the latter is typical of traditional markup languages, but not of XML). * I am quite impressed by some of the things that people make XSLT 1.0 do. Things that I thought were impossible, or at least unworkable without using "real" scripting language. (`db2x_manxml' and `db2x_texixml' fall in the category of things that can be done in XSLT 1.0 but inelegantly.) * Internationalize as soon as possible. That is much easier than adding it in later. Same advice for build system. * I would suggest against using build systems based on Makefiles or any form of automake. Of course it is inertia that prevents people from switching to better build systems. But also consider that while Makefile-based build systems can do many of the things newer build systems are capable of, they often require too many fragile hacks. Developing these hacks take too much time that would be better spent developing the program itself. Alas, better build systems such as scons were not available when docbook2X was at an earlier stage. It's too late to switch now. * Writing good documentation takes skill. This manual has has been revised substantially at least four times (1), with the author consciously trying to condense information each time. * Table processing in the pure-XSLT man-pages conversion is convoluted -- it goes through HTML(!) tables as an intermediary. That is the same way that the DocBook XSL stylesheets implement it (due to Michael Smith), and I copied the code there almost verbatim. I did it this way to save myself time and energy re-implementing tables conversion _again_. And Michael Smith says that going through HTML is better, because some varieties of DocBook allow the HTML table model in addition to the CALS table model. (I am not convinced that this is such a good idea, but anyway.) Then HTML tables in DocBook can be translated to man pages too without much more effort. Is this inefficient? Probably. But that's what you get if you insist on using pure XSLT. The Perl implementation of docbook2X. already supported tables conversion for two years prior. * The design of `utf8trans' is not the best. It was chosen to simplify implementations while being efficient. A more general design, while still retaining efficiency, is possible, which I describe below. However, unfortunately, at this point changing `utf8trans' will be too disruptive to users with little gain in functionality. Instead of working with characters, we should work with byte strings. This means that, if all input and output is in UTF-8, with no escape sequences, then UTF-8 decoding or encoding is not necessary at all. Indeed the program becomes agnostic to the character set used. Of course, multi-character matches become possible. The translation map will be an unordered list of key-value pairs. The key and value are both arbitrary-length byte strings, with an explicit length attached (so null bytes in the input and output are retained). The program would take the translation map, and transform the input file by matching the start of input, seen as a sequence of bytes, against the keys in the translation map, greedily. (Since the matching is greedy, the translation keys do not need to be restricted to be prefix-free.) Once the longest (in byte length) matching key is found, the corresponding value (another byte string) is substituted in the output, and processing repeats (until the input is finished). If, on the other hand, no match is found, the next byte in the input file is copied as-is, and processing repeats at the next byte of input. Since bytes are 8 bits and the key strings are typically very short (up to 3 bytes for a Unicode BMP character encoded in UTF-8), this algorithm can be implemented with radix search. It would be competitive, in both execution time and space, with character codepoint hashing and sparse multi-level arrays, the primary techniques for implementing Unicode _character_ translation. (`utf8trans' is implemented using sparse multi-level arrays.) One could even try to generalize the radix searching further, so that keys can include wildcard characters, for example. Taken to the extremes, the design would end up being a regular expressions processor optimized for matching many strings with common prefixes. ---------- Footnotes ---------- (1) This number is probably inflated because of the so many design mistakes in the process.  File: docbook2X.info, Node: Package installation, Next: Concept index, Prev: Design notes, Up: Top Appendix A Package installation ******************************* * Menu: * Installation:: Package install procedure * Dependencies on other software:: Other software packages that docbook2X needs  File: docbook2X.info, Node: Installation, Next: Dependencies on other software, Up: Package installation A.1 Installation ================ After checking that you have the necessary prerequisites (*note Dependencies on other software::), unpack the tarball, then run `./configure', and then `make', `make install', as usual. *Note* If you intend to use only the pure XSLT version of docbook2X, then you do not need to compile or build the package at all. Simply unpack the tarball, and point your XSLT processor to the XSLT stylesheets under the `xslt/' subdirectory. (The last `make install' step, to install the files of the package onto the filesystem, is optional. You may use docbook2X from its own directory after building it, although in that case, when invoking docbook2X, you will have to specify some paths manually on the command-line.) You may also want to run `make check' to do some checks that the package is working properly. Typing `make -W docbook2X.xml man texi' in the `doc/' directory will rebuild docbook2X's own documentation, and can serve as an additional check. You need GNU make to build docbook2X properly. If you are using the CVS version, you will also need the autoconf and automake tools, and must run `./autogen.sh' first. But see also the note below about the CVS version. If you want to (re-)build HTML documentation (after having installed Norman Walsh's DocBook XSL stylesheets), pass `--with-html-xsl' to `./configure'. You do not really need this, since docbook2X releases already contain pre-built HTML documentation. Some other packages also call their conversion programs `docbook2man' and `docbook2texi'; you can use the `--program-transform-name' parameter to `./configure' if you do not want docbook2X to clobber over your existing `docbook2man' or `docbook2texi'. If you are using a Java-based XSLT processor, you need to use pass `--with-xslt-processor=saxon' for SAXON, or `--with-xslt-processor=xalan-j' for Xalan-Java. (The default is for libxslt.) In addition, since the automatic check for the installed JARs is not very intelligent, you will probably need to pass some options to `./configure' to tell it where the JARs are. See `./configure --help' for details. The docbook2X package supports VPATH builds (building in a location other than the source directory), but any newly generated documentation will not end up in the right place for installation and redistribution. Cross compilation is not supported at all. A.1.1 Installation problems --------------------------- Q: Where is `XML::Handler::SGMLSpl'? A: It's included in the docbook2X package. If Perl says it cannot find it, then that is a bug in the docbook2X distribution. Please report it. In older versions of docbook2X, the SGMLSpl module had to be installed, or specified manually on the Perl command line. That is no longer the case. Q: `db2x_xsltproc' tells me that `one input document is required' when building docbook2X. A: Use GNU make to build docbook2X (as opposed to BSD make). I could fix this incompatibility in the docbook2X make files, but some of the default automake rules have the same problem, so I didn't bother. Q: When docbook2X attempts to build its documentation, I get errors about "attempting to load network entity", etc. A: You will need to set up the XML catalogs for the DocBook XML DTDs correctly. This tells the XSLT processor where to find the DocBook DTDs on your system. Recent Linux distributions should already have this done for you. This error (or rather, warning) is harmless in the case of docbook2X documentation -- it does not actually require the DTD to build. But your other DocBook documents might (mainly because they use the ISO entities). libxml also understands SGML catalogs, but last time I tried it there was some bug that stopped it from working. Your Mileage May Vary. Q: I cannot build from CVS. A: If the problem is related to HTML files, then you must pass `--with-html-xsl' to `configure'. The problem is that the HTML files are automatically generated from the XML source and are not in CVS, but the Makefile still tries to install them. (This issue does not appear when building from release tarballs.) For other docbook2X problems, please also look at its main documentation.  File: docbook2X.info, Node: Dependencies on other software, Prev: Installation, Up: Package installation A.2 Dependencies on other software ================================== To use docbook2X you need: A reasonable Unix system, with Perl 5 docbook2X can work on Linux, FreeBSD, Solaris, and Cygwin on Windows. A C compiler is required to compile a small ANSI C program (`utf8trans'). XML-NamespaceSupport, XML-SAX, XML-Parser and XML-SAX-Expat (Perl modules) The last two are optional: they add a Perl interface to the C-based XML parser Expat. It is recommended that you install them anyway; otherwise, the fallback Perl-based XML parser makes docbook2X real slow. You can get all the Perl modules here: CPAN XML module listing (http://www.cpan.org/modules/by-category/11_String_Lang_Text_Proc/XML/). iconv If you are running Linux glibc, you already have it. Otherwise, see the GNU libiconv home page (http://www.gnu.org/software/libiconv/). XSLT 1.0 processor You have a choice of: libxslt See the libxml2, libxslt home page (http://xmlsoft.org/). SAXON See the SAXON home page (http://saxon.sourceforge.net/). Xalan-Java See the Xalan-Java home page (http://xml.apache.org/xalan-j/). For the Java-based processors (SAXON and Xalan-Java), you will also need(1) the Apache XML Commons (http://xml.apache.org/commons/) distribution. This adds XML catalogs support to any Java-based processor. Out of the three processors, libxslt is recommended. (I would have added support for other XSLT processors, but only these three seem to have proper XML catalogs support.) Unlike previous versions of docbook2X, these Java-based processors can work almost out-of-the-box. Also docbook2X no longer needs to compile XSLT extensions, so you if you use an OS distribution package of libxslt, you do not need the development versions of the library any more. DocBook XML DTD Make sure you set up the XML catalogs for the DTDs you install. The DocBook: The Definitive Guide website (http://www.docbook.org/) has more information. You may also need the SGML DTD if your documents are SGML rather than XML. Norman Walsh's DocBook XSL stylesheets See the Open DocBook Repository (http://docbook.sourceforge.net/). This is optional and is only used to build documentation in HTML format. In your XML catalog, point the URI in `doc/ss-html.xsl' to a local copy of the stylesheets. For all the items above, it will be easier for you to install the OS packaging of the software (e.g. Debian packages), than to install them manually. But be aware that sometimes the OS package may not be for an up-to-date version of the software. If you cannot satisfy all the prerequisites above (say you are on a vanilla Win32 system), then you will not be able to "build" docbook2X properly, but if you are knowledgeable, you can still salvage its parts (e.g. the XSLT stylesheets, which can be run alone). ---------- Footnotes ---------- (1) Strictly speaking this component is not required, but if you do not have it, you will almost certainly have your computer downloading large XML files from the Internet all the time, as portable XML files will not refer directly to cached local copies of the required files.  File: docbook2X.info, Node: Concept index, Prev: Package installation, Up: Top Index ***** [index] * Menu: * bugs <1>: Release history. (line 6) * bugs <2>: To-do list. (line 6) * bugs: FAQ. (line 6) * catalog <1>: Dependencies on other software. (line 41) * catalog <2>: FAQ. (line 110) * catalog <3>: db2x_xsltproc. (line 80) * catalog: The XSLT stylesheets. (line 6) * change log: Release history. (line 6) * character map <1>: utf8trans. (line 6) * character map: Character set conversion. (line 6) * character sets: Character set conversion. (line 6) * charsets: Character set conversion. (line 6) * compatibility <1>: db2x_texixml. (line 125) * compatibility: db2x_manxml. (line 128) * converting to man pages <1>: db2x_manxml. (line 6) * converting to man pages <2>: docbook2man wrapper script. (line 6) * converting to man pages <3>: Converting to man pages. (line 6) * converting to man pages: Quick start. (line 6) * converting to Texinfo <1>: db2x_texixml. (line 6) * converting to Texinfo <2>: docbook2texi wrapper script. (line 6) * converting to Texinfo <3>: Converting to Texinfo. (line 6) * converting to Texinfo: Quick start. (line 6) * correctness: How docbook2X is tested. (line 6) * customizing <1>: FAQ. (line 118) * customizing <2>: Converting to Texinfo. (line 20) * customizing: Converting to man pages. (line 19) * CVS: Installation. (line 28) * db2x_manxml: db2x_manxml. (line 6) * db2x_xsltproc <1>: db2x_xsltproc. (line 6) * db2x_xsltproc: The XSLT stylesheets. (line 6) * dependencies: Dependencies on other software. (line 6) * design: Design notes. (line 6) * DocBook <1>: Dependencies on other software. (line 57) * DocBook <2>: To-do list. (line 6) * DocBook <3>: sgml2xml-isoent. (line 6) * DocBook: Top. (line 6) * docbook2man: docbook2man wrapper script. (line 6) * docbook2texi: docbook2texi wrapper script. (line 6) * docbook2X package <1>: Dependencies on other software. (line 6) * docbook2X package: Installation. (line 6) * download: Top. (line 10) * efficiency: Performance analysis. (line 6) * encoding <1>: Character set conversion. (line 6) * encoding <2>: db2x_texixml. (line 6) * encoding: db2x_manxml. (line 6) * escapes <1>: utf8trans. (line 6) * escapes: Character set conversion. (line 6) * example usage <1>: docbook2texi wrapper script. (line 330) * example usage <2>: docbook2man wrapper script. (line 195) * example usage: Quick start. (line 6) * FAQ: FAQ. (line 6) * future: To-do list. (line 6) * groff: db2x_manxml. (line 128) * history <1>: Design notes. (line 6) * history: Release history. (line 6) * HTML documentation <1>: Dependencies on other software. (line 66) * HTML documentation: Installation. (line 34) * iconv <1>: Dependencies on other software. (line 25) * iconv <2>: FAQ. (line 54) * iconv: Character set conversion. (line 6) * installation: Installation. (line 6) * ISO entities: sgml2xml-isoent. (line 6) * libxslt <1>: Dependencies on other software. (line 30) * libxslt <2>: db2x_xsltproc. (line 6) * libxslt: The XSLT stylesheets. (line 6) * makeinfo: db2x_texixml. (line 6) * man pages <1>: db2x_manxml. (line 6) * man pages <2>: docbook2man wrapper script. (line 6) * man pages: Converting to man pages. (line 6) * Man-XML <1>: Design notes. (line 50) * Man-XML <2>: db2x_manxml. (line 6) * Man-XML: Converting to man pages. (line 6) * news: Release history. (line 6) * non-DocBook document type: FAQ. (line 133) * optimize: Performance analysis. (line 6) * other document types: FAQ. (line 133) * other output formats: FAQ. (line 133) * output directory <1>: db2x_texixml. (line 6) * output directory: db2x_manxml. (line 6) * performance: Performance analysis. (line 6) * Perl <1>: Dependencies on other software. (line 16) * Perl: Design notes. (line 33) * prerequisites: Dependencies on other software. (line 6) * problems <1>: Installation. (line 63) * problems: FAQ. (line 6) * pure XSLT <1>: Installation. (line 12) * pure XSLT <2>: The XSLT stylesheets. (line 13) * pure XSLT: Converting to man pages. (line 36) * re-encoding: Character set conversion. (line 6) * refentry <1>: FAQ. (line 31) * refentry: docbook2man wrapper script. (line 22) * release history: Release history. (line 6) * rendering: FAQ. (line 118) * SAXON <1>: Dependencies on other software. (line 30) * SAXON <2>: FAQ. (line 93) * SAXON: The XSLT stylesheets. (line 6) * SGML <1>: FAQ. (line 7) * SGML <2>: sgml2xml-isoent. (line 6) * SGML: db2x_xsltproc. (line 52) * sgml2xml-isoent: sgml2xml-isoent. (line 6) * speed: Performance analysis. (line 6) * stream processing: Design notes. (line 8) * stub pages: db2x_manxml. (line 6) * stylesheet parameters <1>: docbook2texi wrapper script. (line 49) * stylesheet parameters: docbook2man wrapper script. (line 55) * symbolic links: db2x_manxml. (line 6) * testing: How docbook2X is tested. (line 6) * Texi-XML <1>: Design notes. (line 50) * Texi-XML <2>: db2x_texixml. (line 6) * Texi-XML: Converting to Texinfo. (line 6) * Texinfo <1>: db2x_texixml. (line 6) * Texinfo <2>: docbook2texi wrapper script. (line 6) * Texinfo: Converting to Texinfo. (line 6) * Texinfo metadata: docbook2texi wrapper script. (line 229) * tips: FAQ. (line 6) * to-do: To-do list. (line 6) * transliteration <1>: utf8trans. (line 6) * transliteration: Character set conversion. (line 6) * tree processing: Design notes. (line 8) * Unicode <1>: utf8trans. (line 6) * Unicode: Character set conversion. (line 6) * UTF-8 <1>: utf8trans. (line 6) * UTF-8: Character set conversion. (line 6) * utf8trans <1>: utf8trans. (line 6) * utf8trans: Character set conversion. (line 6) * validation: How docbook2X is tested. (line 6) * web site: Top. (line 10) * Windows: Dependencies on other software. (line 9) * wishlist: To-do list. (line 6) * wrapper script <1>: docbook2texi wrapper script. (line 6) * wrapper script: docbook2man wrapper script. (line 6) * Xalan-Java <1>: Dependencies on other software. (line 30) * Xalan-Java: FAQ. (line 93) * XSLT extensions <1>: Design notes. (line 26) * XSLT extensions: db2x_xsltproc. (line 180) * XSLT processor <1>: db2x_xsltproc. (line 6) * XSLT processor: The XSLT stylesheets. (line 6) * XSLT stylesheets <1>: Converting to Texinfo. (line 6) * XSLT stylesheets: Converting to man pages. (line 6) * xsltproc: The XSLT stylesheets. (line 13)  Tag Table: Node: Top233 Node: Quick start2600 Node: Converting to man pages3645 Node: docbook2man wrapper script5774 Node: db2x_manxml12483 Node: Converting to Texinfo17356 Node: docbook2texi wrapper script18963 Node: db2x_texixml29900 Node: The XSLT stylesheets36550 Ref: Convert to man pages using pure-XSLT db2x_manxml37284 Ref: Convert to Texinfo using Pure-XSLT db2x_texixml37531 Node: db2x_xsltproc38370 Node: sgml2xml-isoent45254 Node: Character set conversion46832 Node: utf8trans49207 Node: FAQ51836 Node: Performance analysis58637 Ref: Performance analysis-Footnote-162333 Ref: Performance analysis-Footnote-262539 Ref: Performance analysis-Footnote-362654 Node: How docbook2X is tested62882 Node: To-do list65201 Node: Release history67615 Ref: docbook2X 0_8_867752 Ref: docbook2X 0_8_768691 Ref: docbook2X 0_8_670428 Ref: docbook2X 0_8_571214 Ref: docbook2X 0_8_471581 Ref: docbook2X 0_8_372999 Ref: docbook2X 0_8_274194 Ref: docbook2X 0_8_176225 Ref: docbook2X 0_8_076542 Ref: docbook2X 0_7_077377 Ref: docbook2X 0_6_978404 Ref: docbook2X 0_6_178850 Ref: docbook2X 0_6_079404 Ref: docbook2X 0_5_979778 Node: Design notes81754 Ref: Design notes; the elimination of XSLT extensions85417 Ref: Design notes-Footnote-191207 Node: Package installation91303 Node: Installation91663 Ref: Installation problems94211 Node: Dependencies on other software96200 Ref: Dependencies on other software-Footnote-199368 Node: Concept index99650  End Tag Table docbook2X-0.8.8/doc/docbook2X.mxml0000644000175000017500000017274210572275336013627 00000000000000 NAMEdocbook2manConvert DocBook to man pagesSYNOPSISdocbook2man [options] xml-document DESCRIPTION docbook2man converts the given DocBook XML document into man pages. By default, the man pages will be output to the current directory. Only the refentry content in the DocBook document is converted. (To convert content outside of a refentry, stylesheet customization is required. See the docbook2X package for details.) The docbook2man command is a wrapper script for a two-step conversion process. See the section “CONVERSION PROCESS” below for details. OPTIONS The available options are essentially the union of the options from db2x_xsltproc(1) and db2x_manxml(1). Some commonly-used options are listed below: --encoding=encoding Sets the character encoding of the output. --string-param parameter=value Sets a stylesheet parameter (options that affect how the output looks). See “Stylesheet parameters” below for the parameters that can be set. --sgml Accept an SGML source document as input instead of XML. --solinks Make stub pages for alternate names for an output man page. STYLESHEET PARAMETERSuppercase-headingsBrief. Make headings uppercase?Default setting. 1 (boolean true) Headings in man page content should be or should not be uppercased. manvolnum-cite-numeral-onlyBrief. Man page section citation should use only the numberDefault setting. 1 (boolean true) When citing other man pages, the man-page section is either given as is, or has the letters stripped from it, citing only the number of the section (e.g. section 3x becomes 3). This option specifies which style. quotes-on-literalsBrief. Display quotes on literal elements?Default setting. 0 (boolean false) If true, render literal elements with quotes around them. show-commentsBrief. Display comment elements?Default setting. 1 (boolean true)If true, comments will be displayed, otherwise they are suppressed. Comments here refers to the comment element, which will be renamed remark in DocBook V4.0, not XML comments (<-- like this -->) which are unavailable. function-parensBrief. Generate parentheses after a function?Default setting. 0 (boolean false)If true, the formatting of a <function> element will include generated parenthesis. xref-on-linkBrief. Should link generate a cross-reference?Default setting. 1 (boolean true) Man pages cannot render the hypertext links created by link. If this option is set, then the stylesheet renders a cross reference to the target of the link. (This may reduce clutter). Otherwise, only the content of the link is rendered and the actual link itself is ignored. header-3Brief. Third header textDefault setting. (blank) Specifies the text of the third header of a man page, typically the date for the man page. If empty, the date content for the refentry is used. header-4Brief. Fourth header textDefault setting. (blank) Specifies the text of the fourth header of a man page. If empty, the refmiscinfo content for the refentry is used. header-5Brief. Fifth header textDefault setting. (blank) Specifies the text of the fifth header of a man page. If empty, the ‘manual name’, that is, the title of the book or reference container is used. default-manpage-sectionBrief. Default man page sectionDefault setting. 1 The source document usually indicates the sections that each man page should belong to (with manvolnum in refmeta). In case the source document does not indicate man-page sections, this option specifies the default. custom-localization-fileBrief. URI of XML document containing custom localization dataDefault setting. (blank) This parameter specifies the URI of a XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. The text translations pointed to by this parameter always override the default text translations (from the internal parameter localization-file). If a particular translation is not present here, the corresponding default translation is used as a fallback. This parameter is primarily for changing certain punctuation characters used in formatting the source document. The settings for punctuation characters are often specific to the source document, but can also be dependent on the locale. To not use custom text translations, leave this parameter as the empty string. custom-l10n-dataBrief. XML document containing custom localization dataDefault setting. document($custom-localization-file) This parameter specifies the XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. This parameter is internal to the stylesheet. To point to an external XML document with a URI or a file name, you should use the custom-localization-file parameter instead. However, inside a custom stylesheet (not on the command-line) this paramter can be set to the XPath expression document(''), which will cause the custom translations directly embedded inside the custom stylesheet to be read. author-othername-in-middleBrief. Is othername in author a middle name?Default setting. 1If true, the othername of an author appears between the firstname and surname. Otherwise, othername is suppressed. EXAMPLES$ docbook2man --solinks manpages.xml $ docbook2man --solinks --encoding=utf-8//TRANSLIT manpages.xml $ docbook2man --string-param header-4="Free Recode 3.6" document.xml CONVERSION PROCESSConverting to man pages DocBook documents are converted to man pages in two steps: 1. The DocBook source is converted by a XSLT stylesheet into an intermediate XML format, Man-XML. Man-XML is simpler than DocBook and closer to the man page format; it is intended to make the stylesheets’ job easier. The stylesheet for this purpose is in xslt/man/docbook.xsl. For portability, it should always be referred to by the following URI: http://docbook2x.sourceforge.net/latest/xslt/man/docbook.xsl Run this stylesheet with db2x_xsltproc(1). Customizing. You can also customize the output by creating your own XSLT stylesheet — changing parameters or adding new templates — and importing xslt/man/docbook.xsl. 2. Man-XML is converted to the actual man pages by db2x_manxml(1). The docbook2man command does both steps automatically, but if any problems occur, you can see the errors more clearly if you do each step separately: $ db2x_xsltproc -s man mydoc.xml -o mydoc.mxml $ db2x_manxml mydoc.mxml Options to the conversion stylesheet are described in the man-pages stylesheets reference. Pure XSLT conversion. An alternative to the db2x_manxml Perl script is the XSLT stylesheet in xslt/backend/db2x_manxml.xsl. This stylesheet performs a similar function of converting Man-XML to actual man pages. It is useful if you desire a pure XSLT solution to man-page conversion. Of course, the quality of the conversion using this stylesheet will never be as good as the Perl db2x_manxml, and it runs slower. In particular, the pure XSLT version currently does not support tables in man pages, but its Perl counterpart does. Character set conversion When translating XML to legacy ASCII-based formats with poor support for Unicode, such as man pages and Texinfo, there is always the problem that Unicode characters in the source document also have to be translated somehow. A straightforward character set conversion from Unicode does not suffice, because the target character set, usually US-ASCII or ISO Latin-1, do not contain common characters such as dashes and directional quotation marks that are widely used in XML documents. But document formatters (man and Texinfo) allow such characters to be entered by a markup escape: for example, \(lq for the left directional quote . And if a markup-level escape is not available, an ASCII transliteration might be used: for example, using the ASCII less-than sign < for the angle quotation mark . So the Unicode character problem can be solved in two steps: 1. utf8trans(1), a program included in docbook2X, maps Unicode characters to markup-level escapes or transliterations. Since there is not necessarily a fixed, official mapping of Unicode characters, utf8trans can read in user-modifiable character mappings expressed in text files and apply them. (Unlike most character set converters.) In charmaps/man/roff.charmap and charmaps/man/texi.charmap are character maps that may be used for man-page and Texinfo conversion. The programs db2x_manxml(1) and db2x_texixml(1) will apply these character maps, or another character map specified by the user, automatically. 2. The rest of the Unicode text is converted to some other character set (encoding). For example, a French document with accented characters (such as é) might be converted to ISO Latin 1. This step is applied after utf8trans character mapping, using the iconv(1) encoding conversion tool. Both db2x_manxml(1) and db2x_texixml(1) can call iconv(1) automatically when producing their output. FILES/usr/local/share/docbook2X/xslt/man/docbook.xsl
/usr/local/share/docbook2X/xslt/backend/db2x_manxml.xsl
/usr/local/share/docbook2X/xslt/catalog.xml
/usr/local/share/docbook2X/charmaps/roff.charmap
/usr/local/share/docbook2X/charmaps/roff.charmap.xml
The above files are distributed and installed by the docbook2X package. NOTES The docbook2man or the docbook2texi command described in this manual page come from the docbook2X package. It should not be confused with the command of the same name from the obsoleted docbook-utils package. LIMITATIONS Internally there is one long pipeline of programs which your document goes through. If any segment of the pipeline fails (even trivially, like from mistyped program options), the resulting errors can be difficult to decipher — in this case, try running the components of docbook2X separately. AUTHOR Steve Cheng <stevecheng@users.sourceforge.net>. SEE ALSOdb2x_xsltproc(1), db2x_manxml(1), utf8trans(1) The docbook2X manual (in Texinfo or HTML format) fully describes how to convert DocBook to man pages and Texinfo. Up-to-date information about this program can be found at the docbook2X Web site.
NAMEdb2x_manxmlMake man pages from Man-XMLSYNOPSISdb2x_manxml [options] [xml-document]DESCRIPTION db2x_manxml converts a Man-XML document into one or more man pages. They are written in the current directory. If xml-document is not given, then the document to convert is read from standard input. OPTIONS--encoding=encoding Select the character encoding used for the output files. The available encodings are those of iconv(1). The default encoding is us-ascii. The XML source may contain characters that are not representable in the encoding that you select; in this case the program will bomb out during processing, and you should choose another encoding. (This is guaranteed not to happen with any Unicode encoding such as UTF-8, but unfortunately not everyone is able to process Unicode texts.) If you are using GNU’s version of iconv(1), you can affix //TRANSLIT to the end of the encoding name to attempt transliterations of any unconvertible characters in the output. Beware, however, that the really inconvertible characters will be turned into another of those damned question marks. (Aren’t you sick of this?) The suffix //TRANSLIT applied to a Unicode encoding — in particular, utf-8//TRANSLIT — means that the output files are to remain in Unicode, but markup-level character translations using utf8trans are still to be done. So in most cases, an English-language document, converted using --encoding=utf-8//TRANSLIT will actually end up as a US-ASCII document, but any untranslatable characters will remain as UTF-8 without any warning whatsoever. (Note: strictly speaking this is not “transliteration”.) This method of conversion is a compromise over strict --encoding=us-ascii processing, which aborts if any untranslatable characters are encountered. Note that man pages and Texinfo documents in non-ASCII encodings (including UTF-8) may not be portable to older (non-internationalized) systems, which is why the default value for this option is us-ascii. To suppress any automatic character mapping or encoding conversion whatsoever, pass the option --encoding=utf-8. --list-files Write a list of all the output files to standard output, in addition to normal processing. --output-dir=dir Specify the directory where the output files are placed. The default is the current working directory. This option is ignored if the output is to be written to standard output (triggered by the option --to-stdout). --to-stdout Write the output to standard output instead of to individual files. If this option is used even when there are supposed to be multiple output documents, then everything is concatenated to standard output. But beware that most other programs will not accept this concatenated output. This option is incompatible with --list-files, obviously. --helpShow brief usage information and exit.--versionShow version and exit.Some man pages may be referenced under two or more names, instead of just one. For example, strcpy(3) and strncpy(3) often point to the same man page which describes the two functions together. Choose one of the following options to select how such man pages are to be generated: --symlinksFor each of all the alternate names for a man page, erect symbolic links to the file that contains the real man page content. --solinksGenerate stub pages (using .so roff requests) for the alternate names, pointing them to the real man page content.--no-linksDo not make any alternative names available. The man page can only be referenced under its principal name. This program uses certain other programs for its operation. If they are not in their default installed locations, then use the following options to set their location: --utf8trans-program=path, --utf8trans-map=charmapUse the character map charmap with the utf8trans(1) program, included with docbook2X, found under path.--iconv-program=pathThe location of the iconv(1) program, used for encoding conversions.NOTES The man pages produced should be compatible with most troff implementations and other tools that process man pages. Some backwards-compatible groff(1) extensions are used to make the output look nicer. AUTHOR Steve Cheng <stevecheng@users.sourceforge.net>. SEE ALSO The docbook2X manual (in Texinfo or HTML format) fully describes how to convert DocBook to man pages and Texinfo. Up-to-date information about this program can be found at the docbook2X Web site. The input to db2x_manxml is defined by the XML DTD present at dtd/Man-XML in the docbook2X distribution. NAMEdocbook2texiConvert DocBook to TexinfoSYNOPSISdocbook2texi [options] xml-document DESCRIPTION docbook2texi converts the given DocBook XML document into one or more Texinfo documents. By default, these Texinfo documents will be output to the current directory. The docbook2texi command is a wrapper script for a two-step conversion process. See the section “CONVERSION PROCESS” below for details. OPTIONS The available options are essentially the union of the options for db2x_xsltproc(1) and db2x_texixml(1). Some commonly-used options are listed below: --encoding=encoding Sets the character encoding of the output. --string-param parameter=value Sets a stylesheet parameter (options that affect how the output looks). See “Stylesheet parameters” below for the parameters that can be set. --sgml Accept an SGML source document as input instead of XML. STYLESHEET PARAMETERScaptions-display-as-headingsBrief. Use heading markup for minor captions?Default setting. 0 (boolean false)If true, title content in some (formal) objects are rendered with the Texinfo @heading commands. If false, captions are rendered as an emphasized paragraph. links-use-pxrefBrief. Translate link using @pxrefDefault setting. 1 (boolean true) If true, link is translated with the hypertext followed by the cross reference in parentheses. Otherwise, the hypertext content serves as the cross-reference name marked up using @ref. Typically info displays this contruct badly. explicit-node-namesBrief. Insist on manually constructed Texinfo node namesDefault setting. 0 (boolean false) Elements in the source document can influence the Texinfo node name generation specifying either a xreflabel, or for the sectioning elements, a title with role='texinfo-node' in the *info container. However, for the majority of source documents, explicit Texinfo node names are not available, and the stylesheet tries to generate a reasonable one instead, e.g. from the normal title of an element. The generated name may not be optimal. If this option is set and the stylesheet needs to generate a name, a warning is emitted and generate-id is always used for the name. When the hashtable extension is not available, the stylesheet cannot check for node name collisions, and in this case, setting this option and using explicit node names are recommended. This option is not set (i.e. false) by default. NoteThe absolute fallback for generating node names is using the XSLT function generate-id, and the stylesheet always emits a warning in this case regardless of the setting of explicit-node-names.show-commentsBrief. Display comment elements?Default setting. 1 (boolean true)If true, comments will be displayed, otherwise they are suppressed. Comments here refers to the comment element, which will be renamed remark in DocBook V4.0, not XML comments (<-- like this -->) which are unavailable. funcsynopsis-decorationBrief. Decorate elements of a FuncSynopsis?Default setting. 1 (boolean true)If true, elements of the FuncSynopsis will be decorated (e.g. bold or italic). The decoration is controlled by functions that can be redefined in a customization layer. function-parensBrief. Generate parentheses after a function?Default setting. 0 (boolean false)If true, the formatting of a <function> element will include generated parenthesis. refentry-display-nameBrief. Output NAME header before 'RefName'(s)?Default setting. 1 (boolean true)If true, a "NAME" section title is output before the list of 'RefName's. manvolnum-in-xrefBrief. Output manvolnum as part of refentry cross-reference?Default setting. 1 (boolean true)if true, the manvolnum is used when cross-referencing refentrys, either with xref or citerefentry. prefer-textobjectsBrief. Prefer textobject over imageobject? Default setting. 1 (boolean true) If true, the textobject in a mediaobject is preferred over any imageobject. (Of course, for output formats other than Texinfo, you usually want to prefer the imageobject, but Info is a text-only format.) In addition to the values true and false, this parameter may be set to 2 to indicate that both the text and the images should be output. You may want to do this because some Texinfo viewers can read images. Note that the Texinfo @image command has its own mechanism for switching between text and image output — but we do not use this here. The default is true. semantic-decorationsBrief. Use Texinfo semantic inline markup?Default setting. 1 (boolean true) If true, the semantic inline markup of DocBook is translated into (the closest) Texinfo equivalent. This is the default. However, because the Info format is limited to plain text, the semantic inline markup is often distinguished by using explicit quotes, which may not look good. You can set this option to false to suppress these. (For finer control over the inline formatting, you can use your own stylesheet.) custom-localization-fileBrief. URI of XML document containing custom localization dataDefault setting. (blank) This parameter specifies the URI of a XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. The text translations pointed to by this parameter always override the default text translations (from the internal parameter localization-file). If a particular translation is not present here, the corresponding default translation is used as a fallback. This parameter is primarily for changing certain punctuation characters used in formatting the source document. The settings for punctuation characters are often specific to the source document, but can also be dependent on the locale. To not use custom text translations, leave this parameter as the empty string. custom-l10n-dataBrief. XML document containing custom localization dataDefault setting. document($custom-localization-file) This parameter specifies the XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. This parameter is internal to the stylesheet. To point to an external XML document with a URI or a file name, you should use the custom-localization-file parameter instead. However, inside a custom stylesheet (not on the command-line) this paramter can be set to the XPath expression document(''), which will cause the custom translations directly embedded inside the custom stylesheet to be read. author-othername-in-middleBrief. Is othername in author a middle name?Default setting. 1If true, the othername of an author appears between the firstname and surname. Otherwise, othername is suppressed. output-fileBrief. Name of the Info fileDefault setting. (blank)This parameter specifies the name of the final Info file, overriding the setting in the document itself and the automatic selection in the stylesheet. If the document is a set, this parameter has no effect. Important Do not include the .info extension in the name. (Note that this parameter has nothing to do with the name of the Texi-XML output by the XSLT processor you are running this stylesheet from.) directory-categoryBrief. The categorization of the document in the Info directoryDefault setting. (blank) This is set to the category that the document should go under in the Info directory of installed Info files. For example, General Commands. Note Categories may also be set directly in the source document. But if this parameter is not empty, then it always overrides the setting in the source document. directory-descriptionBrief. The description of the document in the Info directoryDefault setting. (blank) This is a short description of the document that appears in the Info directory of installed Info files. For example, An Interactive Plotting Program. Note Menu descriptions may also be set directly in the source document. But if this parameter is not empty, then it always overrides the setting in the source document. index-categoryBrief. The Texinfo index to useDefault setting. cpThe Texinfo index for indexterm and index is specified using the role attribute. If the above elements do not have a role, then the default specified by this parameter is used. The predefined indices are: c, cpConcept indexf, fnFunction indexv, vrVariable indexk, kyKeystroke indexp, pgProgram indexd, tpData type index User-defined indices are not yet supported. qanda-defaultlabelBrief. Sets the default for defaultlabel on QandASet.Default setting. If no defaultlabel attribute is specified on a QandASet, this value is used. It must be one of the legal values for the defaultlabel attribute. qandaset-generate-tocBrief. Is a Table of Contents created for QandASets?Default setting. If true, a ToC is constructed for QandASets. EXAMPLES$ docbook2texi tdg.xml $ docbook2texi --encoding=utf-8//TRANSLIT tdg.xml $ docbook2texi --string-param semantic-decorations=0 tdg.xml CONVERSION PROCESSConverting to Texinfo DocBook documents are converted to Texinfo in two steps: 1. The DocBook source is converted by a XSLT stylesheet into an intermediate XML format, Texi-XML. Texi-XML is simpler than DocBook and closer to the Texinfo format; it is intended to make the stylesheets’ job easier. The stylesheet for this purpose is in xslt/texi/docbook.xsl. For portability, it should always be referred to by the following URI: http://docbook2x.sourceforge.net/latest/xslt/texi/docbook.xsl Run this stylesheet with db2x_xsltproc(1). Customizing. You can also customize the output by creating your own XSLT stylesheet — changing parameters or adding new templates — and importing xslt/texi/docbook.xsl. 2. Texi-XML is converted to the actual Texinfo files by db2x_texixml(1). The docbook2texi command does both steps automatically, but if any problems occur, you can see the errors more clearly if you do each step separately: $ db2x_xsltproc -s texi mydoc.xml -o mydoc.txml $ db2x_texixml mydoc.txml Options to the conversion stylesheet are described in the Texinfo stylesheets reference. Character set conversion When translating XML to legacy ASCII-based formats with poor support for Unicode, such as man pages and Texinfo, there is always the problem that Unicode characters in the source document also have to be translated somehow. A straightforward character set conversion from Unicode does not suffice, because the target character set, usually US-ASCII or ISO Latin-1, do not contain common characters such as dashes and directional quotation marks that are widely used in XML documents. But document formatters (man and Texinfo) allow such characters to be entered by a markup escape: for example, \(lq for the left directional quote . And if a markup-level escape is not available, an ASCII transliteration might be used: for example, using the ASCII less-than sign < for the angle quotation mark . So the Unicode character problem can be solved in two steps: 1. utf8trans(1), a program included in docbook2X, maps Unicode characters to markup-level escapes or transliterations. Since there is not necessarily a fixed, official mapping of Unicode characters, utf8trans can read in user-modifiable character mappings expressed in text files and apply them. (Unlike most character set converters.) In charmaps/man/roff.charmap and charmaps/man/texi.charmap are character maps that may be used for man-page and Texinfo conversion. The programs db2x_manxml(1) and db2x_texixml(1) will apply these character maps, or another character map specified by the user, automatically. 2. The rest of the Unicode text is converted to some other character set (encoding). For example, a French document with accented characters (such as é) might be converted to ISO Latin 1. This step is applied after utf8trans character mapping, using the iconv(1) encoding conversion tool. Both db2x_manxml(1) and db2x_texixml(1) can call iconv(1) automatically when producing their output. FILES/usr/local/share/docbook2X/xslt/texi/docbook.xsl
/usr/local/share/docbook2X/xslt/backend/db2x_texixml.xsl
/usr/local/share/docbook2X/xslt/catalog.xml
/usr/local/share/docbook2X/charmaps/texi.charmap.xml
/usr/local/share/docbook2X/charmaps/texi.charmap.xml
The above files are distributed and installed by the docbook2X package. NOTES The docbook2man or the docbook2texi command described in this manual page come from the docbook2X package. It should not be confused with the command of the same name from the obsoleted docbook-utils package. LIMITATIONS Internally there is one long pipeline of programs which your document goes through. If any segment of the pipeline fails (even trivially, like from mistyped program options), the resulting errors can be difficult to decipher — in this case, try running the components of docbook2X separately. AUTHOR Steve Cheng <stevecheng@users.sourceforge.net>. SEE ALSOdb2x_xsltproc(1), db2x_texixml(1), utf8trans(1) The docbook2X manual (in Texinfo or HTML format) fully describes how to convert DocBook to man pages and Texinfo. Up-to-date information about this program can be found at the docbook2X Web site.
NAMEdb2x_texixmlMake Texinfo files from Texi-XMLSYNOPSISdb2x_texixml [options]… [xml-document]DESCRIPTION db2x_texixml converts a Texi-XML document into one or more Texinfo documents. If xml-document is not given, then the document to convert comes from standard input. The filenames of the Texinfo documents are determined by markup in the Texi-XML source. (If the filenames are not specified in the markup, then db2x_texixml attempts to deduce them from the name of the input file. However, the Texi-XML source should specify the filename, because it does not work when there are multiple output files or when the Texi-XML source comes from standard input.) OPTIONS--encoding=encoding Select the character encoding used for the output files. The available encodings are those of iconv(1). The default encoding is us-ascii. The XML source may contain characters that are not representable in the encoding that you select; in this case the program will bomb out during processing, and you should choose another encoding. (This is guaranteed not to happen with any Unicode encoding such as UTF-8, but unfortunately not everyone is able to process Unicode texts.) If you are using GNU’s version of iconv(1), you can affix //TRANSLIT to the end of the encoding name to attempt transliterations of any unconvertible characters in the output. Beware, however, that the really inconvertible characters will be turned into another of those damned question marks. (Aren’t you sick of this?) The suffix //TRANSLIT applied to a Unicode encoding — in particular, utf-8//TRANSLIT — means that the output files are to remain in Unicode, but markup-level character translations using utf8trans are still to be done. So in most cases, an English-language document, converted using --encoding=utf-8//TRANSLIT will actually end up as a US-ASCII document, but any untranslatable characters will remain as UTF-8 without any warning whatsoever. (Note: strictly speaking this is not “transliteration”.) This method of conversion is a compromise over strict --encoding=us-ascii processing, which aborts if any untranslatable characters are encountered. Note that man pages and Texinfo documents in non-ASCII encodings (including UTF-8) may not be portable to older (non-internationalized) systems, which is why the default value for this option is us-ascii. To suppress any automatic character mapping or encoding conversion whatsoever, pass the option --encoding=utf-8. --list-files Write a list of all the output files to standard output, in addition to normal processing. --output-dir=dir Specify the directory where the output files are placed. The default is the current working directory. This option is ignored if the output is to be written to standard output (triggered by the option --to-stdout). --to-stdout Write the output to standard output instead of to individual files. If this option is used even when there are supposed to be multiple output documents, then everything is concatenated to standard output. But beware that most other programs will not accept this concatenated output. This option is incompatible with --list-files, obviously. --infoPipe the Texinfo output to makeinfo(1), creating Info files directly instead of Texinfo files.--plaintextPipe the Texinfo output to makeinfo --no-headers, thereby creating plain text files.--helpShow brief usage information and exit.--versionShow version and exit. This program uses certain other programs for its operation. If they are not in their default installed locations, then use the following options to set their location: --utf8trans-program=path, --utf8trans-map=charmapUse the character map charmap with the utf8trans(1) program, included with docbook2X, found under path.--iconv-program=pathThe location of the iconv(1) program, used for encoding conversions.NOTESTexinfo language compatibility. The Texinfo files generated by db2x_texixml sometimes require Texinfo version 4.7 (the latest version) to work properly. In particular: db2x_texixml relies on makeinfo to automatically add punctuation after a @ref if it it not already there. Otherwise the hyperlink will not work in the Info reader (although makeinfo will not emit any error). The new @comma{} command is used for commas (,) occurring inside argument lists to Texinfo commands, to disambiguate it from the comma used to separate different arguments. The only alternative otherwise would be to translate , to . which is obviously undesirable (but earlier docbook2X versions did this).If you cannot use version 4.7 of makeinfo, you can still use a sed script to perform manually the procedure just outlined. Relation of Texi-XML with the XML output format of makeinfo. The Texi-XML format used by docbook2X is different and incompatible with the XML format generated by makeinfo(1) with its --xml option. This situation arose partly because the Texi-XML format of docbook2X was designed and implemented independently before the appearance of makeinfo’s XML format. Also Texi-XML is very much geared towards being machine-generated from other XML formats, while there seems to be no non-trivial applications of makeinfo’s XML format. So there is no reason at this point for docbook2X to adopt makeinfo’s XML format in lieu of Texi-XML. BUGS Text wrapping in menus is utterly broken for non-ASCII text. It is probably also broken everywhere else in the output, but that would be makeinfo’s fault. --list-files might not work correctly with --info. Specifically, when the output Info file get too big, makeinfo will decide to split it into parts named abc.info-1, abc.info-2, abc.info-3, etc. db2x_texixml does not know exactly how many of these files there are, though you can just do an ls to find out. AUTHOR Steve Cheng <stevecheng@users.sourceforge.net>. SEE ALSO The docbook2X manual (in Texinfo or HTML format) fully describes how to convert DocBook to man pages and Texinfo. Up-to-date information about this program can be found at the docbook2X Web site. The input to db2x_texixml is defined by the XML DTD present at dtd/Texi-XML in the docbook2X distribution. NAMEdb2x_xsltprocXSLT processor invocation wrapperSYNOPSISdb2x_xsltproc [options] xml-document DESCRIPTION db2x_xsltproc invokes the XSLT 1.0 processor for docbook2X. This command applies the XSLT stylesheet (usually given by the --stylesheet option) to the XML document in the file xml-document. The result is written to standard output (unless changed with --output). To read the source XML document from standard input, specify - as the input document. OPTIONS--version Display the docbook2X version. TRANSFORMATION OUTPUT OPTIONS--output file, -o file Write output to the given file (or URI), instead of standard output. SOURCE DOCUMENT OPTIONS--xinclude, -I Process XInclude directives in the source document. --sgml, -S Indicate that the input document is SGML instead of XML. You need this set this option if xml-document is actually a SGML file. SGML parsing is implemented by conversion to XML via sgml2xml(1) from the SP package (or osx(1) from the OpenSP package). All tag names in the SGML file will be normalized to lowercase (i.e. the -xlower option of sgml2xml(1) is used). ID attributes are available for the stylesheet (i.e. option -xid). In addition, any ISO SDATA entities used in the SGML document are automatically converted to their XML Unicode equivalents. (This is done by a sed filter.) The encoding of the SGML document, if it is not us-ascii, must be specified with the standard SP environment variables: SP_CHARSET_FIXED=1 SP_ENCODING=encoding. (Note that XML files specify their encoding with the XML declaration <?xml version="1.0" encoding="encoding" ?> at the top of the file.) The above conversion options cannot be changed. If you desire different conversion options, you should invoke sgml2xml(1) manually, and then pass the results of that conversion to this program. RETRIEVAL OPTIONS--catalogs catalog-files, -C catalog-files Specify additional XML catalogs to use for resolving Formal Public Identifiers or URIs. SGML catalogs are not supported. These catalogs are not used for parsing an SGML document under the --sgml option. Use the environment variable SGML_CATALOG_FILES instead to specify the catalogs for parsing the SGML document. --network, -N db2x_xsltproc will normally refuse to load external resources from the network, for security reasons. If you do want to load from the network, set this option. Usually you want to have installed locally the relevent DTDs and other files, and set up catalogs for them, rather than load them automatically from the network. STYLESHEET OPTIONS--stylesheet file, -s file Specify the filename (or URI) of the stylesheet to use. The special values man and texi are accepted as abbreviations, to specify that xml-document is in DocBook and should be converted to man pages or Texinfo (respectively). --param name=expr, -p name=expr Add or modify a parameter to the stylesheet. name is a XSLT parameter name, and expr is an XPath expression that evaluates to the desired value for the parameter. (This means that strings must be quoted, in addition to the usual quoting of shell arguments; use --string-param to avoid this.) --string-param name=string, -g name=string Add or modify a string-valued parameter to the stylesheet. The string must be encoded in UTF-8 (regardless of the locale character encoding). DEBUGGING AND PROFILING--debug, -d Display, to standard error, logs of what is happening during the XSL transformation. --nesting-limit n, -D n Change the maximum number of nested calls to XSL templates, used to detect potential infinite loops. If not specified, the limit is 500 (libxslt’s default). --profile, -P Display profile information: the total number of calls to each template in the stylesheet and the time taken for each. This information is output to standard error. --xslt-processor processor, -X processor Select the underlying XSLT processor used. The possible choices for processor are: libxslt, saxon, xalan-j. The default processor is whatever was set when docbook2X was built. libxslt is recommended (because it is lean and fast), but SAXON is much more robust and would be more helpful when debugging stylesheets. All the processors have XML catalogs support enabled. (docbook2X requires it.) But note that not all the options above work with processors other than the libxslt one. ENVIRONMENTXML_CATALOG_FILESSpecify XML Catalogs. If not specified, the standard catalog (/etc/xml/catalog) is loaded, if available. DB2X_XSLT_PROCESSORSpecify the XSLT processor to use. The effect is the same as the --xslt-processor option. The primary use of this variable is to allow you to quickly test different XSLT processors without having to add --xslt-processor to every script or make file in your documentation build system. CONFORMING TO XML Stylesheet Language – Transformations (XSLT), version 1.0, a W3C Recommendation. NOTES In its earlier versions (< 0.8.4), docbook2X required XSLT extensions to run, and db2x_xsltproc was a special libxslt-based processor that had these extensions compiled-in. When the requirement for XSLT extensions was dropped, db2x_xsltproc became a Perl script which translates the options to db2x_xsltproc to conform to the format accepted by the stock xsltproc(1) which comes with libxslt. The prime reason for the existence of this script is backward compatibility with any scripts or make files that invoke docbook2X. However, it also became easy to add in support for invoking other XSLT processors with a unified command-line interface. Indeed, there is nothing special in this script to docbook2X, or even to DocBook, and it may be used for running other sorts of stylesheets if you desire. Certainly the author prefers using this command, because its invocation format is sane and is easy to use. (e.g. no typing long class names for the Java-based processors!) AUTHOR Steve Cheng <stevecheng@users.sourceforge.net>. SEE ALSO The docbook2X manual (in Texinfo or HTML format) fully describes how to convert DocBook to man pages and Texinfo. Up-to-date information about this program can be found at the docbook2X Web site. You may wish to consult the documentation that comes with libxslt, SAXON, or Xalan. The W3C XSLT 1.0 specification would be useful for writing stylesheets. NAMEsgml2xml-isoentConvert SGML to XML with support for ISO entitiesSYNOPSISsgml2xml-isoent [sgml-document]DESCRIPTION sgml2xml-isoent converts an SGML document to XML, with support for the ISO entities. This is done by using sgml2xml(1) from the SP package (or osx(1) from the OpenSP package), and the declaration for the XML version of the ISO entities is added to the output. This means that the output of this conversion should work as-is with any XML tool. This program is often used for processing SGML DocBook documents with XML-based tools. In particular, db2x_xsltproc(1) calls this program as part of its --sgml option. On the other hand, it is probably not helpful for migrating a source SGML text file to XML, since the conversion mangles the original formatting. Since the XML version of the ISO entities are referred to directly, not via a DTD, this tool also works with document types other than DocBook. NOTES The ISO entities are referred using the public identifiers ISO 8879:1986//ENTITIES////EN//XML. The catalogs used when parsing the converted document should resolve these entities to the appropriate place (on the local filesystem). If the entities are not resolved in the catalog, then the fallback is to get the entity files from the http://www.docbook.org/ Web site. AUTHOR Steve Cheng <stevecheng@users.sourceforge.net>. SEE ALSO sgml2xml(1), osx(1) NAMEutf8transTransliterate UTF-8 characters according to a tableSYNOPSISutf8trans charmap [file]…DESCRIPTION utf8trans transliterates characters in the specified files (or standard input, if they are not specified) and writes the output to standard output. All input and output is in the UTF-8 encoding. This program is usually used to render characters in Unicode text files as some markup escapes or ASCII transliterations. (It is not intended for general charset conversions.) It provides functionality similar to the character maps in XSLT 2.0 (XML Stylesheet Language – Transformations, version 2.0). OPTIONS-m, --modify Modifies the given files in-place with their transliterated output, instead of sending it to standard output. This option is useful for efficient transliteration of many files at once. --helpShow brief usage information and exit.--versionShow version and exit.USAGE The translation is done according to the rules in the ‘character map’, named in the file charmap. It has the following format: 1.Each line represents a translation entry, except for blank lines and comment lines, which are ignored.2.Any amount of whitespace (space or tab) may precede the start of an entry.3.Comment lines begin with #. Everything on the same line is ignored.4.Each entry consists of the Unicode codepoint of the character to translate, in hexadecimal, followed one space or tab, followed by the translation string, up to the end of the line.5.The translation string is taken literally, including any leading and trailing spaces (except the delimeter between the codepoint and the translation string), and all types of characters. The newline at the end is not included. The above format is intended to be restrictive, to keep utf8trans simple. But if a XML-based format is desired, there is a xmlcharmap2utf8trans script that comes with the docbook2X distribution, that converts character maps in XSLT 2.0 format to the utf8trans format. LIMITATIONS utf8trans does not work with binary files, because malformed UTF-8 sequences in the input are substituted with U+FFFD characters. However, null characters in the input are handled correctly. This limitation may be removed in the future. There is no way to include a newline or null in the substitution string. AUTHOR Steve Cheng <stevecheng@users.sourceforge.net>.
docbook2X-0.8.8/doc/docbook2X.texi0000644000175000017500000031175110572275335013615 00000000000000\input texinfo @setfilename docbook2X.info @documentencoding us-ascii @settitle docbook2X @dircategory Document Preparation @direntry * docbook2X: (docbook2X). Convert DocBook into man pages and Texinfo @end direntry @node Top, Quick start, , (dir) @documentlanguage en @top docbook2X @cindex DocBook @i{docbook2X} converts DocBook documents into man pages and Texinfo documents. It aims to support DocBook version 4.2, excepting the features that cannot be supported or are not useful in a man page or Texinfo document. @cindex web site @cindex download For information on the latest releases of docbook2X, and downloads, please visit the @uref{http://docbook2x.sourceforge.net/,docbook2X home page}. @menu * Quick start:: Examples to get you started * Converting to man pages:: Details on man-page conversion * Converting to Texinfo:: Details on Texinfo conversion * The XSLT stylesheets:: How to run the docbook2X XSLT stylesheets * Character set conversion:: Discussion on reproducing non-ASCII characters in the converted output * FAQ:: Answers and tips for common problems * Performance analysis:: Discussion on conversion speed * How docbook2X is tested:: Discussion of correctness-testing * To-do list:: Ideas for future improvements * Release history:: Changes to the package between releases * Design notes:: Author's notes on the grand scheme of docbook2X * Package installation:: Where to get docbook2X, and details on how to install it * Index: Concept index. @detailmenu --- The Detailed Node Listing --- Converting to man pages * docbook2man: docbook2man wrapper script. Convert DocBook to man pages * db2x_manxml:: Make man pages from Man-XML Converting to Texinfo * docbook2texi: docbook2texi wrapper script. Convert DocBook to Texinfo * db2x_texixml:: Make Texinfo files from Texi-XML The XSLT stylesheets * db2x_xsltproc:: XSLT processor invocation wrapper * sgml2xml-isoent:: Convert SGML to XML with support for ISO entities Character set conversion * utf8trans:: Transliterate UTF-8 characters according to a table Package installation * Installation:: Package install procedure * Dependencies on other software:: Other software packages that docbook2X needs @end detailmenu @end menu @node Quick start, Converting to man pages, Top, Top @chapter Quick start @cindex example usage @cindex converting to man pages @cindex converting to Texinfo To convert to man pages, you run the command @code{docbook2man} (@pxref{docbook2man wrapper script}). For example, @example $ docbook2man --solinks manpages.xml @end example The man pages will be output to your current directory. The @code{--solinks} options tells @code{docbook2man} to create man page links. You may want to omit this option when developing documentation so that your working directory does not explode with many stub man pages. (If you don't know what this means, you can read about it in detail in @code{db2x_manxml}, or just ignore the previous two sentences and always specify this option.) To convert to Texinfo, you run the command @code{docbook2texi} (@pxref{docbook2texi wrapper script}). For example, @example $ docbook2texi tdg.xml @end example One (or more) Texinfo files will be output to your current directory. The rest of this manual describes in detail all the other options and how to customize docbook2X's output. @node Converting to man pages, Converting to Texinfo, Quick start, Top @chapter Converting to man pages @cindex man pages @cindex converting to man pages @cindex XSLT stylesheets @cindex Man-XML DocBook documents are converted to man pages in two steps: @enumerate @item The DocBook source is converted by a XSLT stylesheet into an intermediate XML format, Man-XML. Man-XML is simpler than DocBook and closer to the man page format; it is intended to make the stylesheets' job easier. The stylesheet for this purpose is in @file{xslt/man/docbook.xsl}. For portability, it should always be referred to by the following URI: @example http://docbook2x.sourceforge.net/latest/xslt/man/docbook.xsl @end example Run this stylesheet with @ref{db2x_xsltproc,,@code{db2x_xsltproc}}. @cindex customizing @strong{Customizing. } You can also customize the output by creating your own XSLT stylesheet --- changing parameters or adding new templates --- and importing @file{xslt/man/docbook.xsl}. @item Man-XML is converted to the actual man pages by @ref{db2x_manxml,,@code{db2x_manxml}}. @end enumerate The @code{docbook2man} (@pxref{docbook2man wrapper script}) command does both steps automatically, but if any problems occur, you can see the errors more clearly if you do each step separately: @example $ db2x_xsltproc -s man mydoc.xml -o mydoc.mxml $ db2x_manxml mydoc.mxml @end example Options to the conversion stylesheet are described in @ref{Top,,the man-pages stylesheets reference,docbook2man-xslt,docbook2X Man-pages Stylesheets Reference}. @cindex pure XSLT @strong{Pure XSLT conversion. } An alternative to the @code{db2x_manxml} Perl script is the XSLT stylesheet in @file{xslt/backend/db2x_manxml.xsl}. This stylesheet performs a similar function of converting Man-XML to actual man pages. It is useful if you desire a pure XSLT solution to man-page conversion. Of course, the quality of the conversion using this stylesheet will never be as good as the Perl @code{db2x_manxml}, and it runs slower. In particular, the pure XSLT version currently does not support tables in man pages, but its Perl counterpart does. @menu * docbook2man: docbook2man wrapper script. Convert DocBook to man pages * db2x_manxml:: Make man pages from Man-XML @end menu @node docbook2man wrapper script, db2x_manxml, , Converting to man pages @section docbook2man @cindex man pages @cindex converting to man pages @cindex wrapper script @cindex @code{docbook2man} @subheading Name @code{docbook2man} --- Convert DocBook to man pages @subheading Synopsis @quotation @t{docbook2man [options] xml-document } @end quotation @subheading Description @code{docbook2man} converts the given DocBook XML document into man pages. By default, the man pages will be output to the current directory. @cindex @code{refentry} Only the @code{refentry} content in the DocBook document is converted. (To convert content outside of a @code{refentry}, stylesheet customization is required. See the docbook2X package for details.) The @code{docbook2man} command is a wrapper script for a two-step conversion process. @subheading Options The available options are essentially the union of the options from @ref{db2x_xsltproc,,@code{db2x_xsltproc}} and @ref{db2x_manxml,,@code{db2x_manxml}}. Some commonly-used options are listed below: @table @asis @item @code{--encoding=@var{encoding}} Sets the character encoding of the output. @item @code{--string-param @var{parameter}=@var{value}} Sets a stylesheet parameter (options that affect how the output looks). See ``Stylesheet parameters'' below for the parameters that can be set. @item @code{--sgml} Accept an SGML source document as input instead of XML. @item @code{--solinks} Make stub pages for alternate names for an output man page. @end table @subsubheading Stylesheet parameters @cindex stylesheet parameters @table @asis @item @code{uppercase-headings} @strong{Brief. } Make headings uppercase? @strong{Default setting. } @samp{1} (boolean true) Headings in man page content should be or should not be uppercased. @item @code{manvolnum-cite-numeral-only} @strong{Brief. } Man page section citation should use only the number @strong{Default setting. } @samp{1} (boolean true) When citing other man pages, the man-page section is either given as is, or has the letters stripped from it, citing only the number of the section (e.g. section @samp{3x} becomes @samp{3}). This option specifies which style. @item @code{quotes-on-literals} @strong{Brief. } Display quotes on @code{literal} elements? @strong{Default setting. } @samp{0} (boolean false) If true, render @code{literal} elements with quotes around them. @item @code{show-comments} @strong{Brief. } Display @code{comment} elements? @strong{Default setting. } @samp{1} (boolean true) If true, comments will be displayed, otherwise they are suppressed. Comments here refers to the @code{comment} element, which will be renamed @code{remark} in DocBook V4.0, not XML comments (<-- like this -->) which are unavailable. @item @code{function-parens} @strong{Brief. } Generate parentheses after a function? @strong{Default setting. } @samp{0} (boolean false) If true, the formatting of a @code{} element will include generated parenthesis. @item @code{xref-on-link} @strong{Brief. } Should @code{link} generate a cross-reference? @strong{Default setting. } @samp{1} (boolean true) Man pages cannot render the hypertext links created by @code{link}. If this option is set, then the stylesheet renders a cross reference to the target of the link. (This may reduce clutter). Otherwise, only the content of the @code{link} is rendered and the actual link itself is ignored. @item @code{header-3} @strong{Brief. } Third header text @strong{Default setting. } (blank) Specifies the text of the third header of a man page, typically the date for the man page. If empty, the @code{date} content for the @code{refentry} is used. @item @code{header-4} @strong{Brief. } Fourth header text @strong{Default setting. } (blank) Specifies the text of the fourth header of a man page. If empty, the @code{refmiscinfo} content for the @code{refentry} is used. @item @code{header-5} @strong{Brief. } Fifth header text @strong{Default setting. } (blank) Specifies the text of the fifth header of a man page. If empty, the `manual name', that is, the title of the @code{book} or @code{reference} container is used. @item @code{default-manpage-section} @strong{Brief. } Default man page section @strong{Default setting. } @samp{1} The source document usually indicates the sections that each man page should belong to (with @code{manvolnum} in @code{refmeta}). In case the source document does not indicate man-page sections, this option specifies the default. @item @code{custom-localization-file} @strong{Brief. } URI of XML document containing custom localization data @strong{Default setting. } (blank) This parameter specifies the URI of a XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. The text translations pointed to by this parameter always override the default text translations (from the internal parameter @code{localization-file}). If a particular translation is not present here, the corresponding default translation is used as a fallback. This parameter is primarily for changing certain punctuation characters used in formatting the source document. The settings for punctuation characters are often specific to the source document, but can also be dependent on the locale. To not use custom text translations, leave this parameter as the empty string. @item @code{custom-l10n-data} @strong{Brief. } XML document containing custom localization data @strong{Default setting. } @samp{document($custom-localization-file)} This parameter specifies the XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. This parameter is internal to the stylesheet. To point to an external XML document with a URI or a file name, you should use the @code{custom-localization-file} parameter instead. However, inside a custom stylesheet (@emph{not on the command-line}) this paramter can be set to the XPath expression @samp{document('')}, which will cause the custom translations directly embedded inside the custom stylesheet to be read. @item @code{author-othername-in-middle} @strong{Brief. } Is @code{othername} in @code{author} a middle name? @strong{Default setting. } @samp{1} If true, the @code{othername} of an @code{author} appears between the @code{firstname} and @code{surname}. Otherwise, @code{othername} is suppressed. @end table @subheading Examples @cindex example usage @example $ docbook2man --solinks manpages.xml $ docbook2man --solinks --encoding=utf-8//TRANSLIT manpages.xml $ docbook2man --string-param header-4="Free Recode 3.6" document.xml @end example @subheading Limitations @itemize @item Internally there is one long pipeline of programs which your document goes through. If any segment of the pipeline fails (even trivially, like from mistyped program options), the resulting errors can be difficult to decipher --- in this case, try running the components of docbook2X separately. @end itemize @node db2x_manxml, , docbook2man wrapper script, Converting to man pages @section @code{db2x_manxml} @cindex man pages @cindex converting to man pages @cindex Man-XML @cindex stub pages @cindex symbolic links @cindex encoding @cindex output directory @cindex @code{db2x_manxml} @subheading Name @code{db2x_manxml} --- Make man pages from Man-XML @subheading Synopsis @quotation @t{db2x_manxml [options] [xml-document]} @end quotation @subheading Description @code{db2x_manxml} converts a Man-XML document into one or more man pages. They are written in the current directory. If @var{xml-document} is not given, then the document to convert is read from standard input. @subheading Options @table @asis @item @code{--encoding=@var{encoding}} Select the character encoding used for the output files. The available encodings are those of iconv(1). The default encoding is @samp{us-ascii}. The XML source may contain characters that are not representable in the encoding that you select; in this case the program will bomb out during processing, and you should choose another encoding. (This is guaranteed not to happen with any Unicode encoding such as UTF-8, but unfortunately not everyone is able to process Unicode texts.) If you are using GNU's version of iconv(1), you can affix @samp{//TRANSLIT} to the end of the encoding name to attempt transliterations of any unconvertible characters in the output. Beware, however, that the really inconvertible characters will be turned into another of those damned question marks. (Aren't you sick of this?) The suffix @samp{//TRANSLIT} applied to a Unicode encoding --- in particular, @samp{utf-8//TRANSLIT} --- means that the output files are to remain in Unicode, but markup-level character translations using @code{utf8trans} are still to be done. So in most cases, an English-language document, converted using @code{--encoding=@samp{utf-8//TRANSLIT}} will actually end up as a US-ASCII document, but any untranslatable characters will remain as UTF-8 without any warning whatsoever. (Note: strictly speaking this is not ``transliteration''.) This method of conversion is a compromise over strict @code{--encoding=@samp{us-ascii}} processing, which aborts if any untranslatable characters are encountered. Note that man pages and Texinfo documents in non-ASCII encodings (including UTF-8) may not be portable to older (non-internationalized) systems, which is why the default value for this option is @samp{us-ascii}. To suppress any automatic character mapping or encoding conversion whatsoever, pass the option @code{--encoding=@samp{utf-8}}. @item @code{--list-files} Write a list of all the output files to standard output, in addition to normal processing. @item @code{--output-dir=@var{dir}} Specify the directory where the output files are placed. The default is the current working directory. This option is ignored if the output is to be written to standard output (triggered by the option @code{--to-stdout}). @item @code{--to-stdout} Write the output to standard output instead of to individual files. If this option is used even when there are supposed to be multiple output documents, then everything is concatenated to standard output. But beware that most other programs will not accept this concatenated output. This option is incompatible with @code{--list-files}, obviously. @item @code{--help} Show brief usage information and exit. @item @code{--version} Show version and exit. @end table Some man pages may be referenced under two or more names, instead of just one. For example, strcpy(3) and strncpy(3) often point to the same man page which describes the two functions together. Choose one of the following options to select how such man pages are to be generated: @table @asis @item @code{--symlinks} For each of all the alternate names for a man page, erect symbolic links to the file that contains the real man page content. @item @code{--solinks} Generate stub pages (using @samp{.so} roff requests) for the alternate names, pointing them to the real man page content. @item @code{--no-links} Do not make any alternative names available. The man page can only be referenced under its principal name. @end table This program uses certain other programs for its operation. If they are not in their default installed locations, then use the following options to set their location: @table @asis @item @code{--utf8trans-program=@var{path}} @itemx @code{--utf8trans-map=@var{charmap}} Use the character map @var{charmap} with the @ref{utf8trans,,@code{utf8trans}} program, included with docbook2X, found under @var{path}. @item @code{--iconv-program=@var{path}} The location of the iconv(1) program, used for encoding conversions. @end table @subheading Notes @cindex @code{groff} @cindex compatibility The man pages produced should be compatible with most troff implementations and other tools that process man pages. Some backwards-compatible groff(1) extensions are used to make the output look nicer. @subheading See Also The input to @code{db2x_manxml} is defined by the XML DTD present at @file{dtd/Man-XML} in the docbook2X distribution. @node Converting to Texinfo, The XSLT stylesheets, Converting to man pages, Top @chapter Converting to Texinfo @cindex Texinfo @cindex converting to Texinfo @cindex XSLT stylesheets @cindex Texi-XML DocBook documents are converted to Texinfo in two steps: @enumerate @item The DocBook source is converted by a XSLT stylesheet into an intermediate XML format, Texi-XML. Texi-XML is simpler than DocBook and closer to the Texinfo format; it is intended to make the stylesheets' job easier. The stylesheet for this purpose is in @file{xslt/texi/docbook.xsl}. For portability, it should always be referred to by the following URI: @example http://docbook2x.sourceforge.net/latest/xslt/texi/docbook.xsl @end example Run this stylesheet with @ref{db2x_xsltproc,,@code{db2x_xsltproc}}. @cindex customizing @strong{Customizing. } You can also customize the output by creating your own XSLT stylesheet --- changing parameters or adding new templates --- and importing @file{xslt/texi/docbook.xsl}. @item Texi-XML is converted to the actual Texinfo files by @ref{db2x_texixml,,@code{db2x_texixml}}. @end enumerate The @code{docbook2texi} (@pxref{docbook2texi wrapper script}) command does both steps automatically, but if any problems occur, you can see the errors more clearly if you do each step separately: @example $ db2x_xsltproc -s texi mydoc.xml -o mydoc.txml $ db2x_texixml mydoc.txml @end example Options to the conversion stylesheet are described in @ref{Top,,the Texinfo stylesheets reference,docbook2texi-xslt,docbook2X Texinfo Stylesheets Reference}. @menu * docbook2texi: docbook2texi wrapper script. Convert DocBook to Texinfo * db2x_texixml:: Make Texinfo files from Texi-XML @end menu @node docbook2texi wrapper script, db2x_texixml, , Converting to Texinfo @section docbook2texi @cindex Texinfo @cindex converting to Texinfo @cindex wrapper script @cindex @code{docbook2texi} @subheading Name @code{docbook2texi} --- Convert DocBook to Texinfo @subheading Synopsis @quotation @t{docbook2texi [options] xml-document } @end quotation @subheading Description @code{docbook2texi} converts the given DocBook XML document into one or more Texinfo documents. By default, these Texinfo documents will be output to the current directory. The @code{docbook2texi} command is a wrapper script for a two-step conversion process. @subheading Options The available options are essentially the union of the options for @ref{db2x_xsltproc,,@code{db2x_xsltproc}} and @ref{db2x_texixml,,@code{db2x_texixml}}. Some commonly-used options are listed below: @table @asis @item @code{--encoding=@var{encoding}} Sets the character encoding of the output. @item @code{--string-param @var{parameter}=@var{value}} Sets a stylesheet parameter (options that affect how the output looks). See ``Stylesheet parameters'' below for the parameters that can be set. @item @code{--sgml} Accept an SGML source document as input instead of XML. @end table @subsubheading Stylesheet parameters @cindex stylesheet parameters @table @asis @item @code{captions-display-as-headings} @strong{Brief. } Use heading markup for minor captions? @strong{Default setting. } @samp{0} (boolean false) If true, @code{title} content in some (formal) objects are rendered with the Texinfo @code{@@@var{heading}} commands. If false, captions are rendered as an emphasized paragraph. @item @code{links-use-pxref} @strong{Brief. } Translate @code{link} using @code{@@pxref} @strong{Default setting. } @samp{1} (boolean true) If true, @code{link} is translated with the hypertext followed by the cross reference in parentheses. Otherwise, the hypertext content serves as the cross-reference name marked up using @code{@@ref}. Typically info displays this contruct badly. @item @code{explicit-node-names} @strong{Brief. } Insist on manually constructed Texinfo node names @strong{Default setting. } @samp{0} (boolean false) Elements in the source document can influence the Texinfo node name generation specifying either a @code{xreflabel}, or for the sectioning elements, a @code{title} with @code{role='texinfo-node'} in the @code{@var{*}info} container. However, for the majority of source documents, explicit Texinfo node names are not available, and the stylesheet tries to generate a reasonable one instead, e.g. from the normal title of an element. The generated name may not be optimal. If this option is set and the stylesheet needs to generate a name, a warning is emitted and @code{generate-id} is always used for the name. When the hashtable extension is not available, the stylesheet cannot check for node name collisions, and in this case, setting this option and using explicit node names are recommended. This option is not set (i.e. false) by default. @quotation @strong{Note} The absolute fallback for generating node names is using the XSLT function @code{generate-id}, and the stylesheet always emits a warning in this case regardless of the setting of @code{explicit-node-names}. @end quotation @item @code{show-comments} @strong{Brief. } Display @code{comment} elements? @strong{Default setting. } @samp{1} (boolean true) If true, comments will be displayed, otherwise they are suppressed. Comments here refers to the @code{comment} element, which will be renamed @code{remark} in DocBook V4.0, not XML comments (<-- like this -->) which are unavailable. @item @code{funcsynopsis-decoration} @strong{Brief. } Decorate elements of a FuncSynopsis? @strong{Default setting. } @samp{1} (boolean true) If true, elements of the FuncSynopsis will be decorated (e.g. bold or italic). The decoration is controlled by functions that can be redefined in a customization layer. @item @code{function-parens} @strong{Brief. } Generate parentheses after a function? @strong{Default setting. } @samp{0} (boolean false) If true, the formatting of a @code{} element will include generated parenthesis. @item @code{refentry-display-name} @strong{Brief. } Output NAME header before 'RefName'(s)? @strong{Default setting. } @samp{1} (boolean true) If true, a "NAME" section title is output before the list of 'RefName's. @item @code{manvolnum-in-xref} @strong{Brief. } Output @code{manvolnum} as part of @code{refentry} cross-reference? @strong{Default setting. } @samp{1} (boolean true) if true, the @code{manvolnum} is used when cross-referencing @code{refentry}s, either with @code{xref} or @code{citerefentry}. @item @code{prefer-textobjects} @strong{Brief. } Prefer @code{textobject} over @code{imageobject}? @strong{Default setting. } @samp{1} (boolean true) If true, the @code{textobject} in a @code{mediaobject} is preferred over any @code{imageobject}. (Of course, for output formats other than Texinfo, you usually want to prefer the @code{imageobject}, but Info is a text-only format.) In addition to the values true and false, this parameter may be set to @samp{2} to indicate that both the text and the images should be output. You may want to do this because some Texinfo viewers can read images. Note that the Texinfo @code{@@image} command has its own mechanism for switching between text and image output --- but we do not use this here. The default is true. @item @code{semantic-decorations} @strong{Brief. } Use Texinfo semantic inline markup? @strong{Default setting. } @samp{1} (boolean true) If true, the semantic inline markup of DocBook is translated into (the closest) Texinfo equivalent. This is the default. However, because the Info format is limited to plain text, the semantic inline markup is often distinguished by using explicit quotes, which may not look good. You can set this option to false to suppress these. (For finer control over the inline formatting, you can use your own stylesheet.) @item @code{custom-localization-file} @strong{Brief. } URI of XML document containing custom localization data @strong{Default setting. } (blank) This parameter specifies the URI of a XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. The text translations pointed to by this parameter always override the default text translations (from the internal parameter @code{localization-file}). If a particular translation is not present here, the corresponding default translation is used as a fallback. This parameter is primarily for changing certain punctuation characters used in formatting the source document. The settings for punctuation characters are often specific to the source document, but can also be dependent on the locale. To not use custom text translations, leave this parameter as the empty string. @item @code{custom-l10n-data} @strong{Brief. } XML document containing custom localization data @strong{Default setting. } @samp{document($custom-localization-file)} This parameter specifies the XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. This parameter is internal to the stylesheet. To point to an external XML document with a URI or a file name, you should use the @code{custom-localization-file} parameter instead. However, inside a custom stylesheet (@emph{not on the command-line}) this paramter can be set to the XPath expression @samp{document('')}, which will cause the custom translations directly embedded inside the custom stylesheet to be read. @item @code{author-othername-in-middle} @strong{Brief. } Is @code{othername} in @code{author} a middle name? @strong{Default setting. } @samp{1} If true, the @code{othername} of an @code{author} appears between the @code{firstname} and @code{surname}. Otherwise, @code{othername} is suppressed. @item @code{output-file} @strong{Brief. } Name of the Info file @strong{Default setting. } (blank) @cindex Texinfo metadata This parameter specifies the name of the final Info file, overriding the setting in the document itself and the automatic selection in the stylesheet. If the document is a @code{set}, this parameter has no effect. @quotation @strong{Important} Do @emph{not} include the @samp{.info} extension in the name. @end quotation (Note that this parameter has nothing to do with the name of the @emph{Texi-XML output} by the XSLT processor you are running this stylesheet from.) @item @code{directory-category} @strong{Brief. } The categorization of the document in the Info directory @strong{Default setting. } (blank) @cindex Texinfo metadata This is set to the category that the document should go under in the Info directory of installed Info files. For example, @samp{General Commands}. @quotation @strong{Note} Categories may also be set directly in the source document. But if this parameter is not empty, then it always overrides the setting in the source document. @end quotation @item @code{directory-description} @strong{Brief. } The description of the document in the Info directory @strong{Default setting. } (blank) @cindex Texinfo metadata This is a short description of the document that appears in the Info directory of installed Info files. For example, @samp{An Interactive Plotting Program.} @quotation @strong{Note} Menu descriptions may also be set directly in the source document. But if this parameter is not empty, then it always overrides the setting in the source document. @end quotation @item @code{index-category} @strong{Brief. } The Texinfo index to use @strong{Default setting. } @samp{cp} The Texinfo index for @code{indexterm} and @code{index} is specified using the @code{role} attribute. If the above elements do not have a @code{role}, then the default specified by this parameter is used. The predefined indices are: @table @asis @item @samp{c} @itemx @samp{cp} Concept index @item @samp{f} @itemx @samp{fn} Function index @item @samp{v} @itemx @samp{vr} Variable index @item @samp{k} @itemx @samp{ky} Keystroke index @item @samp{p} @itemx @samp{pg} Program index @item @samp{d} @itemx @samp{tp} Data type index @end table @noindent User-defined indices are not yet supported. @item @code{qanda-defaultlabel} @strong{Brief. } Sets the default for defaultlabel on QandASet. @strong{Default setting. } @samp{} If no defaultlabel attribute is specified on a QandASet, this value is used. It must be one of the legal values for the defaultlabel attribute. @item @code{qandaset-generate-toc} @strong{Brief. } Is a Table of Contents created for QandASets? @strong{Default setting. } @samp{} If true, a ToC is constructed for QandASets. @end table @subheading Examples @cindex example usage @example $ docbook2texi tdg.xml $ docbook2texi --encoding=utf-8//TRANSLIT tdg.xml $ docbook2texi --string-param semantic-decorations=0 tdg.xml @end example @subheading Limitations @itemize @item Internally there is one long pipeline of programs which your document goes through. If any segment of the pipeline fails (even trivially, like from mistyped program options), the resulting errors can be difficult to decipher --- in this case, try running the components of docbook2X separately. @end itemize @node db2x_texixml, , docbook2texi wrapper script, Converting to Texinfo @section @code{db2x_texixml} @cindex Texinfo @cindex converting to Texinfo @cindex Texi-XML @cindex encoding @cindex output directory @cindex @code{makeinfo} @subheading Name @code{db2x_texixml} --- Make Texinfo files from Texi-XML @subheading Synopsis @quotation @t{db2x_texixml [options]@dots{} [xml-document]} @end quotation @subheading Description @code{db2x_texixml} converts a Texi-XML document into one or more Texinfo documents. If @var{xml-document} is not given, then the document to convert comes from standard input. The filenames of the Texinfo documents are determined by markup in the Texi-XML source. (If the filenames are not specified in the markup, then @code{db2x_texixml} attempts to deduce them from the name of the input file. However, the Texi-XML source should specify the filename, because it does not work when there are multiple output files or when the Texi-XML source comes from standard input.) @subheading Options @table @asis @item @code{--encoding=@var{encoding}} Select the character encoding used for the output files. The available encodings are those of iconv(1). The default encoding is @samp{us-ascii}. The XML source may contain characters that are not representable in the encoding that you select; in this case the program will bomb out during processing, and you should choose another encoding. (This is guaranteed not to happen with any Unicode encoding such as UTF-8, but unfortunately not everyone is able to process Unicode texts.) If you are using GNU's version of iconv(1), you can affix @samp{//TRANSLIT} to the end of the encoding name to attempt transliterations of any unconvertible characters in the output. Beware, however, that the really inconvertible characters will be turned into another of those damned question marks. (Aren't you sick of this?) The suffix @samp{//TRANSLIT} applied to a Unicode encoding --- in particular, @samp{utf-8//TRANSLIT} --- means that the output files are to remain in Unicode, but markup-level character translations using @code{utf8trans} are still to be done. So in most cases, an English-language document, converted using @code{--encoding=@samp{utf-8//TRANSLIT}} will actually end up as a US-ASCII document, but any untranslatable characters will remain as UTF-8 without any warning whatsoever. (Note: strictly speaking this is not ``transliteration''.) This method of conversion is a compromise over strict @code{--encoding=@samp{us-ascii}} processing, which aborts if any untranslatable characters are encountered. Note that man pages and Texinfo documents in non-ASCII encodings (including UTF-8) may not be portable to older (non-internationalized) systems, which is why the default value for this option is @samp{us-ascii}. To suppress any automatic character mapping or encoding conversion whatsoever, pass the option @code{--encoding=@samp{utf-8}}. @item @code{--list-files} Write a list of all the output files to standard output, in addition to normal processing. @item @code{--output-dir=@var{dir}} Specify the directory where the output files are placed. The default is the current working directory. This option is ignored if the output is to be written to standard output (triggered by the option @code{--to-stdout}). @item @code{--to-stdout} Write the output to standard output instead of to individual files. If this option is used even when there are supposed to be multiple output documents, then everything is concatenated to standard output. But beware that most other programs will not accept this concatenated output. This option is incompatible with @code{--list-files}, obviously. @item @code{--info} Pipe the Texinfo output to makeinfo(1), creating Info files directly instead of Texinfo files. @item @code{--plaintext} Pipe the Texinfo output to @code{makeinfo @code{--no-headers}}, thereby creating plain text files. @item @code{--help} Show brief usage information and exit. @item @code{--version} Show version and exit. @end table This program uses certain other programs for its operation. If they are not in their default installed locations, then use the following options to set their location: @table @asis @item @code{--utf8trans-program=@var{path}} @itemx @code{--utf8trans-map=@var{charmap}} Use the character map @var{charmap} with the @ref{utf8trans,,@code{utf8trans}} program, included with docbook2X, found under @var{path}. @item @code{--iconv-program=@var{path}} The location of the iconv(1) program, used for encoding conversions. @end table @subheading Notes @strong{Texinfo language compatibility. } @cindex compatibility The Texinfo files generated by @code{db2x_texixml} sometimes require Texinfo version 4.7 (the latest version) to work properly. In particular: @itemize @item @code{db2x_texixml} relies on @code{makeinfo} to automatically add punctuation after a @code{@@ref} if it it not already there. Otherwise the hyperlink will not work in the Info reader (although @code{makeinfo} will not emit any error). @item The new @code{@@comma@{@}} command is used for commas (@samp{,}) occurring inside argument lists to Texinfo commands, to disambiguate it from the comma used to separate different arguments. The only alternative otherwise would be to translate @samp{,} to @samp{.} which is obviously undesirable (but earlier docbook2X versions did this). If you cannot use version 4.7 of @code{makeinfo}, you can still use a @code{sed} script to perform manually the procedure just outlined. @end itemize @strong{Relation of Texi-XML with the XML output format of @code{makeinfo}. } The Texi-XML format used by docbook2X is @emph{different} and incompatible with the XML format generated by makeinfo(1) with its @code{--xml} option. This situation arose partly because the Texi-XML format of docbook2X was designed and implemented independently before the appearance of @code{makeinfo}'s XML format. Also Texi-XML is very much geared towards being @emph{machine-generated from other XML formats}, while there seems to be no non-trivial applications of @code{makeinfo}'s XML format. So there is no reason at this point for docbook2X to adopt @code{makeinfo}'s XML format in lieu of Texi-XML. @subheading Bugs @itemize @item Text wrapping in menus is utterly broken for non-ASCII text. It is probably also broken everywhere else in the output, but that would be @code{makeinfo}'s fault. @item @code{--list-files} might not work correctly with @code{--info}. Specifically, when the output Info file get too big, @code{makeinfo} will decide to split it into parts named @file{@var{abc}.info-1}, @file{@var{abc}.info-2}, @file{@var{abc}.info-3}, etc. @code{db2x_texixml} does not know exactly how many of these files there are, though you can just do an @code{ls} to find out. @end itemize @subheading See Also The input to @code{db2x_texixml} is defined by the XML DTD present at @file{dtd/Texi-XML} in the docbook2X distribution. @node The XSLT stylesheets, Character set conversion, Converting to Texinfo, Top @chapter The XSLT stylesheets @cindex XSLT processor @cindex libxslt @cindex SAXON @cindex catalog @cindex @code{db2x_xsltproc} docbook2X uses a XSLT 1.0 processor to run its stylesheets. docbook2X comes with a wrapper script, @ref{db2x_xsltproc,,@code{db2x_xsltproc}}, that invokes the XSLT processor, but you can invoke the XSLT processor in any other way you wish. The stylesheets are described in @ref{Top,,the man-pages stylesheets reference,docbook2man-xslt,docbook2X Man-pages Stylesheets Reference} and @ref{Top,,the Texinfo stylesheets reference,docbook2texi-xslt,docbook2X Texinfo Stylesheets Reference}. @cindex pure XSLT @cindex @code{xsltproc} Pure-XSLT implementations of @code{db2x_manxml} and @code{db2x_texixml} also exist. They may be used as follows (assuming libxslt as the XSLT processor). @anchor{Convert to man pages using pure-XSLT db2x_manxml} @strong{Convert to man pages using pure-XSLT db2x_manxml} @example $ xsltproc -o mydoc.mxml \ docbook2X-path/xslt/man/docbook.xsl \ mydoc.xml $ xsltproc \ docbook2X-path/xslt/backend/db2x_manxml.xsl \ mydoc.mxml @end example @noindent @anchor{Convert to Texinfo using Pure-XSLT db2x_texixml} @strong{Convert to Texinfo using Pure-XSLT db2x_texixml} @example $ xsltproc -o mydoc.txml \ docbook2X-path/xslt/texi/docbook.xsl \ mydoc.xml $ xsltproc \ docbook2X-path/xslt/backend/db2x_texixml.xsl \ mydoc.txml @end example Here, xsltproc(1) is used instead of @code{db2x_xsltproc}, since if you are in a situtation where you cannot use the Perl implementation of @code{db2x_manxml}, you probably cannot use @code{db2x_xsltproc} either. If for portability reasons you prefer not to use the file-system path to the docbook2X files, you can use the XML catalog provided in @file{xslt/catalog.xml} and the global URIs contained therein. @menu * db2x_xsltproc:: XSLT processor invocation wrapper * sgml2xml-isoent:: Convert SGML to XML with support for ISO entities @end menu @node db2x_xsltproc, sgml2xml-isoent, , The XSLT stylesheets @section @code{db2x_xsltproc} @cindex XSLT processor @cindex libxslt @cindex @code{db2x_xsltproc} @subheading Name @code{db2x_xsltproc} --- XSLT processor invocation wrapper @subheading Synopsis @quotation @t{db2x_xsltproc [options] xml-document } @end quotation @subheading Description @code{db2x_xsltproc} invokes the XSLT 1.0 processor for docbook2X. This command applies the XSLT stylesheet (usually given by the @code{--stylesheet} option) to the XML document in the file @var{xml-document}. The result is written to standard output (unless changed with @code{--output}). To read the source XML document from standard input, specify @samp{-} as the input document. @subheading Options @table @asis @item @code{--version} Display the docbook2X version. @end table @subsubheading Transformation output options @table @asis @item @code{--output @var{file}} @itemx @code{-o @var{file}} Write output to the given file (or URI), instead of standard output. @end table @subsubheading Source document options @table @asis @item @code{--xinclude} @itemx @code{-I} Process XInclude directives in the source document. @item @code{--sgml} @itemx @code{-S} @cindex SGML Indicate that the input document is SGML instead of XML. You need this set this option if @var{xml-document} is actually a SGML file. SGML parsing is implemented by conversion to XML via sgml2xml(1) from the SP package (or osx(1) from the OpenSP package). All tag names in the SGML file will be normalized to lowercase (i.e. the @code{-xlower} option of sgml2xml(1) is used). ID attributes are available for the stylesheet (i.e. option @code{-xid}). In addition, any ISO SDATA entities used in the SGML document are automatically converted to their XML Unicode equivalents. (This is done by a @code{sed} filter.) The encoding of the SGML document, if it is not @samp{us-ascii}, must be specified with the standard SP environment variables: @samp{SP_CHARSET_FIXED=1 SP_ENCODING=@var{encoding}}. (Note that XML files specify their encoding with the XML declaration @samp{} at the top of the file.) The above conversion options cannot be changed. If you desire different conversion options, you should invoke sgml2xml(1) manually, and then pass the results of that conversion to this program. @end table @subsubheading Retrieval options @table @asis @item @code{--catalogs @var{catalog-files}} @itemx @code{-C @var{catalog-files}} @cindex catalog Specify additional XML catalogs to use for resolving Formal Public Identifiers or URIs. SGML catalogs are not supported. These catalogs are @emph{not} used for parsing an SGML document under the @code{--sgml} option. Use the environment variable @env{SGML_CATALOG_FILES} instead to specify the catalogs for parsing the SGML document. @item @code{--network} @itemx @code{-N} @code{db2x_xsltproc} will normally refuse to load external resources from the network, for security reasons. If you do want to load from the network, set this option. Usually you want to have installed locally the relevent DTDs and other files, and set up catalogs for them, rather than load them automatically from the network. @end table @subsubheading Stylesheet options @table @asis @item @code{--stylesheet @var{file}} @itemx @code{-s @var{file}} Specify the filename (or URI) of the stylesheet to use. The special values @samp{man} and @samp{texi} are accepted as abbreviations, to specify that @var{xml-document} is in DocBook and should be converted to man pages or Texinfo (respectively). @item @code{--param @var{name}=@var{expr}} @itemx @code{-p @var{name}=@var{expr}} Add or modify a parameter to the stylesheet. @var{name} is a XSLT parameter name, and @var{expr} is an XPath expression that evaluates to the desired value for the parameter. (This means that strings must be quoted, @emph{in addition} to the usual quoting of shell arguments; use @code{--string-param} to avoid this.) @item @code{--string-param @var{name}=@var{string}} @itemx @code{-g @var{name}=@var{string}} Add or modify a string-valued parameter to the stylesheet. The string must be encoded in UTF-8 (regardless of the locale character encoding). @end table @subsubheading Debugging and profiling @table @asis @item @code{--debug} @itemx @code{-d} Display, to standard error, logs of what is happening during the XSL transformation. @item @code{--nesting-limit @var{n}} @itemx @code{-D @var{n}} Change the maximum number of nested calls to XSL templates, used to detect potential infinite loops. If not specified, the limit is 500 (libxslt's default). @item @code{--profile} @itemx @code{-P} Display profile information: the total number of calls to each template in the stylesheet and the time taken for each. This information is output to standard error. @item @code{--xslt-processor @var{processor}} @itemx @code{-X @var{processor}} Select the underlying XSLT processor used. The possible choices for @var{processor} are: @samp{libxslt}, @samp{saxon}, @samp{xalan-j}. The default processor is whatever was set when docbook2X was built. libxslt is recommended (because it is lean and fast), but SAXON is much more robust and would be more helpful when debugging stylesheets. All the processors have XML catalogs support enabled. (docbook2X requires it.) But note that not all the options above work with processors other than the libxslt one. @end table @subheading Environment @table @asis @item @env{XML_CATALOG_FILES} Specify XML Catalogs. If not specified, the standard catalog (@file{/etc/xml/catalog}) is loaded, if available. @item @env{DB2X_XSLT_PROCESSOR} Specify the XSLT processor to use. The effect is the same as the @code{--xslt-processor} option. The primary use of this variable is to allow you to quickly test different XSLT processors without having to add @code{--xslt-processor} to every script or make file in your documentation build system. @end table @subheading Conforming to @uref{http://www.w3.org/TR/xslt,XML Stylesheet Language -- Transformations (XSLT)@comma{} version 1.0}, a W3C Recommendation. @subheading Notes @cindex XSLT extensions In its earlier versions (< 0.8.4), docbook2X required XSLT extensions to run, and @code{db2x_xsltproc} was a special libxslt-based processor that had these extensions compiled-in. When the requirement for XSLT extensions was dropped, @code{db2x_xsltproc} became a Perl script which translates the options to @code{db2x_xsltproc} to conform to the format accepted by the stock xsltproc(1) which comes with libxslt. The prime reason for the existence of this script is backward compatibility with any scripts or make files that invoke docbook2X. However, it also became easy to add in support for invoking other XSLT processors with a unified command-line interface. Indeed, there is nothing special in this script to docbook2X, or even to DocBook, and it may be used for running other sorts of stylesheets if you desire. Certainly the author prefers using this command, because its invocation format is sane and is easy to use. (e.g. no typing long class names for the Java-based processors!) @subheading See Also You may wish to consult the documentation that comes with libxslt, SAXON, or Xalan. The W3C XSLT 1.0 specification would be useful for writing stylesheets. @node sgml2xml-isoent, , db2x_xsltproc, The XSLT stylesheets @section @code{sgml2xml-isoent} @cindex SGML @cindex ISO entities @cindex @code{sgml2xml-isoent} @cindex DocBook @subheading Name @code{sgml2xml-isoent} --- Convert SGML to XML with support for ISO entities @subheading Synopsis @quotation @t{sgml2xml-isoent [sgml-document]} @end quotation @subheading Description @code{sgml2xml-isoent} converts an SGML document to XML, with support for the ISO entities. This is done by using sgml2xml(1) from the SP package (or osx(1) from the OpenSP package), and the declaration for the XML version of the ISO entities is added to the output. This means that the output of this conversion should work as-is with any XML tool. This program is often used for processing SGML DocBook documents with XML-based tools. In particular, @ref{db2x_xsltproc,,@code{db2x_xsltproc}} calls this program as part of its @code{--sgml} option. On the other hand, it is probably not helpful for migrating a source SGML text file to XML, since the conversion mangles the original formatting. Since the XML version of the ISO entities are referred to directly, not via a DTD, this tool also works with document types other than DocBook. @subheading Notes The ISO entities are referred using the public identifiers @samp{ISO 8879:1986//ENTITIES//@var{@dots{}}//EN//XML}. The catalogs used when parsing the converted document should resolve these entities to the appropriate place (on the local filesystem). If the entities are not resolved in the catalog, then the fallback is to get the entity files from the @samp{http://www.docbook.org/} Web site. @subheading See Also sgml2xml(1), osx(1) @node Character set conversion, FAQ, The XSLT stylesheets, Top @chapter Character set conversion @cindex character map @cindex character sets @cindex charsets @cindex encoding @cindex transliteration @cindex re-encoding @cindex UTF-8 @cindex Unicode @cindex @code{utf8trans} @cindex escapes @cindex @code{iconv} When translating XML to legacy ASCII-based formats with poor support for Unicode, such as man pages and Texinfo, there is always the problem that Unicode characters in the source document also have to be translated somehow. A straightforward character set conversion from Unicode does not suffice, because the target character set, usually US-ASCII or ISO Latin-1, do not contain common characters such as dashes and directional quotation marks that are widely used in XML documents. But document formatters (man and Texinfo) allow such characters to be entered by a markup escape: for example, @code{\(lq} for the left directional quote @samp{``}. And if a markup-level escape is not available, an ASCII transliteration might be used: for example, using the ASCII less-than sign @code{<} for the angle quotation mark @code{<}. So the Unicode character problem can be solved in two steps: @enumerate @item @ref{utf8trans,,@code{utf8trans}}, a program included in docbook2X, maps Unicode characters to markup-level escapes or transliterations. Since there is not necessarily a fixed, official mapping of Unicode characters, @code{utf8trans} can read in user-modifiable character mappings expressed in text files and apply them. (Unlike most character set converters.) In @file{charmaps/man/roff.charmap} and @file{charmaps/man/texi.charmap} are character maps that may be used for man-page and Texinfo conversion. The programs @ref{db2x_manxml,,@code{db2x_manxml}} and @ref{db2x_texixml,,@code{db2x_texixml}} will apply these character maps, or another character map specified by the user, automatically. @item The rest of the Unicode text is converted to some other character set (encoding). For example, a French document with accented characters (such as @samp{@'e}) might be converted to ISO Latin 1. This step is applied after @code{utf8trans} character mapping, using the iconv(1) encoding conversion tool. Both @ref{db2x_manxml,,@code{db2x_manxml}} and @ref{db2x_texixml,,@code{db2x_texixml}} can call iconv(1) automatically when producing their output. @end enumerate @menu * utf8trans:: Transliterate UTF-8 characters according to a table @end menu @node utf8trans, , , Character set conversion @section @code{utf8trans} @cindex character map @cindex UTF-8 @cindex Unicode @cindex @code{utf8trans} @cindex escapes @cindex transliteration @subheading Name @code{utf8trans} --- Transliterate UTF-8 characters according to a table @subheading Synopsis @quotation @t{utf8trans charmap [file]@dots{}} @end quotation @subheading Description @cindex utf8trans @code{utf8trans} transliterates characters in the specified files (or standard input, if they are not specified) and writes the output to standard output. All input and output is in the UTF-8 encoding. This program is usually used to render characters in Unicode text files as some markup escapes or ASCII transliterations. (It is not intended for general charset conversions.) It provides functionality similar to the character maps in XSLT 2.0 (XML Stylesheet Language -- Transformations, version 2.0). @subheading Options @table @asis @item @code{-m} @itemx @code{--modify} Modifies the given files in-place with their transliterated output, instead of sending it to standard output. This option is useful for efficient transliteration of many files at once. @item @code{--help} Show brief usage information and exit. @item @code{--version} Show version and exit. @end table @subheading Usage The translation is done according to the rules in the `character map', named in the file @var{charmap}. It has the following format: @enumerate @item Each line represents a translation entry, except for blank lines and comment lines, which are ignored. @item Any amount of whitespace (space or tab) may precede the start of an entry. @item Comment lines begin with @samp{#}. Everything on the same line is ignored. @item Each entry consists of the Unicode codepoint of the character to translate, in hexadecimal, followed @emph{one} space or tab, followed by the translation string, up to the end of the line. @item The translation string is taken literally, including any leading and trailing spaces (except the delimeter between the codepoint and the translation string), and all types of characters. The newline at the end is not included. @end enumerate The above format is intended to be restrictive, to keep @code{utf8trans} simple. But if a XML-based format is desired, there is a @file{xmlcharmap2utf8trans} script that comes with the docbook2X distribution, that converts character maps in XSLT 2.0 format to the @code{utf8trans} format. @subheading Limitations @itemize @item @code{utf8trans} does not work with binary files, because malformed UTF-8 sequences in the input are substituted with U+FFFD characters. However, null characters in the input are handled correctly. This limitation may be removed in the future. @item There is no way to include a newline or null in the substitution string. @end itemize @node FAQ, Performance analysis, Character set conversion, Top @chapter FAQ @cindex FAQ @cindex tips @cindex problems @cindex bugs @table @asis @item @ @ Q: I have a SGML DocBook document. How do I use docbook2X? @cindex SGML @item @ @ A: Use the @code{--sgml} option to @code{db2x_xsltproc}. (Formerly, we described a quite intricate hack here to convert to SGML to XML while preserving the ISO entities. That hack is actually what @code{--sgml} does.) @item @ @ Q: docbook2X bombs with this document! @item @ @ A: It is probably a bug in docbook2X. (Assuming that the input document is valid DocBook in the first place.) Please file a bug report. In it, please include the document which causes docbook2X to fail, or a pointer to it, or a test case that reproduces the problem. I don't want to hear about bugs in obsolete tools (i.e. tools that are not in the current release of docbook2X.) I'm sorry, but maintaining all that is a lot of work that I don't have time for. @item @ @ Q: Must I use @code{refentry} to write my man pages? @cindex @code{refentry} @item @ @ A: Under the default settings of docbook2X: yes, you have to. The contents of the source document that lie outside of @code{refentry} elements are probably written in a book/article style that is usually not suited for the reference style of man pages. Nevertheless, sometimes you might want to include inside your man page, (small) snippets or sections of content from other parts of your book or article. You can achieve this by using a custom XSLT stylesheet to include the content manually. The docbook2X documentation demonstrates this technique: see the docbook2man(1) and the docbook2texi(1) man pages and the stylesheet that produces them in @file{doc/ss-man.xsl}. @item @ @ Q: Where have the SGML-based docbook2X tools gone? @item @ @ A: They are in a separate package now, docbook2man-sgmlspl. @item @ @ Q: I get some @code{iconv} error when converting documents. @cindex @code{iconv} @item @ @ A: It's because there is some Unicode character in your document that docbook2X fails to convert to ASCII or a markup escape (in roff or Texinfo). The error message is intentional because it alerts you to a possible loss of information in your document, although admittedly it could be less cryptic, but I unfortunately can't control what @code{iconv} says. You can look at the partial man or Texinfo output --- the offending Unicode character should be near the point that the output is interrupted. Since you probably wanted that Unicode character to be there, the way you want to fix this error is to add a translation for that Unicode character to the @code{utf8trans} character map. Then use the @code{--utf8trans-map} option to the Perl docbook2X tools to use your custom character map. Alternatively, if you want to close your eyes to the utterly broken Unicode handling in groff and Texinfo, just use the @code{--encoding=utf-8} option. Note that the UTF-8 output is unlikely to display correctly everywhere. @item @ @ Q: Texinfo output looks ugly. @item @ @ A: You have to keep in mind that Info is extremely limited in its formatting. Try setting the various parameters to the stylesheet (see @file{xslt/texi/param.xsl}). Also, if you look at native Info pages, you will see there is a certain structure, that your DocBook document may not adhere to. There is really no fix for this. It is possible, though, to give rendering hints to the Texinfo stylesheet in your DocBook source, like this this manual does. Unfortunately these are not yet documented in a prominent place. @item @ @ Q: How do I use SAXON (or Xalan-Java) with docbook2X? @cindex SAXON @cindex Xalan-Java @item @ @ A: Bob Stayton's @i{DocBook XSL: The Complete Guide} has a nice @uref{http://www.sagehill.net/docbookxsl/InstallingAProcessor.html, section on setting up the XSLT processors}. It talks about Norman Walsh's DocBook XSL stylesheets, but for docbook2X you only need to change the stylesheet argument (any file with the extension @file{.xsl}). If you use the Perl wrapper scripts provided with docbook2X, you only need to ``install'' the XSLT processors (i.e. for Java, copying the @file{*.jar} files to @file{/usr/local/share/java}), and you don't need to do anything else. @item @ @ Q: XML catalogs don't work with Xalan-Java. (Or: Stop connecting to the Internet when running docbook2X!) @cindex Xalan-Java @cindex catalog @item @ @ A: I have no idea why --- XML catalogs with Xalan-Java don't work for me either, no matter how hard I try. Just go use SAXON or libxslt instead (which do work for me at least). @item @ @ Q: I don't like how docbook2X renders this markup. @cindex rendering @cindex customizing @item @ @ A: The XSLT stylesheets are customizable, so assuming you have knowledge of XSLT, you should be able to change the rendering easily. See @file{doc/ss-texinfo.xsl} of docbook2X's own documentation for a non-trivial example. If your customizations can be generally useful, I would like to hear about it. If you don't want to muck with XSLT, you can still tell me what sort of features you want. Maybe other users want them too. @item @ @ Q: Does docbook2X support other XML document types or output formats? @cindex other output formats @cindex other document types @cindex non-DocBook document type @item @ @ A: No. But if you want to create code for a new XML document type or output format, the existing infrastructure of docbook2X may be able to help you. For example, if you want to convert a document in the W3C spec DTD to Texinfo, you can write a XSLT stylesheet that outputs a document conformant to the Texi-XML, and run that through @code{db2x_texixml} to get your Texinfo pages. Writing the said XSLT stylesheet should not be any more difficult than if you were to write a stylesheet for HTML output, in fact probably even easier. An alternative approach is to convert the source document to DocBook first, then apply docbook2X conversion afterwards. The stylesheet reference documentation in docbook2X uses this technique: the documentation embedded in the XSLT stylesheets is first extracted into a DocBook document, then that is converted to Texinfo. This approach obviously is not ideal if the source document does not map well into DocBook, but it does allow you to use the standard DocBook HTML and XSL-FO stylesheets to format the source document with little effort. If you want, on the other hand, to get troff output but using a different macro set, you will have to rewrite both the stylesheets and the post-processor (performing the function of @code{db2x_manxml} but with a different macro set). In this case some of the code in @code{db2x_manxml} may be reused, and you can certainly reuse @code{utf8trans} and the provided roff character maps. @end table @node Performance analysis, How docbook2X is tested, FAQ, Top @chapter Performance analysis @cindex speed @cindex performance @cindex optimize @cindex efficiency The performance of docbook2X, and most other DocBook tools@footnote{with the notable exception of the @uref{http://packages.debian.org/unstable/text/docbook-to-man,docbook-to-man tool} based on the @code{instant} stream processor (but this tool has many correctness problems) } can be summed up in a short phrase: @emph{they are slow}. On a modern computer producing only a few man pages at a time, with the right software --- namely, libxslt as the XSLT processor --- the DocBook tools are fast enough. But their slowness becomes a hindrance for generating hundreds or even thousands of man pages at a time. The author of docbook2X encounters this problem whenever he tries to do automated tests of the docbook2X package. Presented below are some actual benchmarks, and possible approaches to efficient DocBook to man pages conversion. @strong{docbook2X running times on 2157 refentry documents} @multitable @columnfractions 0.333333333333333 0.333333333333333 0.333333333333333 @item Step@tab Time for all pages@tab Avg. time per page @item DocBook to Man-XML@tab 519.61s@tab 0.24s @item Man-XML to man-pages@tab 383.04s@tab 0.18s @item roff character mapping@tab 6.72s@tab 0.0031s @item Total@tab 909.37s@tab 0.42s @end multitable The above benchmark was run on 2157 documents coming from the @uref{http://www.catb.org/~esr/doclifter/,doclifter} man-page-to-DocBook conversion tool. The man pages come from the section 1 man pages installed in the author's Linux system. The XML files total 44.484 MiB, and on average are 20.6KiB long. The results were obtained using the test script in @file{test/mass/test.pl}, using the default man-page conversion options. The test script employs the obvious optimizations, such as only loading once the XSLT processor, the man-pages stylesheet, @code{db2x_manxml} and @code{utf8trans}. Unfortunately, there does not seem to be obvious ways that the performance can be improved, short of re-implementing the tranformation program in a tight programming language such as C. Some notes on possible bottlenecks: @itemize @item Character mapping by @code{utf8trans} is very fast compared to the other stages of the transformation. Even loading @code{utf8trans} separately for each document only doubles the running time of the character mapping stage. @item Even though the XSLT processor is written in C, XSLT processing is still comparatively slow. It takes double the time of the Perl script@footnote{ From preliminary estimates, the Pure-XSLT solution takes only slightly longer at this stage: .22s per page} @code{db2x_manxml}, even though the XSLT portion and the Perl portion are processing documents of around the same size@footnote{Of course, conceptually, DocBook processing is more complicated. So these timings also give us an estimate of the cost of DocBook's complexity: twice the cost over a simpler document type, which is actually not too bad.} (DocBook @code{refentry} documents and Man-XML documents). In fact, profiling the stylesheets shows that a significant amount of time is spent on the localization templates, in particular the complex XPath navigation used there. An obvious optimization is to use XSLT keys for the same functionality. However, when that is implemented, the author found that the time used for @emph{setting up keys} dwarfs the time savings from avoiding the complex XPath navigation. It adds an extra 10s to the processing time for the 2157 documents. Upon closer examination of the libxslt source code, XSLT keys are seen to be implemented rather inefficiently: @emph{each} key pattern @var{x} causes the entire input document to be traversed once by evaluating the XPath @samp{//@var{x}}! @item Perhaps a C-based XSLT processor written with the best performance in mind (libxslt is not particularly the most efficiently coded) may be able to achieve better conversion times, without losing all the nice advantages of XSLT-based tranformation. Or failing that, one can look into efficient, stream-based transformations (@uref{http://stx.sourceforge.net/,STX}). @end itemize @node How docbook2X is tested, To-do list, Performance analysis, Top @chapter How docbook2X is tested @cindex testing @cindex correctness @cindex validation The testing of the process of converting from DocBook to man pages, or Texinfo, is complicated by the fact that a given input (the DocBook document) usually does not have one specific, well-defined output. Variations on the output are allowed for the result to look ``nice''. When docbook2X was in the early stages of development, the author tested it simply by running some sample DocBook documents through it, and visually inspecting the output. Clearly, this procedure is not scaleable for testing a large number of documents. In the later 0.8.@var{x} versions of docbook2X, the testing has been automated as much as possible. The testing is implemented by heuristic checks on the output to see if it comprises a ``good'' man page or Texinfo file. These are the checks in particular: @enumerate @item Validation of the Man-XML or Texi-XML output, from the first stage, XSLT stylesheets, against the XML DTDs defining the formats. @item Running groff(1) and makeinfo(1) on the output, and noting any errors or warnings from those programs. @item Other heuristic checks on the output, implemented by a Perl script. Here, spurious blank lines, uncollapsed whitespace in the output that would cause a bad display are checked. @end enumerate There are about 8000 test documents, mostly @code{refentry} documents, that can be run against the current version of docbook2X. A few of them have been gathered by the author from various sources and test cases from bug reports. The majority come from using @uref{http://www.catb.org/~esr/doclifter/,doclifter} on existing man pages. Most pages pass the above tests. To run the tests, go to the @file{test/} directory in the docbook2X distribution. The command @samp{make check} will run some tests on a few documents. For testing using doclifter, first generate the DocBook XML sources using doclifter, then take a look at the @file{test/mass/test.pl} testing script and run it. Note that a small portion of the doclifter pages will fail the tests, because they do not satisfy the heuristic tests (but are otherwise correct), or, more commonly, the source coming from the doclifter heuristic up-conversion has errors. @node To-do list, Release history, How docbook2X is tested, Top @chapter To-do list @cindex to-do @cindex future @cindex bugs @cindex wishlist @cindex DocBook With regards to DocBook support: @itemize @item @code{qandaset} table of contents Perhaps allow @code{qandadiv} elements to be nodes in Texinfo. @item @code{olink} (do it like what the DocBook XSL stylesheets do) @item @code{synopfragmentref} @item Man pages should support @code{qandaset}, @code{footnote}, @code{mediaobject}, @code{bridgehead}, @code{synopfragmentref} @code{sidebar}, @code{msgset}, @code{procedure} (and there's more). @item Some DocBook 4.0 stuff: e.g. @code{methodsynopsis}. On the other hand adding the DocBook 4.2 stuff shouldn't be that hard. @item @code{programlisting} line numbering, and call-out bugs specified using @code{area}. Seems to need XSLT extensions though. @item A template-based system for title pages, and @code{biblioentry}. @item Setting column widths in tables are not yet supported in man pages, but they should be. @item Support for typesetting mathematics. However, I have never seen any man pages or Texinfo manuals that require this, obviously because math looks horrible in ASCII text. @end itemize For other work items, see the `limitations' or `bugs' section in the individual tools' reference pages. Other work items: @itemize @item Implement tables in pure XSLT. Probably swipe the code that is in the DocBook XSL stylesheets to do so. @item Many stylesheet templates are still undocumented. @item Write documentation for Man-XML and Texi-XML. Write a smaller application (smaller than DocBook, that is!) of Man-XML and/or Texi-XML (e.g. for W3C specs). A side benefit is that we can identify any bugs or design misfeatures that are not noticed in the DocBook application. @item Need to go through the stylesheets and check/fill in any missing DocBook functionality. Make a table outlining what part of DocBook we support. For example, we have to check that each attribute is actually supported for an element that we claim to support, or else at least raise a warning to the user when that attribute is used. Also some of the DocBook elements are not rendered very nicely even when they are supported. @item Fault-tolerant, complete error handling. @item Full localization for the output, as well as the messages from docbook2X programs. (Note that we already have internationalization for the output.) @end itemize @node Release history, Design notes, To-do list, Top @chapter Release history @cindex change log @cindex history @cindex release history @cindex news @cindex bugs @anchor{docbook2X 0_8_8}@strong{docbook2X 0.8.8. } @itemize @item Errors in the Man-XML and Texi-XML DTD were fixed. These DTDs are now used to validate the output coming out of the stylesheets, as part of automated testing. (Validation provides some assurance that the result of the conversions are correct.) @item Several rendering errors were fixed after they had been discovered through automated testing. @item Two HTML files in the docbook2X documentation were accidentally omitted in the last release. They have been added. @item The pure-XSLT-based man-page conversion now supports table markup. The implemented was copied from the one by Michael Smith in the DocBook XSL stylesheets. Many thanks! @item As requested by Daniel Leidert, the man-pages stylesheets now support the @code{segmentedlist}, @code{segtitle} and @code{seg} DocBook elements. @item As suggested by Matthias Kievermagel, docbook2X now supports the @code{code} element. @end itemize @anchor{docbook2X 0_8_7}@strong{docbook2X 0.8.7. } @itemize @item Some stylistic improvements were made to the man-pages output. This includes fixing a bug that, in some cases, caused an extra blank line to occur after lists in man pages. @item There is a new value @samp{utf-8//TRANSLIT} for the @code{--encoding} option to @code{db2x_manxml} and @code{db2x_texixml}. @item Added @code{-m} to @code{utf8trans} for modifying (a large number of) files in-place. @item Added a section to the documentation discussing conversion performance. There is also a new test script, @file{test/mass/test.pl} that can exercise docbook2X by converting many documents at one time, with a focus on achieving the fastest conversion speed. @item The documentation has also been improved in several places. Most notably, the docbook2X(1) man page has been split into two much more detailed man pages explaining man-page conversion and Texinfo conversion separately, along with a reference of stylesheet parameters. The documentation has also been re-indexed (finally!) Also, due to an oversight, the last release omitted the stylesheet reference documentation. They are now included again. @item Craig Ruff's patches were not integrated correctly in the last release; this has been fixed. @item By popular demand, man-page conversion can also be done with XSLT alone --- i.e. no Perl scripts or compiling required, just a XSLT processor. If you want to convert with pure XSLT, invoke the XSLT stylesheet in @file{xslt/backend/db2x_manxml.xsl} in lieu of the @code{db2x_manxml} Perl script. @item Make the @code{xmlcharmap2utf8trans} script (convert XSLT 2.0 character maps to character maps in utf8trans format) really work. @end itemize @anchor{docbook2X 0_8_6}@strong{docbook2X 0.8.6. } @itemize @item Added rudimentary support for @code{entrytbl} in man pages; patch by Craig Ruff. @item Added template for @code{personname}; patch by Aaron Hawley. @item Fix a build problem that happened on IRIX; patch by Dirk Tilger. @item Better rendering of man pages in general. Fixed an incompatibility with Solaris troff of some generated man pages. @item Fixed some minor bugs in the Perl wrapper scripts. @item There were some fixes to the Man-XML and Texi-XML document types. Some of these changes are backwards-incompatible with previous docbook2X releases. In particular, Man-XML and Texi-XML now have their own XML namespaces, so if you were using custom XSLT stylesheets you will need to add the appropriate namespace declarations. @end itemize @anchor{docbook2X 0_8_5}@strong{docbook2X 0.8.5. } @itemize @item Fixed a bug, from version 0.8.4, with the generated Texinfo files not setting the Info directory information correctly. (This is exactly the patch that was on the docbook2X Web site.) @item Fixed a problem with @code{db2x_manxml} not calling @code{utf8trans} properly. @item Added heavy-duty testing to the docbook2X distribution. @end itemize @anchor{docbook2X 0_8_4}@strong{docbook2X 0.8.4. } @itemize @item There is now an @emph{experimental} implementation of @code{db2x_manxml} and @code{db2x_texixml} using pure XSLT, for those who can't use the Perl one for whatever reason. See the @file{xslt/backend/} directory. Do not expect this to work completely yet. In particular, tables are not yet available in man pages. (They are, of course, still available in the Perl implementation.) @item Texinfo conversion does not require XSLT extensions anymore! See @ref{Design notes; the elimination of XSLT extensions,,Design notes: the elimination of XSLT extensions} for the full story. As a consequence, @code{db2x_xsltproc} has been rewritten to be a Perl wrapper script around the stock xsltproc(1). @item The @code{-S} option to @code{db2x_xsltproc} no longer uses libxml's hackish ``SGML DocBook'' parser, but now calls sgml2xml(1). The corresponding long option has been renamed to @code{--sgml} from @code{--sgml-docbook}. @item Fixed a heap of bugs --- that caused invalid output --- in the XSLT stylesheets, @code{db2x_manxml} and @code{db2x_texixml}. Some features such as @code{cmdsynopsis} and @code{funcsynopsis} are rendered more nicely. @item Man-XML and Texi-XML now have DTDs --- these are useful when writing and debugging stylesheets. @item Added a @code{--plaintext} option to @code{db2x_texixml}. @item Updates to the docbook2X manual. Stylesheet documentation is in. @end itemize @anchor{docbook2X 0_8_3}@strong{docbook2X 0.8.3. } @itemize @item Incorporated Michael Smith's much-expanded roff character maps. @item There are some improvements to the stylesheets themselves, here and there. Also I made the Texinfo stylesheets adapt to the XSLT processor automatically (with regards to the XSLT extensions). This might be of interest to anybody wanting to use the stylesheets with some other XSLT processor (especially SAXON). @item Fixed a couple of bugs that prevented docbook2X from working on Cygwin. @item Fixed a programming error in @code{utf8trans} that caused it to segfault. At the same time, I rewrote parts of it to make it more efficient for large character maps (those with more than a thousand entries). @item The Perl component of docbook2X has switched from using libxml-perl (a SAX1 interface) to XML-SAX (a SAX2 interface). I had always wanted to do the switch since libxml-perl is not maintained, but the real impetus this time is that XML-SAX has a pure Perl XML parser. If you have difficulties building @code{XML::Parser} on Cygwin, like I did, the Perl component will automatically fall back on the pure Perl parser. @end itemize @anchor{docbook2X 0_8_2}@strong{docbook2X 0.8.2. } @itemize @item Added support for tables in man pages. Almost all table features that can be supported with @code{tbl} will work. The rest will be fixed in a subsequent release. @item Copied the ``gentext'' stuff over from Norman Walsh's XSL stylesheets. This gives (incomplete) localizations for the same languages that are supported by the Norman Walsh's XSL stylesheets. Although incomplete, they should be sufficient for localized man-page output, for which there are only a few strings like ``Name'' and ``Synopsis'' that need to be translated. If you do make non-English man pages, you will need to revise the localization files; please send patches to fix them afterwards. @item Rendering of bibliography, and other less common DocBook elements is broken. Actually, it was probably also slightly broken before. Some time will be needed to go through the stylesheets to check/document everything in it and to add anything that is still missing. @item Added @code{--info} option to @code{db2x_texixml}, to save typing the @code{makeinfo} command. @item Rename @code{--stringparam} option in @code{db2x_xsltproc} to @code{--string-param}, though the former option name is still accepted for compatibility. @item Added the stylesheet for generating the XSLT reference documentation. But the reference documentation is not integrated into the main docbook2X documentation yet. @item docbook2X no longer uses SGML-based tools to build. HTML documentation is now built with the DocBook XSL stylesheets. @item Changed the license of this package to the MIT license. This is in case someone wants to copy snippets of the XSLT stylesheets, and requiring the resulting stylesheet to be GPL seems too onerous. Actually there is no real loss since no one wants to hide XSLT source anyway. @item Switched to a newer version of autoconf. @item Fixes for portability (to non-Linux OSes). @item A number of small rendering bug fixes, as usual. @end itemize @anchor{docbook2X 0_8_1}@strong{docbook2X 0.8.1. } @itemize @item Bug fixes. @item Texinfo menu generation has been improved: the menus now look almost as good as human-authored Texinfo pages and include detailed node listings (@code{@@detailmenu}) also. @item Added option to process XInclude in @code{db2x_xsltproc} just like standard @code{xsltproc}. @end itemize @anchor{docbook2X 0_8_0}@strong{docbook2X 0.8.0. } @itemize @item Moved @code{docbook2man-spec.pl} to a sister package, docbook2man-sgmlspl, since it seems to be used quite a lot. @item There are now XSLT stylesheets for man page conversion, superceding the @code{docbook2manxml}. @code{docbook2manxml} had some neat code in it, but I fear maintaining two man-page converters will take too much time in the future, so I am dropping it now instead of later. @item Fixed build errors involving libxslt headers, etc. that plagued the last release. The libxslt wrapper (name changed to @code{db2x_xsltproc}, formerly called @code{docbook2texi-libxslt}) has been updated for the recent libxslt changes. Catalog support working. @item Transcoding output to non-UTF-8 charsets is automatic. @item Made some wrapper scripts for the two-step conversion process. @end itemize @anchor{docbook2X 0_7_0}@strong{docbook2X 0.7.0. } @itemize @item More bug squashing and features in XSLT stylesheets and Perl scripts. Too many to list. @item Added @code{docbook2texi-libxslt}, which uses libxslt. Finally, no more Java is necessary. @item Added a C-based tool to translate UTF-8 characters to arbitrary (byte) sequences, to avoid having to patch @code{recode} every time the translation changes. However, Christoph Spiel has ported the recode utf8..texi patch to GNU recode 3.6 if you prefer to use recode. @item As usual, the documentation has been improved. The documentation for the XSLT stylesheets can be extracted automatically. (Caveat: libxslt has a bug which affects this process, so if you want to build this part of the documentation yourself you must use some other XSLT processor. There is no @code{jrefentry} support in docbook2X yet, so the reference is packaged in HTML format; this will change in the next release, hopefully.) @item Build system now uses autoconf and automake. @end itemize @anchor{docbook2X 0_6_9}@strong{docbook2X 0.6.9. } @itemize @item Removed old unmaintained code such as @code{docbook2man}, @code{docbook2texi}. Moved Perl scripts to @file{perl/} directory and did some renaming of the scripts to saner names. @item Better make system. @item Debugged, fixed the XSLT stylesheets more and added libxslt invocation. @item Cut down the superfluity in the documentation. @item Fixed other bugs in @code{docbook2manxml} and the Texi-XML, Man-XML tools. @end itemize @anchor{docbook2X 0_6_1}@strong{docbook2X 0.6.1. } @itemize @item @code{docbook2man-spec.pl} has an option to strip or not strip letters in man page section names, and xref may now refer to @code{refsect@var{n}}. I have not personally tested these options, but loosing them in the interests of release early and often. @item Menu label quirks, @code{paramdef} non-conformance, and vertical simplelists with multiple columns fixed in @code{docbook2texixml}. @item Brought @code{docbook2manxml} up to speed. It builds its own documentation now. @item Arcane bugs in @code{texi_xml} and @code{man_xml} fixed. @end itemize @anchor{docbook2X 0_6_0}@strong{docbook2X 0.6.0. } @itemize @item Introduced Texinfo XSLT stylesheets. @item Bugfixes to @code{texi_xml} and @code{docbook2texixml}. @item Produced patch to GNU @code{recode} which maps Unicode characters to the corresponding Texinfo commands or characters. It is in @file{ucs2texi.patch}. I have already sent this patch to the maintainer of @code{recode}. @item Updated documentation. @end itemize @anchor{docbook2X 0_5_9}@strong{docbook2X 0.5.9. } @itemize @item Both @code{docbook2texixml} transform into intermediate XML format which closely resembles the Texinfo format, and then another tool is used to convert this XML to the actual format. This scheme moves all the messy whitespace, newline, and escaping issues out of the actual transformation code. Another benefit is that other stylesheets (systems), can be used to do the transformation, and it serves as a base for transformation to Texinfo from other DTDs. @item Texinfo node handling has been rewritten. Node handling used to work back and forth between IDs and node names, which caused a lot of confusion. The old code also could not support DocBook @code{set}s because it did not keep track of the Texinfo file being processed. As a consequence, the bug in which @code{docbook2texixml} did not output the @samp{@@setinfofile} is fixed. @code{xreflabel} handling is also sane now. In the new scheme, elements are referred to by their ID (auto-generated if necessary). The Texinfo node names are generated before doing the actual transformation, and subsequent @code{texinode_get} simply looks up the node name when given an element. @item The stylesheet architecture allows internationalization to be implemented easily, although it is not done yet. @item The (non-XML-based) old code is still in the CVS tree, but I'm not really interested in maintaining it. I'll still accept patches to them, and probably will keep them around for reference and porting purposes. There are some changes to the old code base in this new release; see old change log for details. @item The documentation has been revised. @item I am currently rewriting docbook2man using the same transform-to-XML technique. It's not included in 0.5.9 simply because I wanted to get the improved Texinfo tool out quickly. Additional XSLT stylesheets will be written. @end itemize @node Design notes, Package installation, Release history, Top @chapter Design notes @cindex design @cindex history Lessons learned: @itemize @item @cindex stream processing @cindex tree processing Think four times before doing stream-based XML processing, even though it appears to be more efficient than tree-based. Stream-based processing is usually more difficult. But if you have to do stream-based processing, make sure to use robust, fairly scaleable tools like @code{XML::Templates}, @emph{not} @code{sgmlspl}. Of course it cannot be as pleasant as tree-based XML processing, but examine @code{db2x_manxml} and @code{db2x_texixml}. @item Do not use @code{XML::DOM} directly for stylesheets. Your ``stylesheet'' would become seriously unmanageable. Its also extremely slow for anything but trivial documents. At least take a look at some of the XPath modules out there. Better yet, see if your solution really cannot use XSLT. A C/C++-based implementation of XSLT can be fast enough for many tasks. @item @cindex XSLT extensions Avoid XSLT extensions whenever possible. I don't think there is anything wrong with them intrinsically, but it is a headache to have to compile your own XSLT processor. (libxslt is written in C, and the extensions must be compiled-in and cannot be loaded dynamically at runtime.) Not to mention there seems to be a thousand different set-ups for different XSLT processors. @item @cindex Perl Perl is not as good at XML as it's hyped to be. SAX comes from the Java world, and its port to Perl (with all the object-orientedness, and without adopting Perl idioms) is awkward to use. Another problem is that Perl SAX does not seem to be well-maintained. The implementations have various bugs; while they can be worked around, they have been around for such a long time that it does not inspire confidence that the Perl XML modules are reliable software. It also seems that no one else has seriously used Perl SAX for robust applications. It seems to be unnecessarily hard to certain tasks such as displaying error diagnostics on its input, processing large documents with complicated structure. @item @cindex Man-XML @cindex Texi-XML Do not be afraid to use XML intermediate formats (e.g. Man-XML and Texi-XML) for converting to other markup languages, implemented with a scripting language. The syntax rules for these formats are made for authoring by hand, not machine generation; hence a conversion using tools designed for XML-to-XML conversion, requires jumping through hoops. You might think that we could, instead, make a separate module that abstracts all this complexity from the rest of the conversion program. For example, there is nothing stopping a XSLT processor from serializing the output document as a text document obeying the syntax rules for man pages or Texinfo documents. Theoretically you would get the same result, but it is much harder to implement. It is far easier to write plain text manipulation code in a scripting language than in Java or C or XSLT. Also, if the intermediate format is hidden in a Java class or C API, output errors are harder to see. Whereas with the intermediate-format approach, we can visually examine the textual output of the XSLT processor and fix the Perl script as we go along. Some XSLT processors support scripting to go beyond XSLT functionality, but they are usually not portable, and not always easy to use. Therefore, opt to do two-pass processing, with a standalone script as the second stage. (The first stage using XSLT.) @anchor{Design notes; the elimination of XSLT extensions} Finally, another advantage of using intermediate XML formats processed by a Perl script is that we can often eliminate the use of XSLT extensions. In particular, all the way back when XSLT stylesheets first went into docbook2X, the extensions related to Texinfo node handling could have been easily moved to the Perl script, but I didn't realize it! I feel stupid now. If I had known this in the very beginning, it would have saved a lot of development time, and docbook2X would be much more advanced by now. Note that even the man-pages stylesheet from the DocBook XSL distribution essentially does two-pass processing just the same as the docbook2X solution. That stylesheet had formerly used one-pass processing, and its authors probably finally realized what a mess that was. @item Design the XML intermediate format to be easy to use from the standpoint of the conversion tool, and similar to how XML document types work in general. e.g. abstract the paragraphs of a document, rather than their paragraph @emph{breaks} (the latter is typical of traditional markup languages, but not of XML). @item I am quite impressed by some of the things that people make XSLT 1.0 do. Things that I thought were impossible, or at least unworkable without using ``real'' scripting language. (@code{db2x_manxml} and @code{db2x_texixml} fall in the category of things that can be done in XSLT 1.0 but inelegantly.) @item Internationalize as soon as possible. That is much easier than adding it in later. Same advice for build system. @item I would suggest against using build systems based on Makefiles or any form of automake. Of course it is inertia that prevents people from switching to better build systems. But also consider that while Makefile-based build systems can do many of the things newer build systems are capable of, they often require too many fragile hacks. Developing these hacks take too much time that would be better spent developing the program itself. Alas, better build systems such as scons were not available when docbook2X was at an earlier stage. It's too late to switch now. @item Writing good documentation takes skill. This manual has has been revised substantially at least four times @footnote{ This number is probably inflated because of the so many design mistakes in the process.}, with the author consciously trying to condense information each time. @item Table processing in the pure-XSLT man-pages conversion is convoluted --- it goes through HTML(!) tables as an intermediary. That is the same way that the DocBook XSL stylesheets implement it (due to Michael Smith), and I copied the code there almost verbatim. I did it this way to save myself time and energy re-implementing tables conversion @emph{again}. And Michael Smith says that going through HTML is better, because some varieties of DocBook allow the HTML table model in addition to the CALS table model. (I am not convinced that this is such a good idea, but anyway.) Then HTML tables in DocBook can be translated to man pages too without much more effort. Is this inefficient? Probably. But that's what you get if you insist on using pure XSLT. The Perl implementation of docbook2X. already supported tables conversion for two years prior. @item The design of @code{utf8trans} is not the best. It was chosen to simplify implementations while being efficient. A more general design, while still retaining efficiency, is possible, which I describe below. However, unfortunately, at this point changing @code{utf8trans} will be too disruptive to users with little gain in functionality. Instead of working with characters, we should work with byte strings. This means that, if all input and output is in UTF-8, with no escape sequences, then UTF-8 decoding or encoding is not necessary at all. Indeed the program becomes agnostic to the character set used. Of course, multi-character matches become possible. The translation map will be an unordered list of key-value pairs. The key and value are both arbitrary-length byte strings, with an explicit length attached (so null bytes in the input and output are retained). The program would take the translation map, and transform the input file by matching the start of input, seen as a sequence of bytes, against the keys in the translation map, greedily. (Since the matching is greedy, the translation keys do not need to be restricted to be prefix-free.) Once the longest (in byte length) matching key is found, the corresponding value (another byte string) is substituted in the output, and processing repeats (until the input is finished). If, on the other hand, no match is found, the next byte in the input file is copied as-is, and processing repeats at the next byte of input. Since bytes are 8 bits and the key strings are typically very short (up to 3 bytes for a Unicode BMP character encoded in UTF-8), this algorithm can be implemented with radix search. It would be competitive, in both execution time and space, with character codepoint hashing and sparse multi-level arrays, the primary techniques for implementing Unicode @emph{character} translation. (@code{utf8trans} is implemented using sparse multi-level arrays.) One could even try to generalize the radix searching further, so that keys can include wildcard characters, for example. Taken to the extremes, the design would end up being a regular expressions processor optimized for matching many strings with common prefixes. @end itemize @node Package installation, Concept index, Design notes, Top @appendix Package installation @menu * Installation:: Package install procedure * Dependencies on other software:: Other software packages that docbook2X needs @end menu @node Installation, Dependencies on other software, , Package installation @section Installation @cindex docbook2X package @cindex installation After checking that you have the necessary prerequisites (@pxref{Dependencies on other software}), unpack the tarball, then run @samp{./configure}, and then @samp{make}, @samp{make install}, as usual. @quotation @strong{Note} @cindex pure XSLT If you intend to use only the pure XSLT version of docbook2X, then you do not need to compile or build the package at all. Simply unpack the tarball, and point your XSLT processor to the XSLT stylesheets under the @file{xslt/} subdirectory. @end quotation (The last @samp{make install} step, to install the files of the package onto the filesystem, is optional. You may use docbook2X from its own directory after building it, although in that case, when invoking docbook2X, you will have to specify some paths manually on the command-line.) You may also want to run @samp{make check} to do some checks that the package is working properly. Typing @samp{make -W docbook2X.xml man texi} in the @file{doc/} directory will rebuild docbook2X's own documentation, and can serve as an additional check. You need GNU make to build docbook2X properly. @cindex CVS If you are using the CVS version, you will also need the autoconf and automake tools, and must run @samp{./autogen.sh} first. But see also the note below about the CVS version. @cindex HTML documentation If you want to (re-)build HTML documentation (after having installed Norman Walsh's DocBook XSL stylesheets), pass @code{--with-html-xsl} to @samp{./configure}. You do not really need this, since docbook2X releases already contain pre-built HTML documentation. Some other packages also call their conversion programs @code{docbook2man} and @code{docbook2texi}; you can use the @code{--program-transform-name} parameter to @samp{./configure} if you do not want docbook2X to clobber over your existing @code{docbook2man} or @code{docbook2texi}. If you are using a Java-based XSLT processor, you need to use pass @code{--with-xslt-processor=saxon} for SAXON, or @code{--with-xslt-processor=xalan-j} for Xalan-Java. (The default is for libxslt.) In addition, since the automatic check for the installed JARs is not very intelligent, you will probably need to pass some options to @samp{./configure} to tell it where the JARs are. See @samp{./configure --help} for details. The docbook2X package supports VPATH builds (building in a location other than the source directory), but any newly generated documentation will not end up in the right place for installation and redistribution. Cross compilation is not supported at all. @noindent @anchor{Installation problems} @subsection Installation problems @cindex problems @table @asis @item @ @ Q: Where is @code{XML::Handler::SGMLSpl}? @item @ @ A: It's included in the docbook2X package. If Perl says it cannot find it, then that is a bug in the docbook2X distribution. Please report it. In older versions of docbook2X, the SGMLSpl module had to be installed, or specified manually on the Perl command line. That is no longer the case. @item @ @ Q: @code{db2x_xsltproc} tells me that `one input document is required' when building docbook2X. @item @ @ A: Use GNU make to build docbook2X (as opposed to BSD make). I could fix this incompatibility in the docbook2X make files, but some of the default automake rules have the same problem, so I didn't bother. @item @ @ Q: When docbook2X attempts to build its documentation, I get errors about ``attempting to load network entity'', etc. @item @ @ A: You will need to set up the XML catalogs for the DocBook XML DTDs correctly. This tells the XSLT processor where to find the DocBook DTDs on your system. Recent Linux distributions should already have this done for you. This error (or rather, warning) is harmless in the case of docbook2X documentation --- it does not actually require the DTD to build. But your other DocBook documents might (mainly because they use the ISO entities). libxml also understands SGML catalogs, but last time I tried it there was some bug that stopped it from working. Your Mileage May Vary. @item @ @ Q: I cannot build from CVS. @item @ @ A: If the problem is related to HTML files, then you must pass @code{--with-html-xsl} to @code{configure}. The problem is that the HTML files are automatically generated from the XML source and are not in CVS, but the Makefile still tries to install them. (This issue does not appear when building from release tarballs.) @end table For other docbook2X problems, please also look at its main documentation. @node Dependencies on other software, , Installation, Package installation @section Dependencies on other software @cindex dependencies @cindex prerequisites @cindex docbook2X package To use docbook2X you need: @table @asis @item A reasonable Unix system, with Perl 5 @cindex Windows docbook2X can work on Linux, FreeBSD, Solaris, and Cygwin on Windows. A C compiler is required to compile a small ANSI C program (@code{utf8trans}). @item XML-NamespaceSupport, XML-SAX, XML-Parser and XML-SAX-Expat (Perl modules) @cindex Perl The last two are optional: they add a Perl interface to the C-based XML parser Expat. It is recommended that you install them anyway; otherwise, the fallback Perl-based XML parser makes docbook2X real slow. You can get all the Perl modules here: @uref{http://www.cpan.org/modules/by-category/11_String_Lang_Text_Proc/XML/,CPAN XML module listing}. @item iconv @cindex @code{iconv} If you are running Linux glibc, you already have it. Otherwise, see @uref{http://www.gnu.org/software/libiconv/,the GNU libiconv home page}. @item XSLT 1.0 processor @cindex SAXON @cindex Xalan-Java @cindex libxslt You have a choice of: @table @asis @item libxslt See the @uref{http://xmlsoft.org/, libxml2@comma{} libxslt home page}. @item SAXON See @uref{http://saxon.sourceforge.net/, the SAXON home page}. @item Xalan-Java See @uref{http://xml.apache.org/xalan-j/, the Xalan-Java home page}. @end table @cindex catalog For the Java-based processors (SAXON and Xalan-Java), you will also need@footnote{Strictly speaking this component is not required, but if you do not have it, you will almost certainly have your computer downloading large XML files from the Internet all the time, as portable XML files will not refer directly to cached local copies of the required files.} @uref{http://xml.apache.org/commons/,the Apache XML Commons} distribution. This adds XML catalogs support to any Java-based processor. Out of the three processors, libxslt is recommended. (I would have added support for other XSLT processors, but only these three seem to have proper XML catalogs support.) Unlike previous versions of docbook2X, these Java-based processors can work almost out-of-the-box. Also docbook2X no longer needs to compile XSLT extensions, so you if you use an OS distribution package of libxslt, you do not need the development versions of the library any more. @item DocBook XML DTD @cindex DocBook Make sure you set up the XML catalogs for the DTDs you install. The @uref{http://www.docbook.org/,@i{DocBook: The Definitive Guide} website} has more information. You may also need the SGML DTD if your documents are SGML rather than XML. @item Norman Walsh's DocBook XSL stylesheets @cindex HTML documentation See the @uref{http://docbook.sourceforge.net/,Open DocBook Repository}. This is optional and is only used to build documentation in HTML format. In your XML catalog, point the URI in @file{doc/ss-html.xsl} to a local copy of the stylesheets. @end table For all the items above, it will be easier for you to install the OS packaging of the software (e.g. Debian packages), than to install them manually. But be aware that sometimes the OS package may not be for an up-to-date version of the software. @cindex Windows If you cannot satisfy all the prerequisites above (say you are on a vanilla Win32 system), then you will not be able to ``build'' docbook2X properly, but if you are knowledgeable, you can still salvage its parts (e.g. the XSLT stylesheets, which can be run alone). @node Concept index, , Package installation, Top @unnumbered Index @printindex cp @bye docbook2X-0.8.8/doc/docbook2X.txml0000644000175000017500000042672710572275333013640 00000000000000 Top Quick start Converting to man pages docbook2man wrapper script db2x_manxml db2x_manxml_name Converting to Texinfo docbook2texi wrapper script db2x_texixml db2x_texixml_name The XSLT stylesheets Convert to man pages using pure-XSLT db2x_manxml Convert to Texinfo using Pure-XSLT db2x_texixml db2x_xsltproc db2x_xsltproc_name sgml2xml-isoent sgml2xml-isoent_name Character set conversion utf8trans utf8trans_name FAQ Performance analysis How docbook2X is tested To-do list Release history docbook2X 0_8_8 docbook2X 0_8_7 docbook2X 0_8_6 docbook2X 0_8_5 docbook2X 0_8_4 docbook2X 0_8_3 docbook2X 0_8_2 docbook2X 0_8_1 docbook2X 0_8_0 docbook2X 0_7_0 docbook2X 0_6_9 docbook2X 0_6_1 docbook2X 0_6_0 docbook2X 0_5_9 Design notes Design notes: the elimination of XSLT extensions Package installation Installation Installation problems Dependencies on other software Concept indexdocbook2Xdocbook2XConvert DocBook into man pages and Texinfodocbook2XDocBook docbook2X converts DocBook documents into man pages and Texinfo documents. It aims to support DocBook version 4.2, excepting the features that cannot be supported or are not useful in a man page or Texinfo document. web sitedownload For information on the latest releases of docbook2X, and downloads, please visit the docbook2X home page. Quick startExamples to get you startedConverting to man pagesDetails on man-page conversionConverting to TexinfoDetails on Texinfo conversionThe XSLT stylesheetsHow to run the docbook2X XSLT stylesheetsCharacter set conversionDiscussion on reproducing non-ASCII characters in the converted outputFAQAnswers and tips for common problemsPerformance analysisDiscussion on conversion speedHow docbook2X is testedDiscussion of correctness-testingTo-do listIdeas for future improvementsRelease historyChanges to the package between releasesDesign notesAuthor’s notes on the grand scheme of docbook2XPackage installationWhere to get docbook2X, and details on how to install itIndex— The Detailed Node Listing —Converting to man pagesdocbook2manConvert DocBook to man pagesdb2x_manxmlMake man pages from Man-XMLConverting to Texinfodocbook2texiConvert DocBook to Texinfodb2x_texixmlMake Texinfo files from Texi-XMLThe XSLT stylesheetsdb2x_xsltprocXSLT processor invocation wrappersgml2xml-isoentConvert SGML to XML with support for ISO entitiesCharacter set conversionutf8transTransliterate UTF-8 characters according to a tablePackage installationInstallationPackage install procedureDependencies on other softwareOther software packages that docbook2X needsQuick startexample usageconverting to man pagesconverting to Texinfo To convert to man pages, you run the command docbook2man (). For example, $ docbook2man --solinks manpages.xml The man pages will be output to your current directory. The --solinks options tells docbook2man to create man page links. You may want to omit this option when developing documentation so that your working directory does not explode with many stub man pages. (If you don’t know what this means, you can read about it in detail in db2x_manxml, or just ignore the previous two sentences and always specify this option.) To convert to Texinfo, you run the command docbook2texi (). For example, $ docbook2texi tdg.xml One (or more) Texinfo files will be output to your current directory. The rest of this manual describes in detail all the other options and how to customize docbook2X’s output. Converting to man pagesman pagesconverting to man pagesXSLT stylesheetsMan-XML DocBook documents are converted to man pages in two steps: The DocBook source is converted by a XSLT stylesheet into an intermediate XML format, Man-XML. Man-XML is simpler than DocBook and closer to the man page format; it is intended to make the stylesheets’ job easier. The stylesheet for this purpose is in xslt/man/docbook.xsl. For portability, it should always be referred to by the following URI: http://docbook2x.sourceforge.net/latest/xslt/man/docbook.xsl Run this stylesheet with db2x_xsltproc. customizingCustomizing. You can also customize the output by creating your own XSLT stylesheet — changing parameters or adding new templates — and importing xslt/man/docbook.xsl. Man-XML is converted to the actual man pages by db2x_manxml. The docbook2man () command does both steps automatically, but if any problems occur, you can see the errors more clearly if you do each step separately: $ db2x_xsltproc -s man mydoc.xml -o mydoc.mxml $ db2x_manxml mydoc.mxml Options to the conversion stylesheet are described in the man-pages stylesheets reference. pure XSLTPure XSLT conversion. An alternative to the db2x_manxml Perl script is the XSLT stylesheet in xslt/backend/db2x_manxml.xsl. This stylesheet performs a similar function of converting Man-XML to actual man pages. It is useful if you desire a pure XSLT solution to man-page conversion. Of course, the quality of the conversion using this stylesheet will never be as good as the Perl db2x_manxml, and it runs slower. In particular, the pure XSLT version currently does not support tables in man pages, but its Perl counterpart does. docbook2manConvert DocBook to man pagesdb2x_manxmlMake man pages from Man-XML
docbook2man
man pagesconverting to man pageswrapper scriptdocbook2manNamedocbook2man — Convert DocBook to man pagesSynopsisdocbook2man [options] xml-document Description docbook2man converts the given DocBook XML document into man pages. By default, the man pages will be output to the current directory. refentry Only the refentry content in the DocBook document is converted. (To convert content outside of a refentry, stylesheet customization is required. See the docbook2X package for details.) The docbook2man command is a wrapper script for a two-step conversion process. Options The available options are essentially the union of the options from db2x_xsltproc and db2x_manxml. Some commonly-used options are listed below: --encoding=encoding Sets the character encoding of the output. --string-param parameter=value Sets a stylesheet parameter (options that affect how the output looks). See “Stylesheet parameters” below for the parameters that can be set. --sgml Accept an SGML source document as input instead of XML. --solinks Make stub pages for alternate names for an output man page. Stylesheet parametersstylesheet parametersuppercase-headingsBrief. Make headings uppercase?Default setting. 1 (boolean true) Headings in man page content should be or should not be uppercased. manvolnum-cite-numeral-onlyBrief. Man page section citation should use only the numberDefault setting. 1 (boolean true) When citing other man pages, the man-page section is either given as is, or has the letters stripped from it, citing only the number of the section (e.g. section 3x becomes 3). This option specifies which style. quotes-on-literalsBrief. Display quotes on literal elements?Default setting. 0 (boolean false) If true, render literal elements with quotes around them. show-commentsBrief. Display comment elements?Default setting. 1 (boolean true)If true, comments will be displayed, otherwise they are suppressed. Comments here refers to the comment element, which will be renamed remark in DocBook V4.0, not XML comments (<-- like this -->) which are unavailable. function-parensBrief. Generate parentheses after a function?Default setting. 0 (boolean false)If true, the formatting of a <function> element will include generated parenthesis. xref-on-linkBrief. Should link generate a cross-reference?Default setting. 1 (boolean true) Man pages cannot render the hypertext links created by link. If this option is set, then the stylesheet renders a cross reference to the target of the link. (This may reduce clutter). Otherwise, only the content of the link is rendered and the actual link itself is ignored. header-3Brief. Third header textDefault setting. (blank) Specifies the text of the third header of a man page, typically the date for the man page. If empty, the date content for the refentry is used. header-4Brief. Fourth header textDefault setting. (blank) Specifies the text of the fourth header of a man page. If empty, the refmiscinfo content for the refentry is used. header-5Brief. Fifth header textDefault setting. (blank) Specifies the text of the fifth header of a man page. If empty, the ‘manual name’, that is, the title of the book or reference container is used. default-manpage-sectionBrief. Default man page sectionDefault setting. 1 The source document usually indicates the sections that each man page should belong to (with manvolnum in refmeta). In case the source document does not indicate man-page sections, this option specifies the default. custom-localization-fileBrief. URI of XML document containing custom localization dataDefault setting. (blank) This parameter specifies the URI of a XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. The text translations pointed to by this parameter always override the default text translations (from the internal parameter localization-file). If a particular translation is not present here, the corresponding default translation is used as a fallback. This parameter is primarily for changing certain punctuation characters used in formatting the source document. The settings for punctuation characters are often specific to the source document, but can also be dependent on the locale. To not use custom text translations, leave this parameter as the empty string. custom-l10n-dataBrief. XML document containing custom localization dataDefault setting. document($custom-localization-file) This parameter specifies the XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. This parameter is internal to the stylesheet. To point to an external XML document with a URI or a file name, you should use the custom-localization-file parameter instead. However, inside a custom stylesheet (not on the command-line) this paramter can be set to the XPath expression document(''), which will cause the custom translations directly embedded inside the custom stylesheet to be read. author-othername-in-middleBrief. Is othername in author a middle name?Default setting. 1If true, the othername of an author appears between the firstname and surname. Otherwise, othername is suppressed. Examplesexample usage$ docbook2man --solinks manpages.xml $ docbook2man --solinks --encoding=utf-8//TRANSLIT manpages.xml $ docbook2man --string-param header-4="Free Recode 3.6" document.xml Limitations Internally there is one long pipeline of programs which your document goes through. If any segment of the pipeline fails (even trivially, like from mistyped program options), the resulting errors can be difficult to decipher — in this case, try running the components of docbook2X separately.
db2x_manxml
man pagesconverting to man pagesMan-XMLstub pagessymbolic linksencodingoutput directorydb2x_manxmlNamedb2x_manxml — Make man pages from Man-XMLSynopsisdb2x_manxml [options] [xml-document]Description db2x_manxml converts a Man-XML document into one or more man pages. They are written in the current directory. If xml-document is not given, then the document to convert is read from standard input. Options--encoding=encoding Select the character encoding used for the output files. The available encodings are those of iconv(1). The default encoding is us-ascii. The XML source may contain characters that are not representable in the encoding that you select; in this case the program will bomb out during processing, and you should choose another encoding. (This is guaranteed not to happen with any Unicode encoding such as UTF-8, but unfortunately not everyone is able to process Unicode texts.) If you are using GNU’s version of iconv(1), you can affix //TRANSLIT to the end of the encoding name to attempt transliterations of any unconvertible characters in the output. Beware, however, that the really inconvertible characters will be turned into another of those damned question marks. (Aren’t you sick of this?) The suffix //TRANSLIT applied to a Unicode encoding — in particular, utf-8//TRANSLIT — means that the output files are to remain in Unicode, but markup-level character translations using utf8trans are still to be done. So in most cases, an English-language document, converted using --encoding=utf-8//TRANSLIT will actually end up as a US-ASCII document, but any untranslatable characters will remain as UTF-8 without any warning whatsoever. (Note: strictly speaking this is not “transliteration”.) This method of conversion is a compromise over strict --encoding=us-ascii processing, which aborts if any untranslatable characters are encountered. Note that man pages and Texinfo documents in non-ASCII encodings (including UTF-8) may not be portable to older (non-internationalized) systems, which is why the default value for this option is us-ascii. To suppress any automatic character mapping or encoding conversion whatsoever, pass the option --encoding=utf-8. --list-files Write a list of all the output files to standard output, in addition to normal processing. --output-dir=dir Specify the directory where the output files are placed. The default is the current working directory. This option is ignored if the output is to be written to standard output (triggered by the option --to-stdout). --to-stdout Write the output to standard output instead of to individual files. If this option is used even when there are supposed to be multiple output documents, then everything is concatenated to standard output. But beware that most other programs will not accept this concatenated output. This option is incompatible with --list-files, obviously. --helpShow brief usage information and exit.--versionShow version and exit.Some man pages may be referenced under two or more names, instead of just one. For example, strcpy(3) and strncpy(3) often point to the same man page which describes the two functions together. Choose one of the following options to select how such man pages are to be generated: --symlinksFor each of all the alternate names for a man page, erect symbolic links to the file that contains the real man page content. --solinksGenerate stub pages (using .so roff requests) for the alternate names, pointing them to the real man page content.--no-linksDo not make any alternative names available. The man page can only be referenced under its principal name. This program uses certain other programs for its operation. If they are not in their default installed locations, then use the following options to set their location: --utf8trans-program=path--utf8trans-map=charmapUse the character map charmap with the utf8trans program, included with docbook2X, found under path.--iconv-program=pathThe location of the iconv(1) program, used for encoding conversions.Notesgroffcompatibility The man pages produced should be compatible with most troff implementations and other tools that process man pages. Some backwards-compatible groff(1) extensions are used to make the output look nicer. See Also The input to db2x_manxml is defined by the XML DTD present at dtd/Man-XML in the docbook2X distribution. Converting to TexinfoTexinfoconverting to TexinfoXSLT stylesheetsTexi-XML DocBook documents are converted to Texinfo in two steps: The DocBook source is converted by a XSLT stylesheet into an intermediate XML format, Texi-XML. Texi-XML is simpler than DocBook and closer to the Texinfo format; it is intended to make the stylesheets’ job easier. The stylesheet for this purpose is in xslt/texi/docbook.xsl. For portability, it should always be referred to by the following URI: http://docbook2x.sourceforge.net/latest/xslt/texi/docbook.xsl Run this stylesheet with db2x_xsltproc. customizingCustomizing. You can also customize the output by creating your own XSLT stylesheet — changing parameters or adding new templates — and importing xslt/texi/docbook.xsl. Texi-XML is converted to the actual Texinfo files by db2x_texixml. The docbook2texi () command does both steps automatically, but if any problems occur, you can see the errors more clearly if you do each step separately: $ db2x_xsltproc -s texi mydoc.xml -o mydoc.txml $ db2x_texixml mydoc.txml Options to the conversion stylesheet are described in the Texinfo stylesheets reference. docbook2texiConvert DocBook to Texinfodb2x_texixmlMake Texinfo files from Texi-XML
docbook2texi
Texinfoconverting to Texinfowrapper scriptdocbook2texiNamedocbook2texi — Convert DocBook to TexinfoSynopsisdocbook2texi [options] xml-document Description docbook2texi converts the given DocBook XML document into one or more Texinfo documents. By default, these Texinfo documents will be output to the current directory. The docbook2texi command is a wrapper script for a two-step conversion process. Options The available options are essentially the union of the options for db2x_xsltproc and db2x_texixml. Some commonly-used options are listed below: --encoding=encoding Sets the character encoding of the output. --string-param parameter=value Sets a stylesheet parameter (options that affect how the output looks). See “Stylesheet parameters” below for the parameters that can be set. --sgml Accept an SGML source document as input instead of XML. Stylesheet parametersstylesheet parameterscaptions-display-as-headingsBrief. Use heading markup for minor captions?Default setting. 0 (boolean false)If true, title content in some (formal) objects are rendered with the Texinfo @heading commands. If false, captions are rendered as an emphasized paragraph. links-use-pxrefBrief. Translate link using @pxrefDefault setting. 1 (boolean true) If true, link is translated with the hypertext followed by the cross reference in parentheses. Otherwise, the hypertext content serves as the cross-reference name marked up using @ref. Typically info displays this contruct badly. explicit-node-namesBrief. Insist on manually constructed Texinfo node namesDefault setting. 0 (boolean false) Elements in the source document can influence the Texinfo node name generation specifying either a xreflabel, or for the sectioning elements, a title with role='texinfo-node' in the *info container. However, for the majority of source documents, explicit Texinfo node names are not available, and the stylesheet tries to generate a reasonable one instead, e.g. from the normal title of an element. The generated name may not be optimal. If this option is set and the stylesheet needs to generate a name, a warning is emitted and generate-id is always used for the name. When the hashtable extension is not available, the stylesheet cannot check for node name collisions, and in this case, setting this option and using explicit node names are recommended. This option is not set (i.e. false) by default. NoteThe absolute fallback for generating node names is using the XSLT function generate-id, and the stylesheet always emits a warning in this case regardless of the setting of explicit-node-names.show-commentsBrief. Display comment elements?Default setting. 1 (boolean true)If true, comments will be displayed, otherwise they are suppressed. Comments here refers to the comment element, which will be renamed remark in DocBook V4.0, not XML comments (<-- like this -->) which are unavailable. funcsynopsis-decorationBrief. Decorate elements of a FuncSynopsis?Default setting. 1 (boolean true)If true, elements of the FuncSynopsis will be decorated (e.g. bold or italic). The decoration is controlled by functions that can be redefined in a customization layer. function-parensBrief. Generate parentheses after a function?Default setting. 0 (boolean false)If true, the formatting of a <function> element will include generated parenthesis. refentry-display-nameBrief. Output NAME header before 'RefName'(s)?Default setting. 1 (boolean true)If true, a "NAME" section title is output before the list of 'RefName's. manvolnum-in-xrefBrief. Output manvolnum as part of refentry cross-reference?Default setting. 1 (boolean true)if true, the manvolnum is used when cross-referencing refentrys, either with xref or citerefentry. prefer-textobjectsBrief. Prefer textobject over imageobject? Default setting. 1 (boolean true) If true, the textobject in a mediaobject is preferred over any imageobject. (Of course, for output formats other than Texinfo, you usually want to prefer the imageobject, but Info is a text-only format.) In addition to the values true and false, this parameter may be set to 2 to indicate that both the text and the images should be output. You may want to do this because some Texinfo viewers can read images. Note that the Texinfo @image command has its own mechanism for switching between text and image output — but we do not use this here. The default is true. semantic-decorationsBrief. Use Texinfo semantic inline markup?Default setting. 1 (boolean true) If true, the semantic inline markup of DocBook is translated into (the closest) Texinfo equivalent. This is the default. However, because the Info format is limited to plain text, the semantic inline markup is often distinguished by using explicit quotes, which may not look good. You can set this option to false to suppress these. (For finer control over the inline formatting, you can use your own stylesheet.) custom-localization-fileBrief. URI of XML document containing custom localization dataDefault setting. (blank) This parameter specifies the URI of a XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. The text translations pointed to by this parameter always override the default text translations (from the internal parameter localization-file). If a particular translation is not present here, the corresponding default translation is used as a fallback. This parameter is primarily for changing certain punctuation characters used in formatting the source document. The settings for punctuation characters are often specific to the source document, but can also be dependent on the locale. To not use custom text translations, leave this parameter as the empty string. custom-l10n-dataBrief. XML document containing custom localization dataDefault setting. document($custom-localization-file) This parameter specifies the XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. This parameter is internal to the stylesheet. To point to an external XML document with a URI or a file name, you should use the custom-localization-file parameter instead. However, inside a custom stylesheet (not on the command-line) this paramter can be set to the XPath expression document(''), which will cause the custom translations directly embedded inside the custom stylesheet to be read. author-othername-in-middleBrief. Is othername in author a middle name?Default setting. 1If true, the othername of an author appears between the firstname and surname. Otherwise, othername is suppressed. output-fileBrief. Name of the Info fileDefault setting. (blank)Texinfo metadataThis parameter specifies the name of the final Info file, overriding the setting in the document itself and the automatic selection in the stylesheet. If the document is a set, this parameter has no effect. Important Do not include the .info extension in the name. (Note that this parameter has nothing to do with the name of the Texi-XML output by the XSLT processor you are running this stylesheet from.) directory-categoryBrief. The categorization of the document in the Info directoryDefault setting. (blank)Texinfo metadata This is set to the category that the document should go under in the Info directory of installed Info files. For example, General Commands. Note Categories may also be set directly in the source document. But if this parameter is not empty, then it always overrides the setting in the source document. directory-descriptionBrief. The description of the document in the Info directoryDefault setting. (blank)Texinfo metadata This is a short description of the document that appears in the Info directory of installed Info files. For example, An Interactive Plotting Program. Note Menu descriptions may also be set directly in the source document. But if this parameter is not empty, then it always overrides the setting in the source document. index-categoryBrief. The Texinfo index to useDefault setting. cpThe Texinfo index for indexterm and index is specified using the role attribute. If the above elements do not have a role, then the default specified by this parameter is used. The predefined indices are: ccpConcept indexffnFunction indexvvrVariable indexkkyKeystroke indexppgProgram indexdtpData type index User-defined indices are not yet supported. qanda-defaultlabelBrief. Sets the default for defaultlabel on QandASet.Default setting. If no defaultlabel attribute is specified on a QandASet, this value is used. It must be one of the legal values for the defaultlabel attribute. qandaset-generate-tocBrief. Is a Table of Contents created for QandASets?Default setting. If true, a ToC is constructed for QandASets. Examplesexample usage$ docbook2texi tdg.xml $ docbook2texi --encoding=utf-8//TRANSLIT tdg.xml $ docbook2texi --string-param semantic-decorations=0 tdg.xml Limitations Internally there is one long pipeline of programs which your document goes through. If any segment of the pipeline fails (even trivially, like from mistyped program options), the resulting errors can be difficult to decipher — in this case, try running the components of docbook2X separately.
db2x_texixml
Texinfoconverting to TexinfoTexi-XMLencodingoutput directorymakeinfoNamedb2x_texixml — Make Texinfo files from Texi-XMLSynopsisdb2x_texixml [options]… [xml-document]Description db2x_texixml converts a Texi-XML document into one or more Texinfo documents. If xml-document is not given, then the document to convert comes from standard input. The filenames of the Texinfo documents are determined by markup in the Texi-XML source. (If the filenames are not specified in the markup, then db2x_texixml attempts to deduce them from the name of the input file. However, the Texi-XML source should specify the filename, because it does not work when there are multiple output files or when the Texi-XML source comes from standard input.) Options--encoding=encoding Select the character encoding used for the output files. The available encodings are those of iconv(1). The default encoding is us-ascii. The XML source may contain characters that are not representable in the encoding that you select; in this case the program will bomb out during processing, and you should choose another encoding. (This is guaranteed not to happen with any Unicode encoding such as UTF-8, but unfortunately not everyone is able to process Unicode texts.) If you are using GNU’s version of iconv(1), you can affix //TRANSLIT to the end of the encoding name to attempt transliterations of any unconvertible characters in the output. Beware, however, that the really inconvertible characters will be turned into another of those damned question marks. (Aren’t you sick of this?) The suffix //TRANSLIT applied to a Unicode encoding — in particular, utf-8//TRANSLIT — means that the output files are to remain in Unicode, but markup-level character translations using utf8trans are still to be done. So in most cases, an English-language document, converted using --encoding=utf-8//TRANSLIT will actually end up as a US-ASCII document, but any untranslatable characters will remain as UTF-8 without any warning whatsoever. (Note: strictly speaking this is not “transliteration”.) This method of conversion is a compromise over strict --encoding=us-ascii processing, which aborts if any untranslatable characters are encountered. Note that man pages and Texinfo documents in non-ASCII encodings (including UTF-8) may not be portable to older (non-internationalized) systems, which is why the default value for this option is us-ascii. To suppress any automatic character mapping or encoding conversion whatsoever, pass the option --encoding=utf-8. --list-files Write a list of all the output files to standard output, in addition to normal processing. --output-dir=dir Specify the directory where the output files are placed. The default is the current working directory. This option is ignored if the output is to be written to standard output (triggered by the option --to-stdout). --to-stdout Write the output to standard output instead of to individual files. If this option is used even when there are supposed to be multiple output documents, then everything is concatenated to standard output. But beware that most other programs will not accept this concatenated output. This option is incompatible with --list-files, obviously. --infoPipe the Texinfo output to makeinfo(1), creating Info files directly instead of Texinfo files.--plaintextPipe the Texinfo output to makeinfo --no-headers, thereby creating plain text files.--helpShow brief usage information and exit.--versionShow version and exit. This program uses certain other programs for its operation. If they are not in their default installed locations, then use the following options to set their location: --utf8trans-program=path--utf8trans-map=charmapUse the character map charmap with the utf8trans program, included with docbook2X, found under path.--iconv-program=pathThe location of the iconv(1) program, used for encoding conversions.NotesTexinfo language compatibility. compatibility The Texinfo files generated by db2x_texixml sometimes require Texinfo version 4.7 (the latest version) to work properly. In particular: db2x_texixml relies on makeinfo to automatically add punctuation after a @ref if it it not already there. Otherwise the hyperlink will not work in the Info reader (although makeinfo will not emit any error). The new @comma{} command is used for commas (,) occurring inside argument lists to Texinfo commands, to disambiguate it from the comma used to separate different arguments. The only alternative otherwise would be to translate , to . which is obviously undesirable (but earlier docbook2X versions did this).If you cannot use version 4.7 of makeinfo, you can still use a sed script to perform manually the procedure just outlined. Relation of Texi-XML with the XML output format of makeinfo. The Texi-XML format used by docbook2X is different and incompatible with the XML format generated by makeinfo(1) with its --xml option. This situation arose partly because the Texi-XML format of docbook2X was designed and implemented independently before the appearance of makeinfo’s XML format. Also Texi-XML is very much geared towards being machine-generated from other XML formats, while there seems to be no non-trivial applications of makeinfo’s XML format. So there is no reason at this point for docbook2X to adopt makeinfo’s XML format in lieu of Texi-XML. Bugs Text wrapping in menus is utterly broken for non-ASCII text. It is probably also broken everywhere else in the output, but that would be makeinfo’s fault. --list-files might not work correctly with --info. Specifically, when the output Info file get too big, makeinfo will decide to split it into parts named abc.info-1, abc.info-2, abc.info-3, etc. db2x_texixml does not know exactly how many of these files there are, though you can just do an ls to find out. See Also The input to db2x_texixml is defined by the XML DTD present at dtd/Texi-XML in the docbook2X distribution. The XSLT stylesheetsXSLT processorlibxsltSAXONcatalogdb2x_xsltproc docbook2X uses a XSLT 1.0 processor to run its stylesheets. docbook2X comes with a wrapper script, db2x_xsltproc, that invokes the XSLT processor, but you can invoke the XSLT processor in any other way you wish. The stylesheets are described in the man-pages stylesheets reference and the Texinfo stylesheets reference. pure XSLTxsltproc Pure-XSLT implementations of db2x_manxml and db2x_texixml also exist. They may be used as follows (assuming libxslt as the XSLT processor). Convert to man pages using pure-XSLT db2x_manxml$ xsltproc -o mydoc.mxml \ docbook2X-path/xslt/man/docbook.xsl \ mydoc.xml $ xsltproc \ docbook2X-path/xslt/backend/db2x_manxml.xsl \ mydoc.mxml Convert to Texinfo using Pure-XSLT db2x_texixml$ xsltproc -o mydoc.txml \ docbook2X-path/xslt/texi/docbook.xsl \ mydoc.xml $ xsltproc \ docbook2X-path/xslt/backend/db2x_texixml.xsl \ mydoc.txml Here, xsltproc(1) is used instead of db2x_xsltproc, since if you are in a situtation where you cannot use the Perl implementation of db2x_manxml, you probably cannot use db2x_xsltproc either. If for portability reasons you prefer not to use the file-system path to the docbook2X files, you can use the XML catalog provided in xslt/catalog.xml and the global URIs contained therein. db2x_xsltprocXSLT processor invocation wrappersgml2xml-isoentConvert SGML to XML with support for ISO entities
db2x_xsltproc
XSLT processorlibxsltdb2x_xsltprocNamedb2x_xsltproc — XSLT processor invocation wrapperSynopsisdb2x_xsltproc [options] xml-document Description db2x_xsltproc invokes the XSLT 1.0 processor for docbook2X. This command applies the XSLT stylesheet (usually given by the --stylesheet option) to the XML document in the file xml-document. The result is written to standard output (unless changed with --output). To read the source XML document from standard input, specify - as the input document. Options--version Display the docbook2X version. Transformation output options--output file-o file Write output to the given file (or URI), instead of standard output. Source document options--xinclude-I Process XInclude directives in the source document. --sgml-SSGML Indicate that the input document is SGML instead of XML. You need this set this option if xml-document is actually a SGML file. SGML parsing is implemented by conversion to XML via sgml2xml(1) from the SP package (or osx(1) from the OpenSP package). All tag names in the SGML file will be normalized to lowercase (i.e. the -xlower option of sgml2xml(1) is used). ID attributes are available for the stylesheet (i.e. option -xid). In addition, any ISO SDATA entities used in the SGML document are automatically converted to their XML Unicode equivalents. (This is done by a sed filter.) The encoding of the SGML document, if it is not us-ascii, must be specified with the standard SP environment variables: SP_CHARSET_FIXED=1 SP_ENCODING=encoding. (Note that XML files specify their encoding with the XML declaration <?xml version="1.0" encoding="encoding" ?> at the top of the file.) The above conversion options cannot be changed. If you desire different conversion options, you should invoke sgml2xml(1) manually, and then pass the results of that conversion to this program. Retrieval options--catalogs catalog-files-C catalog-filescatalog Specify additional XML catalogs to use for resolving Formal Public Identifiers or URIs. SGML catalogs are not supported. These catalogs are not used for parsing an SGML document under the --sgml option. Use the environment variable SGML_CATALOG_FILES instead to specify the catalogs for parsing the SGML document. --network-N db2x_xsltproc will normally refuse to load external resources from the network, for security reasons. If you do want to load from the network, set this option. Usually you want to have installed locally the relevent DTDs and other files, and set up catalogs for them, rather than load them automatically from the network. Stylesheet options--stylesheet file-s file Specify the filename (or URI) of the stylesheet to use. The special values man and texi are accepted as abbreviations, to specify that xml-document is in DocBook and should be converted to man pages or Texinfo (respectively). --param name=expr-p name=expr Add or modify a parameter to the stylesheet. name is a XSLT parameter name, and expr is an XPath expression that evaluates to the desired value for the parameter. (This means that strings must be quoted, in addition to the usual quoting of shell arguments; use --string-param to avoid this.) --string-param name=string-g name=string Add or modify a string-valued parameter to the stylesheet. The string must be encoded in UTF-8 (regardless of the locale character encoding). Debugging and profiling--debug-d Display, to standard error, logs of what is happening during the XSL transformation. --nesting-limit n-D n Change the maximum number of nested calls to XSL templates, used to detect potential infinite loops. If not specified, the limit is 500 (libxslt’s default). --profile-P Display profile information: the total number of calls to each template in the stylesheet and the time taken for each. This information is output to standard error. --xslt-processor processor-X processor Select the underlying XSLT processor used. The possible choices for processor are: libxslt, saxon, xalan-j. The default processor is whatever was set when docbook2X was built. libxslt is recommended (because it is lean and fast), but SAXON is much more robust and would be more helpful when debugging stylesheets. All the processors have XML catalogs support enabled. (docbook2X requires it.) But note that not all the options above work with processors other than the libxslt one. EnvironmentXML_CATALOG_FILESSpecify XML Catalogs. If not specified, the standard catalog (/etc/xml/catalog) is loaded, if available. DB2X_XSLT_PROCESSORSpecify the XSLT processor to use. The effect is the same as the --xslt-processor option. The primary use of this variable is to allow you to quickly test different XSLT processors without having to add --xslt-processor to every script or make file in your documentation build system. Conforming to XML Stylesheet Language – Transformations (XSLT), version 1.0, a W3C Recommendation. NotesXSLT extensions In its earlier versions (< 0.8.4), docbook2X required XSLT extensions to run, and db2x_xsltproc was a special libxslt-based processor that had these extensions compiled-in. When the requirement for XSLT extensions was dropped, db2x_xsltproc became a Perl script which translates the options to db2x_xsltproc to conform to the format accepted by the stock xsltproc(1) which comes with libxslt. The prime reason for the existence of this script is backward compatibility with any scripts or make files that invoke docbook2X. However, it also became easy to add in support for invoking other XSLT processors with a unified command-line interface. Indeed, there is nothing special in this script to docbook2X, or even to DocBook, and it may be used for running other sorts of stylesheets if you desire. Certainly the author prefers using this command, because its invocation format is sane and is easy to use. (e.g. no typing long class names for the Java-based processors!) See Also You may wish to consult the documentation that comes with libxslt, SAXON, or Xalan. The W3C XSLT 1.0 specification would be useful for writing stylesheets.
sgml2xml-isoent
SGMLISO entitiessgml2xml-isoentDocBookNamesgml2xml-isoent — Convert SGML to XML with support for ISO entitiesSynopsissgml2xml-isoent [sgml-document]Description sgml2xml-isoent converts an SGML document to XML, with support for the ISO entities. This is done by using sgml2xml(1) from the SP package (or osx(1) from the OpenSP package), and the declaration for the XML version of the ISO entities is added to the output. This means that the output of this conversion should work as-is with any XML tool. This program is often used for processing SGML DocBook documents with XML-based tools. In particular, db2x_xsltproc calls this program as part of its --sgml option. On the other hand, it is probably not helpful for migrating a source SGML text file to XML, since the conversion mangles the original formatting. Since the XML version of the ISO entities are referred to directly, not via a DTD, this tool also works with document types other than DocBook. Notes The ISO entities are referred using the public identifiers ISO 8879:1986//ENTITIES////EN//XML. The catalogs used when parsing the converted document should resolve these entities to the appropriate place (on the local filesystem). If the entities are not resolved in the catalog, then the fallback is to get the entity files from the http://www.docbook.org/ Web site. See Also sgml2xml(1), osx(1) Character set conversioncharacter mapcharacter setscharsetsencodingtransliterationre-encodingUTF-8Unicodeutf8transescapesiconv When translating XML to legacy ASCII-based formats with poor support for Unicode, such as man pages and Texinfo, there is always the problem that Unicode characters in the source document also have to be translated somehow. A straightforward character set conversion from Unicode does not suffice, because the target character set, usually US-ASCII or ISO Latin-1, do not contain common characters such as dashes and directional quotation marks that are widely used in XML documents. But document formatters (man and Texinfo) allow such characters to be entered by a markup escape: for example, \(lq for the left directional quote . And if a markup-level escape is not available, an ASCII transliteration might be used: for example, using the ASCII less-than sign < for the angle quotation mark . So the Unicode character problem can be solved in two steps: utf8trans, a program included in docbook2X, maps Unicode characters to markup-level escapes or transliterations. Since there is not necessarily a fixed, official mapping of Unicode characters, utf8trans can read in user-modifiable character mappings expressed in text files and apply them. (Unlike most character set converters.) In charmaps/man/roff.charmap and charmaps/man/texi.charmap are character maps that may be used for man-page and Texinfo conversion. The programs db2x_manxml and db2x_texixml will apply these character maps, or another character map specified by the user, automatically. The rest of the Unicode text is converted to some other character set (encoding). For example, a French document with accented characters (such as é) might be converted to ISO Latin 1. This step is applied after utf8trans character mapping, using the iconv(1) encoding conversion tool. Both db2x_manxml and db2x_texixml can call iconv(1) automatically when producing their output. utf8transTransliterate UTF-8 characters according to a table
utf8trans
character mapUTF-8Unicodeutf8transescapestransliterationNameutf8trans — Transliterate UTF-8 characters according to a tableSynopsisutf8trans charmap [file]…Descriptionutf8trans utf8trans transliterates characters in the specified files (or standard input, if they are not specified) and writes the output to standard output. All input and output is in the UTF-8 encoding. This program is usually used to render characters in Unicode text files as some markup escapes or ASCII transliterations. (It is not intended for general charset conversions.) It provides functionality similar to the character maps in XSLT 2.0 (XML Stylesheet Language – Transformations, version 2.0). Options-m--modify Modifies the given files in-place with their transliterated output, instead of sending it to standard output. This option is useful for efficient transliteration of many files at once. --helpShow brief usage information and exit.--versionShow version and exit.Usage The translation is done according to the rules in the ‘character map’, named in the file charmap. It has the following format: Each line represents a translation entry, except for blank lines and comment lines, which are ignored.Any amount of whitespace (space or tab) may precede the start of an entry.Comment lines begin with #. Everything on the same line is ignored.Each entry consists of the Unicode codepoint of the character to translate, in hexadecimal, followed one space or tab, followed by the translation string, up to the end of the line.The translation string is taken literally, including any leading and trailing spaces (except the delimeter between the codepoint and the translation string), and all types of characters. The newline at the end is not included. The above format is intended to be restrictive, to keep utf8trans simple. But if a XML-based format is desired, there is a xmlcharmap2utf8trans script that comes with the docbook2X distribution, that converts character maps in XSLT 2.0 format to the utf8trans format. Limitations utf8trans does not work with binary files, because malformed UTF-8 sequences in the input are substituted with U+FFFD characters. However, null characters in the input are handled correctly. This limitation may be removed in the future. There is no way to include a newline or null in the substitution string. FAQFAQtipsproblemsbugs  Q:I have a SGML DocBook document. How do I use docbook2X?SGML  A: Use the --sgml option to db2x_xsltproc. (Formerly, we described a quite intricate hack here to convert to SGML to XML while preserving the ISO entities. That hack is actually what --sgml does.)   Q:docbook2X bombs with this document!  A:It is probably a bug in docbook2X. (Assuming that the input document is valid DocBook in the first place.) Please file a bug report. In it, please include the document which causes docbook2X to fail, or a pointer to it, or a test case that reproduces the problem. I don’t want to hear about bugs in obsolete tools (i.e. tools that are not in the current release of docbook2X.) I’m sorry, but maintaining all that is a lot of work that I don’t have time for.   Q: Must I use refentry to write my man pages? refentry  A: Under the default settings of docbook2X: yes, you have to. The contents of the source document that lie outside of refentry elements are probably written in a book/article style that is usually not suited for the reference style of man pages. Nevertheless, sometimes you might want to include inside your man page, (small) snippets or sections of content from other parts of your book or article. You can achieve this by using a custom XSLT stylesheet to include the content manually. The docbook2X documentation demonstrates this technique: see the docbook2man(1) and the docbook2texi(1) man pages and the stylesheet that produces them in doc/ss-man.xsl.   Q: Where have the SGML-based docbook2X tools gone?   A: They are in a separate package now, docbook2man-sgmlspl.   Q: I get some iconv error when converting documents. iconv  A: It's because there is some Unicode character in your document that docbook2X fails to convert to ASCII or a markup escape (in roff or Texinfo). The error message is intentional because it alerts you to a possible loss of information in your document, although admittedly it could be less cryptic, but I unfortunately can't control what iconv says. You can look at the partial man or Texinfo output — the offending Unicode character should be near the point that the output is interrupted. Since you probably wanted that Unicode character to be there, the way you want to fix this error is to add a translation for that Unicode character to the utf8trans character map. Then use the --utf8trans-map option to the Perl docbook2X tools to use your custom character map. Alternatively, if you want to close your eyes to the utterly broken Unicode handling in groff and Texinfo, just use the --encoding=utf-8 option. Note that the UTF-8 output is unlikely to display correctly everywhere.   Q: Texinfo output looks ugly.   A: You have to keep in mind that Info is extremely limited in its formatting. Try setting the various parameters to the stylesheet (see xslt/texi/param.xsl). Also, if you look at native Info pages, you will see there is a certain structure, that your DocBook document may not adhere to. There is really no fix for this. It is possible, though, to give rendering hints to the Texinfo stylesheet in your DocBook source, like this this manual does. Unfortunately these are not yet documented in a prominent place.   Q: How do I use SAXON (or Xalan-Java) with docbook2X? SAXONXalan-Java  A: Bob Stayton’s DocBook XSL: The Complete Guide has a nice section on setting up the XSLT processors. It talks about Norman Walsh’s DocBook XSL stylesheets, but for docbook2X you only need to change the stylesheet argument (any file with the extension .xsl). If you use the Perl wrapper scripts provided with docbook2X, you only need to “install” the XSLT processors (i.e. for Java, copying the *.jar files to /usr/local/share/java), and you don’t need to do anything else.   Q: XML catalogs don’t work with Xalan-Java. (Or: Stop connecting to the Internet when running docbook2X!) Xalan-Javacatalog  A: I have no idea why — XML catalogs with Xalan-Java don’t work for me either, no matter how hard I try. Just go use SAXON or libxslt instead (which do work for me at least).   Q:I don’t like how docbook2X renders this markup.renderingcustomizing  A:The XSLT stylesheets are customizable, so assuming you have knowledge of XSLT, you should be able to change the rendering easily. See doc/ss-texinfo.xsl of docbook2X’s own documentation for a non-trivial example. If your customizations can be generally useful, I would like to hear about it. If you don't want to muck with XSLT, you can still tell me what sort of features you want. Maybe other users want them too.   Q:Does docbook2X support other XML document types or output formats?other output formatsother document typesnon-DocBook document type  A: No. But if you want to create code for a new XML document type or output format, the existing infrastructure of docbook2X may be able to help you. For example, if you want to convert a document in the W3C spec DTD to Texinfo, you can write a XSLT stylesheet that outputs a document conformant to the Texi-XML, and run that through db2x_texixml to get your Texinfo pages. Writing the said XSLT stylesheet should not be any more difficult than if you were to write a stylesheet for HTML output, in fact probably even easier. An alternative approach is to convert the source document to DocBook first, then apply docbook2X conversion afterwards. The stylesheet reference documentation in docbook2X uses this technique: the documentation embedded in the XSLT stylesheets is first extracted into a DocBook document, then that is converted to Texinfo. This approach obviously is not ideal if the source document does not map well into DocBook, but it does allow you to use the standard DocBook HTML and XSL-FO stylesheets to format the source document with little effort. If you want, on the other hand, to get troff output but using a different macro set, you will have to rewrite both the stylesheets and the post-processor (performing the function of db2x_manxml but with a different macro set). In this case some of the code in db2x_manxml may be reused, and you can certainly reuse utf8trans and the provided roff character maps. Performance analysisspeedperformanceoptimizeefficiency The performance of docbook2X, and most other DocBook toolswith the notable exception of the docbook-to-man tool based on the instant stream processor (but this tool has many correctness problems) can be summed up in a short phrase: they are slow. On a modern computer producing only a few man pages at a time, with the right software — namely, libxslt as the XSLT processor — the DocBook tools are fast enough. But their slowness becomes a hindrance for generating hundreds or even thousands of man pages at a time. The author of docbook2X encounters this problem whenever he tries to do automated tests of the docbook2X package. Presented below are some actual benchmarks, and possible approaches to efficient DocBook to man pages conversion. docbook2X running times on 2157 refentry documentsStepTime for all pagesAvg. time per pageDocBook to Man-XML519.61 s0.24 sMan-XML to man-pages383.04 s0.18 sroff character mapping6.72 s0.0031 sTotal909.37 s0.42 s The above benchmark was run on 2157 documents coming from the doclifter man-page-to-DocBook conversion tool. The man pages come from the section 1 man pages installed in the author’s Linux system. The XML files total 44.484 MiB, and on average are 20.6KiB long. The results were obtained using the test script in test/mass/test.pl, using the default man-page conversion options. The test script employs the obvious optimizations, such as only loading once the XSLT processor, the man-pages stylesheet, db2x_manxml and utf8trans. Unfortunately, there does not seem to be obvious ways that the performance can be improved, short of re-implementing the tranformation program in a tight programming language such as C. Some notes on possible bottlenecks: Character mapping by utf8trans is very fast compared to the other stages of the transformation. Even loading utf8trans separately for each document only doubles the running time of the character mapping stage. Even though the XSLT processor is written in C, XSLT processing is still comparatively slow. It takes double the time of the Perl script From preliminary estimates, the Pure-XSLT solution takes only slightly longer at this stage: .22 s per page db2x_manxml, even though the XSLT portion and the Perl portion are processing documents of around the same sizeOf course, conceptually, DocBook processing is more complicated. So these timings also give us an estimate of the cost of DocBook’s complexity: twice the cost over a simpler document type, which is actually not too bad. (DocBook refentry documents and Man-XML documents). In fact, profiling the stylesheets shows that a significant amount of time is spent on the localization templates, in particular the complex XPath navigation used there. An obvious optimization is to use XSLT keys for the same functionality. However, when that is implemented, the author found that the time used for setting up keys dwarfs the time savings from avoiding the complex XPath navigation. It adds an extra 10s to the processing time for the 2157 documents. Upon closer examination of the libxslt source code, XSLT keys are seen to be implemented rather inefficiently: each key pattern x causes the entire input document to be traversed once by evaluating the XPath //x! Perhaps a C-based XSLT processor written with the best performance in mind (libxslt is not particularly the most efficiently coded) may be able to achieve better conversion times, without losing all the nice advantages of XSLT-based tranformation. Or failing that, one can look into efficient, stream-based transformations (STX). How docbook2X is testedtestingcorrectnessvalidation The testing of the process of converting from DocBook to man pages, or Texinfo, is complicated by the fact that a given input (the DocBook document) usually does not have one specific, well-defined output. Variations on the output are allowed for the result to look “nice”. When docbook2X was in the early stages of development, the author tested it simply by running some sample DocBook documents through it, and visually inspecting the output. Clearly, this procedure is not scaleable for testing a large number of documents. In the later 0.8.x versions of docbook2X, the testing has been automated as much as possible. The testing is implemented by heuristic checks on the output to see if it comprises a “good” man page or Texinfo file. These are the checks in particular: Validation of the Man-XML or Texi-XML output, from the first stage, XSLT stylesheets, against the XML DTDs defining the formats. Running groff(1) and makeinfo(1) on the output, and noting any errors or warnings from those programs. Other heuristic checks on the output, implemented by a Perl script. Here, spurious blank lines, uncollapsed whitespace in the output that would cause a bad display are checked. There are about 8000 test documents, mostly refentry documents, that can be run against the current version of docbook2X. A few of them have been gathered by the author from various sources and test cases from bug reports. The majority come from using doclifter on existing man pages. Most pages pass the above tests. To run the tests, go to the test/ directory in the docbook2X distribution. The command make check will run some tests on a few documents. For testing using doclifter, first generate the DocBook XML sources using doclifter, then take a look at the test/mass/test.pl testing script and run it. Note that a small portion of the doclifter pages will fail the tests, because they do not satisfy the heuristic tests (but are otherwise correct), or, more commonly, the source coming from the doclifter heuristic up-conversion has errors. To-do listto-dofuturebugswishlistDocBook With regards to DocBook support: qandaset table of contents Perhaps allow qandadiv elements to be nodes in Texinfo. olink (do it like what the DocBook XSL stylesheets do) synopfragmentref Man pages should support qandaset, footnote, mediaobject, bridgehead, synopfragmentref sidebar, msgset, procedure (and there's more). Some DocBook 4.0 stuff: e.g. methodsynopsis. On the other hand adding the DocBook 4.2 stuff shouldn't be that hard. programlisting line numbering, and call-out bugs specified using area. Seems to need XSLT extensions though. A template-based system for title pages, and biblioentry. Setting column widths in tables are not yet supported in man pages, but they should be. Support for typesetting mathematics. However, I have never seen any man pages or Texinfo manuals that require this, obviously because math looks horrible in ASCII text. For other work items, see the ‘limitations’ or ‘bugs’ section in the individual tools’ reference pages. Other work items: Implement tables in pure XSLT. Probably swipe the code that is in the DocBook XSL stylesheets to do so. Many stylesheet templates are still undocumented. Write documentation for Man-XML and Texi-XML. Write a smaller application (smaller than DocBook, that is!) of Man-XML and/or Texi-XML (e.g. for W3C specs). A side benefit is that we can identify any bugs or design misfeatures that are not noticed in the DocBook application. Need to go through the stylesheets and check/fill in any missing DocBook functionality. Make a table outlining what part of DocBook we support. For example, we have to check that each attribute is actually supported for an element that we claim to support, or else at least raise a warning to the user when that attribute is used. Also some of the DocBook elements are not rendered very nicely even when they are supported. Fault-tolerant, complete error handling. Full localization for the output, as well as the messages from docbook2X programs. (Note that we already have internationalization for the output.) Release historychange loghistoryrelease historynewsbugsdocbook2X 0.8.8. Errors in the Man-XML and Texi-XML DTD were fixed. These DTDs are now used to validate the output coming out of the stylesheets, as part of automated testing. (Validation provides some assurance that the result of the conversions are correct.) Several rendering errors were fixed after they had been discovered through automated testing. Two HTML files in the docbook2X documentation were accidentally omitted in the last release. They have been added. The pure-XSLT-based man-page conversion now supports table markup. The implemented was copied from the one by Michael Smith in the DocBook XSL stylesheets. Many thanks! As requested by Daniel Leidert, the man-pages stylesheets now support the segmentedlist, segtitle and seg DocBook elements. As suggested by Matthias Kievermagel, docbook2X now supports the code element. docbook2X 0.8.7. Some stylistic improvements were made to the man-pages output. This includes fixing a bug that, in some cases, caused an extra blank line to occur after lists in man pages. There is a new value utf-8//TRANSLIT for the --encoding option to db2x_manxml and db2x_texixml. Added -m to utf8trans for modifying (a large number of) files in-place. Added a section to the documentation discussing conversion performance. There is also a new test script, test/mass/test.pl that can exercise docbook2X by converting many documents at one time, with a focus on achieving the fastest conversion speed. The documentation has also been improved in several places. Most notably, the docbook2X(1) man page has been split into two much more detailed man pages explaining man-page conversion and Texinfo conversion separately, along with a reference of stylesheet parameters. The documentation has also been re-indexed (finally!) Also, due to an oversight, the last release omitted the stylesheet reference documentation. They are now included again. Craig Ruff’s patches were not integrated correctly in the last release; this has been fixed. By popular demand, man-page conversion can also be done with XSLT alone — i.e. no Perl scripts or compiling required, just a XSLT processor. If you want to convert with pure XSLT, invoke the XSLT stylesheet in xslt/backend/db2x_manxml.xsl in lieu of the db2x_manxml Perl script. Make the xmlcharmap2utf8trans script (convert XSLT 2.0 character maps to character maps in utf8trans format) really work. docbook2X 0.8.6. Added rudimentary support for entrytbl in man pages; patch by Craig Ruff. Added template for personname; patch by Aaron Hawley. Fix a build problem that happened on IRIX; patch by Dirk Tilger. Better rendering of man pages in general. Fixed an incompatibility with Solaris troff of some generated man pages. Fixed some minor bugs in the Perl wrapper scripts. There were some fixes to the Man-XML and Texi-XML document types. Some of these changes are backwards-incompatible with previous docbook2X releases. In particular, Man-XML and Texi-XML now have their own XML namespaces, so if you were using custom XSLT stylesheets you will need to add the appropriate namespace declarations. docbook2X 0.8.5. Fixed a bug, from version 0.8.4, with the generated Texinfo files not setting the Info directory information correctly. (This is exactly the patch that was on the docbook2X Web site.) Fixed a problem with db2x_manxml not calling utf8trans properly. Added heavy-duty testing to the docbook2X distribution. docbook2X 0.8.4. There is now an experimental implementation of db2x_manxml and db2x_texixml using pure XSLT, for those who can’t use the Perl one for whatever reason. See the xslt/backend/ directory. Do not expect this to work completely yet. In particular, tables are not yet available in man pages. (They are, of course, still available in the Perl implementation.) Texinfo conversion does not require XSLT extensions anymore! See Design notes: the elimination of XSLT extensions for the full story. As a consequence, db2x_xsltproc has been rewritten to be a Perl wrapper script around the stock xsltproc(1). The -S option to db2x_xsltproc no longer uses libxml’s hackish “SGML DocBook” parser, but now calls sgml2xml(1). The corresponding long option has been renamed to --sgml from --sgml-docbook. Fixed a heap of bugs — that caused invalid output — in the XSLT stylesheets, db2x_manxml and db2x_texixml. Some features such as cmdsynopsis and funcsynopsis are rendered more nicely. Man-XML and Texi-XML now have DTDs — these are useful when writing and debugging stylesheets. Added a --plaintext option to db2x_texixml. Updates to the docbook2X manual. Stylesheet documentation is in. docbook2X 0.8.3. Incorporated Michael Smith’s much-expanded roff character maps. There are some improvements to the stylesheets themselves, here and there. Also I made the Texinfo stylesheets adapt to the XSLT processor automatically (with regards to the XSLT extensions). This might be of interest to anybody wanting to use the stylesheets with some other XSLT processor (especially SAXON). Fixed a couple of bugs that prevented docbook2X from working on Cygwin. Fixed a programming error in utf8trans that caused it to segfault. At the same time, I rewrote parts of it to make it more efficient for large character maps (those with more than a thousand entries). The Perl component of docbook2X has switched from using libxml-perl (a SAX1 interface) to XML-SAX (a SAX2 interface). I had always wanted to do the switch since libxml-perl is not maintained, but the real impetus this time is that XML-SAX has a pure Perl XML parser. If you have difficulties building XML::Parser on Cygwin, like I did, the Perl component will automatically fall back on the pure Perl parser. docbook2X 0.8.2. Added support for tables in man pages. Almost all table features that can be supported with tbl will work. The rest will be fixed in a subsequent release. Copied the “gentext” stuff over from Norman Walsh’s XSL stylesheets. This gives (incomplete) localizations for the same languages that are supported by the Norman Walsh’s XSL stylesheets. Although incomplete, they should be sufficient for localized man-page output, for which there are only a few strings like “Name” and “Synopsis” that need to be translated. If you do make non-English man pages, you will need to revise the localization files; please send patches to fix them afterwards. Rendering of bibliography, and other less common DocBook elements is broken. Actually, it was probably also slightly broken before. Some time will be needed to go through the stylesheets to check/document everything in it and to add anything that is still missing. Added --info option to db2x_texixml, to save typing the makeinfo command. Rename --stringparam option in db2x_xsltproc to --string-param, though the former option name is still accepted for compatibility. Added the stylesheet for generating the XSLT reference documentation. But the reference documentation is not integrated into the main docbook2X documentation yet. docbook2X no longer uses SGML-based tools to build. HTML documentation is now built with the DocBook XSL stylesheets. Changed the license of this package to the MIT license. This is in case someone wants to copy snippets of the XSLT stylesheets, and requiring the resulting stylesheet to be GPL seems too onerous. Actually there is no real loss since no one wants to hide XSLT source anyway. Switched to a newer version of autoconf. Fixes for portability (to non-Linux OSes). A number of small rendering bug fixes, as usual. docbook2X 0.8.1. Bug fixes. Texinfo menu generation has been improved: the menus now look almost as good as human-authored Texinfo pages and include detailed node listings (@detailmenu) also. Added option to process XInclude in db2x_xsltproc just like standard xsltproc. docbook2X 0.8.0. Moved docbook2man-spec.pl to a sister package, docbook2man-sgmlspl, since it seems to be used quite a lot. There are now XSLT stylesheets for man page conversion, superceding the docbook2manxml. docbook2manxml had some neat code in it, but I fear maintaining two man-page converters will take too much time in the future, so I am dropping it now instead of later. Fixed build errors involving libxslt headers, etc. that plagued the last release. The libxslt wrapper (name changed to db2x_xsltproc, formerly called docbook2texi-libxslt) has been updated for the recent libxslt changes. Catalog support working. Transcoding output to non-UTF-8 charsets is automatic. Made some wrapper scripts for the two-step conversion process. docbook2X 0.7.0. More bug squashing and features in XSLT stylesheets and Perl scripts. Too many to list. Added docbook2texi-libxslt, which uses libxslt. Finally, no more Java is necessary. Added a C-based tool to translate UTF-8 characters to arbitrary (byte) sequences, to avoid having to patch recode every time the translation changes. However, Christoph Spiel has ported the recode utf8..texi patch to GNU recode 3.6 if you prefer to use recode. As usual, the documentation has been improved.The documentation for the XSLT stylesheets can be extracted automatically. (Caveat: libxslt has a bug which affects this process, so if you want to build this part of the documentation yourself you must use some other XSLT processor. There is no jrefentry support in docbook2X yet, so the reference is packaged in HTML format; this will change in the next release, hopefully.) Build system now uses autoconf and automake. docbook2X 0.6.9. Removed old unmaintained code such as docbook2man, docbook2texi. Moved Perl scripts to perl/ directory and did some renaming of the scripts to saner names. Better make system. Debugged, fixed the XSLT stylesheets more and added libxslt invocation. Cut down the superfluity in the documentation. Fixed other bugs in docbook2manxml and the Texi-XML, Man-XML tools. docbook2X 0.6.1. docbook2man-spec.pl has an option to strip or not strip letters in man page section names, and xref may now refer to refsectn. I have not personally tested these options, but loosing them in the interests of release early and often. Menu label quirks, paramdef non-conformance, and vertical simplelists with multiple columns fixed in docbook2texixml. Brought docbook2manxml up to speed. It builds its own documentation now. Arcane bugs in texi_xml and man_xml fixed. docbook2X 0.6.0. Introduced Texinfo XSLT stylesheets. Bugfixes to texi_xml and docbook2texixml. Produced patch to GNU recode which maps Unicode characters to the corresponding Texinfo commands or characters. It is in ucs2texi.patch. I have already sent this patch to the maintainer of recode. Updated documentation. docbook2X 0.5.9. Both docbook2texixml transform into intermediate XML format which closely resembles the Texinfo format, and then another tool is used to convert this XML to the actual format. This scheme moves all the messy whitespace, newline, and escaping issues out of the actual transformation code. Another benefit is that other stylesheets (systems), can be used to do the transformation, and it serves as a base for transformation to Texinfo from other DTDs. Texinfo node handling has been rewritten. Node handling used to work back and forth between IDs and node names, which caused a lot of confusion. The old code also could not support DocBook sets because it did not keep track of the Texinfo file being processed. As a consequence, the bug in which docbook2texixml did not output the @setinfofile is fixed. xreflabel handling is also sane now. In the new scheme, elements are referred to by their ID (auto-generated if necessary). The Texinfo node names are generated before doing the actual transformation, and subsequent texinode_get simply looks up the node name when given an element. The stylesheet architecture allows internationalization to be implemented easily, although it is not done yet. The (non-XML-based) old code is still in the CVS tree, but I’m not really interested in maintaining it. I’ll still accept patches to them, and probably will keep them around for reference and porting purposes. There are some changes to the old code base in this new release; see old change log for details. The documentation has been revised. I am currently rewriting docbook2man using the same transform-to-XML technique. It’s not included in 0.5.9 simply because I wanted to get the improved Texinfo tool out quickly. Additional XSLT stylesheets will be written. Design notesdesignhistory Lessons learned: stream processingtree processing Think four times before doing stream-based XML processing, even though it appears to be more efficient than tree-based. Stream-based processing is usually more difficult. But if you have to do stream-based processing, make sure to use robust, fairly scaleable tools like XML::Templates, not sgmlspl. Of course it cannot be as pleasant as tree-based XML processing, but examine db2x_manxml and db2x_texixml. Do not use XML::DOM directly for stylesheets. Your “stylesheet” would become seriously unmanageable. Its also extremely slow for anything but trivial documents. At least take a look at some of the XPath modules out there. Better yet, see if your solution really cannot use XSLT. A C/C++-based implementation of XSLT can be fast enough for many tasks. XSLT extensions Avoid XSLT extensions whenever possible. I don't think there is anything wrong with them intrinsically, but it is a headache to have to compile your own XSLT processor. (libxslt is written in C, and the extensions must be compiled-in and cannot be loaded dynamically at runtime.) Not to mention there seems to be a thousand different set-ups for different XSLT processors. Perl Perl is not as good at XML as it’s hyped to be. SAX comes from the Java world, and its port to Perl (with all the object-orientedness, and without adopting Perl idioms) is awkward to use. Another problem is that Perl SAX does not seem to be well-maintained. The implementations have various bugs; while they can be worked around, they have been around for such a long time that it does not inspire confidence that the Perl XML modules are reliable software. It also seems that no one else has seriously used Perl SAX for robust applications. It seems to be unnecessarily hard to certain tasks such as displaying error diagnostics on its input, processing large documents with complicated structure. Man-XMLTexi-XML Do not be afraid to use XML intermediate formats (e.g. Man-XML and Texi-XML) for converting to other markup languages, implemented with a scripting language. The syntax rules for these formats are made for authoring by hand, not machine generation; hence a conversion using tools designed for XML-to-XML conversion, requires jumping through hoops. You might think that we could, instead, make a separate module that abstracts all this complexity from the rest of the conversion program. For example, there is nothing stopping a XSLT processor from serializing the output document as a text document obeying the syntax rules for man pages or Texinfo documents. Theoretically you would get the same result, but it is much harder to implement. It is far easier to write plain text manipulation code in a scripting language than in Java or C or XSLT. Also, if the intermediate format is hidden in a Java class or C API, output errors are harder to see. Whereas with the intermediate-format approach, we can visually examine the textual output of the XSLT processor and fix the Perl script as we go along. Some XSLT processors support scripting to go beyond XSLT functionality, but they are usually not portable, and not always easy to use. Therefore, opt to do two-pass processing, with a standalone script as the second stage. (The first stage using XSLT.) Finally, another advantage of using intermediate XML formats processed by a Perl script is that we can often eliminate the use of XSLT extensions. In particular, all the way back when XSLT stylesheets first went into docbook2X, the extensions related to Texinfo node handling could have been easily moved to the Perl script, but I didn't realize it! I feel stupid now. If I had known this in the very beginning, it would have saved a lot of development time, and docbook2X would be much more advanced by now. Note that even the man-pages stylesheet from the DocBook XSL distribution essentially does two-pass processing just the same as the docbook2X solution. That stylesheet had formerly used one-pass processing, and its authors probably finally realized what a mess that was. Design the XML intermediate format to be easy to use from the standpoint of the conversion tool, and similar to how XML document types work in general. e.g. abstract the paragraphs of a document, rather than their paragraph breaks (the latter is typical of traditional markup languages, but not of XML). I am quite impressed by some of the things that people make XSLT 1.0 do. Things that I thought were impossible, or at least unworkable without using “real” scripting language. (db2x_manxml and db2x_texixml fall in the category of things that can be done in XSLT 1.0 but inelegantly.) Internationalize as soon as possible. That is much easier than adding it in later. Same advice for build system. I would suggest against using build systems based on Makefiles or any form of automake. Of course it is inertia that prevents people from switching to better build systems. But also consider that while Makefile-based build systems can do many of the things newer build systems are capable of, they often require too many fragile hacks. Developing these hacks take too much time that would be better spent developing the program itself. Alas, better build systems such as scons were not available when docbook2X was at an earlier stage. It’s too late to switch now. Writing good documentation takes skill. This manual has has been revised substantially at least four times This number is probably inflated because of the so many design mistakes in the process., with the author consciously trying to condense information each time. Table processing in the pure-XSLT man-pages conversion is convoluted — it goes through HTML(!) tables as an intermediary. That is the same way that the DocBook XSL stylesheets implement it (due to Michael Smith), and I copied the code there almost verbatim. I did it this way to save myself time and energy re-implementing tables conversion again. And Michael Smith says that going through HTML is better, because some varieties of DocBook allow the HTML table model in addition to the CALS table model. (I am not convinced that this is such a good idea, but anyway.) Then HTML tables in DocBook can be translated to man pages too without much more effort. Is this inefficient? Probably. But that’s what you get if you insist on using pure XSLT. The Perl implementation of docbook2X. already supported tables conversion for two years prior. The design of utf8trans is not the best. It was chosen to simplify implementations while being efficient. A more general design, while still retaining efficiency, is possible, which I describe below. However, unfortunately, at this point changing utf8trans will be too disruptive to users with little gain in functionality. Instead of working with characters, we should work with byte strings. This means that, if all input and output is in UTF-8, with no escape sequences, then UTF-8 decoding or encoding is not necessary at all. Indeed the program becomes agnostic to the character set used. Of course, multi-character matches become possible. The translation map will be an unordered list of key-value pairs. The key and value are both arbitrary-length byte strings, with an explicit length attached (so null bytes in the input and output are retained). The program would take the translation map, and transform the input file by matching the start of input, seen as a sequence of bytes, against the keys in the translation map, greedily. (Since the matching is greedy, the translation keys do not need to be restricted to be prefix-free.) Once the longest (in byte length) matching key is found, the corresponding value (another byte string) is substituted in the output, and processing repeats (until the input is finished). If, on the other hand, no match is found, the next byte in the input file is copied as-is, and processing repeats at the next byte of input. Since bytes are 8 bits and the key strings are typically very short (up to 3 bytes for a Unicode BMP character encoded in UTF-8), this algorithm can be implemented with radix search. It would be competitive, in both execution time and space, with character codepoint hashing and sparse multi-level arrays, the primary techniques for implementing Unicode character translation. (utf8trans is implemented using sparse multi-level arrays.) One could even try to generalize the radix searching further, so that keys can include wildcard characters, for example. Taken to the extremes, the design would end up being a regular expressions processor optimized for matching many strings with common prefixes. Package installationInstallationPackage install procedureDependencies on other softwareOther software packages that docbook2X needs
Installation
docbook2X packageinstallation After checking that you have the necessary prerequisites (), unpack the tarball, then run ./configure, and then make, make install, as usual. Note pure XSLT If you intend to use only the pure XSLT version of docbook2X, then you do not need to compile or build the package at all. Simply unpack the tarball, and point your XSLT processor to the XSLT stylesheets under the xslt/ subdirectory. (The last make install step, to install the files of the package onto the filesystem, is optional. You may use docbook2X from its own directory after building it, although in that case, when invoking docbook2X, you will have to specify some paths manually on the command-line.) You may also want to run make check to do some checks that the package is working properly. Typing make -W docbook2X.xml man texi in the doc/ directory will rebuild docbook2X’s own documentation, and can serve as an additional check. You need GNU make to build docbook2X properly. CVS If you are using the CVS version, you will also need the autoconf and automake tools, and must run ./autogen.sh first. But see also the note below about the CVS version. HTML documentation If you want to (re-)build HTML documentation (after having installed Norman Walsh’s DocBook XSL stylesheets), pass --with-html-xsl to ./configure. You do not really need this, since docbook2X releases already contain pre-built HTML documentation. Some other packages also call their conversion programs docbook2man and docbook2texi; you can use the --program-transform-name parameter to ./configure if you do not want docbook2X to clobber over your existing docbook2man or docbook2texi. If you are using a Java-based XSLT processor, you need to use pass --with-xslt-processor=saxon for SAXON, or --with-xslt-processor=xalan-j for Xalan-Java. (The default is for libxslt.) In addition, since the automatic check for the installed JARs is not very intelligent, you will probably need to pass some options to ./configure to tell it where the JARs are. See ./configure --help for details. The docbook2X package supports VPATH builds (building in a location other than the source directory), but any newly generated documentation will not end up in the right place for installation and redistribution. Cross compilation is not supported at all. Installation problemsproblems  Q:Where is XML::Handler::SGMLSpl?  A: It’s included in the docbook2X package. If Perl says it cannot find it, then that is a bug in the docbook2X distribution. Please report it. In older versions of docbook2X, the SGMLSpl module had to be installed, or specified manually on the Perl command line. That is no longer the case.   Q: db2x_xsltproc tells me that ‘one input document is required’ when building docbook2X.   A: Use GNU make to build docbook2X (as opposed to BSD make). I could fix this incompatibility in the docbook2X make files, but some of the default automake rules have the same problem, so I didn’t bother.   Q: When docbook2X attempts to build its documentation, I get errors about “attempting to load network entity”, etc.   A: You will need to set up the XML catalogs for the DocBook XML DTDs correctly. This tells the XSLT processor where to find the DocBook DTDs on your system. Recent Linux distributions should already have this done for you. This error (or rather, warning) is harmless in the case of docbook2X documentation — it does not actually require the DTD to build. But your other DocBook documents might (mainly because they use the ISO entities). libxml also understands SGML catalogs, but last time I tried it there was some bug that stopped it from working. Your Mileage May Vary.   Q:I cannot build from CVS.  A: If the problem is related to HTML files, then you must pass --with-html-xsl to configure. The problem is that the HTML files are automatically generated from the XML source and are not in CVS, but the Makefile still tries to install them. (This issue does not appear when building from release tarballs.) For other docbook2X problems, please also look at its main documentation.
Dependencies on other software
dependenciesprerequisitesdocbook2X package To use docbook2X you need: A reasonable Unix system, with Perl 5Windows docbook2X can work on Linux, FreeBSD, Solaris, and Cygwin on Windows. A C compiler is required to compile a small ANSI C program (utf8trans). XML-NamespaceSupport, XML-SAX, XML-Parser and XML-SAX-Expat (Perl modules) Perl The last two are optional: they add a Perl interface to the C-based XML parser Expat. It is recommended that you install them anyway; otherwise, the fallback Perl-based XML parser makes docbook2X real slow. You can get all the Perl modules here: CPAN XML module listing. iconviconv If you are running Linux glibc, you already have it. Otherwise, see the GNU libiconv home page. XSLT 1.0 processor SAXON Xalan-Java libxslt You have a choice of: libxsltSee the libxml2, libxslt home page.SAXONSee the SAXON home page.Xalan-JavaSee the Xalan-Java home page. catalog For the Java-based processors (SAXON and Xalan-Java), you will also needStrictly speaking this component is not required, but if you do not have it, you will almost certainly have your computer downloading large XML files from the Internet all the time, as portable XML files will not refer directly to cached local copies of the required files. the Apache XML Commons distribution. This adds XML catalogs support to any Java-based processor. Out of the three processors, libxslt is recommended. (I would have added support for other XSLT processors, but only these three seem to have proper XML catalogs support.) Unlike previous versions of docbook2X, these Java-based processors can work almost out-of-the-box. Also docbook2X no longer needs to compile XSLT extensions, so you if you use an OS distribution package of libxslt, you do not need the development versions of the library any more. DocBook XML DTDDocBook Make sure you set up the XML catalogs for the DTDs you install. The DocBook: The Definitive Guide website has more information. You may also need the SGML DTD if your documents are SGML rather than XML.Norman Walsh’s DocBook XSL stylesheetsHTML documentationSee the Open DocBook Repository. This is optional and is only used to build documentation in HTML format. In your XML catalog, point the URI in doc/ss-html.xsl to a local copy of the stylesheets. For all the items above, it will be easier for you to install the OS packaging of the software (e.g. Debian packages), than to install them manually. But be aware that sometimes the OS package may not be for an up-to-date version of the software. Windows If you cannot satisfy all the prerequisites above (say you are on a vanilla Win32 system), then you will not be able to “build” docbook2X properly, but if you are knowledgeable, you can still salvage its parts (e.g. the XSLT stylesheets, which can be run alone). Index
docbook2X-0.8.8/doc/sgml2xml-isoent.html0000644000175000017500000001226410572275345015020 00000000000000 docbook2X: sgml2xml-isoent

Name

sgml2xml-isoent — Convert SGML to XML with support for ISO entities

Synopsis

sgml2xml-isoent [sgml-document]

Description

sgml2xml-isoent converts an SGML document to XML, with support for the ISO entities. This is done by using sgml2xml from the SP package (or osx from the OpenSP package), and the declaration for the XML version of the ISO entities is added to the output. This means that the output of this conversion should work as-is with any XML tool.

This program is often used for processing SGML DocBook documents with XML-based tools. In particular, db2x_xsltproc calls this program as part of its --sgml option. On the other hand, it is probably not helpful for migrating a source SGML text file to XML, since the conversion mangles the original formatting.

Since the XML version of the ISO entities are referred to directly, not via a DTD, this tool also works with document types other than DocBook.

Notes

The ISO entities are referred using the public identifiers ISO 8879:1986//ENTITIES////EN//XML. The catalogs used when parsing the converted document should resolve these entities to the appropriate place (on the local filesystem). If the entities are not resolved in the catalog, then the fallback is to get the entity files from the http://www.docbook.org/ Web site.

See Also

sgml2xml, osx

docbook2X-0.8.8/doc/design-notes.xml0000644000175000017500000002740510422763022014176 00000000000000 Author’s notes on the grand scheme of docbook2X Design notes design history Lessons learned: stream processing tree processing Think four times before doing stream-based XML processing, even though it appears to be more efficient than tree-based. Stream-based processing is usually more difficult. But if you have to do stream-based processing, make sure to use robust, fairly scaleable tools like XML::Templates, not sgmlspl. Of course it cannot be as pleasant as tree-based XML processing, but examine &db2x_manxml; and &db2x_texixml;. Do not use XML::DOM directly for stylesheets. Your “stylesheet” would become seriously unmanageable. Its also extremely slow for anything but trivial documents. At least take a look at some of the XPath modules out there. Better yet, see if your solution really cannot use XSLT. A C/C++-based implementation of XSLT can be fast enough for many tasks. XSLT extensions Avoid XSLT extensions whenever possible. I don't think there is anything wrong with them intrinsically, but it is a headache to have to compile your own XSLT processor. (libxslt is written in C, and the extensions must be compiled-in and cannot be loaded dynamically at runtime.) Not to mention there seems to be a thousand different set-ups for different XSLT processors. Perl Perl is not as good at XML as it’s hyped to be. SAX comes from the Java world, and its port to Perl (with all the object-orientedness, and without adopting Perl idioms) is awkward to use. Another problem is that Perl SAX does not seem to be well-maintained. The implementations have various bugs; while they can be worked around, they have been around for such a long time that it does not inspire confidence that the Perl XML modules are reliable software. It also seems that no one else has seriously used Perl SAX for robust applications. It seems to be unnecessarily hard to certain tasks such as displaying error diagnostics on its input, processing large documents with complicated structure. Man-XML Texi-XML Do not be afraid to use XML intermediate formats (e.g. Man-XML and Texi-XML) for converting to other markup languages, implemented with a scripting language. The syntax rules for these formats are made for authoring by hand, not machine generation; hence a conversion using tools designed for XML-to-XML conversion, requires jumping through hoops. You might think that we could, instead, make a separate module that abstracts all this complexity from the rest of the conversion program. For example, there is nothing stopping a XSLT processor from serializing the output document as a text document obeying the syntax rules for man pages or Texinfo documents. Theoretically you would get the same result, but it is much harder to implement. It is far easier to write plain text manipulation code in a scripting language than in Java or C or XSLT. Also, if the intermediate format is hidden in a Java class or C API, output errors are harder to see. Whereas with the intermediate-format approach, we can visually examine the textual output of the XSLT processor and fix the Perl script as we go along. Some XSLT processors support scripting to go beyond XSLT functionality, but they are usually not portable, and not always easy to use. Therefore, opt to do two-pass processing, with a standalone script as the second stage. (The first stage using XSLT.) Finally, another advantage of using intermediate XML formats processed by a Perl script is that we can often eliminate the use of XSLT extensions. In particular, all the way back when XSLT stylesheets first went into docbook2X, the extensions related to Texinfo node handling could have been easily moved to the Perl script, but I didn't realize it! I feel stupid now. If I had known this in the very beginning, it would have saved a lot of development time, and docbook2X would be much more advanced by now. Note that even the man-pages stylesheet from the DocBook XSL distribution essentially does two-pass processing just the same as the docbook2X solution. That stylesheet had formerly used one-pass processing, and its authors probably finally realized what a mess that was. Design the XML intermediate format to be easy to use from the standpoint of the conversion tool, and similar to how XML document types work in general. e.g. abstract the paragraphs of a document, rather than their paragraph breaks (the latter is typical of traditional markup languages, but not of XML). I am quite impressed by some of the things that people make XSLT 1.0 do. Things that I thought were impossible, or at least unworkable without using “real” scripting language. (&db2x_manxml; and &db2x_texixml; fall in the category of things that can be done in XSLT 1.0 but inelegantly.) Internationalize as soon as possible. That is much easier than adding it in later. Same advice for build system. I would suggest against using build systems based on Makefiles or any form of automake. Of course it is inertia that prevents people from switching to better build systems. But also consider that while Makefile-based build systems can do many of the things newer build systems are capable of, they often require too many fragile hacks. Developing these hacks take too much time that would be better spent developing the program itself. Alas, better build systems such as scons were not available when docbook2X was at an earlier stage. It’s too late to switch now. Writing good documentation takes skill. This manual has has been revised substantially at least four times This number is probably inflated because of the so many design mistakes in the process., with the author consciously trying to condense information each time. Table processing in the pure-XSLT man-pages conversion is convoluted — it goes through HTML(!) tables as an intermediary. That is the same way that the DocBook XSL stylesheets implement it (due to Michael Smith), and I copied the code there almost verbatim. I did it this way to save myself time and energy re-implementing tables conversion again. And Michael Smith says that going through HTML is better, because some varieties of DocBook allow the HTML table model in addition to the CALS table model. (I am not convinced that this is such a good idea, but anyway.) Then HTML tables in DocBook can be translated to man pages too without much more effort. Is this inefficient? Probably. But that’s what you get if you insist on using pure XSLT. The Perl implementation of docbook2X. already supported tables conversion for two years prior. The design of &utf8trans; is not the best. It was chosen to simplify implementations while being efficient. A more general design, while still retaining efficiency, is possible, which I describe below. However, unfortunately, at this point changing &utf8trans; will be too disruptive to users with little gain in functionality. Instead of working with characters, we should work with byte strings. This means that, if all input and output is in UTF-8, with no escape sequences, then UTF-8 decoding or encoding is not necessary at all. Indeed the program becomes agnostic to the character set used. Of course, multi-character matches become possible. The translation map will be an unordered list of key-value pairs. The key and value are both arbitrary-length byte strings, with an explicit length attached (so null bytes in the input and output are retained). The program would take the translation map, and transform the input file by matching the start of input, seen as a sequence of bytes, against the keys in the translation map, greedily. (Since the matching is greedy, the translation keys do not need to be restricted to be prefix-free.) Once the longest (in byte length) matching key is found, the corresponding value (another byte string) is substituted in the output, and processing repeats (until the input is finished). If, on the other hand, no match is found, the next byte in the input file is copied as-is, and processing repeats at the next byte of input. Since bytes are 8 bits and the key strings are typically very short (up to 3 bytes for a Unicode BMP character encoded in UTF-8), this algorithm can be implemented with radix search. It would be competitive, in both execution time and space, with character codepoint hashing and sparse multi-level arrays, the primary techniques for implementing Unicode character translation. (&utf8trans; is implemented using sparse multi-level arrays.) One could even try to generalize the radix searching further, so that keys can include wildcard characters, for example. Taken to the extremes, the design would end up being a regular expressions processor optimized for matching many strings with common prefixes. docbook2X-0.8.8/doc/install.xml0000644000175000017500000003031710420206157013240 00000000000000 Package install procedure Installation docbook2X package installation After checking that you have the necessary prerequisites, unpack the tarball, then run ./configure, and then make, make install, as usual. pure XSLT If you intend to use only the pure XSLT version of docbook2X, then you do not need to compile or build the package at all. Simply unpack the tarball, and point your XSLT processor to the XSLT stylesheets under the xslt/ subdirectory. (The last make install step, to install the files of the package onto the filesystem, is optional. You may use docbook2X from its own directory after building it, although in that case, when invoking docbook2X, you will have to specify some paths manually on the command-line.) You may also want to run make check to do some checks that the package is working properly. Typing make -W docbook2X.xml man texi in the doc/ directory will rebuild docbook2X’s own documentation, and can serve as an additional check. You need GNU make to build docbook2X properly. CVS If you are using the CVS version, you will also need the autoconf and automake tools, and must run ./autogen.sh first. But see also the note below about the CVS version. HTML documentation If you want to (re-)build HTML documentation (after having installed Norman Walsh’s DocBook XSL stylesheets), pass to ./configure. You do not really need this, since docbook2X releases already contain pre-built HTML documentation. Some other packages also call their conversion programs docbook2man and docbook2texi; you can use the parameter to ./configure if you do not want docbook2X to clobber over your existing docbook2man or docbook2texi. If you are using a Java-based XSLT processor, you need to use pass for SAXON, or for Xalan-Java. (The default is for libxslt.) In addition, since the automatic check for the installed JARs is not very intelligent, you will probably need to pass some options to ./configure to tell it where the JARs are. See ./configure --help for details. The docbook2X package supports VPATH builds (building in a location other than the source directory), but any newly generated documentation will not end up in the right place for installation and redistribution. Cross compilation is not supported at all. Possible problems when installing and building docbook2X and how to solve them Installation problems problems Where is XML::Handler::SGMLSpl? It’s included in the docbook2X package. If Perl says it cannot find it, then that is a bug in the docbook2X distribution. Please report it. In older versions of docbook2X, the SGMLSpl module had to be installed, or specified manually on the Perl command line. That is no longer the case. &db2x_xsltproc; tells me that one input document is required when building docbook2X. Use GNU make to build docbook2X (as opposed to BSD make). I could fix this incompatibility in the docbook2X make files, but some of the default automake rules have the same problem, so I didn’t bother. When docbook2X attempts to build its documentation, I get errors about “attempting to load network entity”, etc. You will need to set up the XML catalogs for the DocBook XML DTDs correctly. This tells the XSLT processor where to find the DocBook DTDs on your system. Recent Linux distributions should already have this done for you. This error (or rather, warning) is harmless in the case of docbook2X documentation — it does not actually require the DTD to build. But your other DocBook documents might (mainly because they use the ISO entities). libxml also understands SGML catalogs, but last time I tried it there was some bug that stopped it from working. Your Mileage May Vary. I cannot build from CVS. If the problem is related to HTML files, then you must pass to configure. The problem is that the HTML files are automatically generated from the XML source and are not in CVS, but the Makefile still tries to install them. (This issue does not appear when building from release tarballs.) For other docbook2X problems, please also look at its main documentation. Other software packages that docbook2X needs Dependencies on other software dependencies prerequisites docbook2X package To use docbook2X you need: A reasonable Unix system, with Perl 5 Windows docbook2X can work on Linux, FreeBSD, Solaris, and Cygwin on Windows. A C compiler is required to compile a small ANSI C program (&utf8trans;). XML-NamespaceSupport, XML-SAX, XML-Parser and XML-SAX-Expat (Perl modules) Perl The last two are optional: they add a Perl interface to the C-based XML parser Expat. It is recommended that you install them anyway; otherwise, the fallback Perl-based XML parser makes docbook2X real slow. You can get all the Perl modules here: CPAN XML module listing. iconv iconv If you are running Linux glibc, you already have it. Otherwise, see the GNU libiconv home page. XSLT 1.0 processor SAXON Xalan-Java libxslt You have a choice of: libxslt See the libxml2, libxslt home page. SAXON See the SAXON home page. Xalan-Java See the Xalan-Java home page. catalog For the Java-based processors (SAXON and Xalan-Java), you will also needStrictly speaking this component is not required, but if you do not have it, you will almost certainly have your computer downloading large XML files from the Internet all the time, as portable XML files will not refer directly to cached local copies of the required files. the Apache XML Commons distribution. This adds XML catalogs support to any Java-based processor. Out of the three processors, libxslt is recommended. (I would have added support for other XSLT processors, but only these three seem to have proper XML catalogs support.) Unlike previous versions of docbook2X, these Java-based processors can work almost out-of-the-box. Also docbook2X no longer needs to compile XSLT extensions, so you if you use an OS distribution package of libxslt, you do not need the development versions of the library any more. DocBook XML DTD DocBook Make sure you set up the XML catalogs for the DTDs you install. The DocBook: The Definitive Guide website has more information. You may also need the SGML DTD if your documents are SGML rather than XML. Norman Walsh’s DocBook XSL stylesheets HTML documentation See the Open DocBook Repository. This is optional and is only used to build documentation in HTML format. In your XML catalog, point the URI in doc/ss-html.xsl to a local copy of the stylesheets. For all the items above, it will be easier for you to install the OS packaging of the software (e.g. Debian packages), than to install them manually. But be aware that sometimes the OS package may not be for an up-to-date version of the software. Windows If you cannot satisfy all the prerequisites above (say you are on a vanilla Win32 system), then you will not be able to “build” docbook2X properly, but if you are knowledgeable, you can still salvage its parts (e.g. the XSLT stylesheets, which can be run alone). docbook2X-0.8.8/doc/.docbook2X.valid0000644000175000017500000000000010572275332013774 00000000000000docbook2X-0.8.8/doc/xsltproc.html0000644000175000017500000001436110572275345013632 00000000000000 docbook2X: The XSLT stylesheets

The XSLT stylesheets

docbook2X uses a XSLT 1.0 processor to run its stylesheets. docbook2X comes with a wrapper script, db2x_xsltproc, that invokes the XSLT processor, but you can invoke the XSLT processor in any other way you wish.

The stylesheets are described in the man-pages stylesheets reference and the Texinfo stylesheets reference[1].

Pure-XSLT implementations of db2x_manxml and db2x_texixml also exist. They may be used as follows (assuming libxslt as the XSLT processor).

Example 1. Convert to man pages using pure-XSLT db2x_manxml

$ xsltproc -o mydoc.mxml \
    docbook2X-path/xslt/man/docbook.xsl \
    mydoc.xml
$ xsltproc \
    docbook2X-path/xslt/backend/db2x_manxml.xsl \
    mydoc.mxml

Example 2. Convert to Texinfo using Pure-XSLT db2x_texixml

$ xsltproc -o mydoc.txml \
    docbook2X-path/xslt/texi/docbook.xsl \
    mydoc.xml
$ xsltproc \
    docbook2X-path/xslt/backend/db2x_texixml.xsl \
    mydoc.txml

Here, xsltproc is used instead of db2x_xsltproc, since if you are in a situtation where you cannot use the Perl implementation of db2x_manxml, you probably cannot use db2x_xsltproc either.

If for portability reasons you prefer not to use the file-system path to the docbook2X files, you can use the XML catalog provided in xslt/catalog.xml and the global URIs contained therein.



[1] The HTML versions of these documents are not in the docbook2X distribution, because they are too large. Your alternatives are: (i) use the HTML version on the docbook2X Web site, (ii) use the Texinfo version that is distributed with docbook2X, or (iii) generate the HTML yourself with the DocBook XSL stylesheets. To do the last, simply type make html in the xslt/documentation/ directory.

docbook2X-0.8.8/doc/db2x_texixml.html0000644000175000017500000003230310572275345014361 00000000000000 docbook2X: db2x_texixml

Name

db2x_texixml — Make Texinfo files from Texi-XML

Synopsis

db2x_texixml [options...] [xml-document]

Description

db2x_texixml converts a Texi-XML document into one or more Texinfo documents.

If xml-document is not given, then the document to convert comes from standard input.

The filenames of the Texinfo documents are determined by markup in the Texi-XML source. (If the filenames are not specified in the markup, then db2x_texixml attempts to deduce them from the name of the input file. However, the Texi-XML source should specify the filename, because it does not work when there are multiple output files or when the Texi-XML source comes from standard input.)

Options

--encoding=encoding

Select the character encoding used for the output files. The available encodings are those of iconv. The default encoding is us-ascii.

The XML source may contain characters that are not representable in the encoding that you select; in this case the program will bomb out during processing, and you should choose another encoding. (This is guaranteed not to happen with any Unicode encoding such as UTF-8, but unfortunately not everyone is able to process Unicode texts.)

If you are using GNU’s version of iconv, you can affix //TRANSLIT to the end of the encoding name to attempt transliterations of any unconvertible characters in the output. Beware, however, that the really inconvertible characters will be turned into another of those damned question marks. (Aren’t you sick of this?)

The suffix //TRANSLIT applied to a Unicode encoding — in particular, utf-8//TRANSLIT — means that the output files are to remain in Unicode, but markup-level character translations using utf8trans are still to be done. So in most cases, an English-language document, converted using --encoding=utf-8//TRANSLIT will actually end up as a US-ASCII document, but any untranslatable characters will remain as UTF-8 without any warning whatsoever. (Note: strictly speaking this is not “transliteration”.) This method of conversion is a compromise over strict --encoding=us-ascii processing, which aborts if any untranslatable characters are encountered.

Note that man pages and Texinfo documents in non-ASCII encodings (including UTF-8) may not be portable to older (non-internationalized) systems, which is why the default value for this option is us-ascii.

To suppress any automatic character mapping or encoding conversion whatsoever, pass the option --encoding=utf-8.

--list-files

Write a list of all the output files to standard output, in addition to normal processing.

--output-dir=dir

Specify the directory where the output files are placed. The default is the current working directory.

This option is ignored if the output is to be written to standard output (triggered by the option --to-stdout).

--to-stdout

Write the output to standard output instead of to individual files.

If this option is used even when there are supposed to be multiple output documents, then everything is concatenated to standard output. But beware that most other programs will not accept this concatenated output.

This option is incompatible with --list-files, obviously.

--info

Pipe the Texinfo output to makeinfo, creating Info files directly instead of Texinfo files.

--plaintext

Pipe the Texinfo output to makeinfo --no-headers, thereby creating plain text files.

--help

Show brief usage information and exit.

--version

Show version and exit.

This program uses certain other programs for its operation. If they are not in their default installed locations, then use the following options to set their location:

--utf8trans-program=path, --utf8trans-map=charmap

Use the character map charmap with the utf8trans program, included with docbook2X, found under path.

--iconv-program=path

The location of the iconv program, used for encoding conversions.

Notes

Texinfo language compatibility.  The Texinfo files generated by db2x_texixml sometimes require Texinfo version 4.7 (the latest version) to work properly. In particular:

  • db2x_texixml relies on makeinfo to automatically add punctuation after a @ref if it it not already there. Otherwise the hyperlink will not work in the Info reader (although makeinfo will not emit any error).

  • The new @comma{} command is used for commas (,) occurring inside argument lists to Texinfo commands, to disambiguate it from the comma used to separate different arguments. The only alternative otherwise would be to translate , to . which is obviously undesirable (but earlier docbook2X versions did this).

    If you cannot use version 4.7 of makeinfo, you can still use a sed script to perform manually the procedure just outlined.

Relation of Texi-XML with the XML output format of makeinfo The Texi-XML format used by docbook2X is different and incompatible with the XML format generated by makeinfo with its --xml option. This situation arose partly because the Texi-XML format of docbook2X was designed and implemented independently before the appearance of makeinfo’s XML format. Also Texi-XML is very much geared towards being machine-generated from other XML formats, while there seems to be no non-trivial applications of makeinfo’s XML format. So there is no reason at this point for docbook2X to adopt makeinfo’s XML format in lieu of Texi-XML.

Bugs

  • Text wrapping in menus is utterly broken for non-ASCII text. It is probably also broken everywhere else in the output, but that would be makeinfo’s fault.

  • --list-files might not work correctly with --info. Specifically, when the output Info file get too big, makeinfo will decide to split it into parts named abc.info-1, abc.info-2, abc.info-3, etc. db2x_texixml does not know exactly how many of these files there are, though you can just do an ls to find out.

See Also

The input to db2x_texixml is defined by the XML DTD present at dtd/Texi-XML in the docbook2X distribution.

docbook2X-0.8.8/doc/faq.html0000644000175000017500000003434710572275345012531 00000000000000 docbook2X: FAQ

FAQ

Q: I have a SGML DocBook document. How do I use docbook2X?
Q: docbook2X bombs with this document!
Q: Must I use refentry to write my man pages?
Q: Where have the SGML-based docbook2X tools gone?
Q: I get some iconv error when converting documents.
Q: Texinfo output looks ugly.
Q: How do I use SAXON (or Xalan-Java) with docbook2X?
Q: XML catalogs don’t work with Xalan-Java. (Or: Stop connecting to the Internet when running docbook2X!)
Q: I don’t like how docbook2X renders this markup.
Q: Does docbook2X support other XML document types or output formats?
Q:

I have a SGML DocBook document. How do I use docbook2X?

A:

Use the --sgml option to db2x_xsltproc.

(Formerly, we described a quite intricate hack here to convert to SGML to XML while preserving the ISO entities. That hack is actually what --sgml does.)

Q:

docbook2X bombs with this document!

A:

It is probably a bug in docbook2X. (Assuming that the input document is valid DocBook in the first place.) Please file a bug report. In it, please include the document which causes docbook2X to fail, or a pointer to it, or a test case that reproduces the problem.

I don’t want to hear about bugs in obsolete tools (i.e. tools that are not in the current release of docbook2X.) I’m sorry, but maintaining all that is a lot of work that I don’t have time for.

Q:

Must I use refentry to write my man pages?

A:

Under the default settings of docbook2X: yes, you have to. The contents of the source document that lie outside of refentry elements are probably written in a book/article style that is usually not suited for the reference style of man pages.

Nevertheless, sometimes you might want to include inside your man page, (small) snippets or sections of content from other parts of your book or article. You can achieve this by using a custom XSLT stylesheet to include the content manually. The docbook2X documentation demonstrates this technique: see the docbook2man and the docbook2texi man pages and the stylesheet that produces them in doc/ss-man.xsl.

Q:

Where have the SGML-based docbook2X tools gone?

A:

They are in a separate package now, docbook2man-sgmlspl.

Q:

I get some iconv error when converting documents.

A:

It's because there is some Unicode character in your document that docbook2X fails to convert to ASCII or a markup escape (in roff or Texinfo). The error message is intentional because it alerts you to a possible loss of information in your document, although admittedly it could be less cryptic, but I unfortunately can't control what iconv says.

You can look at the partial man or Texinfo output — the offending Unicode character should be near the point that the output is interrupted. Since you probably wanted that Unicode character to be there, the way you want to fix this error is to add a translation for that Unicode character to the utf8trans character map. Then use the --utf8trans-map option to the Perl docbook2X tools to use your custom character map.

Alternatively, if you want to close your eyes to the utterly broken Unicode handling in groff and Texinfo, just use the --encoding=utf-8 option. Note that the UTF-8 output is unlikely to display correctly everywhere.

Q:

Texinfo output looks ugly.

A:

You have to keep in mind that Info is extremely limited in its formatting. Try setting the various parameters to the stylesheet (see xslt/texi/param.xsl).

Also, if you look at native Info pages, you will see there is a certain structure, that your DocBook document may not adhere to. There is really no fix for this. It is possible, though, to give rendering hints to the Texinfo stylesheet in your DocBook source, like this this manual does. Unfortunately these are not yet documented in a prominent place.

Q:

How do I use SAXON (or Xalan-Java) with docbook2X?

A:

Bob Stayton’s DocBook XSL: The Complete Guide has a nice section on setting up the XSLT processors. It talks about Norman Walsh’s DocBook XSL stylesheets, but for docbook2X you only need to change the stylesheet argument (any file with the extension .xsl).

If you use the Perl wrapper scripts provided with docbook2X, you only need to “install” the XSLT processors (i.e. for Java, copying the *.jar files to /usr/local/share/java), and you don’t need to do anything else.

Q:

XML catalogs don’t work with Xalan-Java. (Or: Stop connecting to the Internet when running docbook2X!)

A:

I have no idea why — XML catalogs with Xalan-Java don’t work for me either, no matter how hard I try. Just go use SAXON or libxslt instead (which do work for me at least).

Q:

I don’t like how docbook2X renders this markup.

A:

The XSLT stylesheets are customizable, so assuming you have knowledge of XSLT, you should be able to change the rendering easily. See doc/ss-texinfo.xsl of docbook2X’s own documentation for a non-trivial example.

If your customizations can be generally useful, I would like to hear about it.

If you don't want to muck with XSLT, you can still tell me what sort of features you want. Maybe other users want them too.

Q:

Does docbook2X support other XML document types or output formats?

A:

No. But if you want to create code for a new XML document type or output format, the existing infrastructure of docbook2X may be able to help you.

For example, if you want to convert a document in the W3C spec DTD to Texinfo, you can write a XSLT stylesheet that outputs a document conformant to the Texi-XML, and run that through db2x_texixml to get your Texinfo pages. Writing the said XSLT stylesheet should not be any more difficult than if you were to write a stylesheet for HTML output, in fact probably even easier.

An alternative approach is to convert the source document to DocBook first, then apply docbook2X conversion afterwards. The stylesheet reference documentation in docbook2X uses this technique: the documentation embedded in the XSLT stylesheets is first extracted into a DocBook document, then that is converted to Texinfo. This approach obviously is not ideal if the source document does not map well into DocBook, but it does allow you to use the standard DocBook HTML and XSL-FO stylesheets to format the source document with little effort.

If you want, on the other hand, to get troff output but using a different macro set, you will have to rewrite both the stylesheets and the post-processor (performing the function of db2x_manxml but with a different macro set). In this case some of the code in db2x_manxml may be reused, and you can certainly reuse utf8trans and the provided roff character maps.

docbook2X-0.8.8/doc/texinfo.html0000644000175000017500000001111710572275345013424 00000000000000 docbook2X: Converting to Texinfo

Converting to Texinfo

DocBook documents are converted to Texinfo in two steps:

  1. The DocBook source is converted by a XSLT stylesheet into an intermediate XML format, Texi-XML.

    Texi-XML is simpler than DocBook and closer to the Texinfo format; it is intended to make the stylesheets’ job easier.

    The stylesheet for this purpose is in xslt/texi/docbook.xsl. For portability, it should always be referred to by the following URI:

    http://docbook2x.sourceforge.net/latest/xslt/texi/docbook.xsl
    

    Run this stylesheet with db2x_xsltproc.

    Customizing.  You can also customize the output by creating your own XSLT stylesheet — changing parameters or adding new templates — and importing xslt/texi/docbook.xsl.

  2. Texi-XML is converted to the actual Texinfo files by db2x_texixml.

The docbook2texi command does both steps automatically, but if any problems occur, you can see the errors more clearly if you do each step separately:

$ db2x_xsltproc -s texi mydoc.xml -o mydoc.txml
$ db2x_texixml mydoc.txml

Options to the conversion stylesheet are described in the Texinfo stylesheets reference.

docbook2X-0.8.8/doc/db2x_xsltproc.10000644000175000017500000001727710572275337013757 00000000000000.\" -*- coding: us-ascii -*- .if \n(.g .ds T< \\FC .if \n(.g .ds T> \\F[\n[.fam]] .de URL \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac .TH db2x_xsltproc 1 "3 March 2007" "docbook2X 0.8.8" docbook2X .SH NAME db2x_xsltproc \- XSLT processor invocation wrapper .SH SYNOPSIS 'nh .fi .ad l \fBdb2x_xsltproc\fR \kx .if (\nx>(\n(.l/2)) .nr x (\n(.l/5) 'in \n(.iu+\nxu [\fIoptions\fR] \fIxml-document\fR 'in \n(.iu-\nxu .ad b 'hy .SH DESCRIPTION \fBdb2x_xsltproc\fR invokes the XSLT 1.0 processor for docbook2X. .PP This command applies the XSLT stylesheet (usually given by the \*(T<\fB\-\-stylesheet\fR\*(T> option) to the XML document in the file \fIxml-document\fR. The result is written to standard output (unless changed with \*(T<\fB\-\-output\fR\*(T>). .PP To read the source XML document from standard input, specify \*(T<\-\*(T> as the input document. .SH OPTIONS .TP \*(T<\fB\-\-version\fR\*(T> Display the docbook2X version. .SS "TRANSFORMATION OUTPUT OPTIONS" .TP \*(T<\fB\-\-output \fR\*(T>\fIfile\fR, \*(T<\fB\-o \fR\*(T>\fIfile\fR Write output to the given file (or URI), instead of standard output. .SS "SOURCE DOCUMENT OPTIONS" .TP \*(T<\fB\-\-xinclude\fR\*(T>, \*(T<\fB\-I\fR\*(T> Process XInclude directives in the source document. .TP \*(T<\fB\-\-sgml\fR\*(T>, \*(T<\fB\-S\fR\*(T> Indicate that the input document is SGML instead of XML. You need this set this option if \fIxml-document\fR is actually a SGML file. SGML parsing is implemented by conversion to XML via \fBsgml2xml\fR(1) from the SP package (or \fBosx\fR(1) from the OpenSP package). All tag names in the SGML file will be normalized to lowercase (i.e. the \*(T<\fB\-xlower\fR\*(T> option of \fBsgml2xml\fR(1) is used). ID attributes are available for the stylesheet (i.e. option \*(T<\fB\-xid\fR\*(T>). In addition, any ISO SDATA entities used in the SGML document are automatically converted to their XML Unicode equivalents. (This is done by a \fBsed\fR filter.) The encoding of the SGML document, if it is not \*(T, must be specified with the standard SP environment variables: \*(T<\fBSP_CHARSET_FIXED=1 SP_ENCODING=\fIencoding\fB\fR\*(T>. (Note that XML files specify their encoding with the XML declaration \*(T<\fB\fR\*(T> at the top of the file.) The above conversion options cannot be changed. If you desire different conversion options, you should invoke \fBsgml2xml\fR(1) manually, and then pass the results of that conversion to this program. .SS "RETRIEVAL OPTIONS" .TP \*(T<\fB\-\-catalogs \fR\*(T>\fIcatalog-files\fR, \*(T<\fB\-C \fR\*(T>\fIcatalog-files\fR Specify additional XML catalogs to use for resolving Formal Public Identifiers or URIs. SGML catalogs are not supported. These catalogs are \fInot\fR used for parsing an SGML document under the \*(T<\fB\-\-sgml\fR\*(T> option. Use the environment variable \fBSGML_CATALOG_FILES\fR instead to specify the catalogs for parsing the SGML document. .TP \*(T<\fB\-\-network\fR\*(T>, \*(T<\fB\-N\fR\*(T> \fBdb2x_xsltproc\fR will normally refuse to load external resources from the network, for security reasons. If you do want to load from the network, set this option. Usually you want to have installed locally the relevent DTDs and other files, and set up catalogs for them, rather than load them automatically from the network. .SS "STYLESHEET OPTIONS" .TP \*(T<\fB\-\-stylesheet \fR\*(T>\fIfile\fR, \*(T<\fB\-s \fR\*(T>\fIfile\fR Specify the filename (or URI) of the stylesheet to use. The special values \*(T and \*(T are accepted as abbreviations, to specify that \fIxml-document\fR is in DocBook and should be converted to man pages or Texinfo (respectively). .TP \*(T<\fB\-\-param \fR\*(T>\fIname\fR\*(T<\fB=\fR\*(T>\fIexpr\fR, \*(T<\fB\-p \fR\*(T>\fIname\fR\*(T<\fB=\fR\*(T>\fIexpr\fR Add or modify a parameter to the stylesheet. \fIname\fR is a XSLT parameter name, and \fIexpr\fR is an XPath expression that evaluates to the desired value for the parameter. (This means that strings must be quoted, \fIin addition\fR to the usual quoting of shell arguments; use \*(T<\fB\-\-string\-param\fR\*(T> to avoid this.) .TP \*(T<\fB\-\-string\-param \fR\*(T>\fIname\fR\*(T<\fB=\fR\*(T>\fIstring\fR, \*(T<\fB\-g \fR\*(T>\fIname\fR\*(T<\fB=\fR\*(T>\fIstring\fR Add or modify a string-valued parameter to the stylesheet. The string must be encoded in UTF-8 (regardless of the locale character encoding). .SS "DEBUGGING AND PROFILING" .TP \*(T<\fB\-\-debug\fR\*(T>, \*(T<\fB\-d\fR\*(T> Display, to standard error, logs of what is happening during the XSL transformation. .TP \*(T<\fB\-\-nesting\-limit \fR\*(T>\fIn\fR, \*(T<\fB\-D \fR\*(T>\fIn\fR Change the maximum number of nested calls to XSL templates, used to detect potential infinite loops. If not specified, the limit is 500 (libxslt\(cqs default). .TP \*(T<\fB\-\-profile\fR\*(T>, \*(T<\fB\-P\fR\*(T> Display profile information: the total number of calls to each template in the stylesheet and the time taken for each. This information is output to standard error. .TP \*(T<\fB\-\-xslt\-processor \fR\*(T>\fIprocessor\fR, \*(T<\fB\-X \fR\*(T>\fIprocessor\fR Select the underlying XSLT processor used. The possible choices for \fIprocessor\fR are: \*(T, \*(T, \*(T. The default processor is whatever was set when docbook2X was built. libxslt is recommended (because it is lean and fast), but SAXON is much more robust and would be more helpful when debugging stylesheets. All the processors have XML catalogs support enabled. (docbook2X requires it.) But note that not all the options above work with processors other than the libxslt one. .SH ENVIRONMENT .TP \fBXML_CATALOG_FILES\fR Specify XML Catalogs. If not specified, the standard catalog (\*(T<\fI/etc/xml/catalog\fR\*(T>) is loaded, if available. .TP \fBDB2X_XSLT_PROCESSOR\fR Specify the XSLT processor to use. The effect is the same as the \*(T<\fB\-\-xslt\-processor\fR\*(T> option. The primary use of this variable is to allow you to quickly test different XSLT processors without having to add \*(T<\fB\-\-xslt\-processor\fR\*(T> to every script or make file in your documentation build system. .SH "CONFORMING TO" .URL http://www.w3.org/TR/xslt "XML Stylesheet Language \(en Transformations (XSLT), version 1.0" , a W3C Recommendation. .SH NOTES In its earlier versions (< 0.8.4), docbook2X required XSLT extensions to run, and \fBdb2x_xsltproc\fR was a special libxslt-based processor that had these extensions compiled-in. When the requirement for XSLT extensions was dropped, \fBdb2x_xsltproc\fR became a Perl script which translates the options to \fBdb2x_xsltproc\fR to conform to the format accepted by the stock \fBxsltproc\fR(1) which comes with libxslt. .PP The prime reason for the existence of this script is backward compatibility with any scripts or make files that invoke docbook2X. However, it also became easy to add in support for invoking other XSLT processors with a unified command-line interface. Indeed, there is nothing special in this script to docbook2X, or even to DocBook, and it may be used for running other sorts of stylesheets if you desire. Certainly the author prefers using this command, because its invocation format is sane and is easy to use. (e.g. no typing long class names for the Java-based processors!) .SH AUTHOR Steve Cheng <\*(T>. .SH "SEE ALSO" The docbook2X manual (in Texinfo or HTML format) fully describes how to convert DocBook to man pages and Texinfo. .PP Up-to-date information about this program can be found at the .URL http://docbook2x.sourceforge.net/ "docbook2X Web site" \&. .PP You may wish to consult the documentation that comes with libxslt, SAXON, or Xalan. The W3C XSLT 1.0 specification would be useful for writing stylesheets. docbook2X-0.8.8/doc/xsltproc.xml0000644000175000017500000003725610420207262013457 00000000000000 How to run the docbook2X XSLT stylesheets The XSLT stylesheets XSLT processor libxslt SAXON catalog &db2x_xsltproc; docbook2X uses a XSLT 1.0 processor to run its stylesheets. docbook2X comes with a wrapper script, &db2x_xsltproc_ref;, that invokes the XSLT processor, but you can invoke the XSLT processor in any other way you wish. The stylesheets are described in the man-pages stylesheets reference and the Texinfo stylesheets reference The HTML versions of these documents are not in the docbook2X distribution, because they are too large. Your alternatives are: (i) use the HTML version on the docbook2X Web site, (ii) use the Texinfo version that is distributed with docbook2X, or (iii) generate the HTML yourself with the DocBook XSL stylesheets. To do the last, simply type make html in the xslt/documentation/ directory. . pure XSLT xsltproc Pure-XSLT implementations of &db2x_manxml; and &db2x_texixml; also exist. They may be used as follows (assuming libxslt as the XSLT processor). Convert to man pages using pure-XSLT &db2x_manxml; $ xsltproc -o mydoc.mxml \ docbook2X-path/xslt/man/docbook.xsl \ mydoc.xml $ xsltproc \ docbook2X-path/xslt/backend/db2x_manxml.xsl \ mydoc.mxml Convert to Texinfo using Pure-XSLT &db2x_texixml; $ xsltproc -o mydoc.txml \ docbook2X-path/xslt/texi/docbook.xsl \ mydoc.xml $ xsltproc \ docbook2X-path/xslt/backend/db2x_texixml.xsl \ mydoc.txml Here, &xsltproc_cmd; is used instead of &db2x_xsltproc;, since if you are in a situtation where you cannot use the Perl implementation of &db2x_manxml;, you probably cannot use &db2x_xsltproc; either. If for portability reasons you prefer not to use the file-system path to the docbook2X files, you can use the XML catalog provided in xslt/catalog.xml and the global URIs contained therein. XSLT processor libxslt &db2x_xsltproc; &db2x_xsltproc; 1 &db2x_xsltproc; XSLT processor invocation wrapper db2x_xsltproc options xml-document Description &db2x_xsltproc; invokes the XSLT 1.0 processor for docbook2X. This command applies the XSLT stylesheet (usually given by the option) to the XML document in the file xml-document. The result is written to standard output (unless changed with ). To read the source XML document from standard input, specify - as the input document. Options Display the docbook2X version. Transformation output options Write output to the given file (or URI), instead of standard output. Source document options Process XInclude directives in the source document. SGML Indicate that the input document is SGML instead of XML. You need this set this option if xml-document is actually a SGML file. SGML parsing is implemented by conversion to XML via &sgml2xml; from the SP package (or &osx; from the OpenSP package). All tag names in the SGML file will be normalized to lowercase (i.e. the option of &sgml2xml; is used). ID attributes are available for the stylesheet (i.e. option ). In addition, any ISO SDATA entities used in the SGML document are automatically converted to their XML Unicode equivalents. (This is done by a sed filter.) The encoding of the SGML document, if it is not us-ascii, must be specified with the standard SP environment variables: SP_CHARSET_FIXED=1 SP_ENCODING=encoding. (Note that XML files specify their encoding with the XML declaration <?xml version="1.0" encoding="encoding" ?> at the top of the file.) The above conversion options cannot be changed. If you desire different conversion options, you should invoke &sgml2xml; manually, and then pass the results of that conversion to this program. Retrieval options catalog Specify additional XML catalogs to use for resolving Formal Public Identifiers or URIs. SGML catalogs are not supported. These catalogs are not used for parsing an SGML document under the option. Use the environment variable SGML_CATALOG_FILES instead to specify the catalogs for parsing the SGML document. &db2x_xsltproc; will normally refuse to load external resources from the network, for security reasons. If you do want to load from the network, set this option. Usually you want to have installed locally the relevent DTDs and other files, and set up catalogs for them, rather than load them automatically from the network. Stylesheet options Specify the filename (or URI) of the stylesheet to use. The special values man and texi are accepted as abbreviations, to specify that xml-document is in DocBook and should be converted to man pages or Texinfo (respectively). Add or modify a parameter to the stylesheet. name is a XSLT parameter name, and expr is an XPath expression that evaluates to the desired value for the parameter. (This means that strings must be quoted, in addition to the usual quoting of shell arguments; use to avoid this.) Add or modify a string-valued parameter to the stylesheet. The string must be encoded in UTF-8 (regardless of the locale character encoding). Debugging and profiling Display, to standard error, logs of what is happening during the XSL transformation. Change the maximum number of nested calls to XSL templates, used to detect potential infinite loops. If not specified, the limit is 500 (libxslt’s default). Display profile information: the total number of calls to each template in the stylesheet and the time taken for each. This information is output to standard error. Select the underlying XSLT processor used. The possible choices for processor are: libxslt saxon xalan-j. The default processor is whatever was set when docbook2X was built. libxslt is recommended (because it is lean and fast), but SAXON is much more robust and would be more helpful when debugging stylesheets. All the processors have XML catalogs support enabled. (docbook2X requires it.) But note that not all the options above work with processors other than the libxslt one. Environment XML_CATALOG_FILES Specify XML Catalogs. If not specified, the standard catalog (/etc/xml/catalog) is loaded, if available. DB2X_XSLT_PROCESSOR Specify the XSLT processor to use. The effect is the same as the option. The primary use of this variable is to allow you to quickly test different XSLT processors without having to add to every script or make file in your documentation build system. Conforming to XML Stylesheet Language – Transformations (XSLT), version 1.0, a W3C Recommendation. Notes XSLT extensions In its earlier versions (< 0.8.4), docbook2X required XSLT extensions to run, and &db2x_xsltproc; was a special libxslt-based processor that had these extensions compiled-in. When the requirement for XSLT extensions was dropped, &db2x_xsltproc; became a Perl script which translates the options to &db2x_xsltproc; to conform to the format accepted by the stock &xsltproc_cmd; which comes with libxslt. The prime reason for the existence of this script is backward compatibility with any scripts or make files that invoke docbook2X. However, it also became easy to add in support for invoking other XSLT processors with a unified command-line interface. Indeed, there is nothing special in this script to docbook2X, or even to DocBook, and it may be used for running other sorts of stylesheets if you desire. Certainly the author prefers using this command, because its invocation format is sane and is easy to use. (e.g. no typing long class names for the Java-based processors!) &man-page-author-section; See Also &man-page-see-also; You may wish to consult the documentation that comes with libxslt, SAXON, or Xalan. The W3C XSLT 1.0 specification would be useful for writing stylesheets. SGML ISO entities &sgml2xml-isoent; DocBook &sgml2xml-isoent; 1 &sgml2xml-isoent; Convert SGML to XML with support for ISO entities sgml2xml-isoent sgml-document Description &sgml2xml-isoent; converts an SGML document to XML, with support for the ISO entities. This is done by using &sgml2xml; from the SP package (or &osx; from the OpenSP package), and the declaration for the XML version of the ISO entities is added to the output. This means that the output of this conversion should work as-is with any XML tool. This program is often used for processing SGML DocBook documents with XML-based tools. In particular, &db2x_xsltproc_ref; calls this program as part of its option. On the other hand, it is probably not helpful for migrating a source SGML text file to XML, since the conversion mangles the original formatting. Since the XML version of the ISO entities are referred to directly, not via a DTD, this tool also works with document types other than DocBook. Notes The ISO entities are referred using the public identifiers ISO 8879:1986//ENTITIES////EN//XML. The catalogs used when parsing the converted document should resolve these entities to the appropriate place (on the local filesystem). If the entities are not resolved in the catalog, then the fallback is to get the entity files from the http://www.docbook.org/ Web site. &man-page-author-section; See Also &sgml2xml; &osx; docbook2X-0.8.8/doc/faq.xml0000644000175000017500000002127410422512310012334 00000000000000 Answers and tips for common problems FAQ FAQ tips problems bugs I have a SGML DocBook document. How do I use docbook2X? SGML Use the option to &db2x_xsltproc;. (Formerly, we described a quite intricate hack here to convert to SGML to XML while preserving the ISO entities. That hack is actually what does.) docbook2X bombs with this document! It is probably a bug in docbook2X. (Assuming that the input document is valid DocBook in the first place.) Please file a bug report. In it, please include the document which causes docbook2X to fail, or a pointer to it, or a test case that reproduces the problem. I don’t want to hear about bugs in obsolete tools (i.e. tools that are not in the current release of docbook2X.) I’m sorry, but maintaining all that is a lot of work that I don’t have time for. Must I use refentry to write my man pages? refentry Under the default settings of docbook2X: yes, you have to. The contents of the source document that lie outside of refentry elements are probably written in a book/article style that is usually not suited for the reference style of man pages. Nevertheless, sometimes you might want to include inside your man page, (small) snippets or sections of content from other parts of your book or article. You can achieve this by using a custom XSLT stylesheet to include the content manually. The docbook2X documentation demonstrates this technique: see the docbook2man 1 and the docbook2texi 1 man pages and the stylesheet that produces them in doc/ss-man.xsl. Where have the SGML-based docbook2X tools gone? They are in a separate package now, docbook2man-sgmlspl. I get some iconv error when converting documents. iconv It's because there is some Unicode character in your document that docbook2X fails to convert to ASCII or a markup escape (in roff or Texinfo). The error message is intentional because it alerts you to a possible loss of information in your document, although admittedly it could be less cryptic, but I unfortunately can't control what iconv says. You can look at the partial man or Texinfo output — the offending Unicode character should be near the point that the output is interrupted. Since you probably wanted that Unicode character to be there, the way you want to fix this error is to add a translation for that Unicode character to the &utf8trans; character map. Then use the option to the Perl docbook2X tools to use your custom character map. Alternatively, if you want to close your eyes to the utterly broken Unicode handling in groff and Texinfo, just use the option. Note that the UTF-8 output is unlikely to display correctly everywhere. Texinfo output looks ugly. You have to keep in mind that Info is extremely limited in its formatting. Try setting the various parameters to the stylesheet (see xslt/texi/param.xsl). Also, if you look at native Info pages, you will see there is a certain structure, that your DocBook document may not adhere to. There is really no fix for this. It is possible, though, to give rendering hints to the Texinfo stylesheet in your DocBook source, like this this manual does. Unfortunately these are not yet documented in a prominent place. How do I use SAXON (or Xalan-Java) with docbook2X? SAXON Xalan-Java Bob Stayton’s DocBook XSL: The Complete Guide has a nice section on setting up the XSLT processors. It talks about Norman Walsh’s DocBook XSL stylesheets, but for docbook2X you only need to change the stylesheet argument (any file with the extension .xsl). If you use the Perl wrapper scripts provided with docbook2X, you only need to “install” the XSLT processors (i.e. for Java, copying the *.jar files to /usr/local/share/java), and you don’t need to do anything else. XML catalogs don’t work with Xalan-Java. (Or: Stop connecting to the Internet when running docbook2X!) Xalan-Java catalog I have no idea why — XML catalogs with Xalan-Java don’t work for me either, no matter how hard I try. Just go use SAXON or libxslt instead (which do work for me at least). I don’t like how docbook2X renders this markup. rendering customizing The XSLT stylesheets are customizable, so assuming you have knowledge of XSLT, you should be able to change the rendering easily. See doc/ss-texinfo.xsl of docbook2X’s own documentation for a non-trivial example. If your customizations can be generally useful, I would like to hear about it. If you don't want to muck with XSLT, you can still tell me what sort of features you want. Maybe other users want them too. Does docbook2X support other XML document types or output formats? other output formats other document types non-DocBook document type No. But if you want to create code for a new XML document type or output format, the existing infrastructure of docbook2X may be able to help you. For example, if you want to convert a document in the W3C spec DTD to Texinfo, you can write a XSLT stylesheet that outputs a document conformant to the Texi-XML, and run that through &db2x_texixml; to get your Texinfo pages. Writing the said XSLT stylesheet should not be any more difficult than if you were to write a stylesheet for HTML output, in fact probably even easier. An alternative approach is to convert the source document to DocBook first, then apply docbook2X conversion afterwards. The stylesheet reference documentation in docbook2X uses this technique: the documentation embedded in the XSLT stylesheets is first extracted into a DocBook document, then that is converted to Texinfo. This approach obviously is not ideal if the source document does not map well into DocBook, but it does allow you to use the standard DocBook HTML and XSL-FO stylesheets to format the source document with little effort. If you want, on the other hand, to get troff output but using a different macro set, you will have to rewrite both the stylesheets and the post-processor (performing the function of &db2x_manxml; but with a different macro set). In this case some of the code in &db2x_manxml; may be reused, and you can certainly reuse &utf8trans; and the provided roff character maps. docbook2X-0.8.8/doc/sgml2xml-isoent.10000644000175000017500000000345610572275337014220 00000000000000.\" -*- coding: us-ascii -*- .if \n(.g .ds T< \\FC .if \n(.g .ds T> \\F[\n[.fam]] .de URL \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac .TH sgml2xml-isoent 1 "3 March 2007" "docbook2X 0.8.8" docbook2X .SH NAME sgml2xml-isoent \- Convert SGML to XML with support for ISO entities .SH SYNOPSIS 'nh .fi .ad l \fBsgml2xml-isoent\fR \kx .if (\nx>(\n(.l/2)) .nr x (\n(.l/5) 'in \n(.iu+\nxu [\fIsgml-document\fR] 'in \n(.iu-\nxu .ad b 'hy .SH DESCRIPTION \fBsgml2xml-isoent\fR converts an SGML document to XML, with support for the ISO entities. This is done by using \fBsgml2xml\fR(1) from the SP package (or \fBosx\fR(1) from the OpenSP package), and the declaration for the XML version of the ISO entities is added to the output. This means that the output of this conversion should work as-is with any XML tool. .PP This program is often used for processing SGML DocBook documents with XML-based tools. In particular, \fBdb2x_xsltproc\fR(1) calls this program as part of its \*(T<\fB\-\-sgml\fR\*(T> option. On the other hand, it is probably not helpful for migrating a source SGML text file to XML, since the conversion mangles the original formatting. .PP Since the XML version of the ISO entities are referred to directly, not via a DTD, this tool also works with document types other than DocBook. .SH NOTES The ISO entities are referred using the public identifiers \*(T. The catalogs used when parsing the converted document should resolve these entities to the appropriate place (on the local filesystem). If the entities are not resolved in the catalog, then the fallback is to get the entity files from the \*(T Web site. .SH AUTHOR Steve Cheng <\*(T>. .SH "SEE ALSO" \fBsgml2xml\fR(1), \fBosx\fR(1) docbook2X-0.8.8/doc/design-notes.html0000644000175000017500000003067310572275345014357 00000000000000 docbook2X: Design notes

Design notes

Lessons learned:

  • Think four times before doing stream-based XML processing, even though it appears to be more efficient than tree-based. Stream-based processing is usually more difficult.

    But if you have to do stream-based processing, make sure to use robust, fairly scaleable tools like XML::Templates, not sgmlspl. Of course it cannot be as pleasant as tree-based XML processing, but examine db2x_manxml and db2x_texixml.

  • Do not use XML::DOM directly for stylesheets. Your “stylesheet” would become seriously unmanageable. Its also extremely slow for anything but trivial documents.

    At least take a look at some of the XPath modules out there. Better yet, see if your solution really cannot use XSLT. A C/C++-based implementation of XSLT can be fast enough for many tasks.

  • Avoid XSLT extensions whenever possible. I don't think there is anything wrong with them intrinsically, but it is a headache to have to compile your own XSLT processor. (libxslt is written in C, and the extensions must be compiled-in and cannot be loaded dynamically at runtime.) Not to mention there seems to be a thousand different set-ups for different XSLT processors.

  • Perl is not as good at XML as it’s hyped to be.

    SAX comes from the Java world, and its port to Perl (with all the object-orientedness, and without adopting Perl idioms) is awkward to use.

    Another problem is that Perl SAX does not seem to be well-maintained. The implementations have various bugs; while they can be worked around, they have been around for such a long time that it does not inspire confidence that the Perl XML modules are reliable software.

    It also seems that no one else has seriously used Perl SAX for robust applications. It seems to be unnecessarily hard to certain tasks such as displaying error diagnostics on its input, processing large documents with complicated structure.

  • Do not be afraid to use XML intermediate formats (e.g. Man-XML and Texi-XML) for converting to other markup languages, implemented with a scripting language. The syntax rules for these formats are made for authoring by hand, not machine generation; hence a conversion using tools designed for XML-to-XML conversion, requires jumping through hoops.

    You might think that we could, instead, make a separate module that abstracts all this complexity from the rest of the conversion program. For example, there is nothing stopping a XSLT processor from serializing the output document as a text document obeying the syntax rules for man pages or Texinfo documents.

    Theoretically you would get the same result, but it is much harder to implement. It is far easier to write plain text manipulation code in a scripting language than in Java or C or XSLT. Also, if the intermediate format is hidden in a Java class or C API, output errors are harder to see. Whereas with the intermediate-format approach, we can visually examine the textual output of the XSLT processor and fix the Perl script as we go along.

    Some XSLT processors support scripting to go beyond XSLT functionality, but they are usually not portable, and not always easy to use. Therefore, opt to do two-pass processing, with a standalone script as the second stage. (The first stage using XSLT.)

    Finally, another advantage of using intermediate XML formats processed by a Perl script is that we can often eliminate the use of XSLT extensions. In particular, all the way back when XSLT stylesheets first went into docbook2X, the extensions related to Texinfo node handling could have been easily moved to the Perl script, but I didn't realize it! I feel stupid now.

    If I had known this in the very beginning, it would have saved a lot of development time, and docbook2X would be much more advanced by now.

    Note that even the man-pages stylesheet from the DocBook XSL distribution essentially does two-pass processing just the same as the docbook2X solution. That stylesheet had formerly used one-pass processing, and its authors probably finally realized what a mess that was.

  • Design the XML intermediate format to be easy to use from the standpoint of the conversion tool, and similar to how XML document types work in general. e.g. abstract the paragraphs of a document, rather than their paragraph breaks (the latter is typical of traditional markup languages, but not of XML).

  • I am quite impressed by some of the things that people make XSLT 1.0 do. Things that I thought were impossible, or at least unworkable without using “real” scripting language. (db2x_manxml and db2x_texixml fall in the category of things that can be done in XSLT 1.0 but inelegantly.)

  • Internationalize as soon as possible. That is much easier than adding it in later.

    Same advice for build system.

  • I would suggest against using build systems based on Makefiles or any form of automake. Of course it is inertia that prevents people from switching to better build systems. But also consider that while Makefile-based build systems can do many of the things newer build systems are capable of, they often require too many fragile hacks. Developing these hacks take too much time that would be better spent developing the program itself.

    Alas, better build systems such as scons were not available when docbook2X was at an earlier stage. It’s too late to switch now.

  • Writing good documentation takes skill. This manual has has been revised substantially at least four times [5], with the author consciously trying to condense information each time.

  • Table processing in the pure-XSLT man-pages conversion is convoluted — it goes through HTML(!) tables as an intermediary. That is the same way that the DocBook XSL stylesheets implement it (due to Michael Smith), and I copied the code there almost verbatim. I did it this way to save myself time and energy re-implementing tables conversion again.

    And Michael Smith says that going through HTML is better, because some varieties of DocBook allow the HTML table model in addition to the CALS table model. (I am not convinced that this is such a good idea, but anyway.) Then HTML tables in DocBook can be translated to man pages too without much more effort.

    Is this inefficient? Probably. But that’s what you get if you insist on using pure XSLT. The Perl implementation of docbook2X. already supported tables conversion for two years prior.

  • The design of utf8trans is not the best. It was chosen to simplify implementations while being efficient. A more general design, while still retaining efficiency, is possible, which I describe below. However, unfortunately, at this point changing utf8trans will be too disruptive to users with little gain in functionality.

    Instead of working with characters, we should work with byte strings. This means that, if all input and output is in UTF-8, with no escape sequences, then UTF-8 decoding or encoding is not necessary at all. Indeed the program becomes agnostic to the character set used. Of course, multi-character matches become possible.

    The translation map will be an unordered list of key-value pairs. The key and value are both arbitrary-length byte strings, with an explicit length attached (so null bytes in the input and output are retained).

    The program would take the translation map, and transform the input file by matching the start of input, seen as a sequence of bytes, against the keys in the translation map, greedily. (Since the matching is greedy, the translation keys do not need to be restricted to be prefix-free.) Once the longest (in byte length) matching key is found, the corresponding value (another byte string) is substituted in the output, and processing repeats (until the input is finished). If, on the other hand, no match is found, the next byte in the input file is copied as-is, and processing repeats at the next byte of input.

    Since bytes are 8 bits and the key strings are typically very short (up to 3 bytes for a Unicode BMP character encoded in UTF-8), this algorithm can be implemented with radix search. It would be competitive, in both execution time and space, with character codepoint hashing and sparse multi-level arrays, the primary techniques for implementing Unicode character translation. (utf8trans is implemented using sparse multi-level arrays.)

    One could even try to generalize the radix searching further, so that keys can include wildcard characters, for example. Taken to the extremes, the design would end up being a regular expressions processor optimized for matching many strings with common prefixes.



[5] This number is probably inflated because of the so many design mistakes in the process.

docbook2X-0.8.8/doc/install2.xml0000644000175000017500000000200510103234072013306 00000000000000 %textents; ]> install Steve Cheng
stevecheng@users.sourceforge.net
Version &db2x_version; Convert DocBook into man pages and Texinfo
docbook2X installation &install;
docbook2X-0.8.8/doc/install.html0000644000175000017500000002423310572275345013421 00000000000000 docbook2X: Package installation

Package installation

Installation

After checking that you have the necessary prerequisites, unpack the tarball, then run ./configure, and then make, make install, as usual.

Note

If you intend to use only the pure XSLT version of docbook2X, then you do not need to compile or build the package at all. Simply unpack the tarball, and point your XSLT processor to the XSLT stylesheets under the xslt/ subdirectory.

(The last make install step, to install the files of the package onto the filesystem, is optional. You may use docbook2X from its own directory after building it, although in that case, when invoking docbook2X, you will have to specify some paths manually on the command-line.)

You may also want to run make check to do some checks that the package is working properly. Typing make -W docbook2X.xml man texi in the doc/ directory will rebuild docbook2X’s own documentation, and can serve as an additional check.

You need GNU make to build docbook2X properly.

If you are using the CVS version, you will also need the autoconf and automake tools, and must run ./autogen.sh first. But see also the note below about the CVS version.

If you want to (re-)build HTML documentation (after having installed Norman Walsh’s DocBook XSL stylesheets), pass --with-html-xsl to ./configure. You do not really need this, since docbook2X releases already contain pre-built HTML documentation.

Some other packages also call their conversion programs docbook2man and docbook2texi; you can use the --program-transform-name parameter to ./configure if you do not want docbook2X to clobber over your existing docbook2man or docbook2texi.

If you are using a Java-based XSLT processor, you need to use pass --with-xslt-processor=saxon for SAXON, or --with-xslt-processor=xalan-j for Xalan-Java. (The default is for libxslt.) In addition, since the automatic check for the installed JARs is not very intelligent, you will probably need to pass some options to ./configure to tell it where the JARs are. See ./configure --help for details.

The docbook2X package supports VPATH builds (building in a location other than the source directory), but any newly generated documentation will not end up in the right place for installation and redistribution. Cross compilation is not supported at all.

Installation problems

Q: Where is XML::Handler::SGMLSpl?
Q: db2x_xsltproc tells me that one input document is required when building docbook2X.
Q: When docbook2X attempts to build its documentation, I get errors about “attempting to load network entity”, etc.
Q: I cannot build from CVS.
Q:

Where is XML::Handler::SGMLSpl?

A:

It’s included in the docbook2X package. If Perl says it cannot find it, then that is a bug in the docbook2X distribution. Please report it.

In older versions of docbook2X, the SGMLSpl module had to be installed, or specified manually on the Perl command line. That is no longer the case.

Q:

db2x_xsltproc tells me that “one input document is required” when building docbook2X.

A:

Use GNU make to build docbook2X (as opposed to BSD make).

I could fix this incompatibility in the docbook2X make files, but some of the default automake rules have the same problem, so I didn’t bother.

Q:

When docbook2X attempts to build its documentation, I get errors about “attempting to load network entity”, etc.

A:

You will need to set up the XML catalogs for the DocBook XML DTDs correctly. This tells the XSLT processor where to find the DocBook DTDs on your system. Recent Linux distributions should already have this done for you.

This error (or rather, warning) is harmless in the case of docbook2X documentation — it does not actually require the DTD to build. But your other DocBook documents might (mainly because they use the ISO entities).

libxml also understands SGML catalogs, but last time I tried it there was some bug that stopped it from working. Your Mileage May Vary.

Q:

I cannot build from CVS.

A:

If the problem is related to HTML files, then you must pass --with-html-xsl to configure. The problem is that the HTML files are automatically generated from the XML source and are not in CVS, but the Makefile still tries to install them. (This issue does not appear when building from release tarballs.)

For other docbook2X problems, please also look at its main documentation.

docbook2X-0.8.8/doc/docbook2man.html0000644000175000017500000003255010572275345014152 00000000000000 docbook2X: docbook2man

Name

docbook2man — Convert DocBook to man pages

Synopsis

docbook2man [options] xml-document

Description

docbook2man converts the given DocBook XML document into man pages. By default, the man pages will be output to the current directory.

Only the refentry content in the DocBook document is converted. (To convert content outside of a refentry, stylesheet customization is required. See the docbook2X package for details.)

The docbook2man command is a wrapper script for a two-step conversion process.

Options

The available options are essentially the union of the options from db2x_xsltproc and db2x_manxml.

Some commonly-used options are listed below:

--encoding=encoding

Sets the character encoding of the output.

--string-param parameter=value

Sets a stylesheet parameter (options that affect how the output looks). See “Stylesheet parameters” below for the parameters that can be set.

--sgml

Accept an SGML source document as input instead of XML.

--solinks

Make stub pages for alternate names for an output man page.

Stylesheet parameters

uppercase-headings

Brief. Make headings uppercase?

Default setting. 1 (boolean true)

Headings in man page content should be or should not be uppercased.

manvolnum-cite-numeral-only

Brief. Man page section citation should use only the number

Default setting. 1 (boolean true)

When citing other man pages, the man-page section is either given as is, or has the letters stripped from it, citing only the number of the section (e.g. section 3x becomes 3). This option specifies which style.

quotes-on-literals

Brief. Display quotes on literal elements?

Default setting. 0 (boolean false)

If true, render literal elements with quotes around them.

show-comments

Brief. Display comment elements?

Default setting. 1 (boolean true)

If true, comments will be displayed, otherwise they are suppressed. Comments here refers to the comment element, which will be renamed remark in DocBook V4.0, not XML comments (<-- like this -->) which are unavailable.

function-parens

Brief. Generate parentheses after a function?

Default setting. 0 (boolean false)

If true, the formatting of a <function> element will include generated parenthesis.

xref-on-link

Brief. Should link generate a cross-reference?

Default setting. 1 (boolean true)

Man pages cannot render the hypertext links created by link. If this option is set, then the stylesheet renders a cross reference to the target of the link. (This may reduce clutter). Otherwise, only the content of the link is rendered and the actual link itself is ignored.

header-3

Brief. Third header text

Default setting. (blank)

Specifies the text of the third header of a man page, typically the date for the man page. If empty, the date content for the refentry is used.

header-4

Brief. Fourth header text

Default setting. (blank)

Specifies the text of the fourth header of a man page. If empty, the refmiscinfo content for the refentry is used.

header-5

Brief. Fifth header text

Default setting. (blank)

Specifies the text of the fifth header of a man page. If empty, the “manual name”, that is, the title of the book or reference container is used.

default-manpage-section

Brief. Default man page section

Default setting. 1

The source document usually indicates the sections that each man page should belong to (with manvolnum in refmeta). In case the source document does not indicate man-page sections, this option specifies the default.

custom-localization-file

Brief. URI of XML document containing custom localization data

Default setting. (blank)

This parameter specifies the URI of a XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document.

The text translations pointed to by this parameter always override the default text translations (from the internal parameter localization-file). If a particular translation is not present here, the corresponding default translation is used as a fallback.

This parameter is primarily for changing certain punctuation characters used in formatting the source document. The settings for punctuation characters are often specific to the source document, but can also be dependent on the locale.

To not use custom text translations, leave this parameter as the empty string.

custom-l10n-data

Brief. XML document containing custom localization data

Default setting. document($custom-localization-file)

This parameter specifies the XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document.

This parameter is internal to the stylesheet. To point to an external XML document with a URI or a file name, you should use the custom-localization-file parameter instead.

However, inside a custom stylesheet (not on the command-line) this paramter can be set to the XPath expression document(''), which will cause the custom translations directly embedded inside the custom stylesheet to be read.

author-othername-in-middle

Brief. Is othername in author a middle name?

Default setting. 1

If true, the othername of an author appears between the firstname and surname. Otherwise, othername is suppressed.

Examples

$ docbook2man --solinks manpages.xml
$ docbook2man --solinks --encoding=utf-8//TRANSLIT manpages.xml
$ docbook2man --string-param header-4="Free Recode 3.6" document.xml

Limitations

  • Internally there is one long pipeline of programs which your document goes through. If any segment of the pipeline fails (even trivially, like from mistyped program options), the resulting errors can be difficult to decipher — in this case, try running the components of docbook2X separately.

docbook2X-0.8.8/doc/quickstart.xml0000644000175000017500000000302410420177324013762 00000000000000 Examples to get you started Quick start example usage converting to man pages converting to Texinfo To convert to man pages, you run the command &docbook2man_ref;. For example, $ docbook2man --solinks manpages.xml The man pages will be output to your current directory. The options tells &docbook2man; to create man page links. You may want to omit this option when developing documentation so that your working directory does not explode with many stub man pages. (If you don’t know what this means, you can read about it in detail in &db2x_manxml;, or just ignore the previous two sentences and always specify this option.) To convert to Texinfo, you run the command &docbook2texi_ref;. For example, $ docbook2texi tdg.xml One (or more) Texinfo files will be output to your current directory. The rest of this manual describes in detail all the other options and how to customize docbook2X’s output. docbook2X-0.8.8/doc/testing.html0000644000175000017500000001216610572275345013432 00000000000000 docbook2X: How docbook2X is tested

How docbook2X is tested

The testing of the process of converting from DocBook to man pages, or Texinfo, is complicated by the fact that a given input (the DocBook document) usually does not have one specific, well-defined output. Variations on the output are allowed for the result to look “nice”.

When docbook2X was in the early stages of development, the author tested it simply by running some sample DocBook documents through it, and visually inspecting the output.

Clearly, this procedure is not scaleable for testing a large number of documents. In the later 0.8.x versions of docbook2X, the testing has been automated as much as possible.

The testing is implemented by heuristic checks on the output to see if it comprises a “good” man page or Texinfo file. These are the checks in particular:

  1. Validation of the Man-XML or Texi-XML output, from the first stage, XSLT stylesheets, against the XML DTDs defining the formats.

  2. Running groff and makeinfo on the output, and noting any errors or warnings from those programs.

  3. Other heuristic checks on the output, implemented by a Perl script. Here, spurious blank lines, uncollapsed whitespace in the output that would cause a bad display are checked.

There are about 8000 test documents, mostly refentry documents, that can be run against the current version of docbook2X. A few of them have been gathered by the author from various sources and test cases from bug reports. The majority come from using doclifter on existing man pages. Most pages pass the above tests.

To run the tests, go to the test/ directory in the docbook2X distribution. The command make check will run some tests on a few documents.

For testing using doclifter, first generate the DocBook XML sources using doclifter, then take a look at the test/mass/test.pl testing script and run it. Note that a small portion of the doclifter pages will fail the tests, because they do not satisfy the heuristic tests (but are otherwise correct), or, more commonly, the source coming from the doclifter heuristic up-conversion has errors.

docbook2X-0.8.8/doc/docbook2X.css0000644000175000017500000000465110420203004013402 00000000000000/* vim: sta et sw=2 */ body { background-color: White; color: black; padding: 1% 2%; font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; } /* * Proper indents and margins. */ p { text-indent : 0; text-align: justify; margin: 0.75em 1.5em; } blockquote { margin-left: 2em; margin-right: 2em; padding-left : 1em; } pre { margin-left: 2em; margin-right: 2em; padding-left : 1em; background-color: #F8F8F8; } .qandaset table { margin-left: 1.5em; margin-right: 1.5em; } ol, ul, dl { margin-left: 2.25em; margin-right: 2.25em; } li p, dd p, td p { margin: 0 0.25em 0.5em; } /* * Most browsers use "Courier New" whereas "Andale Mono" is much * better for most purposes. */ tt { font-family : "Andale Mono", "Courier New", monospace; } /* * Much nicer-looking definition lists */ .toc dl { background-color : #FDFAFF; color : Black; padding: 0.5em; } .toc dl dl { margin: 0; padding: 0; } dd p { text-indent : 0 } b.command { font-weight: normal; font-family: "Andale Mono", monospace; } em.replaceable code { font-family: "Times New Roman", Times, serif; } span.property { font-style: italic } span.lineannotation { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; white-space : normal; background-color: #EEEEEE; padding-left: 0.5em; padding-right: 0.5em; } pre.screen b.userinput { font-weight: normal; } .citerefentry .refentrytitle { font-weight: bold; } /* * Mozilla's default is still using ASCII quotes! Change it. */ q { quotes: '\201C' '\201D' } a:link { color: blue } a:visited { color: navy } a:hover { background-color : #ffffcc } /* Get rid of the ugly underline and borders */ @media screen { a { text-decoration: none; } } a img { border: 0; } /* * Make headings stand out */ h1 { text-align: center } h1,h2,h3,h4,h5,h6 { font-family : "Times New Roman", Times, serif; } h2 { margin-top: 1.0em; margin-bottom: 0.5em; } h3 { margin-left: 0.75em; } hr { border: solid thin black; color: black; } p.footer-homepage { font-size: small; text-align: center; margin: 0; } div.equation { margin-left: 2em; margin-right: 2em; } /* * Footnotes */ .footnote { font-size : small; text-indent : 0 } /* * Address block at the end of document */ address { background-color : #FFFAF0; font-style : italic; } .last-modified { font-size: x-small; font-style : normal; } docbook2X-0.8.8/doc/docbook2X.xml0000644000175000017500000000604710422450760013432 00000000000000 %textents; ]>
docbook2X docbook2X Steve Cheng
stevecheng@users.sourceforge.net
Version &db2x_version; Convert DocBook into man pages and Texinfo Document Preparation
DocBook docbook2X converts DocBook documents into man pages and Texinfo documents. It aims to support DocBook version 4.2, excepting the features that cannot be supported or are not useful in a man page or Texinfo document. web site download For information on the latest releases of docbook2X, and downloads, please visit the docbook2X home page. &quickstart; &manpages; &texinfo; &xsltproc; &charsets; &faq; &perf; &testing; &todo; &changes; &design-notes; Where to get docbook2X, and details on how to install it Package installation &install;
docbook2X-0.8.8/doc/performance.html0000644000175000017500000002021610572275345014251 00000000000000 docbook2X: Performance analysis

Performance analysis

The performance of docbook2X, and most other DocBook tools[2] can be summed up in a short phrase: they are slow.

On a modern computer producing only a few man pages at a time, with the right software — namely, libxslt as the XSLT processor — the DocBook tools are fast enough. But their slowness becomes a hindrance for generating hundreds or even thousands of man pages at a time.

The author of docbook2X encounters this problem whenever he tries to do automated tests of the docbook2X package. Presented below are some actual benchmarks, and possible approaches to efficient DocBook to man pages conversion.

Table 1. docbook2X running times on 2157 refentry documents

Step Time for all pages Avg. time per page
DocBook to Man-XML 519.61 s 0.24 s
Man-XML to man-pages 383.04 s 0.18 s
roff character mapping 6.72 s 0.0031 s
Total 909.37 s 0.42 s

The above benchmark was run on 2157 documents coming from the doclifter man-page-to-DocBook conversion tool. The man pages come from the section 1 man pages installed in the author’s Linux system. The XML files total 44.484 MiB, and on average are 20.6KiB long.

The results were obtained using the test script in test/mass/test.pl, using the default man-page conversion options. The test script employs the obvious optimizations, such as only loading once the XSLT processor, the man-pages stylesheet, db2x_manxml and utf8trans.

Unfortunately, there does not seem to be obvious ways that the performance can be improved, short of re-implementing the tranformation program in a tight programming language such as C.

Some notes on possible bottlenecks:

  • Character mapping by utf8trans is very fast compared to the other stages of the transformation. Even loading utf8trans separately for each document only doubles the running time of the character mapping stage.

  • Even though the XSLT processor is written in C, XSLT processing is still comparatively slow. It takes double the time of the Perl script[3] db2x_manxml, even though the XSLT portion and the Perl portion are processing documents of around the same size[4] (DocBook refentry documents and Man-XML documents).

    In fact, profiling the stylesheets shows that a significant amount of time is spent on the localization templates, in particular the complex XPath navigation used there. An obvious optimization is to use XSLT keys for the same functionality.

    However, when that is implemented, the author found that the time used for setting up keys dwarfs the time savings from avoiding the complex XPath navigation. It adds an extra 10s to the processing time for the 2157 documents. Upon closer examination of the libxslt source code, XSLT keys are seen to be implemented rather inefficiently: each key pattern x causes the entire input document to be traversed once by evaluating the XPath //x!

  • Perhaps a C-based XSLT processor written with the best performance in mind (libxslt is not particularly the most efficiently coded) may be able to achieve better conversion times, without losing all the nice advantages of XSLT-based tranformation. Or failing that, one can look into efficient, stream-based transformations (STX).



[2] with the notable exception of the docbook-to-man tool based on the instant stream processor (but this tool has many correctness problems)

[3] From preliminary estimates, the Pure-XSLT solution takes only slightly longer at this stage: .22 s per page

[4] Of course, conceptually, DocBook processing is more complicated. So these timings also give us an estimate of the cost of DocBook’s complexity: twice the cost over a simpler document type, which is actually not too bad.

docbook2X-0.8.8/doc/docbook2man.10000644000175000017500000002755210572275336013354 00000000000000.\" -*- coding: us-ascii -*- .if \n(.g .ds T< \\FC .if \n(.g .ds T> \\F[\n[.fam]] .de URL \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac .TH docbook2man 1 "3 March 2007" "docbook2X 0.8.8" docbook2X .SH NAME docbook2man \- Convert DocBook to man pages .SH SYNOPSIS 'nh .fi .ad l \fBdocbook2man\fR \kx .if (\nx>(\n(.l/2)) .nr x (\n(.l/5) 'in \n(.iu+\nxu [\fIoptions\fR] \fIxml-document\fR 'in \n(.iu-\nxu .ad b 'hy .SH DESCRIPTION \fBdocbook2man\fR converts the given DocBook XML document into man pages. By default, the man pages will be output to the current directory. .PP Only the \*(T content in the DocBook document is converted. (To convert content outside of a \*(T, stylesheet customization is required. See the docbook2X package for details.) .PP The \fBdocbook2man\fR command is a wrapper script for a two-step conversion process. See the section \(lqCONVERSION PROCESS\(rq below for details. .SH OPTIONS The available options are essentially the union of the options from \fBdb2x_xsltproc\fR(1) and \fBdb2x_manxml\fR(1). .PP Some commonly-used options are listed below: .TP \*(T<\fB\-\-encoding=\fR\*(T>\fIencoding\fR Sets the character encoding of the output. .TP \*(T<\fB\-\-string\-param \fR\*(T>\fIparameter\fR\*(T<\fB=\fR\*(T>\fIvalue\fR Sets a stylesheet parameter (options that affect how the output looks). See \(lqStylesheet parameters\(rq below for the parameters that can be set. .TP \*(T<\fB\-\-sgml\fR\*(T> Accept an SGML source document as input instead of XML. .TP \*(T<\fB\-\-solinks\fR\*(T> Make stub pages for alternate names for an output man page. .SS "STYLESHEET PARAMETERS" .TP \*(T \fBBrief\fR. Make headings uppercase? \fBDefault setting\fR. \*(T<1\*(T> (boolean true) Headings in man page content should be or should not be uppercased. .TP \*(T \fBBrief\fR. Man page section citation should use only the number \fBDefault setting\fR. \*(T<1\*(T> (boolean true) When citing other man pages, the man-page section is either given as is, or has the letters stripped from it, citing only the number of the section (e.g. section \*(T<3x\*(T> becomes \*(T<3\*(T>). This option specifies which style. .TP \*(T \fBBrief\fR. Display quotes on \*(T elements? \fBDefault setting\fR. \*(T<0\*(T> (boolean false) If true, render \*(T elements with quotes around them. .TP \*(T \fBBrief\fR. Display \*(T elements? \fBDefault setting\fR. \*(T<1\*(T> (boolean true) If true, comments will be displayed, otherwise they are suppressed. Comments here refers to the \*(T element, which will be renamed \*(T in DocBook V4.0, not XML comments (<-- like this -->) which are unavailable. .TP \*(T \fBBrief\fR. Generate parentheses after a function? \fBDefault setting\fR. \*(T<0\*(T> (boolean false) If true, the formatting of a \*(T<\*(T> element will include generated parenthesis. .TP \*(T \fBBrief\fR. Should \*(T generate a cross-reference? \fBDefault setting\fR. \*(T<1\*(T> (boolean true) Man pages cannot render the hypertext links created by \*(T. If this option is set, then the stylesheet renders a cross reference to the target of the link. (This may reduce clutter). Otherwise, only the content of the \*(T is rendered and the actual link itself is ignored. .TP \*(T \fBBrief\fR. Third header text \fBDefault setting\fR. (blank) Specifies the text of the third header of a man page, typically the date for the man page. If empty, the \*(T content for the \*(T is used. .TP \*(T \fBBrief\fR. Fourth header text \fBDefault setting\fR. (blank) Specifies the text of the fourth header of a man page. If empty, the \*(T content for the \*(T is used. .TP \*(T \fBBrief\fR. Fifth header text \fBDefault setting\fR. (blank) Specifies the text of the fifth header of a man page. If empty, the \(oqmanual name\(cq, that is, the title of the \*(T or \*(T container is used. .TP \*(T \fBBrief\fR. Default man page section \fBDefault setting\fR. \*(T<1\*(T> The source document usually indicates the sections that each man page should belong to (with \*(T in \*(T). In case the source document does not indicate man-page sections, this option specifies the default. .TP \*(T \fBBrief\fR. URI of XML document containing custom localization data \fBDefault setting\fR. (blank) This parameter specifies the URI of a XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. The text translations pointed to by this parameter always override the default text translations (from the internal parameter \*(T). If a particular translation is not present here, the corresponding default translation is used as a fallback. This parameter is primarily for changing certain punctuation characters used in formatting the source document. The settings for punctuation characters are often specific to the source document, but can also be dependent on the locale. To not use custom text translations, leave this parameter as the empty string. .TP \*(T \fBBrief\fR. XML document containing custom localization data \fBDefault setting\fR. \*(T This parameter specifies the XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. This parameter is internal to the stylesheet. To point to an external XML document with a URI or a file name, you should use the \*(T parameter instead. However, inside a custom stylesheet (\fInot on the command-line\fR) this paramter can be set to the XPath expression \*(T, which will cause the custom translations directly embedded inside the custom stylesheet to be read. .TP \*(T \fBBrief\fR. Is \*(T in \*(T a middle name? \fBDefault setting\fR. \*(T<1\*(T> If true, the \*(T of an \*(T appears between the \*(T and \*(T. Otherwise, \*(T is suppressed. .SH EXAMPLES .nf \*(T<\fB$ \fRdocbook2man \-\-solinks manpages.xml \fB$ \fRdocbook2man \-\-solinks \-\-encoding=utf\-8//TRANSLIT manpages.xml \fB$ \fRdocbook2man \-\-string\-param header\-4="Free Recode 3.6" document.xml \*(T>.fi .SH "CONVERSION PROCESS" .SS "Converting to man pages" DocBook documents are converted to man pages in two steps: .TP 0.4i 1. The DocBook source is converted by a XSLT stylesheet into an intermediate XML format, Man-XML. Man-XML is simpler than DocBook and closer to the man page format; it is intended to make the stylesheets\(cq job easier. The stylesheet for this purpose is in \*(T<\fIxslt/man/docbook.xsl\fR\*(T>. For portability, it should always be referred to by the following URI: .nf http://docbook2x.sourceforge.net/latest/xslt/man/docbook.xsl .fi Run this stylesheet with \fBdb2x_xsltproc\fR(1). \fBCustomizing\fR. You can also customize the output by creating your own XSLT stylesheet \(em changing parameters or adding new templates \(em and importing \*(T<\fIxslt/man/docbook.xsl\fR\*(T>. .TP 0.4i 2. Man-XML is converted to the actual man pages by \fBdb2x_manxml\fR(1). .PP The \fBdocbook2man\fR command does both steps automatically, but if any problems occur, you can see the errors more clearly if you do each step separately: .nf \*(T<\fB$ \fRdb2x_xsltproc \-s man \fImydoc\fR.xml \-o \fImydoc\fR.mxml \fB$ \fRdb2x_manxml \fImydoc\fR.mxml \*(T>.fi .PP Options to the conversion stylesheet are described in the man-pages stylesheets reference. .PP \fBPure XSLT conversion\fR. An alternative to the \fBdb2x_manxml\fR Perl script is the XSLT stylesheet in \*(T<\fIxslt/backend/db2x_manxml.xsl\fR\*(T>. This stylesheet performs a similar function of converting Man-XML to actual man pages. It is useful if you desire a pure XSLT solution to man-page conversion. Of course, the quality of the conversion using this stylesheet will never be as good as the Perl \fBdb2x_manxml\fR, and it runs slower. In particular, the pure XSLT version currently does not support tables in man pages, but its Perl counterpart does. .SS "Character set conversion" When translating XML to legacy ASCII-based formats with poor support for Unicode, such as man pages and Texinfo, there is always the problem that Unicode characters in the source document also have to be translated somehow. .PP A straightforward character set conversion from Unicode does not suffice, because the target character set, usually US-ASCII or ISO Latin-1, do not contain common characters such as dashes and directional quotation marks that are widely used in XML documents. But document formatters (man and Texinfo) allow such characters to be entered by a markup escape: for example, \*(T<\e(lq\*(T> for the left directional quote \*(T<\(lq\*(T>. And if a markup-level escape is not available, an ASCII transliteration might be used: for example, using the ASCII less-than sign \*(T<<\*(T> for the angle quotation mark \*(T<\(la\*(T>. .PP So the Unicode character problem can be solved in two steps: .TP 0.4i 1. \fButf8trans\fR(1), a program included in docbook2X, maps Unicode characters to markup-level escapes or transliterations. Since there is not necessarily a fixed, official mapping of Unicode characters, \fButf8trans\fR can read in user-modifiable character mappings expressed in text files and apply them. (Unlike most character set converters.) In \*(T<\fIcharmaps/man/roff.charmap\fR\*(T> and \*(T<\fIcharmaps/man/texi.charmap\fR\*(T> are character maps that may be used for man-page and Texinfo conversion. The programs \fBdb2x_manxml\fR(1) and \fBdb2x_texixml\fR(1) will apply these character maps, or another character map specified by the user, automatically. .TP 0.4i 2. The rest of the Unicode text is converted to some other character set (encoding). For example, a French document with accented characters (such as \*(T<\('e\*(T>) might be converted to ISO Latin 1. This step is applied after \fButf8trans\fR character mapping, using the \fBiconv\fR(1) encoding conversion tool. Both \fBdb2x_manxml\fR(1) and \fBdb2x_texixml\fR(1) can call \fBiconv\fR(1) automatically when producing their output. .SH FILES \*(T<\fI/usr/local/share/docbook2X/xslt/man/docbook.xsl\fR\*(T> .br \*(T<\fI/usr/local/share/docbook2X/xslt/backend/db2x_manxml.xsl\fR\*(T> .br \*(T<\fI/usr/local/share/docbook2X/xslt/catalog.xml\fR\*(T> .br \*(T<\fI/usr/local/share/docbook2X/charmaps/roff.charmap\fR\*(T> .br \*(T<\fI/usr/local/share/docbook2X/charmaps/roff.charmap.xml\fR\*(T> .PP The above files are distributed and installed by the docbook2X package. .SH NOTES The \fBdocbook2man\fR or the \fBdocbook2texi\fR command described in this manual page come from the docbook2X package. It should not be confused with the command of the same name from the obsoleted docbook-utils package. .SH LIMITATIONS .TP 0.2i \(bu Internally there is one long pipeline of programs which your document goes through. If any segment of the pipeline fails (even trivially, like from mistyped program options), the resulting errors can be difficult to decipher \(em in this case, try running the components of docbook2X separately. .SH AUTHOR Steve Cheng <\*(T>. .SH "SEE ALSO" \fBdb2x_xsltproc\fR(1), \fBdb2x_manxml\fR(1), \fButf8trans\fR(1) .PP The docbook2X manual (in Texinfo or HTML format) fully describes how to convert DocBook to man pages and Texinfo. .PP Up-to-date information about this program can be found at the .URL http://docbook2x.sourceforge.net/ "docbook2X Web site" \&. docbook2X-0.8.8/doc/db2x_manxml.html0000644000175000017500000002465110572275345014172 00000000000000 docbook2X: db2x_manxml

Name

db2x_manxml — Make man pages from Man-XML

Synopsis

db2x_manxml [options] [xml-document]

Description

db2x_manxml converts a Man-XML document into one or more man pages. They are written in the current directory.

If xml-document is not given, then the document to convert is read from standard input.

Options

--encoding=encoding

Select the character encoding used for the output files. The available encodings are those of iconv. The default encoding is us-ascii.

The XML source may contain characters that are not representable in the encoding that you select; in this case the program will bomb out during processing, and you should choose another encoding. (This is guaranteed not to happen with any Unicode encoding such as UTF-8, but unfortunately not everyone is able to process Unicode texts.)

If you are using GNU’s version of iconv, you can affix //TRANSLIT to the end of the encoding name to attempt transliterations of any unconvertible characters in the output. Beware, however, that the really inconvertible characters will be turned into another of those damned question marks. (Aren’t you sick of this?)

The suffix //TRANSLIT applied to a Unicode encoding — in particular, utf-8//TRANSLIT — means that the output files are to remain in Unicode, but markup-level character translations using utf8trans are still to be done. So in most cases, an English-language document, converted using --encoding=utf-8//TRANSLIT will actually end up as a US-ASCII document, but any untranslatable characters will remain as UTF-8 without any warning whatsoever. (Note: strictly speaking this is not “transliteration”.) This method of conversion is a compromise over strict --encoding=us-ascii processing, which aborts if any untranslatable characters are encountered.

Note that man pages and Texinfo documents in non-ASCII encodings (including UTF-8) may not be portable to older (non-internationalized) systems, which is why the default value for this option is us-ascii.

To suppress any automatic character mapping or encoding conversion whatsoever, pass the option --encoding=utf-8.

--list-files

Write a list of all the output files to standard output, in addition to normal processing.

--output-dir=dir

Specify the directory where the output files are placed. The default is the current working directory.

This option is ignored if the output is to be written to standard output (triggered by the option --to-stdout).

--to-stdout

Write the output to standard output instead of to individual files.

If this option is used even when there are supposed to be multiple output documents, then everything is concatenated to standard output. But beware that most other programs will not accept this concatenated output.

This option is incompatible with --list-files, obviously.

--help

Show brief usage information and exit.

--version

Show version and exit.

Some man pages may be referenced under two or more names, instead of just one. For example, strcpy and strncpy often point to the same man page which describes the two functions together. Choose one of the following options to select how such man pages are to be generated:

--symlinks

For each of all the alternate names for a man page, erect symbolic links to the file that contains the real man page content.

--solinks

Generate stub pages (using .so roff requests) for the alternate names, pointing them to the real man page content.

--no-links

Do not make any alternative names available. The man page can only be referenced under its principal name.

This program uses certain other programs for its operation. If they are not in their default installed locations, then use the following options to set their location:

--utf8trans-program=path, --utf8trans-map=charmap

Use the character map charmap with the utf8trans program, included with docbook2X, found under path.

--iconv-program=path

The location of the iconv program, used for encoding conversions.

Notes

The man pages produced should be compatible with most troff implementations and other tools that process man pages. Some backwards-compatible groff extensions are used to make the output look nicer.

See Also

The input to db2x_manxml is defined by the XML DTD present at dtd/Man-XML in the docbook2X distribution.

docbook2X-0.8.8/doc/docbook2texi.10000644000175000017500000003662710572275337013556 00000000000000.\" -*- coding: us-ascii -*- .if \n(.g .ds T< \\FC .if \n(.g .ds T> \\F[\n[.fam]] .de URL \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac .TH docbook2texi 1 "3 March 2007" "docbook2X 0.8.8" docbook2X .SH NAME docbook2texi \- Convert DocBook to Texinfo .SH SYNOPSIS 'nh .fi .ad l \fBdocbook2texi\fR \kx .if (\nx>(\n(.l/2)) .nr x (\n(.l/5) 'in \n(.iu+\nxu [\fIoptions\fR] \fIxml-document\fR 'in \n(.iu-\nxu .ad b 'hy .SH DESCRIPTION \fBdocbook2texi\fR converts the given DocBook XML document into one or more Texinfo documents. By default, these Texinfo documents will be output to the current directory. .PP The \fBdocbook2texi\fR command is a wrapper script for a two-step conversion process. See the section \(lqCONVERSION PROCESS\(rq below for details. .SH OPTIONS The available options are essentially the union of the options for \fBdb2x_xsltproc\fR(1) and \fBdb2x_texixml\fR(1). .PP Some commonly-used options are listed below: .TP \*(T<\fB\-\-encoding=\fR\*(T>\fIencoding\fR Sets the character encoding of the output. .TP \*(T<\fB\-\-string\-param \fR\*(T>\fIparameter\fR\*(T<\fB=\fR\*(T>\fIvalue\fR Sets a stylesheet parameter (options that affect how the output looks). See \(lqStylesheet parameters\(rq below for the parameters that can be set. .TP \*(T<\fB\-\-sgml\fR\*(T> Accept an SGML source document as input instead of XML. .SS "STYLESHEET PARAMETERS" .TP \*(T \fBBrief\fR. Use heading markup for minor captions? \fBDefault setting\fR. \*(T<0\*(T> (boolean false) If true, \*(T content in some (formal) objects are rendered with the Texinfo \*(T<@\fIheading\fR\*(T> commands. If false, captions are rendered as an emphasized paragraph. .TP \*(T \fBBrief\fR. Translate \*(T using \*(T<@pxref\*(T> \fBDefault setting\fR. \*(T<1\*(T> (boolean true) If true, \*(T is translated with the hypertext followed by the cross reference in parentheses. Otherwise, the hypertext content serves as the cross-reference name marked up using \*(T<@ref\*(T>. Typically info displays this contruct badly. .TP \*(T \fBBrief\fR. Insist on manually constructed Texinfo node names \fBDefault setting\fR. \*(T<0\*(T> (boolean false) Elements in the source document can influence the Texinfo node name generation specifying either a \*(T, or for the sectioning elements, a \*(T with \*(T in the \*(T<\fI*\fRinfo\*(T> container. However, for the majority of source documents, explicit Texinfo node names are not available, and the stylesheet tries to generate a reasonable one instead, e.g. from the normal title of an element. The generated name may not be optimal. If this option is set and the stylesheet needs to generate a name, a warning is emitted and \*(T<\fBgenerate\-id\fR\*(T> is always used for the name. When the hashtable extension is not available, the stylesheet cannot check for node name collisions, and in this case, setting this option and using explicit node names are recommended. This option is not set (i.e. false) by default. .RS \fBNote\fR The absolute fallback for generating node names is using the XSLT function \*(T<\fBgenerate\-id\fR\*(T>, and the stylesheet always emits a warning in this case regardless of the setting of \*(T. .RE .TP \*(T \fBBrief\fR. Display \*(T elements? \fBDefault setting\fR. \*(T<1\*(T> (boolean true) If true, comments will be displayed, otherwise they are suppressed. Comments here refers to the \*(T element, which will be renamed \*(T in DocBook V4.0, not XML comments (<-- like this -->) which are unavailable. .TP \*(T \fBBrief\fR. Decorate elements of a FuncSynopsis? \fBDefault setting\fR. \*(T<1\*(T> (boolean true) If true, elements of the FuncSynopsis will be decorated (e.g. bold or italic). The decoration is controlled by functions that can be redefined in a customization layer. .TP \*(T \fBBrief\fR. Generate parentheses after a function? \fBDefault setting\fR. \*(T<0\*(T> (boolean false) If true, the formatting of a \*(T<\*(T> element will include generated parenthesis. .TP \*(T \fBBrief\fR. Output NAME header before 'RefName'(s)? \fBDefault setting\fR. \*(T<1\*(T> (boolean true) If true, a "NAME" section title is output before the list of 'RefName's. .TP \*(T \fBBrief\fR. Output \*(T as part of \*(T cross-reference? \fBDefault setting\fR. \*(T<1\*(T> (boolean true) if true, the \*(T is used when cross-referencing \*(Ts, either with \*(T or \*(T. .TP \*(T \fBBrief\fR. Prefer \*(T over \*(T? \fBDefault setting\fR. \*(T<1\*(T> (boolean true) If true, the \*(T in a \*(T is preferred over any \*(T. (Of course, for output formats other than Texinfo, you usually want to prefer the \*(T, but Info is a text-only format.) In addition to the values true and false, this parameter may be set to \*(T<2\*(T> to indicate that both the text and the images should be output. You may want to do this because some Texinfo viewers can read images. Note that the Texinfo \*(T<@image\*(T> command has its own mechanism for switching between text and image output \(em but we do not use this here. The default is true. .TP \*(T \fBBrief\fR. Use Texinfo semantic inline markup? \fBDefault setting\fR. \*(T<1\*(T> (boolean true) If true, the semantic inline markup of DocBook is translated into (the closest) Texinfo equivalent. This is the default. However, because the Info format is limited to plain text, the semantic inline markup is often distinguished by using explicit quotes, which may not look good. You can set this option to false to suppress these. (For finer control over the inline formatting, you can use your own stylesheet.) .TP \*(T \fBBrief\fR. URI of XML document containing custom localization data \fBDefault setting\fR. (blank) This parameter specifies the URI of a XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. The text translations pointed to by this parameter always override the default text translations (from the internal parameter \*(T). If a particular translation is not present here, the corresponding default translation is used as a fallback. This parameter is primarily for changing certain punctuation characters used in formatting the source document. The settings for punctuation characters are often specific to the source document, but can also be dependent on the locale. To not use custom text translations, leave this parameter as the empty string. .TP \*(T \fBBrief\fR. XML document containing custom localization data \fBDefault setting\fR. \*(T This parameter specifies the XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. This parameter is internal to the stylesheet. To point to an external XML document with a URI or a file name, you should use the \*(T parameter instead. However, inside a custom stylesheet (\fInot on the command-line\fR) this paramter can be set to the XPath expression \*(T, which will cause the custom translations directly embedded inside the custom stylesheet to be read. .TP \*(T \fBBrief\fR. Is \*(T in \*(T a middle name? \fBDefault setting\fR. \*(T<1\*(T> If true, the \*(T of an \*(T appears between the \*(T and \*(T. Otherwise, \*(T is suppressed. .TP \*(T \fBBrief\fR. Name of the Info file \fBDefault setting\fR. (blank) This parameter specifies the name of the final Info file, overriding the setting in the document itself and the automatic selection in the stylesheet. If the document is a \*(T, this parameter has no effect. .RS \fBImportant\fR Do \fInot\fR include the \*(T<.info\*(T> extension in the name. .RE (Note that this parameter has nothing to do with the name of the \fITexi-XML output\fR by the XSLT processor you are running this stylesheet from.) .TP \*(T \fBBrief\fR. The categorization of the document in the Info directory \fBDefault setting\fR. (blank) This is set to the category that the document should go under in the Info directory of installed Info files. For example, \*(T. .RS \fBNote\fR Categories may also be set directly in the source document. But if this parameter is not empty, then it always overrides the setting in the source document. .RE .TP \*(T \fBBrief\fR. The description of the document in the Info directory \fBDefault setting\fR. (blank) This is a short description of the document that appears in the Info directory of installed Info files. For example, \*(T .RS \fBNote\fR Menu descriptions may also be set directly in the source document. But if this parameter is not empty, then it always overrides the setting in the source document. .RE .TP \*(T \fBBrief\fR. The Texinfo index to use \fBDefault setting\fR. \*(T The Texinfo index for \*(T and \*(T is specified using the \*(T attribute. If the above elements do not have a \*(T, then the default specified by this parameter is used. The predefined indices are: .RS .TP \*(T, \*(T Concept index .TP \*(T, \*(T Function index .TP \*(T, \*(T Variable index .TP \*(T, \*(T Keystroke index .TP \*(T, \*(T Program index .TP \*(T, \*(T Data type index .RE User-defined indices are not yet supported. .TP \*(T \fBBrief\fR. Sets the default for defaultlabel on QandASet. \fBDefault setting\fR. \*(T<\*(T> If no defaultlabel attribute is specified on a QandASet, this value is used. It must be one of the legal values for the defaultlabel attribute. .TP \*(T \fBBrief\fR. Is a Table of Contents created for QandASets? \fBDefault setting\fR. \*(T<\*(T> If true, a ToC is constructed for QandASets. .SH EXAMPLES .nf \*(T<\fB$ \fRdocbook2texi tdg.xml \fB$ \fRdocbook2texi \-\-encoding=utf\-8//TRANSLIT tdg.xml \fB$ \fRdocbook2texi \-\-string\-param semantic\-decorations=0 tdg.xml \*(T>.fi .SH "CONVERSION PROCESS" .SS "Converting to Texinfo" DocBook documents are converted to Texinfo in two steps: .TP 0.4i 1. The DocBook source is converted by a XSLT stylesheet into an intermediate XML format, Texi-XML. Texi-XML is simpler than DocBook and closer to the Texinfo format; it is intended to make the stylesheets\(cq job easier. The stylesheet for this purpose is in \*(T<\fIxslt/texi/docbook.xsl\fR\*(T>. For portability, it should always be referred to by the following URI: .nf http://docbook2x.sourceforge.net/latest/xslt/texi/docbook.xsl .fi Run this stylesheet with \fBdb2x_xsltproc\fR(1). \fBCustomizing\fR. You can also customize the output by creating your own XSLT stylesheet \(em changing parameters or adding new templates \(em and importing \*(T<\fIxslt/texi/docbook.xsl\fR\*(T>. .TP 0.4i 2. Texi-XML is converted to the actual Texinfo files by \fBdb2x_texixml\fR(1). .PP The \fBdocbook2texi\fR command does both steps automatically, but if any problems occur, you can see the errors more clearly if you do each step separately: .nf \*(T<\fB$ \fRdb2x_xsltproc \-s texi \fImydoc\fR.xml \-o \fImydoc\fR.txml \fB$ \fRdb2x_texixml \fImydoc\fR.txml \*(T>.fi .PP Options to the conversion stylesheet are described in the Texinfo stylesheets reference. .SS "Character set conversion" When translating XML to legacy ASCII-based formats with poor support for Unicode, such as man pages and Texinfo, there is always the problem that Unicode characters in the source document also have to be translated somehow. .PP A straightforward character set conversion from Unicode does not suffice, because the target character set, usually US-ASCII or ISO Latin-1, do not contain common characters such as dashes and directional quotation marks that are widely used in XML documents. But document formatters (man and Texinfo) allow such characters to be entered by a markup escape: for example, \*(T<\e(lq\*(T> for the left directional quote \*(T<\(lq\*(T>. And if a markup-level escape is not available, an ASCII transliteration might be used: for example, using the ASCII less-than sign \*(T<<\*(T> for the angle quotation mark \*(T<\(la\*(T>. .PP So the Unicode character problem can be solved in two steps: .TP 0.4i 1. \fButf8trans\fR(1), a program included in docbook2X, maps Unicode characters to markup-level escapes or transliterations. Since there is not necessarily a fixed, official mapping of Unicode characters, \fButf8trans\fR can read in user-modifiable character mappings expressed in text files and apply them. (Unlike most character set converters.) In \*(T<\fIcharmaps/man/roff.charmap\fR\*(T> and \*(T<\fIcharmaps/man/texi.charmap\fR\*(T> are character maps that may be used for man-page and Texinfo conversion. The programs \fBdb2x_manxml\fR(1) and \fBdb2x_texixml\fR(1) will apply these character maps, or another character map specified by the user, automatically. .TP 0.4i 2. The rest of the Unicode text is converted to some other character set (encoding). For example, a French document with accented characters (such as \*(T<\('e\*(T>) might be converted to ISO Latin 1. This step is applied after \fButf8trans\fR character mapping, using the \fBiconv\fR(1) encoding conversion tool. Both \fBdb2x_manxml\fR(1) and \fBdb2x_texixml\fR(1) can call \fBiconv\fR(1) automatically when producing their output. .SH FILES \*(T<\fI/usr/local/share/docbook2X/xslt/texi/docbook.xsl\fR\*(T> .br \*(T<\fI/usr/local/share/docbook2X/xslt/backend/db2x_texixml.xsl\fR\*(T> .br \*(T<\fI/usr/local/share/docbook2X/xslt/catalog.xml\fR\*(T> .br \*(T<\fI/usr/local/share/docbook2X/charmaps/texi.charmap.xml\fR\*(T> .br \*(T<\fI/usr/local/share/docbook2X/charmaps/texi.charmap.xml\fR\*(T> .PP The above files are distributed and installed by the docbook2X package. .SH NOTES The \fBdocbook2man\fR or the \fBdocbook2texi\fR command described in this manual page come from the docbook2X package. It should not be confused with the command of the same name from the obsoleted docbook-utils package. .SH LIMITATIONS .TP 0.2i \(bu Internally there is one long pipeline of programs which your document goes through. If any segment of the pipeline fails (even trivially, like from mistyped program options), the resulting errors can be difficult to decipher \(em in this case, try running the components of docbook2X separately. .SH AUTHOR Steve Cheng <\*(T>. .SH "SEE ALSO" \fBdb2x_xsltproc\fR(1), \fBdb2x_texixml\fR(1), \fButf8trans\fR(1) .PP The docbook2X manual (in Texinfo or HTML format) fully describes how to convert DocBook to man pages and Texinfo. .PP Up-to-date information about this program can be found at the .URL http://docbook2x.sourceforge.net/ "docbook2X Web site" \&. docbook2X-0.8.8/doc/Makefile.am0000644000175000017500000001244410570406565013120 00000000000000# ---------------------------------------------------------------------- # $Id: Makefile.am,v 1.52 2007/02/25 22:28:05 stevecheng Exp $ # # This Makefile builds the documentation for docbook2X in various # formats. # # Unfortunately, you must not use VPATH builds if you want # the converted documentation to end up in the right place # for the docbook2X distribution. (It's an automake limitation # that takes too much effort to work around.) # include $(top_srcdir)/docbuild.mk # ---------------------------------------------------------------------- # # Document info # # Stylesheets XSLT_MAN = $(srcdir)/ss-man.xsl XSLT_TEXI = $(srcdir)/ss-texinfo.xsl XSLT_HTML = $(srcdir)/ss-html.xsl XML_FILES = docbook2X.xml \ changes.xml charsets.xml design-notes.xml faq.xml manpages.xml \ quickstart.xml texinfo.xml textents.xml todo.xml xsltproc.xml \ perf.xml testing.xml install.xml \ i18n-system-property/i18n-system-property.xml HTML_FILES = changes.html charsets.html cindex.html design-notes.html \ db2x_manxml.html db2x_texixml.html db2x_xsltproc.html \ sgml2xml-isoent.html docbook2X.html faq.html manpages.html \ texinfo.html todo.html utf8trans.html xsltproc.html \ performance.html testing.html install.html dependencies.html \ docbook2man.html docbook2texi.html MAN_FILES = db2x_manxml.1 db2x_texixml.1 db2x_xsltproc.1 utf8trans.1 \ docbook2man.1 docbook2texi.1 sgml2xml-isoent.1 INFO_FILES = docbook2X.info TEXI_FILES = docbook2X.texi XSL_FILES = ss-man.xsl ss-texinfo.xsl ss-html.xsl DOC = docbook2X DOC_XML = $(DOC).xml # ---------------------------------------------------------------------- # # Validation # if HAVE_XMLLINT DOC_VAL = .$(DOC).valid $(DOC_VAL): $(XML_FILES) $(XMLLINT) --noout --valid $< touch $(DOC_VAL) DOC_DEP = $(DOC_VAL) validate: $(DOC_VAL) else DOC_DEP = $(XML_FILES) endif # ---------------------------------------------------------------------- # # User targets # .PHONY: all html man texi all: html man info html: $(DOC).html man: $(MAN_FILES) texi: $(DOC).texi info: $(DOC).info # ---------------------------------------------------------------------- # # HTML conversion # if HAVE_HTML_XSL $(HTML_FILES): $(DOC_XML) $(DOC_DEP) $(XSLT_HTML) $(db2x_xsltproc) -s $(XSLT_HTML) $< if HAVE_TIDY -$(TIDY) -q -m -f /dev/null \ --doctype strict --output-xhtml true --add-xml-decl false \ $(HTML_FILES) endif endif # ---------------------------------------------------------------------- # # Texinfo conversion # $(DOC).txml: $(DOC_XML) $(DOC_DEP) $(XSLT_TEXI) $(db2x_xsltproc) -s $(XSLT_TEXI) \ --string-param install-datadir="$(datadir)/docbook2X/" \ -o $@ $< $(DOC).texi: $(DOC).txml $(db2x_texixml) $< # Stupid makeinfo uses the POSIX locale for localizing documents $(DOC).info: $(DOC).texi LANG=C makeinfo $< # ---------------------------------------------------------------------- # # Man page conversion # $(DOC).mxml: $(DOC_XML) $(DOC_DEP) $(XSLT_MAN) $(db2x_xsltproc) -s $(XSLT_MAN) \ --string-param header-4="docbook2X $(VERSION)" \ --string-param install-datadir="$(datadir)/docbook2X/" \ -o $@ $< $(MAN_FILES): $(DOC).mxml $(db2x_manxml) --solinks $< # The use of $(srcdir) below is strange, and arguably not correct # for VPATH builds; however, check gets called by automake's distcheck, # which breaks if we do not use $(srcdir) here. check: $(DOC).mxml if HAVE_GROFF $(GROFF) -man -Tutf8 -z -w all $(srcdir)/*.1 2>&1 | grep "warning: " ; test $$? -eq 1 endif $(db2x_perl) $(top_srcdir)/test/htest-man.pl $(srcdir)/*.1 # Use for screenshot on Web site demo-man.ps: $(MAN_FILES) groff -Tps -man $(srcdir)/docbook2man.1 $(srcdir)/docbook2texi.1 \ $(srcdir)/db2x_manxml.1 $(srcdir)/db2x_texixml.1 \ $(srcdir)/db2x_xsltproc.1 $(srcdir)/sgml2xml-isoent.1 \ $(srcdir)/utf8trans.1 > demo-man.ps # ---------------------------------------------------------------------- # # The INSTALL, NEWS files # # The call to 'tr' is there because I absolutely hate the ugly # fake directional ASCII quotes. # # Important: This rule doesn't work when configured for a VPATH build; # and it is not worthwhile to try to fix it because # it is a dangerous command anyway (it changes # the INSTALL file in the distribution). install.txt: install2.xml install.xml textents.xml $(db2x_xsltproc) -s $(XSLT_TEXI) install2.xml | $(db2x_texixml) --plaintext --to-stdout | tr \` \' > install.txt cp install.txt ../INSTALL # ---------------------------------------------------------------------- # # Distribution (automake) # EXTRA_DIST = $(XML_FILES) install2.xml $(MAN_FILES) $(HTML_FILES) \ $(XSL_FILES) docbook2X.css \ $(DOC).mxml $(DOC).txml .$(DOC).valid # We include the last three files in the distribution, even though # they are auto-generated, so that we don't trigger unnecessary # rebuilding of the documentation on the user's end. # Don't include big ass texinfo.tex AUTOMAKE_OPTIONS = no-texinfo.tex # ---------------------------------------------------------------------- # # Install (automake) # htmldir = $(datadir)/doc/docbook2X man_MANS = $(MAN_FILES) html_DATA = $(HTML_FILES) info_TEXINFOS = docbook2X.texi # ---------------------------------------------------------------------- # # Clean (automake) # MAINTAINERCLEANFILES = $(MAN_FILES) $(HTML_FILES) \ $(INFO_FILES) $(TEXI_FILES) \ $(DOC).mxml $(DOC).txml $(DOC_VAL) .DELETE_ON_ERROR: docbook2X-0.8.8/doc/Makefile.in0000644000175000017500000005616210572275763013144 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # ---------------------------------------------------------------------- # $Id: Makefile.am,v 1.52 2007/02/25 22:28:05 stevecheng Exp $ # # This Makefile builds the documentation for docbook2X in various # formats. # # Unfortunately, you must not use VPATH builds if you want # the converted documentation to end up in the right place # for the docbook2X distribution. (It's an automake limitation # that takes too much effort to work around.) # # ---------------------------------------------------------------------- # # Common defines for building documentation # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/docbuild.mk subdir = doc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/utf8trans/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = INFO_DEPS = $(srcdir)/docbook2X.info am__TEXINFO_TEX_DIR = $(srcdir) DVIS = docbook2X.dvi PDFS = docbook2X.pdf PSS = docbook2X.ps HTMLS = docbook2X.html TEXINFOS = docbook2X.texi TEXI2DVI = texi2dvi TEXI2PDF = $(TEXI2DVI) --pdf --batch MAKEINFOHTML = $(MAKEINFO) --html AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) DVIPS = dvips am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" \ "$(DESTDIR)$(htmldir)" man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; htmlDATA_INSTALL = $(INSTALL_DATA) DATA = $(html_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GROFF = @GROFF@ HAVE_GROFF_FALSE = @HAVE_GROFF_FALSE@ HAVE_GROFF_TRUE = @HAVE_GROFF_TRUE@ HAVE_HTML_XSL_FALSE = @HAVE_HTML_XSL_FALSE@ HAVE_HTML_XSL_TRUE = @HAVE_HTML_XSL_TRUE@ HAVE_TIDY_FALSE = @HAVE_TIDY_FALSE@ HAVE_TIDY_TRUE = @HAVE_TIDY_TRUE@ HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@ HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@ ICONV = @ICONV@ INSTALLED_CHARMAP_ROFF = @INSTALLED_CHARMAP_ROFF@ INSTALLED_CHARMAP_TEXI = @INSTALLED_CHARMAP_TEXI@ INSTALLED_DB2X_MANXML = @INSTALLED_DB2X_MANXML@ INSTALLED_DB2X_TEXIXML = @INSTALLED_DB2X_TEXIXML@ INSTALLED_DB2X_XSLTPROC = @INSTALLED_DB2X_XSLTPROC@ INSTALLED_SGML2XML_ISOENT = @INSTALLED_SGML2XML_ISOENT@ INSTALLED_STYLESHEETS_CATALOG = @INSTALLED_STYLESHEETS_CATALOG@ INSTALLED_UTF8TRANS = @INSTALLED_UTF8TRANS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA = @JAVA@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ OSX = @OSX@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RESOLVER_JARS = @RESOLVER_JARS@ SAXON_JARS = @SAXON_JARS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SX = @SX@ TIDY = @TIDY@ VERSION = @VERSION@ XALAN_JARS = @XALAN_JARS@ XMLLINT = @XMLLINT@ XSLTPROC = @XSLTPROC@ XSLT_PROCESSOR = @XSLT_PROCESSOR@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ # ---------------------------------------------------------------------- # # Install (automake) # htmldir = $(datadir)/doc/docbook2X includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ db2x_perl = $(PERL) # Location of docbook2X programs stylesheets_catalog = $(top_srcdir)/xslt/catalog.xml utf8trans = $(top_builddir)/utf8trans/utf8trans db2x_texixml = $(db2x_perl) $(top_builddir)/perl/db2x_texixml --utf8trans-program=$(utf8trans) --utf8trans-map=$(top_srcdir)/charmaps/texi.charmap db2x_manxml = $(db2x_perl) $(top_builddir)/perl/db2x_manxml --utf8trans-program=$(utf8trans) --utf8trans-map=$(top_srcdir)/charmaps/roff.charmap db2x_xsltproc = $(top_builddir)/perl/db2x_xsltproc -C $(stylesheets_catalog) # ---------------------------------------------------------------------- # # Document info # # Stylesheets XSLT_MAN = $(srcdir)/ss-man.xsl XSLT_TEXI = $(srcdir)/ss-texinfo.xsl XSLT_HTML = $(srcdir)/ss-html.xsl XML_FILES = docbook2X.xml \ changes.xml charsets.xml design-notes.xml faq.xml manpages.xml \ quickstart.xml texinfo.xml textents.xml todo.xml xsltproc.xml \ perf.xml testing.xml install.xml \ i18n-system-property/i18n-system-property.xml HTML_FILES = changes.html charsets.html cindex.html design-notes.html \ db2x_manxml.html db2x_texixml.html db2x_xsltproc.html \ sgml2xml-isoent.html docbook2X.html faq.html manpages.html \ texinfo.html todo.html utf8trans.html xsltproc.html \ performance.html testing.html install.html dependencies.html \ docbook2man.html docbook2texi.html MAN_FILES = db2x_manxml.1 db2x_texixml.1 db2x_xsltproc.1 utf8trans.1 \ docbook2man.1 docbook2texi.1 sgml2xml-isoent.1 INFO_FILES = docbook2X.info TEXI_FILES = docbook2X.texi XSL_FILES = ss-man.xsl ss-texinfo.xsl ss-html.xsl DOC = docbook2X DOC_XML = $(DOC).xml # ---------------------------------------------------------------------- # # Validation # @HAVE_XMLLINT_TRUE@DOC_VAL = .$(DOC).valid @HAVE_XMLLINT_FALSE@DOC_DEP = $(XML_FILES) @HAVE_XMLLINT_TRUE@DOC_DEP = $(DOC_VAL) # ---------------------------------------------------------------------- # # Distribution (automake) # EXTRA_DIST = $(XML_FILES) install2.xml $(MAN_FILES) $(HTML_FILES) \ $(XSL_FILES) docbook2X.css \ $(DOC).mxml $(DOC).txml .$(DOC).valid # We include the last three files in the distribution, even though # they are auto-generated, so that we don't trigger unnecessary # rebuilding of the documentation on the user's end. # Don't include big ass texinfo.tex AUTOMAKE_OPTIONS = no-texinfo.tex man_MANS = $(MAN_FILES) html_DATA = $(HTML_FILES) info_TEXINFOS = docbook2X.texi # ---------------------------------------------------------------------- # # Clean (automake) # MAINTAINERCLEANFILES = $(MAN_FILES) $(HTML_FILES) \ $(INFO_FILES) $(TEXI_FILES) \ $(DOC).mxml $(DOC).txml $(DOC_VAL) all: all-am .SUFFIXES: .SUFFIXES: .dvi .html .info .pdf .ps .texi $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/docbuild.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh .texi.info: restore=: && backupdir="$(am__leading_dot)am$$$$" && \ am__cwd=`pwd` && cd $(srcdir) && \ rm -rf $$backupdir && mkdir $$backupdir && \ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ done; \ else :; fi && \ cd "$$am__cwd"; \ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $@ $<; \ then \ rc=0; \ cd $(srcdir); \ else \ rc=$$?; \ cd $(srcdir) && \ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ fi; \ rm -rf $$backupdir; exit $$rc .texi.dvi: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2DVI) $< .texi.pdf: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2PDF) $< .texi.html: rm -rf $(@:.html=.htp) if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $(@:.html=.htp) $<; \ then \ rm -rf $@; \ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \ else \ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \ exit 1; \ fi $(srcdir)/docbook2X.info: docbook2X.texi docbook2X.dvi: docbook2X.texi docbook2X.pdf: docbook2X.texi docbook2X.html: docbook2X.texi .dvi.ps: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ $(DVIPS) -o $@ $< uninstall-info-am: @$(PRE_UNINSTALL) @if (install-info --version && \ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \ install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ done; \ else :; fi @$(NORMAL_UNINSTALL) @list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ (if cd "$(DESTDIR)$(infodir)"; then \ echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ else :; fi); \ done dist-info: $(INFO_DEPS) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; \ for base in $$list; do \ case $$base in \ $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$base; then d=.; else d=$(srcdir); fi; \ base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \ for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \ if test -f $$file; then \ relfile=`expr "$$file" : "$$d/\(.*\)"`; \ test -f $(distdir)/$$relfile || \ cp -p $$file $(distdir)/$$relfile; \ else :; fi; \ done; \ done mostlyclean-aminfo: -rm -rf docbook2X.aux docbook2X.cp docbook2X.cps docbook2X.fn docbook2X.fns \ docbook2X.ky docbook2X.kys docbook2X.log docbook2X.pg \ docbook2X.pgs docbook2X.tmp docbook2X.toc docbook2X.tp \ docbook2X.tps docbook2X.vr docbook2X.vrs docbook2X.dvi \ docbook2X.pdf docbook2X.ps docbook2X.html maintainer-clean-aminfo: @list='$(INFO_DEPS)'; for i in $$list; do \ i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \ echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ done install-man1: $(man1_MANS) $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)" @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ else file=$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 1*) ;; \ *) ext='1' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ done uninstall-man1: @$(NORMAL_UNINSTALL) @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 1*) ;; \ *) ext='1' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ done install-htmlDATA: $(html_DATA) @$(NORMAL_INSTALL) test -z "$(htmldir)" || $(mkdir_p) "$(DESTDIR)$(htmldir)" @list='$(html_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(htmlDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \ $(htmlDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \ done uninstall-htmlDATA: @$(NORMAL_UNINSTALL) @list='$(html_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(htmldir)/$$f'"; \ rm -f "$(DESTDIR)$(htmldir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) $(mkdir_p) $(distdir)/.. $(distdir)/i18n-system-property @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-info check-am: all-am check: check-am all-am: Makefile $(INFO_DEPS) $(MANS) $(DATA) installdirs: for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(htmldir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: $(DVIS) html-am: $(HTMLS) info-am: $(INFO_DEPS) install-data-am: install-htmlDATA install-info-am install-man install-exec-am: install-info: install-info-am install-info-am: $(INFO_DEPS) @$(NORMAL_INSTALL) test -z "$(infodir)" || $(mkdir_p) "$(DESTDIR)$(infodir)" @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; \ for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ if test -f $$ifile; then \ relfile=`echo "$$ifile" | sed 's|^.*/||'`; \ echo " $(INSTALL_DATA) '$$ifile' '$(DESTDIR)$(infodir)/$$relfile'"; \ $(INSTALL_DATA) "$$ifile" "$(DESTDIR)$(infodir)/$$relfile"; \ else : ; fi; \ done; \ done @$(POST_INSTALL) @if (install-info --version && \ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\ install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\ done; \ else : ; fi install-man: install-man1 installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-aminfo \ maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-aminfo mostlyclean-generic pdf: pdf-am pdf-am: $(PDFS) ps: ps-am ps-am: $(PSS) uninstall-am: uninstall-htmlDATA uninstall-info-am uninstall-man uninstall-man: uninstall-man1 .PHONY: all all-am check check-am clean clean-generic dist-info \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-exec install-exec-am install-htmlDATA install-info \ install-info-am install-man install-man1 install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-aminfo maintainer-clean-generic mostlyclean \ mostlyclean-aminfo mostlyclean-generic pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-htmlDATA uninstall-info-am \ uninstall-man uninstall-man1 @HAVE_XMLLINT_TRUE@$(DOC_VAL): $(XML_FILES) @HAVE_XMLLINT_TRUE@ $(XMLLINT) --noout --valid $< @HAVE_XMLLINT_TRUE@ touch $(DOC_VAL) @HAVE_XMLLINT_TRUE@validate: $(DOC_VAL) # ---------------------------------------------------------------------- # # User targets # .PHONY: all html man texi all: html man info html: $(DOC).html man: $(MAN_FILES) texi: $(DOC).texi info: $(DOC).info # ---------------------------------------------------------------------- # # HTML conversion # @HAVE_HTML_XSL_TRUE@$(HTML_FILES): $(DOC_XML) $(DOC_DEP) $(XSLT_HTML) @HAVE_HTML_XSL_TRUE@ $(db2x_xsltproc) -s $(XSLT_HTML) $< @HAVE_HTML_XSL_TRUE@@HAVE_TIDY_TRUE@ -$(TIDY) -q -m -f /dev/null \ @HAVE_HTML_XSL_TRUE@@HAVE_TIDY_TRUE@ --doctype strict --output-xhtml true --add-xml-decl false \ @HAVE_HTML_XSL_TRUE@@HAVE_TIDY_TRUE@ $(HTML_FILES) # ---------------------------------------------------------------------- # # Texinfo conversion # $(DOC).txml: $(DOC_XML) $(DOC_DEP) $(XSLT_TEXI) $(db2x_xsltproc) -s $(XSLT_TEXI) \ --string-param install-datadir="$(datadir)/docbook2X/" \ -o $@ $< $(DOC).texi: $(DOC).txml $(db2x_texixml) $< # Stupid makeinfo uses the POSIX locale for localizing documents $(DOC).info: $(DOC).texi LANG=C makeinfo $< # ---------------------------------------------------------------------- # # Man page conversion # $(DOC).mxml: $(DOC_XML) $(DOC_DEP) $(XSLT_MAN) $(db2x_xsltproc) -s $(XSLT_MAN) \ --string-param header-4="docbook2X $(VERSION)" \ --string-param install-datadir="$(datadir)/docbook2X/" \ -o $@ $< $(MAN_FILES): $(DOC).mxml $(db2x_manxml) --solinks $< # The use of $(srcdir) below is strange, and arguably not correct # for VPATH builds; however, check gets called by automake's distcheck, # which breaks if we do not use $(srcdir) here. check: $(DOC).mxml @HAVE_GROFF_TRUE@ $(GROFF) -man -Tutf8 -z -w all $(srcdir)/*.1 2>&1 | grep "warning: " ; test $$? -eq 1 $(db2x_perl) $(top_srcdir)/test/htest-man.pl $(srcdir)/*.1 # Use for screenshot on Web site demo-man.ps: $(MAN_FILES) groff -Tps -man $(srcdir)/docbook2man.1 $(srcdir)/docbook2texi.1 \ $(srcdir)/db2x_manxml.1 $(srcdir)/db2x_texixml.1 \ $(srcdir)/db2x_xsltproc.1 $(srcdir)/sgml2xml-isoent.1 \ $(srcdir)/utf8trans.1 > demo-man.ps # ---------------------------------------------------------------------- # # The INSTALL, NEWS files # # The call to 'tr' is there because I absolutely hate the ugly # fake directional ASCII quotes. # # Important: This rule doesn't work when configured for a VPATH build; # and it is not worthwhile to try to fix it because # it is a dangerous command anyway (it changes # the INSTALL file in the distribution). install.txt: install2.xml install.xml textents.xml $(db2x_xsltproc) -s $(XSLT_TEXI) install2.xml | $(db2x_texixml) --plaintext --to-stdout | tr \` \' > install.txt cp install.txt ../INSTALL .DELETE_ON_ERROR: # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: docbook2X-0.8.8/doc/charsets.html0000644000175000017500000001366510572275345013576 00000000000000 docbook2X: Character set conversion

Character set conversion

When translating XML to legacy ASCII-based formats with poor support for Unicode, such as man pages and Texinfo, there is always the problem that Unicode characters in the source document also have to be translated somehow.

A straightforward character set conversion from Unicode does not suffice, because the target character set, usually US-ASCII or ISO Latin-1, do not contain common characters such as dashes and directional quotation marks that are widely used in XML documents. But document formatters (man and Texinfo) allow such characters to be entered by a markup escape: for example, \(lq for the left directional quote . And if a markup-level escape is not available, an ASCII transliteration might be used: for example, using the ASCII less-than sign < for the angle quotation mark .

So the Unicode character problem can be solved in two steps:

  1. utf8trans, a program included in docbook2X, maps Unicode characters to markup-level escapes or transliterations.

    Since there is not necessarily a fixed, official mapping of Unicode characters, utf8trans can read in user-modifiable character mappings expressed in text files and apply them. (Unlike most character set converters.)

    In charmaps/man/roff.charmap and charmaps/man/texi.charmap are character maps that may be used for man-page and Texinfo conversion. The programs db2x_manxml and db2x_texixml will apply these character maps, or another character map specified by the user, automatically.

  2. The rest of the Unicode text is converted to some other character set (encoding). For example, a French document with accented characters (such as é) might be converted to ISO Latin 1.

    This step is applied after utf8trans character mapping, using the iconv encoding conversion tool. Both db2x_manxml and db2x_texixml can call iconv automatically when producing their output.

docbook2X-0.8.8/doc/cindex.html0000644000175000017500000002653210572275345013231 00000000000000 docbook2X: Index

Index

F

FAQ, FAQ
future, To-do list

G

groff, Notes

N

news, Release history
non-DocBook document type, FAQ

O

optimize, Performance analysis
other document types, FAQ
other output formats, FAQ
output directory, db2x_manxml, db2x_texixml

R

re-encoding, Character set conversion
refentry, Description, FAQ
release history, Release history
rendering, FAQ

V

validation, How docbook2X is tested

W

web site, docbook2X
Windows, Dependencies on other software
wishlist, To-do list
wrapper script, docbook2man, docbook2texi
docbook2X-0.8.8/doc/utf8trans.10000644000175000017500000000560110572275337013104 00000000000000.\" -*- coding: us-ascii -*- .if \n(.g .ds T< \\FC .if \n(.g .ds T> \\F[\n[.fam]] .de URL \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac .TH utf8trans 1 "3 March 2007" "docbook2X 0.8.8" docbook2X .SH NAME utf8trans \- Transliterate UTF-8 characters according to a table .SH SYNOPSIS 'nh .fi .ad l \fButf8trans\fR \kx .if (\nx>(\n(.l/2)) .nr x (\n(.l/5) 'in \n(.iu+\nxu \fIcharmap\fR [\fIfile\fR]\&... 'in \n(.iu-\nxu .ad b 'hy .SH DESCRIPTION \fButf8trans\fR transliterates characters in the specified files (or standard input, if they are not specified) and writes the output to standard output. All input and output is in the UTF-8 encoding. .PP This program is usually used to render characters in Unicode text files as some markup escapes or ASCII transliterations. (It is not intended for general charset conversions.) It provides functionality similar to the character maps in XSLT 2.0 (XML Stylesheet Language \(en Transformations, version 2.0). .SH OPTIONS .TP \*(T<\fB\-m\fR\*(T>, \*(T<\fB\-\-modify\fR\*(T> Modifies the given files in-place with their transliterated output, instead of sending it to standard output. This option is useful for efficient transliteration of many files at once. .TP \*(T<\fB\-\-help\fR\*(T> Show brief usage information and exit. .TP \*(T<\fB\-\-version\fR\*(T> Show version and exit. .SH USAGE The translation is done according to the rules in the \(oqcharacter map\(cq, named in the file \fIcharmap\fR. It has the following format: .TP 0.4i 1. Each line represents a translation entry, except for blank lines and comment lines, which are ignored. .TP 0.4i 2. Any amount of whitespace (space or tab) may precede the start of an entry. .TP 0.4i 3. Comment lines begin with \*(T<#\*(T>. Everything on the same line is ignored. .TP 0.4i 4. Each entry consists of the Unicode codepoint of the character to translate, in hexadecimal, followed \fIone\fR space or tab, followed by the translation string, up to the end of the line. .TP 0.4i 5. The translation string is taken literally, including any leading and trailing spaces (except the delimeter between the codepoint and the translation string), and all types of characters. The newline at the end is not included. .PP The above format is intended to be restrictive, to keep \fButf8trans\fR simple. But if a XML-based format is desired, there is a \*(T<\fIxmlcharmap2utf8trans\fR\*(T> script that comes with the docbook2X distribution, that converts character maps in XSLT 2.0 format to the \fButf8trans\fR format. .SH LIMITATIONS .TP 0.2i \(bu \fButf8trans\fR does not work with binary files, because malformed UTF-8 sequences in the input are substituted with U+FFFD characters. However, null characters in the input are handled correctly. This limitation may be removed in the future. .TP 0.2i \(bu There is no way to include a newline or null in the substitution string. .SH AUTHOR Steve Cheng <\*(T>. docbook2X-0.8.8/doc/textents.xml0000644000175000017500000002157310420200731013444 00000000000000 docbook2manxml"> sgml2xml-isoent"> '> db2x_xsltproc"> '> db2x_manxml"> '> db2x_texixml"> '> docbook2man"> &docbook2man;'> docbook2texi"> &docbook2texi;'> utf8trans"> '> iconv 1"> xsltproc 1"> sgml2xml 1"> osx 1"> makeinfo 1"> makeinfo"> groff 1"> groff"> Author Steve Cheng stevecheng@users.sourceforge.net. "> Sets the character encoding of the output. Sets a stylesheet parameter (options that affect how the output looks). See “Stylesheet parameters” below for the parameters that can be set. Accept an SGML source document as input instead of XML. "> Limitations Internally there is one long pipeline of programs which your document goes through. If any segment of the pipeline fails (even trivially, like from mistyped program options), the resulting errors can be difficult to decipher — in this case, try running the components of docbook2X separately. "> Notes The docbook2man or the docbook2texi command described in this manual page come from the docbook2X package. It should not be confused with the command of the same name from the obsoleted docbook-utils package. "> The docbook2X manual (in Texinfo or HTML format) fully describes how to convert DocBook to man pages and Texinfo. Up-to-date information about this program can be found at the docbook2X Web site. "> Show brief usage information and exit. Show version and exit. "> Select the character encoding used for the output files. The available encodings are those of &iconv;. The default encoding is us-ascii. The XML source may contain characters that are not representable in the encoding that you select; in this case the program will bomb out during processing, and you should choose another encoding. (This is guaranteed not to happen with any Unicode encoding such as UTF-8, but unfortunately not everyone is able to process Unicode texts.) If you are using GNU’s version of &iconv;, you can affix //TRANSLIT to the end of the encoding name to attempt transliterations of any unconvertible characters in the output. Beware, however, that the really inconvertible characters will be turned into another of those damned question marks. (Aren’t you sick of this?) The suffix //TRANSLIT applied to a Unicode encoding — in particular, utf-8//TRANSLIT — means that the output files are to remain in Unicode, but markup-level character translations using &utf8trans; are still to be done. So in most cases, an English-language document, converted using will actually end up as a US-ASCII document, but any untranslatable characters will remain as UTF-8 without any warning whatsoever. (Note: strictly speaking this is not “transliteration”.) This method of conversion is a compromise over strict processing, which aborts if any untranslatable characters are encountered. Note that man pages and Texinfo documents in non-ASCII encodings (including UTF-8) may not be portable to older (non-internationalized) systems, which is why the default value for this option is us-ascii. To suppress any automatic character mapping or encoding conversion whatsoever, pass the option . Write a list of all the output files to standard output, in addition to normal processing. Specify the directory where the output files are placed. The default is the current working directory. This option is ignored if the output is to be written to standard output (triggered by the option ). Write the output to standard output instead of to individual files. If this option is used even when there are supposed to be multiple output documents, then everything is concatenated to standard output. But beware that most other programs will not accept this concatenated output. This option is incompatible with , obviously. "> This program uses certain other programs for its operation. If they are not in their default installed locations, then use the following options to set their location: Use the character map charmap with the &utf8trans_ref; program, included with docbook2X, found under path. The location of the &iconv; program, used for encoding conversions. "> docbook2X-0.8.8/doc/ss-man.xsl0000644000175000017500000000337110420237557013006 00000000000000 Converting to man pages Converting to Texinfo docbook2X-0.8.8/doc/todo.html0000644000175000017500000001314110572275345012714 00000000000000 docbook2X: To-do list

To-do list

With regards to DocBook support:

  • qandaset table of contents Perhaps allow qandadiv elements to be nodes in Texinfo.

  • olink (do it like what the DocBook XSL stylesheets do)

  • synopfragmentref

  • Man pages should support qandaset, footnote, mediaobject, bridgehead, synopfragmentref sidebar, msgset, procedure (and there's more).

  • Some DocBook 4.0 stuff: e.g. methodsynopsis. On the other hand adding the DocBook 4.2 stuff shouldn't be that hard.

  • programlisting line numbering, and call-out bugs specified using area. Seems to need XSLT extensions though.

  • A template-based system for title pages, and biblioentry.

  • Setting column widths in tables are not yet supported in man pages, but they should be.

  • Support for typesetting mathematics. However, I have never seen any man pages or Texinfo manuals that require this, obviously because math looks horrible in ASCII text.

For other work items, see the “limitations” or “bugs” section in the individual tools’ reference pages.

Other work items:

  • Implement tables in pure XSLT. Probably swipe the code that is in the DocBook XSL stylesheets to do so.

  • Many stylesheet templates are still undocumented.

  • Write documentation for Man-XML and Texi-XML. Write a smaller application (smaller than DocBook, that is!) of Man-XML and/or Texi-XML (e.g. for W3C specs). A side benefit is that we can identify any bugs or design misfeatures that are not noticed in the DocBook application.

  • Need to go through the stylesheets and check/fill in any missing DocBook functionality. Make a table outlining what part of DocBook we support.

    For example, we have to check that each attribute is actually supported for an element that we claim to support, or else at least raise a warning to the user when that attribute is used.

    Also some of the DocBook elements are not rendered very nicely even when they are supported.

  • Fault-tolerant, complete error handling.

  • Full localization for the output, as well as the messages from docbook2X programs. (Note that we already have internationalization for the output.)

docbook2X-0.8.8/doc/charsets.xml0000644000175000017500000001566010420203756013414 00000000000000 Discussion on reproducing non-ASCII characters in the converted output Character set conversion character map character sets charsets encoding transliteration re-encoding UTF-8 Unicode &utf8trans; escapes iconv When translating XML to legacy ASCII-based formats with poor support for Unicode, such as man pages and Texinfo, there is always the problem that Unicode characters in the source document also have to be translated somehow. A straightforward character set conversion from Unicode does not suffice, because the target character set, usually US-ASCII or ISO Latin-1, do not contain common characters such as dashes and directional quotation marks that are widely used in XML documents. But document formatters (man and Texinfo) allow such characters to be entered by a markup escape: for example, \(lq for the left directional quote . And if a markup-level escape is not available, an ASCII transliteration might be used: for example, using the ASCII less-than sign < for the angle quotation mark . So the Unicode character problem can be solved in two steps: &utf8trans_ref;, a program included in docbook2X, maps Unicode characters to markup-level escapes or transliterations. Since there is not necessarily a fixed, official mapping of Unicode characters, &utf8trans; can read in user-modifiable character mappings expressed in text files and apply them. (Unlike most character set converters.) In charmaps/man/roff.charmap and charmaps/man/texi.charmap are character maps that may be used for man-page and Texinfo conversion. The programs &db2x_manxml_ref; and &db2x_texixml_ref; will apply these character maps, or another character map specified by the user, automatically. The rest of the Unicode text is converted to some other character set (encoding). For example, a French document with accented characters (such as é) might be converted to ISO Latin 1. This step is applied after &utf8trans; character mapping, using the &iconv; encoding conversion tool. Both &db2x_manxml_ref; and &db2x_texixml_ref; can call &iconv; automatically when producing their output. character map UTF-8 Unicode &utf8trans; escapes transliteration &utf8trans; 1 &utf8trans; Transliterate UTF-8 characters according to a table &utf8trans; charmap file Description utf8trans &utf8trans; transliterates characters in the specified files (or standard input, if they are not specified) and writes the output to standard output. All input and output is in the UTF-8 encoding. This program is usually used to render characters in Unicode text files as some markup escapes or ASCII transliterations. (It is not intended for general charset conversions.) It provides functionality similar to the character maps in XSLT 2.0 (XML Stylesheet Language – Transformations, version 2.0). Options Modifies the given files in-place with their transliterated output, instead of sending it to standard output. This option is useful for efficient transliteration of many files at once. &common-options; Usage The translation is done according to the rules in the character map, named in the file charmap. It has the following format: Each line represents a translation entry, except for blank lines and comment lines, which are ignored. Any amount of whitespace (space or tab) may precede the start of an entry. Comment lines begin with #. Everything on the same line is ignored. Each entry consists of the Unicode codepoint of the character to translate, in hexadecimal, followed one space or tab, followed by the translation string, up to the end of the line. The translation string is taken literally, including any leading and trailing spaces (except the delimeter between the codepoint and the translation string), and all types of characters. The newline at the end is not included. The above format is intended to be restrictive, to keep &utf8trans; simple. But if a XML-based format is desired, there is a xmlcharmap2utf8trans script that comes with the docbook2X distribution, that converts character maps in XSLT 2.0 format to the &utf8trans; format. Limitations &utf8trans; does not work with binary files, because malformed UTF-8 sequences in the input are substituted with U+FFFD characters. However, null characters in the input are handled correctly. This limitation may be removed in the future. There is no way to include a newline or null in the substitution string. &man-page-author-section; docbook2X-0.8.8/doc/todo.xml0000644000175000017500000001073410421214654012542 00000000000000 Ideas for future improvements To-do list to-do future bugs wishlist DocBook With regards to DocBook support: qandaset table of contents Perhaps allow qandadiv elements to be nodes in Texinfo. olink (do it like what the DocBook XSL stylesheets do) synopfragmentref Man pages should support qandaset, footnote, mediaobject, bridgehead, synopfragmentref sidebar, msgset, procedure (and there's more). Some DocBook 4.0 stuff: e.g. methodsynopsis. On the other hand adding the DocBook 4.2 stuff shouldn't be that hard. programlisting line numbering, and call-out bugs specified using area. Seems to need XSLT extensions though. A template-based system for title pages, and biblioentry. Setting column widths in tables are not yet supported in man pages, but they should be. Support for typesetting mathematics. However, I have never seen any man pages or Texinfo manuals that require this, obviously because math looks horrible in ASCII text. For other work items, see the limitations or bugs section in the individual tools’ reference pages. Other work items: Implement tables in pure XSLT. Probably swipe the code that is in the DocBook XSL stylesheets to do so. Many stylesheet templates are still undocumented. Write documentation for Man-XML and Texi-XML. Write a smaller application (smaller than DocBook, that is!) of Man-XML and/or Texi-XML (e.g. for W3C specs). A side benefit is that we can identify any bugs or design misfeatures that are not noticed in the DocBook application. Need to go through the stylesheets and check/fill in any missing DocBook functionality. Make a table outlining what part of DocBook we support. For example, we have to check that each attribute is actually supported for an element that we claim to support, or else at least raise a warning to the user when that attribute is used. Also some of the DocBook elements are not rendered very nicely even when they are supported. Fault-tolerant, complete error handling. Full localization for the output, as well as the messages from docbook2X programs. (Note that we already have internationalization for the output.) docbook2X-0.8.8/doc/ss-texinfo.xsl0000644000175000017500000000565710420237557013720 00000000000000 docbook2X-0.8.8/doc/utf8trans.html0000644000175000017500000001476210572275345013717 00000000000000 docbook2X: utf8trans

Name

utf8trans — Transliterate UTF-8 characters according to a table

Synopsis

utf8trans charmap [file...]

Description

utf8trans transliterates characters in the specified files (or standard input, if they are not specified) and writes the output to standard output. All input and output is in the UTF-8 encoding.

This program is usually used to render characters in Unicode text files as some markup escapes or ASCII transliterations. (It is not intended for general charset conversions.) It provides functionality similar to the character maps in XSLT 2.0 (XML Stylesheet Language – Transformations, version 2.0).

Options

-m, --modify

Modifies the given files in-place with their transliterated output, instead of sending it to standard output.

This option is useful for efficient transliteration of many files at once.

--help

Show brief usage information and exit.

--version

Show version and exit.

Usage

The translation is done according to the rules in the “character map”, named in the file charmap. It has the following format:

  1. Each line represents a translation entry, except for blank lines and comment lines, which are ignored.

  2. Any amount of whitespace (space or tab) may precede the start of an entry.

  3. Comment lines begin with #. Everything on the same line is ignored.

  4. Each entry consists of the Unicode codepoint of the character to translate, in hexadecimal, followed one space or tab, followed by the translation string, up to the end of the line.

  5. The translation string is taken literally, including any leading and trailing spaces (except the delimeter between the codepoint and the translation string), and all types of characters. The newline at the end is not included.

The above format is intended to be restrictive, to keep utf8trans simple. But if a XML-based format is desired, there is a xmlcharmap2utf8trans script that comes with the docbook2X distribution, that converts character maps in XSLT 2.0 format to the utf8trans format.

Limitations

  • utf8trans does not work with binary files, because malformed UTF-8 sequences in the input are substituted with U+FFFD characters. However, null characters in the input are handled correctly. This limitation may be removed in the future.

  • There is no way to include a newline or null in the substitution string.

docbook2X-0.8.8/doc/i18n-system-property/0000777000175000017500000000000010572276007015124 500000000000000docbook2X-0.8.8/doc/i18n-system-property/i18n-system-property.xml0000644000175000017500000000510307662730610021545 00000000000000 Steve Cheng
stevecheng@users.sourceforge.net
July 14, 2002 This document proposes a class of XSLT system properties for enabling internationalization of stylesheets (transparent to the user).
XSLT system property for stylesheet internationalization The following system properties should be made available to stylesheets (via the system-property function): i18n:message-language Specifies the language that the stylesheet should use for user messages (i.e. the content of xsl:message). The language is named with language identifiers as defined by IETF RFC 1766, the same format used by xml:lang The GNU LANGUAGE environment variable allows the user to specify an ordered list of languages, so that if a translation for the user's first desired language is not available, then as a fallback a translation from the user's second desired language is used, and so on. Although this functionality is nice to have, it can be difficult to implement in XSLT stylesheets.. The i18n prefix refers to the namespace http://docbook2x.sourceforge.net/xsl/i18n This specification can be changed later to remove the docbook2X reference later.. Other information pertaining to internationalization can also be included in this namespace in future revisions of this specification.
docbook2X-0.8.8/doc/dependencies.html0000644000175000017500000001633510572275345014405 00000000000000 docbook2X: Dependencies on other software

Dependencies on other software

To use docbook2X you need:

A reasonable Unix system, with Perl 5

docbook2X can work on Linux, FreeBSD, Solaris, and Cygwin on Windows.

A C compiler is required to compile a small ANSI C program (utf8trans).

XML-NamespaceSupport, XML-SAX, XML-Parser and XML-SAX-Expat (Perl modules)

The last two are optional: they add a Perl interface to the C-based XML parser Expat. It is recommended that you install them anyway; otherwise, the fallback Perl-based XML parser makes docbook2X real slow.

You can get all the Perl modules here: CPAN XML module listing.

iconv

If you are running Linux glibc, you already have it. Otherwise, see the GNU libiconv home page.

XSLT 1.0 processor

You have a choice of:

libxslt

See the libxml2, libxslt home page.

SAXON

See the SAXON home page.

Xalan-Java

See the Xalan-Java home page.

For the Java-based processors (SAXON and Xalan-Java), you will also need[6] the Apache XML Commons distribution. This adds XML catalogs support to any Java-based processor.

Out of the three processors, libxslt is recommended. (I would have added support for other XSLT processors, but only these three seem to have proper XML catalogs support.)

Unlike previous versions of docbook2X, these Java-based processors can work almost out-of-the-box. Also docbook2X no longer needs to compile XSLT extensions, so you if you use an OS distribution package of libxslt, you do not need the development versions of the library any more.

DocBook XML DTD

Make sure you set up the XML catalogs for the DTDs you install.

The DocBook: The Definitive Guide website has more information.

You may also need the SGML DTD if your documents are SGML rather than XML.

Norman Walsh’s DocBook XSL stylesheets

See the Open DocBook Repository.

This is optional and is only used to build documentation in HTML format. In your XML catalog, point the URI in doc/ss-html.xsl to a local copy of the stylesheets.

For all the items above, it will be easier for you to install the OS packaging of the software (e.g. Debian packages), than to install them manually. But be aware that sometimes the OS package may not be for an up-to-date version of the software.

If you cannot satisfy all the prerequisites above (say you are on a vanilla Win32 system), then you will not be able to “build” docbook2X properly, but if you are knowledgeable, you can still salvage its parts (e.g. the XSLT stylesheets, which can be run alone).



[6] Strictly speaking this component is not required, but if you do not have it, you will almost certainly have your computer downloading large XML files from the Internet all the time, as portable XML files will not refer directly to cached local copies of the required files.

docbook2X-0.8.8/doc/db2x_xsltproc.html0000644000175000017500000003550110572275345014550 00000000000000 docbook2X: db2x_xsltproc

Name

db2x_xsltproc — XSLT processor invocation wrapper

Synopsis

db2x_xsltproc [options] xml-document

Description

db2x_xsltproc invokes the XSLT 1.0 processor for docbook2X.

This command applies the XSLT stylesheet (usually given by the --stylesheet option) to the XML document in the file xml-document. The result is written to standard output (unless changed with --output).

To read the source XML document from standard input, specify - as the input document.

Options

--version

Display the docbook2X version.

Transformation output options

--output file, -o file

Write output to the given file (or URI), instead of standard output.

Source document options

--xinclude, -I

Process XInclude directives in the source document.

--sgml, -S

Indicate that the input document is SGML instead of XML. You need this set this option if xml-document is actually a SGML file.

SGML parsing is implemented by conversion to XML via sgml2xml from the SP package (or osx from the OpenSP package). All tag names in the SGML file will be normalized to lowercase (i.e. the -xlower option of sgml2xml is used). ID attributes are available for the stylesheet (i.e. option -xid). In addition, any ISO SDATA entities used in the SGML document are automatically converted to their XML Unicode equivalents. (This is done by a sed filter.)

The encoding of the SGML document, if it is not us-ascii, must be specified with the standard SP environment variables: SP_CHARSET_FIXED=1 SP_ENCODING=encoding. (Note that XML files specify their encoding with the XML declaration <?xml version="1.0" encoding="encoding" ?> at the top of the file.)

The above conversion options cannot be changed. If you desire different conversion options, you should invoke sgml2xml manually, and then pass the results of that conversion to this program.

Retrieval options

--catalogs catalog-files, -C catalog-files

Specify additional XML catalogs to use for resolving Formal Public Identifiers or URIs. SGML catalogs are not supported.

These catalogs are not used for parsing an SGML document under the --sgml option. Use the environment variable SGML_CATALOG_FILES instead to specify the catalogs for parsing the SGML document.

--network, -N

db2x_xsltproc will normally refuse to load external resources from the network, for security reasons. If you do want to load from the network, set this option.

Usually you want to have installed locally the relevent DTDs and other files, and set up catalogs for them, rather than load them automatically from the network.

Stylesheet options

--stylesheet file, -s file

Specify the filename (or URI) of the stylesheet to use. The special values man and texi are accepted as abbreviations, to specify that xml-document is in DocBook and should be converted to man pages or Texinfo (respectively).

--param name=expr, -p name=expr

Add or modify a parameter to the stylesheet. name is a XSLT parameter name, and expr is an XPath expression that evaluates to the desired value for the parameter. (This means that strings must be quoted, in addition to the usual quoting of shell arguments; use --string-param to avoid this.)

--string-param name=string, -g name=string

Add or modify a string-valued parameter to the stylesheet.

The string must be encoded in UTF-8 (regardless of the locale character encoding).

Debugging and profiling

--debug, -d

Display, to standard error, logs of what is happening during the XSL transformation.

--nesting-limit n, -D n

Change the maximum number of nested calls to XSL templates, used to detect potential infinite loops. If not specified, the limit is 500 (libxslt’s default).

--profile, -P

Display profile information: the total number of calls to each template in the stylesheet and the time taken for each. This information is output to standard error.

--xslt-processor processor, -X processor

Select the underlying XSLT processor used. The possible choices for processor are: libxslt, saxon, xalan-j.

The default processor is whatever was set when docbook2X was built. libxslt is recommended (because it is lean and fast), but SAXON is much more robust and would be more helpful when debugging stylesheets.

All the processors have XML catalogs support enabled. (docbook2X requires it.) But note that not all the options above work with processors other than the libxslt one.

Environment

XML_CATALOG_FILES

Specify XML Catalogs. If not specified, the standard catalog (/etc/xml/catalog) is loaded, if available.

DB2X_XSLT_PROCESSOR

Specify the XSLT processor to use. The effect is the same as the --xslt-processor option. The primary use of this variable is to allow you to quickly test different XSLT processors without having to add --xslt-processor to every script or make file in your documentation build system.

Notes

In its earlier versions (< 0.8.4), docbook2X required XSLT extensions to run, and db2x_xsltproc was a special libxslt-based processor that had these extensions compiled-in. When the requirement for XSLT extensions was dropped, db2x_xsltproc became a Perl script which translates the options to db2x_xsltproc to conform to the format accepted by the stock xsltproc which comes with libxslt.

The prime reason for the existence of this script is backward compatibility with any scripts or make files that invoke docbook2X. However, it also became easy to add in support for invoking other XSLT processors with a unified command-line interface. Indeed, there is nothing special in this script to docbook2X, or even to DocBook, and it may be used for running other sorts of stylesheets if you desire. Certainly the author prefers using this command, because its invocation format is sane and is easy to use. (e.g. no typing long class names for the Java-based processors!)

See Also

You may wish to consult the documentation that comes with libxslt, SAXON, or Xalan. The W3C XSLT 1.0 specification would be useful for writing stylesheets.

docbook2X-0.8.8/doc/db2x_texixml.10000644000175000017500000001654510572275337013570 00000000000000.\" -*- coding: us-ascii -*- .if \n(.g .ds T< \\FC .if \n(.g .ds T> \\F[\n[.fam]] .de URL \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac .TH db2x_texixml 1 "3 March 2007" "docbook2X 0.8.8" docbook2X .SH NAME db2x_texixml \- Make Texinfo files from Texi-XML .SH SYNOPSIS 'nh .fi .ad l \fBdb2x_texixml\fR \kx .if (\nx>(\n(.l/2)) .nr x (\n(.l/5) 'in \n(.iu+\nxu [options]\&... [\fIxml-document\fR] 'in \n(.iu-\nxu .ad b 'hy .SH DESCRIPTION \fBdb2x_texixml\fR converts a Texi-XML document into one or more Texinfo documents. .PP If \fIxml-document\fR is not given, then the document to convert comes from standard input. .PP The filenames of the Texinfo documents are determined by markup in the Texi-XML source. (If the filenames are not specified in the markup, then \fBdb2x_texixml\fR attempts to deduce them from the name of the input file. However, the Texi-XML source should specify the filename, because it does not work when there are multiple output files or when the Texi-XML source comes from standard input.) .SH OPTIONS .TP \*(T<\fB\-\-encoding=\fR\*(T>\fIencoding\fR Select the character encoding used for the output files. The available encodings are those of \fBiconv\fR(1). The default encoding is \*(T. The XML source may contain characters that are not representable in the encoding that you select; in this case the program will bomb out during processing, and you should choose another encoding. (This is guaranteed not to happen with any Unicode encoding such as UTF-8, but unfortunately not everyone is able to process Unicode texts.) If you are using GNU\(cqs version of \fBiconv\fR(1), you can affix \*(T to the end of the encoding name to attempt transliterations of any unconvertible characters in the output. Beware, however, that the really inconvertible characters will be turned into another of those damned question marks. (Aren\(cqt you sick of this?) The suffix \*(T applied to a Unicode encoding \(em in particular, \*(T \(em means that the output files are to remain in Unicode, but markup-level character translations using \fButf8trans\fR are still to be done. So in most cases, an English-language document, converted using \*(T<\fB\-\-encoding=\fR\*(T>\*(T<\fButf\-8//TRANSLIT\fR\*(T> will actually end up as a US-ASCII document, but any untranslatable characters will remain as UTF-8 without any warning whatsoever. (Note: strictly speaking this is not \(lqtransliteration\(rq.) This method of conversion is a compromise over strict \*(T<\fB\-\-encoding=\fR\*(T>\*(T<\fBus\-ascii\fR\*(T> processing, which aborts if any untranslatable characters are encountered. Note that man pages and Texinfo documents in non-ASCII encodings (including UTF-8) may not be portable to older (non-internationalized) systems, which is why the default value for this option is \*(T. To suppress any automatic character mapping or encoding conversion whatsoever, pass the option \*(T<\fB\-\-encoding=\fR\*(T>\*(T<\fButf\-8\fR\*(T>. .TP \*(T<\fB\-\-list\-files\fR\*(T> Write a list of all the output files to standard output, in addition to normal processing. .TP \*(T<\fB\-\-output\-dir=\fR\*(T>\fIdir\fR Specify the directory where the output files are placed. The default is the current working directory. This option is ignored if the output is to be written to standard output (triggered by the option \*(T<\fB\-\-to\-stdout\fR\*(T>). .TP \*(T<\fB\-\-to\-stdout\fR\*(T> Write the output to standard output instead of to individual files. If this option is used even when there are supposed to be multiple output documents, then everything is concatenated to standard output. But beware that most other programs will not accept this concatenated output. This option is incompatible with \*(T<\fB\-\-list\-files\fR\*(T>, obviously. .TP \*(T<\fB\-\-info\fR\*(T> Pipe the Texinfo output to \fBmakeinfo\fR(1), creating Info files directly instead of Texinfo files. .TP \*(T<\fB\-\-plaintext\fR\*(T> Pipe the Texinfo output to \fBmakeinfo \*(T<\fB\-\-no\-headers\fR\*(T>\fR, thereby creating plain text files. .TP \*(T<\fB\-\-help\fR\*(T> Show brief usage information and exit. .TP \*(T<\fB\-\-version\fR\*(T> Show version and exit. .PP This program uses certain other programs for its operation. If they are not in their default installed locations, then use the following options to set their location: .TP \*(T<\fB\-\-utf8trans\-program=\fR\*(T>\fIpath\fR, \*(T<\fB\-\-utf8trans\-map=\fR\*(T>\fIcharmap\fR Use the character map \fIcharmap\fR with the \fButf8trans\fR(1) program, included with docbook2X, found under \fIpath\fR. .TP \*(T<\fB\-\-iconv\-program=\fR\*(T>\fIpath\fR The location of the \fBiconv\fR(1) program, used for encoding conversions. .SH NOTES \fBTexinfo language compatibility\fR. The Texinfo files generated by \fBdb2x_texixml\fR sometimes require Texinfo version 4.7 (the latest version) to work properly. In particular: .TP 0.2i \(bu \fBdb2x_texixml\fR relies on \fBmakeinfo\fR to automatically add punctuation after a \*(T<@ref\*(T> if it it not already there. Otherwise the hyperlink will not work in the Info reader (although \fBmakeinfo\fR will not emit any error). .TP 0.2i \(bu The new \*(T<@comma{}\*(T> command is used for commas (\*(T<,\*(T>) occurring inside argument lists to Texinfo commands, to disambiguate it from the comma used to separate different arguments. The only alternative otherwise would be to translate \*(T<,\*(T> to \*(T<\&.\*(T> which is obviously undesirable (but earlier docbook2X versions did this). If you cannot use version 4.7 of \fBmakeinfo\fR, you can still use a \fBsed\fR script to perform manually the procedure just outlined. .PP \fBRelation of Texi-XML with the XML output format of makeinfo\fR. The Texi-XML format used by docbook2X is \fIdifferent\fR and incompatible with the XML format generated by \fBmakeinfo\fR(1) with its \*(T<\fB\-\-xml\fR\*(T> option. This situation arose partly because the Texi-XML format of docbook2X was designed and implemented independently before the appearance of \fBmakeinfo\fR\(cqs XML format. Also Texi-XML is very much geared towards being \fImachine-generated from other XML formats\fR, while there seems to be no non-trivial applications of \fBmakeinfo\fR\(cqs XML format. So there is no reason at this point for docbook2X to adopt \fBmakeinfo\fR\(cqs XML format in lieu of Texi-XML. .SH BUGS .TP 0.2i \(bu Text wrapping in menus is utterly broken for non-ASCII text. It is probably also broken everywhere else in the output, but that would be \fBmakeinfo\fR\(cqs fault. .TP 0.2i \(bu \*(T<\fB\-\-list\-files\fR\*(T> might not work correctly with \*(T<\fB\-\-info\fR\*(T>. Specifically, when the output Info file get too big, \fBmakeinfo\fR will decide to split it into parts named \*(T<\fIabc.info\-1\fR\*(T>, \*(T<\fIabc.info\-2\fR\*(T>, \*(T<\fIabc.info\-3\fR\*(T>, etc. \fBdb2x_texixml\fR does not know exactly how many of these files there are, though you can just do an \fBls\fR to find out. .SH AUTHOR Steve Cheng <\*(T>. .SH "SEE ALSO" The docbook2X manual (in Texinfo or HTML format) fully describes how to convert DocBook to man pages and Texinfo. .PP Up-to-date information about this program can be found at the .URL http://docbook2x.sourceforge.net/ "docbook2X Web site" \&. .PP The input to \fBdb2x_texixml\fR is defined by the XML DTD present at \*(T<\fIdtd/Texi\-XML\fR\*(T> in the docbook2X distribution. docbook2X-0.8.8/doc/db2x_manxml.10000644000175000017500000001272010572275337013361 00000000000000.\" -*- coding: us-ascii -*- .if \n(.g .ds T< \\FC .if \n(.g .ds T> \\F[\n[.fam]] .de URL \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac .TH db2x_manxml 1 "3 March 2007" "docbook2X 0.8.8" docbook2X .SH NAME db2x_manxml \- Make man pages from Man-XML .SH SYNOPSIS 'nh .fi .ad l \fBdb2x_manxml\fR \kx .if (\nx>(\n(.l/2)) .nr x (\n(.l/5) 'in \n(.iu+\nxu [\fIoptions\fR] [\fIxml-document\fR] 'in \n(.iu-\nxu .ad b 'hy .SH DESCRIPTION \fBdb2x_manxml\fR converts a Man-XML document into one or more man pages. They are written in the current directory. .PP If \fIxml-document\fR is not given, then the document to convert is read from standard input. .SH OPTIONS .TP \*(T<\fB\-\-encoding=\fR\*(T>\fIencoding\fR Select the character encoding used for the output files. The available encodings are those of \fBiconv\fR(1). The default encoding is \*(T. The XML source may contain characters that are not representable in the encoding that you select; in this case the program will bomb out during processing, and you should choose another encoding. (This is guaranteed not to happen with any Unicode encoding such as UTF-8, but unfortunately not everyone is able to process Unicode texts.) If you are using GNU\(cqs version of \fBiconv\fR(1), you can affix \*(T to the end of the encoding name to attempt transliterations of any unconvertible characters in the output. Beware, however, that the really inconvertible characters will be turned into another of those damned question marks. (Aren\(cqt you sick of this?) The suffix \*(T applied to a Unicode encoding \(em in particular, \*(T \(em means that the output files are to remain in Unicode, but markup-level character translations using \fButf8trans\fR are still to be done. So in most cases, an English-language document, converted using \*(T<\fB\-\-encoding=\fR\*(T>\*(T<\fButf\-8//TRANSLIT\fR\*(T> will actually end up as a US-ASCII document, but any untranslatable characters will remain as UTF-8 without any warning whatsoever. (Note: strictly speaking this is not \(lqtransliteration\(rq.) This method of conversion is a compromise over strict \*(T<\fB\-\-encoding=\fR\*(T>\*(T<\fBus\-ascii\fR\*(T> processing, which aborts if any untranslatable characters are encountered. Note that man pages and Texinfo documents in non-ASCII encodings (including UTF-8) may not be portable to older (non-internationalized) systems, which is why the default value for this option is \*(T. To suppress any automatic character mapping or encoding conversion whatsoever, pass the option \*(T<\fB\-\-encoding=\fR\*(T>\*(T<\fButf\-8\fR\*(T>. .TP \*(T<\fB\-\-list\-files\fR\*(T> Write a list of all the output files to standard output, in addition to normal processing. .TP \*(T<\fB\-\-output\-dir=\fR\*(T>\fIdir\fR Specify the directory where the output files are placed. The default is the current working directory. This option is ignored if the output is to be written to standard output (triggered by the option \*(T<\fB\-\-to\-stdout\fR\*(T>). .TP \*(T<\fB\-\-to\-stdout\fR\*(T> Write the output to standard output instead of to individual files. If this option is used even when there are supposed to be multiple output documents, then everything is concatenated to standard output. But beware that most other programs will not accept this concatenated output. This option is incompatible with \*(T<\fB\-\-list\-files\fR\*(T>, obviously. .TP \*(T<\fB\-\-help\fR\*(T> Show brief usage information and exit. .TP \*(T<\fB\-\-version\fR\*(T> Show version and exit. .PP Some man pages may be referenced under two or more names, instead of just one. For example, \fBstrcpy\fR(3) and \fBstrncpy\fR(3) often point to the same man page which describes the two functions together. Choose one of the following options to select how such man pages are to be generated: .TP \*(T<\fB\-\-symlinks\fR\*(T> For each of all the alternate names for a man page, erect symbolic links to the file that contains the real man page content. .TP \*(T<\fB\-\-solinks\fR\*(T> Generate stub pages (using \*(T<.so\*(T> roff requests) for the alternate names, pointing them to the real man page content. .TP \*(T<\fB\-\-no\-links\fR\*(T> Do not make any alternative names available. The man page can only be referenced under its principal name. .PP This program uses certain other programs for its operation. If they are not in their default installed locations, then use the following options to set their location: .TP \*(T<\fB\-\-utf8trans\-program=\fR\*(T>\fIpath\fR, \*(T<\fB\-\-utf8trans\-map=\fR\*(T>\fIcharmap\fR Use the character map \fIcharmap\fR with the \fButf8trans\fR(1) program, included with docbook2X, found under \fIpath\fR. .TP \*(T<\fB\-\-iconv\-program=\fR\*(T>\fIpath\fR The location of the \fBiconv\fR(1) program, used for encoding conversions. .SH NOTES The man pages produced should be compatible with most troff implementations and other tools that process man pages. Some backwards-compatible \fBgroff\fR(1) extensions are used to make the output look nicer. .SH AUTHOR Steve Cheng <\*(T>. .SH "SEE ALSO" The docbook2X manual (in Texinfo or HTML format) fully describes how to convert DocBook to man pages and Texinfo. .PP Up-to-date information about this program can be found at the .URL http://docbook2x.sourceforge.net/ "docbook2X Web site" \&. .PP The input to \fBdb2x_manxml\fR is defined by the XML DTD present at \*(T<\fIdtd/Man\-XML\fR\*(T> in the docbook2X distribution. docbook2X-0.8.8/doc/texinfo.xml0000644000175000017500000002556710420240007013251 00000000000000 Details on Texinfo conversion Converting to Texinfo Texinfo converting to Texinfo XSLT stylesheets Texi-XML DocBook documents are converted to Texinfo in two steps: The DocBook source is converted by a XSLT stylesheet into an intermediate XML format, Texi-XML. Texi-XML is simpler than DocBook and closer to the Texinfo format; it is intended to make the stylesheets’ job easier. The stylesheet for this purpose is in xslt/texi/docbook.xsl. For portability, it should always be referred to by the following URI: http://docbook2x.sourceforge.net/latest/xslt/texi/docbook.xsl Run this stylesheet with &db2x_xsltproc_ref;. customizing Customizing You can also customize the output by creating your own XSLT stylesheet — changing parameters or adding new templates — and importing xslt/texi/docbook.xsl. Texi-XML is converted to the actual Texinfo files by &db2x_texixml_ref;. The &docbook2texi_ref; command does both steps automatically, but if any problems occur, you can see the errors more clearly if you do each step separately: $ db2x_xsltproc -s texi mydoc.xml -o mydoc.txml $ db2x_texixml mydoc.txml Options to the conversion stylesheet are described in the Texinfo stylesheets reference. Texinfo converting to Texinfo wrapper script &docbook2texi; &docbook2texi; wrapper script docbook2texi 1 &docbook2texi; Convert DocBook to Texinfo docbook2texi options xml-document Description &docbook2texi; converts the given DocBook XML document into one or more Texinfo documents. By default, these Texinfo documents will be output to the current directory. The &docbook2texi; command is a wrapper script for a two-step conversion process. See the section “CONVERSION PROCESS” below for details. Options The available options are essentially the union of the options for &db2x_xsltproc_ref; and &db2x_texixml_ref;. Some commonly-used options are listed below: &wrapper-script-common-options; Stylesheet parameters stylesheet parameters &docbook2texi-param; Examples example usage $ docbook2texi tdg.xml $ docbook2texi --encoding=utf-8//TRANSLIT tdg.xml $ docbook2texi --string-param semantic-decorations=0 tdg.xml Conversion process Files xslt/texi/docbook.xsl xslt/backend/db2x_texixml.xsl xslt/catalog.xml charmaps/texi.charmap.xml charmaps/texi.charmap.xml The above files are distributed and installed by the docbook2X package. &wrapper-script-notes; &wrapper-script-limitations; &man-page-author-section; See Also &db2x_xsltproc_ref; &db2x_texixml_ref; &utf8trans_ref; &man-page-see-also; Texinfo converting to Texinfo Texi-XML encoding output directory &makeinfo; &db2x_texixml; 1 &db2x_texixml; Make Texinfo files from Texi-XML db2x_texixml options xml-document Description &db2x_texixml; converts a Texi-XML document into one or more Texinfo documents. If xml-document is not given, then the document to convert comes from standard input. The filenames of the Texinfo documents are determined by markup in the Texi-XML source. (If the filenames are not specified in the markup, then &db2x_texixml; attempts to deduce them from the name of the input file. However, the Texi-XML source should specify the filename, because it does not work when there are multiple output files or when the Texi-XML source comes from standard input.) Options &db2x_-common-options; Pipe the Texinfo output to &makeinfo_ref;, creating Info files directly instead of Texinfo files. Pipe the Texinfo output to makeinfo , thereby creating plain text files. &common-options; &db2x_-path-options; Notes Texinfo language compatibility compatibility The Texinfo files generated by &db2x_texixml; sometimes require Texinfo version 4.7 (the latest version) to work properly. In particular: &db2x_texixml; relies on &makeinfo; to automatically add punctuation after a @ref if it it not already there. Otherwise the hyperlink will not work in the Info reader (although &makeinfo; will not emit any error). The new @comma{} command is used for commas (,) occurring inside argument lists to Texinfo commands, to disambiguate it from the comma used to separate different arguments. The only alternative otherwise would be to translate , to . which is obviously undesirable (but earlier docbook2X versions did this). If you cannot use version 4.7 of &makeinfo;, you can still use a sed script to perform manually the procedure just outlined. Relation of Texi-XML with the XML output format of &makeinfo; The Texi-XML format used by docbook2X is different and incompatible with the XML format generated by &makeinfo_ref; with its option. This situation arose partly because the Texi-XML format of docbook2X was designed and implemented independently before the appearance of &makeinfo;’s XML format. Also Texi-XML is very much geared towards being machine-generated from other XML formats, while there seems to be no non-trivial applications of &makeinfo;’s XML format. So there is no reason at this point for docbook2X to adopt &makeinfo;’s XML format in lieu of Texi-XML. Bugs Text wrapping in menus is utterly broken for non-ASCII text. It is probably also broken everywhere else in the output, but that would be &makeinfo;’s fault. might not work correctly with . Specifically, when the output Info file get too big, &makeinfo; will decide to split it into parts named abc.info-1, abc.info-2, abc.info-3, etc. &db2x_texixml; does not know exactly how many of these files there are, though you can just do an ls to find out. &man-page-author-section; See Also &man-page-see-also; The input to &db2x_texixml; is defined by the XML DTD present at dtd/Texi-XML in the docbook2X distribution. docbook2X-0.8.8/doc/changes.html0000644000175000017500000005223210572275345013363 00000000000000 docbook2X: Release history

Release history

docbook2X 0.8.8. 

  • Errors in the Man-XML and Texi-XML DTD were fixed.

    These DTDs are now used to validate the output coming out of the stylesheets, as part of automated testing. (Validation provides some assurance that the result of the conversions are correct.)

  • Several rendering errors were fixed after they had been discovered through automated testing.

  • Two HTML files in the docbook2X documentation were accidentally omitted in the last release. They have been added.

  • The pure-XSLT-based man-page conversion now supports table markup. The implemented was copied from the one by Michael Smith in the DocBook XSL stylesheets. Many thanks!

  • As requested by Daniel Leidert, the man-pages stylesheets now support the segmentedlist, segtitle and seg DocBook elements.

  • As suggested by Matthias Kievermagel, docbook2X now supports the code element.

docbook2X 0.8.7. 

  • Some stylistic improvements were made to the man-pages output.

    This includes fixing a bug that, in some cases, caused an extra blank line to occur after lists in man pages.

  • There is a new value utf-8//TRANSLIT for the --encoding option to db2x_manxml and db2x_texixml.

  • Added -m to utf8trans for modifying (a large number of) files in-place.

  • Added a section to the documentation discussing conversion performance.

    There is also a new test script, test/mass/test.pl that can exercise docbook2X by converting many documents at one time, with a focus on achieving the fastest conversion speed.

  • The documentation has also been improved in several places. Most notably, the docbook2X man page has been split into two much more detailed man pages explaining man-page conversion and Texinfo conversion separately, along with a reference of stylesheet parameters.

    The documentation has also been re-indexed (finally!)

    Also, due to an oversight, the last release omitted the stylesheet reference documentation. They are now included again.

  • Craig Ruff’s patches were not integrated correctly in the last release; this has been fixed.

  • By popular demand, man-page conversion can also be done with XSLT alone — i.e. no Perl scripts or compiling required, just a XSLT processor.

    If you want to convert with pure XSLT, invoke the XSLT stylesheet in xslt/backend/db2x_manxml.xsl in lieu of the db2x_manxml Perl script.

  • Make the xmlcharmap2utf8trans script (convert XSLT 2.0 character maps to character maps in utf8trans format) really work.

docbook2X 0.8.6. 

  • Added rudimentary support for entrytbl in man pages; patch by Craig Ruff.

  • Added template for personname; patch by Aaron Hawley.

  • Fix a build problem that happened on IRIX; patch by Dirk Tilger.

  • Better rendering of man pages in general. Fixed an incompatibility with Solaris troff of some generated man pages.

  • Fixed some minor bugs in the Perl wrapper scripts.

  • There were some fixes to the Man-XML and Texi-XML document types. Some of these changes are backwards-incompatible with previous docbook2X releases. In particular, Man-XML and Texi-XML now have their own XML namespaces, so if you were using custom XSLT stylesheets you will need to add the appropriate namespace declarations.

docbook2X 0.8.5. 

  • Fixed a bug, from version 0.8.4, with the generated Texinfo files not setting the Info directory information correctly. (This is exactly the patch that was on the docbook2X Web site.)

  • Fixed a problem with db2x_manxml not calling utf8trans properly.

  • Added heavy-duty testing to the docbook2X distribution.

docbook2X 0.8.4. 

  • There is now an experimental implementation of db2x_manxml and db2x_texixml using pure XSLT, for those who can’t use the Perl one for whatever reason. See the xslt/backend/ directory. Do not expect this to work completely yet. In particular, tables are not yet available in man pages. (They are, of course, still available in the Perl implementation.)

  • Texinfo conversion does not require XSLT extensions anymore! See Design notes: the elimination of XSLT extensions for the full story.

    As a consequence, db2x_xsltproc has been rewritten to be a Perl wrapper script around the stock xsltproc.

  • The -S option to db2x_xsltproc no longer uses libxml’s hackish “SGML DocBook” parser, but now calls sgml2xml. The corresponding long option has been renamed to --sgml from --sgml-docbook.

  • Fixed a heap of bugs — that caused invalid output — in the XSLT stylesheets, db2x_manxml and db2x_texixml.

    Some features such as cmdsynopsis and funcsynopsis are rendered more nicely.

  • Man-XML and Texi-XML now have DTDs — these are useful when writing and debugging stylesheets.

  • Added a --plaintext option to db2x_texixml.

  • Updates to the docbook2X manual. Stylesheet documentation is in.

docbook2X 0.8.3. 

  • Incorporated Michael Smith’s much-expanded roff character maps.

  • There are some improvements to the stylesheets themselves, here and there.

    Also I made the Texinfo stylesheets adapt to the XSLT processor automatically (with regards to the XSLT extensions). This might be of interest to anybody wanting to use the stylesheets with some other XSLT processor (especially SAXON).

  • Fixed a couple of bugs that prevented docbook2X from working on Cygwin.

  • Fixed a programming error in utf8trans that caused it to segfault. At the same time, I rewrote parts of it to make it more efficient for large character maps (those with more than a thousand entries).

  • The Perl component of docbook2X has switched from using libxml-perl (a SAX1 interface) to XML-SAX (a SAX2 interface). I had always wanted to do the switch since libxml-perl is not maintained, but the real impetus this time is that XML-SAX has a pure Perl XML parser. If you have difficulties building XML::Parser on Cygwin, like I did, the Perl component will automatically fall back on the pure Perl parser.

docbook2X 0.8.2. 

  • Added support for tables in man pages. Almost all table features that can be supported with tbl will work. The rest will be fixed in a subsequent release.

  • Copied the “gentext” stuff over from Norman Walsh’s XSL stylesheets. This gives (incomplete) localizations for the same languages that are supported by the Norman Walsh’s XSL stylesheets.

    Although incomplete, they should be sufficient for localized man-page output, for which there are only a few strings like “Name” and “Synopsis” that need to be translated.

    If you do make non-English man pages, you will need to revise the localization files; please send patches to fix them afterwards.

  • Rendering of bibliography, and other less common DocBook elements is broken. Actually, it was probably also slightly broken before. Some time will be needed to go through the stylesheets to check/document everything in it and to add anything that is still missing.

  • Added --info option to db2x_texixml, to save typing the makeinfo command.

  • Rename --stringparam option in db2x_xsltproc to --string-param, though the former option name is still accepted for compatibility.

  • Added the stylesheet for generating the XSLT reference documentation. But the reference documentation is not integrated into the main docbook2X documentation yet.

  • docbook2X no longer uses SGML-based tools to build. HTML documentation is now built with the DocBook XSL stylesheets.

  • Changed the license of this package to the MIT license. This is in case someone wants to copy snippets of the XSLT stylesheets, and requiring the resulting stylesheet to be GPL seems too onerous. Actually there is no real loss since no one wants to hide XSLT source anyway.

  • Switched to a newer version of autoconf.

  • Fixes for portability (to non-Linux OSes).

  • A number of small rendering bug fixes, as usual.

docbook2X 0.8.1. 

  • Bug fixes.

  • Texinfo menu generation has been improved: the menus now look almost as good as human-authored Texinfo pages and include detailed node listings (@detailmenu) also.

  • Added option to process XInclude in db2x_xsltproc just like standard xsltproc.

docbook2X 0.8.0. 

  • Moved docbook2man-spec.pl to a sister package, docbook2man-sgmlspl, since it seems to be used quite a lot.

  • There are now XSLT stylesheets for man page conversion, superceding the docbook2manxml. docbook2manxml had some neat code in it, but I fear maintaining two man-page converters will take too much time in the future, so I am dropping it now instead of later.

  • Fixed build errors involving libxslt headers, etc. that plagued the last release. The libxslt wrapper (name changed to db2x_xsltproc, formerly called docbook2texi-libxslt) has been updated for the recent libxslt changes. Catalog support working.

  • Transcoding output to non-UTF-8 charsets is automatic.

  • Made some wrapper scripts for the two-step conversion process.

docbook2X 0.7.0. 

  • More bug squashing and features in XSLT stylesheets and Perl scripts. Too many to list.

  • Added docbook2texi-libxslt, which uses libxslt. Finally, no more Java is necessary.

  • Added a C-based tool to translate UTF-8 characters to arbitrary (byte) sequences, to avoid having to patch recode every time the translation changes. However, Christoph Spiel has ported the recode utf8..texi patch to GNU recode 3.6 if you prefer to use recode.

  • As usual, the documentation has been improved.

    The documentation for the XSLT stylesheets can be extracted automatically. (Caveat: libxslt has a bug which affects this process, so if you want to build this part of the documentation yourself you must use some other XSLT processor. There is no jrefentry support in docbook2X yet, so the reference is packaged in HTML format; this will change in the next release, hopefully.)

  • Build system now uses autoconf and automake.

docbook2X 0.6.9. 

  • Removed old unmaintained code such as docbook2man, docbook2texi. Moved Perl scripts to perl/ directory and did some renaming of the scripts to saner names.

  • Better make system.

  • Debugged, fixed the XSLT stylesheets more and added libxslt invocation.

  • Cut down the superfluity in the documentation.

  • Fixed other bugs in docbook2manxml and the Texi-XML, Man-XML tools.

docbook2X 0.6.1. 

  • docbook2man-spec.pl has an option to strip or not strip letters in man page section names, and xref may now refer to refsectn. I have not personally tested these options, but loosing them in the interests of release early and often.

  • Menu label quirks, paramdef non-conformance, and vertical simplelists with multiple columns fixed in docbook2texixml.

  • Brought docbook2manxml up to speed. It builds its own documentation now.

  • Arcane bugs in texi_xml and man_xml fixed.

docbook2X 0.6.0. 

  • Introduced Texinfo XSLT stylesheets.

  • Bugfixes to texi_xml and docbook2texixml.

  • Produced patch to GNU recode which maps Unicode characters to the corresponding Texinfo commands or characters. It is in ucs2texi.patch. I have already sent this patch to the maintainer of recode.

  • Updated documentation.

docbook2X 0.5.9. 

  • Both docbook2texixml transform into intermediate XML format which closely resembles the Texinfo format, and then another tool is used to convert this XML to the actual format.

    This scheme moves all the messy whitespace, newline, and escaping issues out of the actual transformation code. Another benefit is that other stylesheets (systems), can be used to do the transformation, and it serves as a base for transformation to Texinfo from other DTDs.

  • Texinfo node handling has been rewritten. Node handling used to work back and forth between IDs and node names, which caused a lot of confusion. The old code also could not support DocBook sets because it did not keep track of the Texinfo file being processed.

    As a consequence, the bug in which docbook2texixml did not output the @setinfofile is fixed. xreflabel handling is also sane now.

    In the new scheme, elements are referred to by their ID (auto-generated if necessary). The Texinfo node names are generated before doing the actual transformation, and subsequent texinode_get simply looks up the node name when given an element.

  • The stylesheet architecture allows internationalization to be implemented easily, although it is not done yet.

  • The (non-XML-based) old code is still in the CVS tree, but I’m not really interested in maintaining it. I’ll still accept patches to them, and probably will keep them around for reference and porting purposes.

    There are some changes to the old code base in this new release; see old change log for details.

  • The documentation has been revised.

  • I am currently rewriting docbook2man using the same transform-to-XML technique. It’s not included in 0.5.9 simply because I wanted to get the improved Texinfo tool out quickly. Additional XSLT stylesheets will be written.

docbook2X-0.8.8/doc/manpages.xml0000644000175000017500000002355210420516622013371 00000000000000 Details on man-page conversion Converting to man pages man pages converting to man pages XSLT stylesheets Man-XML DocBook documents are converted to man pages in two steps: The DocBook source is converted by a XSLT stylesheet into an intermediate XML format, Man-XML. Man-XML is simpler than DocBook and closer to the man page format; it is intended to make the stylesheets’ job easier. The stylesheet for this purpose is in xslt/man/docbook.xsl. For portability, it should always be referred to by the following URI: http://docbook2x.sourceforge.net/latest/xslt/man/docbook.xsl Run this stylesheet with &db2x_xsltproc_ref;. customizing Customizing You can also customize the output by creating your own XSLT stylesheet — changing parameters or adding new templates — and importing xslt/man/docbook.xsl. Man-XML is converted to the actual man pages by &db2x_manxml_ref;. The &docbook2man_ref; command does both steps automatically, but if any problems occur, you can see the errors more clearly if you do each step separately: $ db2x_xsltproc -s man mydoc.xml -o mydoc.mxml $ db2x_manxml mydoc.mxml Options to the conversion stylesheet are described in the man-pages stylesheets reference. pure XSLT Pure XSLT conversion An alternative to the &db2x_manxml; Perl script is the XSLT stylesheet in xslt/backend/db2x_manxml.xsl. This stylesheet performs a similar function of converting Man-XML to actual man pages. It is useful if you desire a pure XSLT solution to man-page conversion. Of course, the quality of the conversion using this stylesheet will never be as good as the Perl &db2x_manxml;, and it runs slower. In particular, the pure XSLT version currently does not support tables in man pages, but its Perl counterpart does. For instructions on how to use the stylesheet, see . man pages converting to man pages wrapper script &docbook2man; &docbook2man; wrapper script docbook2man 1 &docbook2man; Convert DocBook to man pages docbook2man options xml-document Description &docbook2man; converts the given DocBook XML document into man pages. By default, the man pages will be output to the current directory. refentry Only the refentry content in the DocBook document is converted. (To convert content outside of a refentry, stylesheet customization is required. See the docbook2X package for details.) The &docbook2man; command is a wrapper script for a two-step conversion process. See the section “CONVERSION PROCESS” below for details. Options The available options are essentially the union of the options from &db2x_xsltproc_ref; and &db2x_manxml_ref;. Some commonly-used options are listed below: &wrapper-script-common-options; Make stub pages for alternate names for an output man page. Stylesheet parameters stylesheet parameters &docbook2man-param; Examples example usage $ docbook2man --solinks manpages.xml $ docbook2man --solinks --encoding=utf-8//TRANSLIT manpages.xml $ docbook2man --string-param header-4="Free Recode 3.6" document.xml Conversion process Files xslt/man/docbook.xsl xslt/backend/db2x_manxml.xsl xslt/catalog.xml charmaps/roff.charmap charmaps/roff.charmap.xml The above files are distributed and installed by the docbook2X package. &wrapper-script-notes; &wrapper-script-limitations; &man-page-author-section; See Also &db2x_xsltproc_ref; &db2x_manxml_ref; &utf8trans_ref; &man-page-see-also; man pages converting to man pages Man-XML stub pages symbolic links encoding output directory &db2x_manxml; &db2x_manxml; 1 &db2x_manxml; Make man pages from Man-XML db2x_manxml options xml-document Description &db2x_manxml; converts a Man-XML document into one or more man pages. They are written in the current directory. If xml-document is not given, then the document to convert is read from standard input. Options &db2x_-common-options; &common-options; Some man pages may be referenced under two or more names, instead of just one. For example, strcpy3 and strncpy3 often point to the same man page which describes the two functions together. Choose one of the following options to select how such man pages are to be generated: For each of all the alternate names for a man page, erect symbolic links to the file that contains the real man page content. Generate stub pages (using .so roff requests) for the alternate names, pointing them to the real man page content. Do not make any alternative names available. The man page can only be referenced under its principal name. &db2x_-path-options; Notes &groff; compatibility The man pages produced should be compatible with most troff implementations and other tools that process man pages. Some backwards-compatible &groff_ref; extensions are used to make the output look nicer. &man-page-author-section; See Also &man-page-see-also; The input to &db2x_manxml; is defined by the XML DTD present at dtd/Man-XML in the docbook2X distribution. docbook2X-0.8.8/doc/perf.xml0000644000175000017500000001330410421213170012515 00000000000000 Discussion on conversion speed Performance analysis speed performance optimize efficiency The performance of docbook2X, and most other DocBook tools with the notable exception of the docbook-to-man tool based on the instant stream processor (but this tool has many correctness problems) can be summed up in a short phrase: they are slow. On a modern computer producing only a few man pages at a time, with the right software — namely, libxslt as the XSLT processor — the DocBook tools are fast enough. But their slowness becomes a hindrance for generating hundreds or even thousands of man pages at a time. The author of docbook2X encounters this problem whenever he tries to do automated tests of the docbook2X package. Presented below are some actual benchmarks, and possible approaches to efficient DocBook to man pages conversion. docbook2X running times on 2157 <sgmltag class="element">refentry</sgmltag> documents Step Time for all pages Avg. time per page DocBook to Man-XML 519.61 s 0.24 s Man-XML to man-pages 383.04 s 0.18 s roff character mapping 6.72 s 0.0031 s Total 909.37 s 0.42 s
The above benchmark was run on 2157 documents coming from the doclifter man-page-to-DocBook conversion tool. The man pages come from the section 1 man pages installed in the author’s Linux system. The XML files total 44.484 MiB, and on average are 20.6KiB long. The results were obtained using the test script in test/mass/test.pl, using the default man-page conversion options. The test script employs the obvious optimizations, such as only loading once the XSLT processor, the man-pages stylesheet, &db2x_manxml; and &utf8trans;. Unfortunately, there does not seem to be obvious ways that the performance can be improved, short of re-implementing the tranformation program in a tight programming language such as C. Some notes on possible bottlenecks: Character mapping by &utf8trans; is very fast compared to the other stages of the transformation. Even loading &utf8trans; separately for each document only doubles the running time of the character mapping stage. Even though the XSLT processor is written in C, XSLT processing is still comparatively slow. It takes double the time of the Perl script From preliminary estimates, the Pure-XSLT solution takes only slightly longer at this stage: .22 s per page &db2x_manxml;, even though the XSLT portion and the Perl portion are processing documents of around the same size Of course, conceptually, DocBook processing is more complicated. So these timings also give us an estimate of the cost of DocBook’s complexity: twice the cost over a simpler document type, which is actually not too bad. (DocBook refentry documents and Man-XML documents). In fact, profiling the stylesheets shows that a significant amount of time is spent on the localization templates, in particular the complex XPath navigation used there. An obvious optimization is to use XSLT keys for the same functionality. However, when that is implemented, the author found that the time used for setting up keys dwarfs the time savings from avoiding the complex XPath navigation. It adds an extra 10s to the processing time for the 2157 documents. Upon closer examination of the libxslt source code, XSLT keys are seen to be implemented rather inefficiently: each key pattern x causes the entire input document to be traversed once by evaluating the XPath //x! Perhaps a C-based XSLT processor written with the best performance in mind (libxslt is not particularly the most efficiently coded) may be able to achieve better conversion times, without losing all the nice advantages of XSLT-based tranformation. Or failing that, one can look into efficient, stream-based transformations (STX).
docbook2X-0.8.8/doc/ss-html.xsl0000644000175000017500000003213410407341565013176 00000000000000 mailto:stevecheng@users.sourceforge.net docbook2X: Documentation Table of Contents docbook2X: Wrapper scripts docbook2X:

Author: ()


docbook2X-0.8.8/doc/changes.xml0000644000175000017500000005253510570407036013215 00000000000000 Changes to the package between releases Release history change log history release history news bugs docbook2X 0.8.8 Errors in the Man-XML and Texi-XML DTD were fixed. These DTDs are now used to validate the output coming out of the stylesheets, as part of automated testing. (Validation provides some assurance that the result of the conversions are correct.) Several rendering errors were fixed after they had been discovered through automated testing. Two HTML files in the docbook2X documentation were accidentally omitted in the last release. They have been added. The pure-XSLT-based man-page conversion now supports table markup. The implemented was copied from the one by Michael Smith in the DocBook XSL stylesheets. Many thanks! As requested by Daniel Leidert, the man-pages stylesheets now support the segmentedlist, segtitle and seg DocBook elements. As suggested by Matthias Kievermagel, docbook2X now supports the code element. docbook2X 0.8.7 Some stylistic improvements were made to the man-pages output. This includes fixing a bug that, in some cases, caused an extra blank line to occur after lists in man pages. There is a new value utf-8//TRANSLIT for the option to &db2x_manxml; and &db2x_texixml;. Added to &utf8trans; for modifying (a large number of) files in-place. Added a section to the documentation discussing conversion performance. There is also a new test script, test/mass/test.pl that can exercise docbook2X by converting many documents at one time, with a focus on achieving the fastest conversion speed. The documentation has also been improved in several places. Most notably, the docbook2X 1 man page has been split into two much more detailed man pages explaining man-page conversion and Texinfo conversion separately, along with a reference of stylesheet parameters. The documentation has also been re-indexed (finally!) Also, due to an oversight, the last release omitted the stylesheet reference documentation. They are now included again. Craig Ruff’s patches were not integrated correctly in the last release; this has been fixed. By popular demand, man-page conversion can also be done with XSLT alone — i.e. no Perl scripts or compiling required, just a XSLT processor. If you want to convert with pure XSLT, invoke the XSLT stylesheet in xslt/backend/db2x_manxml.xsl in lieu of the &db2x_manxml; Perl script. Make the xmlcharmap2utf8trans script (convert XSLT 2.0 character maps to character maps in utf8trans format) really work. docbook2X 0.8.6 Added rudimentary support for entrytbl in man pages; patch by Craig Ruff. Added template for personname; patch by Aaron Hawley. Fix a build problem that happened on IRIX; patch by Dirk Tilger. Better rendering of man pages in general. Fixed an incompatibility with Solaris troff of some generated man pages. Fixed some minor bugs in the Perl wrapper scripts. There were some fixes to the Man-XML and Texi-XML document types. Some of these changes are backwards-incompatible with previous docbook2X releases. In particular, Man-XML and Texi-XML now have their own XML namespaces, so if you were using custom XSLT stylesheets you will need to add the appropriate namespace declarations. docbook2X 0.8.5 Fixed a bug, from version 0.8.4, with the generated Texinfo files not setting the Info directory information correctly. (This is exactly the patch that was on the docbook2X Web site.) Fixed a problem with &db2x_manxml; not calling &utf8trans; properly. Added heavy-duty testing to the docbook2X distribution. docbook2X 0.8.4 There is now an experimental implementation of &db2x_manxml; and &db2x_texixml; using pure XSLT, for those who can’t use the Perl one for whatever reason. See the xslt/backend/ directory. Do not expect this to work completely yet. In particular, tables are not yet available in man pages. (They are, of course, still available in the Perl implementation.) Texinfo conversion does not require XSLT extensions anymore! See for the full story. As a consequence, &db2x_xsltproc; has been rewritten to be a Perl wrapper script around the stock &xsltproc_cmd;. The option to &db2x_xsltproc; no longer uses libxml’s hackish “SGML DocBook” parser, but now calls &sgml2xml;. The corresponding long option has been renamed to from . Fixed a heap of bugs — that caused invalid output — in the XSLT stylesheets, &db2x_manxml; and &db2x_texixml;. Some features such as cmdsynopsis and funcsynopsis are rendered more nicely. Man-XML and Texi-XML now have DTDs — these are useful when writing and debugging stylesheets. Added a option to &db2x_texixml;. Updates to the docbook2X manual. Stylesheet documentation is in. docbook2X 0.8.3 Incorporated Michael Smith’s much-expanded roff character maps. There are some improvements to the stylesheets themselves, here and there. Also I made the Texinfo stylesheets adapt to the XSLT processor automatically (with regards to the XSLT extensions). This might be of interest to anybody wanting to use the stylesheets with some other XSLT processor (especially SAXON). Fixed a couple of bugs that prevented docbook2X from working on Cygwin. Fixed a programming error in &utf8trans; that caused it to segfault. At the same time, I rewrote parts of it to make it more efficient for large character maps (those with more than a thousand entries). The Perl component of docbook2X has switched from using libxml-perl (a SAX1 interface) to XML-SAX (a SAX2 interface). I had always wanted to do the switch since libxml-perl is not maintained, but the real impetus this time is that XML-SAX has a pure Perl XML parser. If you have difficulties building XML::Parser on Cygwin, like I did, the Perl component will automatically fall back on the pure Perl parser. docbook2X 0.8.2 Added support for tables in man pages. Almost all table features that can be supported with tbl will work. The rest will be fixed in a subsequent release. Copied the “gentext” stuff over from Norman Walsh’s XSL stylesheets. This gives (incomplete) localizations for the same languages that are supported by the Norman Walsh’s XSL stylesheets. Although incomplete, they should be sufficient for localized man-page output, for which there are only a few strings like “Name” and “Synopsis” that need to be translated. If you do make non-English man pages, you will need to revise the localization files; please send patches to fix them afterwards. Rendering of bibliography, and other less common DocBook elements is broken. Actually, it was probably also slightly broken before. Some time will be needed to go through the stylesheets to check/document everything in it and to add anything that is still missing. Added option to &db2x_texixml;, to save typing the makeinfo command. Rename option in &db2x_xsltproc; to , though the former option name is still accepted for compatibility. Added the stylesheet for generating the XSLT reference documentation. But the reference documentation is not integrated into the main docbook2X documentation yet. docbook2X no longer uses SGML-based tools to build. HTML documentation is now built with the DocBook XSL stylesheets. Changed the license of this package to the MIT license. This is in case someone wants to copy snippets of the XSLT stylesheets, and requiring the resulting stylesheet to be GPL seems too onerous. Actually there is no real loss since no one wants to hide XSLT source anyway. Switched to a newer version of autoconf. Fixes for portability (to non-Linux OSes). A number of small rendering bug fixes, as usual. docbook2X 0.8.1 Bug fixes. Texinfo menu generation has been improved: the menus now look almost as good as human-authored Texinfo pages and include detailed node listings (@detailmenu) also. Added option to process XInclude in &db2x_xsltproc; just like standard xsltproc. docbook2X 0.8.0 Moved docbook2man-spec.pl to a sister package, docbook2man-sgmlspl, since it seems to be used quite a lot. There are now XSLT stylesheets for man page conversion, superceding the &docbook2manxml;. &docbook2manxml; had some neat code in it, but I fear maintaining two man-page converters will take too much time in the future, so I am dropping it now instead of later. Fixed build errors involving libxslt headers, etc. that plagued the last release. The libxslt wrapper (name changed to &db2x_xsltproc;, formerly called docbook2texi-libxslt) has been updated for the recent libxslt changes. Catalog support working. Transcoding output to non-UTF-8 charsets is automatic. Made some wrapper scripts for the two-step conversion process. docbook2X 0.7.0 More bug squashing and features in XSLT stylesheets and Perl scripts. Too many to list. Added docbook2texi-libxslt, which uses libxslt. Finally, no more Java is necessary. Added a C-based tool to translate UTF-8 characters to arbitrary (byte) sequences, to avoid having to patch recode every time the translation changes. However, Christoph Spiel has ported the recode utf8..texi patch to GNU recode 3.6 if you prefer to use recode. As usual, the documentation has been improved. The documentation for the XSLT stylesheets can be extracted automatically. (Caveat: libxslt has a bug which affects this process, so if you want to build this part of the documentation yourself you must use some other XSLT processor. There is no jrefentry support in docbook2X yet, so the reference is packaged in HTML format; this will change in the next release, hopefully.) Build system now uses autoconf and automake. docbook2X 0.6.9 Removed old unmaintained code such as docbook2man, docbook2texi. Moved Perl scripts to perl/ directory and did some renaming of the scripts to saner names. Better make system. Debugged, fixed the XSLT stylesheets more and added libxslt invocation. Cut down the superfluity in the documentation. Fixed other bugs in docbook2manxml and the Texi-XML, Man-XML tools. docbook2X 0.6.1 docbook2man-spec.pl has an option to strip or not strip letters in man page section names, and xref may now refer to refsectn. I have not personally tested these options, but loosing them in the interests of release early and often. Menu label quirks, paramdef non-conformance, and vertical simplelists with multiple columns fixed in docbook2texixml. Brought docbook2manxml up to speed. It builds its own documentation now. Arcane bugs in texi_xml and man_xml fixed. docbook2X 0.6.0 Introduced Texinfo XSLT stylesheets. Bugfixes to texi_xml and docbook2texixml. Produced patch to GNU recode which maps Unicode characters to the corresponding Texinfo commands or characters. It is in ucs2texi.patch. I have already sent this patch to the maintainer of recode. Updated documentation. docbook2X 0.5.9 Both docbook2texixml transform into intermediate XML format which closely resembles the Texinfo format, and then another tool is used to convert this XML to the actual format. This scheme moves all the messy whitespace, newline, and escaping issues out of the actual transformation code. Another benefit is that other stylesheets (systems), can be used to do the transformation, and it serves as a base for transformation to Texinfo from other DTDs. Texinfo node handling has been rewritten. Node handling used to work back and forth between IDs and node names, which caused a lot of confusion. The old code also could not support DocBook sets because it did not keep track of the Texinfo file being processed. As a consequence, the bug in which docbook2texixml did not output the @setinfofile is fixed. xreflabel handling is also sane now. In the new scheme, elements are referred to by their ID (auto-generated if necessary). The Texinfo node names are generated before doing the actual transformation, and subsequent texinode_get simply looks up the node name when given an element. The stylesheet architecture allows internationalization to be implemented easily, although it is not done yet. The (non-XML-based) old code is still in the CVS tree, but I’m not really interested in maintaining it. I’ll still accept patches to them, and probably will keep them around for reference and porting purposes. There are some changes to the old code base in this new release; see old change log for details. The documentation has been revised. I am currently rewriting docbook2man using the same transform-to-XML technique. It’s not included in 0.5.9 simply because I wanted to get the improved Texinfo tool out quickly. Additional XSLT stylesheets will be written. docbook2X-0.8.8/dtd/0000777000175000017500000000000010572276002011142 500000000000000docbook2X-0.8.8/dtd/Texi-XML0000644000175000017500000002707110112217021012341 00000000000000 docbook2X-0.8.8/dtd/catalog.xml0000644000175000017500000000122210107727033013206 00000000000000 docbook2X-0.8.8/dtd/Makefile.am0000644000175000017500000000017010107727404013111 00000000000000DTD_FILES = Texi-XML Man-XML catalog.xml dtddir = $(pkgdatadir)/dtd dtd_DATA = $(DTD_FILES) EXTRA_DIST = $(DTD_FILES) docbook2X-0.8.8/dtd/Makefile.in0000644000175000017500000002317110572275763013144 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = dtd DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/utf8trans/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(dtddir)" dtdDATA_INSTALL = $(INSTALL_DATA) DATA = $(dtd_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GROFF = @GROFF@ HAVE_GROFF_FALSE = @HAVE_GROFF_FALSE@ HAVE_GROFF_TRUE = @HAVE_GROFF_TRUE@ HAVE_HTML_XSL_FALSE = @HAVE_HTML_XSL_FALSE@ HAVE_HTML_XSL_TRUE = @HAVE_HTML_XSL_TRUE@ HAVE_TIDY_FALSE = @HAVE_TIDY_FALSE@ HAVE_TIDY_TRUE = @HAVE_TIDY_TRUE@ HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@ HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@ ICONV = @ICONV@ INSTALLED_CHARMAP_ROFF = @INSTALLED_CHARMAP_ROFF@ INSTALLED_CHARMAP_TEXI = @INSTALLED_CHARMAP_TEXI@ INSTALLED_DB2X_MANXML = @INSTALLED_DB2X_MANXML@ INSTALLED_DB2X_TEXIXML = @INSTALLED_DB2X_TEXIXML@ INSTALLED_DB2X_XSLTPROC = @INSTALLED_DB2X_XSLTPROC@ INSTALLED_SGML2XML_ISOENT = @INSTALLED_SGML2XML_ISOENT@ INSTALLED_STYLESHEETS_CATALOG = @INSTALLED_STYLESHEETS_CATALOG@ INSTALLED_UTF8TRANS = @INSTALLED_UTF8TRANS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA = @JAVA@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ OSX = @OSX@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RESOLVER_JARS = @RESOLVER_JARS@ SAXON_JARS = @SAXON_JARS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SX = @SX@ TIDY = @TIDY@ VERSION = @VERSION@ XALAN_JARS = @XALAN_JARS@ XMLLINT = @XMLLINT@ XSLTPROC = @XSLTPROC@ XSLT_PROCESSOR = @XSLT_PROCESSOR@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ DTD_FILES = Texi-XML Man-XML catalog.xml dtddir = $(pkgdatadir)/dtd dtd_DATA = $(DTD_FILES) EXTRA_DIST = $(DTD_FILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu dtd/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu dtd/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh uninstall-info-am: install-dtdDATA: $(dtd_DATA) @$(NORMAL_INSTALL) test -z "$(dtddir)" || $(mkdir_p) "$(DESTDIR)$(dtddir)" @list='$(dtd_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(dtdDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(dtddir)/$$f'"; \ $(dtdDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(dtddir)/$$f"; \ done uninstall-dtdDATA: @$(NORMAL_UNINSTALL) @list='$(dtd_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(dtddir)/$$f'"; \ rm -f "$(DESTDIR)$(dtddir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(dtddir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dtdDATA install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dtdDATA uninstall-info-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-dtdDATA install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-dtdDATA \ uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: docbook2X-0.8.8/dtd/Man-XML0000644000175000017500000001455610421557216012167 00000000000000 docbook2X-0.8.8/NEWS0000644000175000017500000000006507315534412011006 00000000000000NEWS: Please see the included DocBook documentation. docbook2X-0.8.8/TODO0000644000175000017500000000103210110736462010766 00000000000000db2x_xsltproc should check for default processors installed fix xmlcharmap2utf8trans, and formalize it in the utf8trans man page re-index docbook2X doc. manual toc handling in Texinfo biblio templates title page templates db2x_manxml XSLT version - tables db2x_texixml XSLT version better tbl error checking colwidth in tbl submit the patch that implements document_locator and resolve_entity in the Perl SAX2 modules === Texinfo and man pages modifier oointerface, interfacename ooclass, classname ooexception, exceptionname docbook2X-0.8.8/perl/0000777000175000017500000000000010572276002011331 500000000000000docbook2X-0.8.8/perl/XML/0000777000175000017500000000000010572276002011771 500000000000000docbook2X-0.8.8/perl/XML/Handler/0000777000175000017500000000000010572276002013346 500000000000000docbook2X-0.8.8/perl/XML/Handler/SGMLSpl.pm0000644000175000017500000001625010407376261015052 00000000000000# vim:sw=4 sta showmatch use strict; use vars qw($VERSION); $VERSION = '0.8.6'; package XML::Handler::SGMLSpl::Node; sub new { my ($class, $type, $saxhash, $parent) = @_; $saxhash->{type} = $type; $saxhash->{parent} = $parent; $saxhash->{ext} = {}; return bless($saxhash, $class); } # Element name sub name { my ($self) = @_; if($self->{type} eq 'element') { return $self->{LocalName}; } else { return undef; } } sub attr { my ($self, $name) = @_; if($name !~ /^\{/) { $name = '{}' . $name; } return $self->{Attributes}->{$name}->{Value}; } sub within { my ($self,$name) = @_; for ($self = $self->{parent}; $self; $self = $self->{parent}) { return $self if ($self->name eq $name); } return undef; } sub in { my ($self,$name) = @_; if ($self->{parent} and $self->{parent}->name eq $name) { return $self->{parent}; } else { return undef; } } sub ext { return shift->{ext} } sub parent { return shift->{parent} } # one of document, element, text, processing-instruction, comment, whitespace sub type { return shift->{type} } package XML::Handler::SGMLSpl; sub new { my ($class, $user_data) = @_; my $self = { rules => {}, mode => [ '' ], namespaces => {}, # public user_data => $user_data }; return bless($self, $class); } # # Rule parsing # sub add_rule { my $sub = pop; my ($self, $pattern, $mode) = @_; $mode = '' if !defined($mode); # Init hashes if not there already if(!defined $self->{rules}->{$mode}) { $self->{rules}->{$mode} = { t_elem_open => {}, t_elem_close => {}, t_sdata => {}, }; } if($pattern eq 'text()') { $self->{rules}->{$mode}->{t_text} = $sub; } elsif($pattern eq 'processing-instruction()') { $self->{rules}->{$mode}->{t_pi} = $sub; } elsif($pattern eq 'comment()') { $self->{rules}->{$mode}->{t_comment} = $sub; } elsif($pattern eq 'sdata()') { $self->{rules}->{$mode}->{t_sdata}->{''} = $sub; } elsif($pattern eq '/<') { $self->{rules}->{$mode}->{t_doc_start} = $sub; } elsif($pattern eq '/>') { $self->{rules}->{$mode}->{t_doc_end} = $sub; } elsif($pattern =~ /^(\{([^}]+)\}(.+))<$/) { $self->{rules}->{$mode}->{t_elem_open}->{$1} = $sub; } elsif($pattern =~ /^(\{([^}]+)\}(.+))>$/) { $self->{rules}->{$mode}->{t_elem_close}->{$1} = $sub; } elsif($pattern =~ /^(([^:]+):)?([^:]+)<$/) { my $x = '{' . $self->{namespaces}->{$2} . '}' . $3; $self->{rules}->{$mode}->{t_elem_open}->{$x} = $sub; } elsif($pattern =~ /^(([^:]+):)?([^:]+)>$/) { my $x = '{' . $self->{namespaces}->{$2} . '}' . $3; $self->{rules}->{$mode}->{t_elem_close}->{$x} = $sub; } elsif($pattern =~ /^\|(.+)\|$/) { $self->{rules}->{$mode}->{t_sdata}->{$1} = $sub; } else { die "Unknown pattern type!"; } } # # Modes # sub push_mode { my ($self, $mode) = @_; push(@{$self->{mode}}, $mode); return $self->{mode}->[-2]; } sub mode { my ($self) = @_; return $self->{mode}->[-1]; } sub pop_mode { my ($self) = @_; return pop(@{$self->{mode}}); } # # Locators # sub set_document_locator { my ($self, $arg) = @_; $self->{locator} = $arg->{Locator}; } sub get_locator { my ($self) = @_; return $self->{locator}; } # # Helpful utility method: displays location, # with optional node address # sub warn_location { my $self = shift; my $msg = pop; my $node = shift; my $location = $self->get_locator && $self->get_locator->location(); my ($sysid, $linenum) = ('-', ''); if($location) { $sysid = $location->{SystemId}; $linenum = $location->{LineNumber}; } my $nodeinfo; if(defined $node) { if($node->type() eq 'element') { $nodeinfo = $node->name; } elsif($node->type eq 'text') { $nodeinfo = $node->parent->name; } } if(defined $nodeinfo) { warn "$0:${sysid}:${linenum}:${nodeinfo}: ${msg}\n"; } else { warn "$0:${sysid}:${linenum}: ${msg}\n"; } } # # Standard handlers: not intended for user # sub start_document { my ($self) = @_; my $doc = XML::Handler::SGMLSpl::Node->new( 'document', {}, undef); $self->{current_node} = $doc; &{($self->{rules}->{$self->mode}->{t_doc_start} || sub{})} ($self->{user_data}, $doc, $self); } sub end_document { my ($self) = @_; my $doc = $self->{current_node}; $self->{current_node} = undef; return &{($self->{rules}->{$self->mode}->{t_doc_end} || sub{})} ($self->{user_data}, $doc, $self); } sub start_element { my ($self, $arg) = @_; my $elem = XML::Handler::SGMLSpl::Node->new( 'element', $arg, $self->{current_node}); $self->{current_node} = $elem; $elem->{_last_mode} = $self->mode; my $key = '{' . $arg->{NamespaceURI} . '}' . $arg->{LocalName}; my $default_key = '{' . $arg->{NamespaceURI} . '}*'; my $elemrules = $self->{rules}->{$self->mode}->{t_elem_open}; &{($elemrules->{$key} || $elemrules->{$default_key} || sub{})} ($self->{user_data}, $elem, $self); } sub end_element { my ($self, $arg) = @_; my $elem = $self->{current_node}; my $key = '{' . $arg->{NamespaceURI} . '}' . $arg->{LocalName}; my $default_key = '{' . $arg->{NamespaceURI} . '}*'; # We always enter the end element handler with the same mode # as we had entered the start element handler. # In most cases this is the more sane behavior, even though # it's inconsistent. my $elemrules = $self->{rules}->{$elem->{_last_mode}}->{t_elem_close}; &{($elemrules->{$key} || $elemrules->{$default_key} || sub{})} ($self->{user_data}, $elem, $self); $self->{current_node} = $elem->parent; } sub characters { my ($self, $arg) = @_; my $textnode = XML::Handler::SGMLSpl::Node->new( 'text', $arg, $self->{current_node}); &{($self->{rules}->{$self->mode}->{t_text} || sub{})} ($self->{user_data}, $textnode, $self); } sub processing_instruction { my ($self, $arg) = @_; my $pi = XML::Handler::SGMLSpl::Node->new( 'processing-instruction', $arg, $self->{current_node}); &{($self->{rules}->{$self->mode}->{t_pi} || sub{})} ($self->{user_data}, $pi, $self); } sub ignorable_whitespace { my ($self, $arg) = @_; my $textnode = XML::Handler::SGMLSpl::Node->new( 'whitespace', $arg, $self->{current_node}); &{($self->{rules}->{$self->mode}->{t_text} || sub{})} ($self->{user_data}, $textnode, $self); } sub comment { my ($self, $arg) = @_; my $comment = XML::Handler::SGMLSpl::Node->new( 'comment', $arg, $self->{current_node}); &{($self->{rules}->{$self->mode}->{t_comment} || sub{})} ($self->{user_data}, $comment, $self); } # # SDATA entities (SGML) # sub internal_entity_ref { my ($self, $arg) = @_; my $sdata = XML::Handler::SGMLSpl::Node->new( 'sdata', $arg, $self->{current_node}); my $sdatarules = $self->{rules}->{$self->mode}->{t_sdata}; &{($sdatarules->{$arg->{LocalName}} || $sdatarules->{''} || sub{})} ($self->{user_data}, $sdata, $self); } # FIXME: Write a man page. # Autoload methods go after =cut, and are processed by the autosplit program. 1; docbook2X-0.8.8/perl/XML/Handler/Makefile.PL0000644000175000017500000000057607675106267015263 00000000000000use ExtUtils::MakeMaker; # See lib/ExtUtils/MakeMaker.pm for details of how to influence # the contents of the Makefile that is written. WriteMakefile( 'ABSTRACT' => 'SGMLSpl-like event dispatcher for Perl SAX2', 'AUTHOR' => 'Steve Cheng ', 'NAME' => 'XML::Handler::SGMLSpl', 'VERSION_FROM' => 'SGMLSpl.pm', # finds $VERSION ); docbook2X-0.8.8/perl/db2x_manxml.pl0000755000175000017500000016667410422444774014053 00000000000000# vim:sw=4 sta et showmatch # db2x_manxml - convert Man-XML to Texinfo # (See docbook2X documentation for details) # # (C) 2000-2004 Steve Cheng # # See the COPYING file in the docbook2X distribution # for the copyright status of this software. # # Note: db2x_manxml.pl does not run by itself! # It must be configured by including a config.pl file # which is done when building docbook2X. # In addition, the non-standard module # XML::Handler::SGMLSpl must be explicitly loaded # when docbook2X is not installed. package main; use strict; ################################################## # # Option parsing # ################################################## use Getopt::Long; Getopt::Long::Configure('gnu_getopt'); my $cmdoptions = { 'encoding' => 'us-ascii', 'list-files' => 0, 'to-stdout' => 0, 'output-dir' => '', 'symlinks' => 0, 'solinks' => 0, 'no-links' => 0, 'utf8trans-program' => $db2x_config{'utf8trans-program'}, 'utf8trans-map' => $db2x_config{'utf8trans-map-roff'}, 'iconv-program' => $db2x_config{'iconv-program'}, }; sub options_help { print "Usage: $0 [OPTION]... [FILE]...\n"; print <<'end'; Make man pages from Man-XML --encoding=ENCODING Character encoding for man pages Default is US-ASCII --list-files Write list of output files to stdout --to-stdout Write output to stdout instead of to files --output-dir Directory to write the output files Default is current working directory Some man pages are made available under multiple names. Use one of the following to select how should these names be made available: --symlinks Symbolic links to principal man page --solinks Stub pages with .so requests to principal man page --no-links Make man page available only under principal name These options set the location of auxiliary programs: --utf8trans-program=PATH, --utf8trans-map=PATH, --iconv-program=PATH --help Show this help and exit --version Show version and exit See the db2x_manxml(1) manual page and the docbook2X documentation for more details. end exit 0; } sub options_version { print "db2x_manxml (part of docbook2X " . $db2x_config{'docbook2X-version'} . ")\n"; print <<'end'; $Revision: 1.62 $ $Date: 2006/04/22 15:21:32 $ Copyright (C) 2000-2004 Steve Cheng This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. end exit 0; } $SIG{__WARN__} = sub { print STDERR "$0: " . $_[0]; }; if(!GetOptions($cmdoptions, 'encoding=s', 'list-files', 'to-stdout', 'output-dir=s', 'symlinks|sym-links', 'solinks|so-links', 'no-links|nolinks', 'utf8trans-program=s', 'utf8trans-map=s', 'iconv-program=s', 'help', \&options_help, 'version', \&options_version)) { print STDERR "Try \"$0 --help\" for more information.\n"; exit 1; } $SIG{__WARN__} = undef; if($cmdoptions->{'symlinks'} + $cmdoptions->{'solinks'} + $cmdoptions->{'no-links'} > 1) { print STDERR "$0: Only one of --symlinks, --solinks or --no-links options is allowed!\n"; exit 1; } elsif($cmdoptions->{'symlinks'} + $cmdoptions->{'solinks'} + $cmdoptions->{'no-links'} == 0) { $cmdoptions->{'no-links'} = 1; } #use XML::Handler::SGMLSpl; # we link to this explicitly during building $manxml::templates = XML::Handler::SGMLSpl->new( { 'options' => $cmdoptions }); $manxml::templates->push_mode('file-unselected'); $manxml::templates->{namespaces}->{''} = "http://docbook2x.sourceforge.net/xmlns/Man-XML"; ################################################## # # RoffWriter: Sanitized output routines # ################################################## package RoffWriter; require Exporter; @RoffWriter::ISA = qw(Exporter); @RoffWriter::EXPORT_OK = qw(man_escape man_normalize_ws); # # Use RoffWriter on specified file # Params: fh - an IO::Handle to send the output # sub new { my ($class, $fh) = @_; my $self = { fh => $fh, line_start => 1, whitespace_last => 0 }; return bless($self, $class); } # # Write output to filehandle # or the string buffer (see buffer_{on,off}). # sub write { my ($self, $text) = @_; if(defined $self->{stringbuffer}) { $self->{stringbuffer} .= $text; } else { $self->{fh}->print($text); } } # # buffer_on, buffer_off # # Hack to allow the user to buffer output temporarily # to a string which can be back pasted in later with write(). # # This is used, in particular, for tbl output: # The column and span width information must precede # the cell data for each row, but the cell data may be # arbitrarily complex text mixed with any number of # roff requests. # # Don't take this facility lightly :) # It is low-level: it intentionally does not save or restore # the line_start internal state --- you must do that yourself, # or use this facility only at well-defined points # (e.g. only at line_start = 1). # sub buffer_on { my ($self) = @_; $self->{stringbuffer} = ''; } sub buffer_off { my ($self) = @_; my $stringbuffer = $self->{stringbuffer}; $self->{stringbuffer} = undef; return $stringbuffer; } # # Print text with whitespace folding # Usually need to escape text first # Params: text - string to print # sub print_ws { my ($self, $text) = @_; my @lines = split(/(\n)/, $text); foreach my $line (@lines) { # Go to beginning of next line # unless already at beginning of a line if($line eq "\n") { $self->write("\n") unless $self->{line_start}++; } else { # No spaces at the beginning of a line. # # The second if condition ensures that whenever the # 'logical' input contains a string of whitespace, but # the 'logical' input is split into two separate print_ws # in the middle of the string of whitespace, like this: # # print_ws('text ') ; print_ws(' more text') # # Then the output should be 'text more text' # with one space in between the (first two) words. # # NB: The use of 'whitespace' here excludes the newline. # NB: whitespace_last is only meaningful when # line_start == 0. This interpretation # allows us to not have to update # the whitespace_last status as much. # $line =~ s/^[ \t]+// if $self->{line_start} or $self->{whitespace_last}; # "." and "'" get misinterpreted as a request # at beginning of lines, so use a no-width space # to prevent that. $line =~ s/^([.'])/\\\&$1/ if $self->{line_start}; # Fold whitespaces in the middle of the line $line =~ tr/ \t/ /s; if($line ne '') { $self->write($line); $self->{line_start} = 0; $self->{whitespace_last} = ($line =~ /[ \t]$/); } } } } # # Print text without folding whitespace # Usually need to escape text first # Params: text - string to print # sub print { my ($self, $text) = @_; my @lines = split(/(\n)/, $text); foreach my $line (@lines) { if($line eq "\n") { $self->write("\n"); $self->{line_start} = 1; } else { # "." and "'" get misinterpreted as a request # at beginning of lines, so use a no-width space # to prevent that. $line =~ s/^([.'])/\\\&$1/ if $self->{line_start}; $self->{line_start} = ($line eq ''); $self->{whitespace_last} = ($line =~ /[ \t]$/); $self->write($line); } } } sub skip_line { my ($self) = @_; $self->write(($self->{line_start}++? "\n" : "\n\n")); } # # Make a roff "request" # Params: name - request identifier. The beginning '.' is optional. # args - request arguments, in raw form. # If there are characters to be escaped, # wrap the string in a call to string_escape. # Does not support using a different request start character. # sub request { my ($self, $name, @args) = @_; $name = ".$name" if $name !~ /^[\.']/; $self->write ($self->{line_start} ? "$name" : "\n$name"); foreach my $arg (@args) { $arg =~ tr/\n/ /; # Suggestion from groff Info manual. # Escape double quotes using \(dq $arg =~ s/"/\\\(dq/g; # Quote arguments if either # 1. the argument contains spaces # 2. the argument is empty, and it is not the sole # argument to the request $arg = '"' . $arg . '"' if ($arg =~ / / or (@args>1 and $arg eq '')); $self->write(' ' . $arg); } $self->write("\n"); $self->{line_start} = 1; } # # Print a comment in the output. # Params: comment - the comment text. # May use any characters; they need not be escaped. # sub comment { my ($self, $comment) = @_; $self->write("\n") unless $self->{line_start}; foreach my $line (split(/\n/, $comment)) { $self->write('.\" '); $self->write($line); $self->write("\n"); } $self->{line_start} = 1; } # # Use a roff "escape" i.e. commands embedded in text starting with \ # Params: escape - the escape sequence, excluding \ # Does not support using a different escape character. # sub escape { my ($self, $escape) = @_; $self->write("\\$escape"); } # # Escape characters special to roff so they are displayed literally # Params: s - the string to escape # Returns: new string, with offending characters escaped # sub man_escape { my $s = shift; $s =~ s/\\/\\e/g; return $s; } sub man_normalize_ws { my $s = shift; $s =~ tr/[ \t\n]/ /s; $s =~ s/(^ )|( $)//; return $s; } package manxml; import RoffWriter qw(man_escape man_normalize_ws); use IO::File; use vars qw($templates); ################################################## # # Man page management # ################################################## # Remove leading and trailing blanks. sub strip_string { my $str = shift; $str = $1 if ($str =~ m#^\s*(\S.*)#); $str = $1 if ($str =~ m#^(.*\S)\s*$#); return $str; } # # Generate a good file name for a man page, given a title and section # # Params: title - man page title # section - 1, 2, 3, 4, etc. # sub man_filename { my $title = strip_string(shift); my $sect = strip_string(shift); # Escape the path separator '/' which is not allowed # in Unix file names. (NUL is not allowed either, but # it can't occur in XML data anyway.) # Also escape lone . or .., or blank file name, # which are also not allowed. # # We deliberate do NOT escape any other characters # (e.g. space) because the user who happens to want # to use a space in his file names, for whatever reason, # would be justifiably annoyed at us if we had hard-coded # any unnecessary escaping here. # # On the other hand, for people who want escaping, they # can either fix their XML sources or stylesheets, very easily. $title =~ tr/\//_/; $sect =~ tr/\//_/; $title =~ s/^(\.{0,2})$/_$1/; return "$title.$sect"; } sub shell_quote { join(' ', map { my $u = $_; $u =~ s#([\$`"\\\n])#\\$1#g; '"' . $u . '"' } @_); } sub man_openfile { my ($self, $filename) = @_; my $encoding = $self->{options}->{'encoding'}; my $dir = $self->{options}->{'output-dir'}; $dir =~ s/([^\/])$/$1\//; # terminate with slash my $openstr = ''; if(($encoding !~ /^utf|ucs/i or $encoding =~ s/\/\/TRANSLIT$//i) and $self->{options}->{'utf8trans-program'} ne '') { $openstr .= '| ' . shell_quote($self->{options}->{'utf8trans-program'}) . ' -- ' . shell_quote($self->{options}->{'utf8trans-map'}) . ' '; } if($encoding !~ /^utf-?8$/i and $self->{options}->{'iconv-program'} ne '') { $openstr .= '| ' . shell_quote($self->{options}->{'iconv-program'}, '-f', 'utf-8', '-t', $encoding) . ' '; } if($openstr eq '') { if(!$self->{options}->{'to-stdout'}) { $openstr = "${dir}$filename"; # Trick from Perl FAQ to open file with arbitrary characters $openstr =~ s#^(\s)#./$1#; $openstr = ">${openstr}\0"; print "${dir}$filename\n" if $self->{options}->{'list-files'}; } else { $openstr = '>-'; } } else { if(!$self->{options}->{'to-stdout'}) { $openstr .= '> ' . shell_quote("${dir}$filename"); print "${dir}$filename\n" if $self->{options}->{'list-files'}; } } my $iof = new IO::File($openstr) or die "$0: error opening $openstr: $!\n"; # Set output encoding to UTF-8 on Perl >=5.8.0 # so it doesn't complain binmode($iof, ":utf8") unless $] < 5.008; return $iof; } $templates->add_rule('manpage<', 'file-unselected', sub { my ($self, $elem, $templates) = @_; my $filename = man_filename( $elem->attr('title'), $elem->attr('sect')); $self->{fh} = man_openfile($self, $filename); $self->{rw} = new RoffWriter($self->{fh}); $self->{'adjust-stack'} = [ 'b' ]; $self->{rw}->comment($elem->attr('preprocessors')) if($elem->attr('preprocessors') ne ''); # I've dug through the Internet to see if there was any # standard way to specify encoding with man pages. # The following seems to be a reasonable proposal: # my $encoding = $self->{options}->{'encoding'}; $encoding =~ s#//TRANSLIT$##i; $self->{rw}->comment("-*- coding: $encoding -*-"); # Define escapes for switching to and from monospace fonts (groff only) $self->{rw}->request(qw{ .if \n(.g .ds T< \\\\FC}); $self->{rw}->request(qw{ .if \n(.g .ds T> \\\\F[\n[.fam]]}); # Provide the URL macro $self->{rw}->request(qw{ .de URL}); $self->{rw}->print('\\\\$2 \(la\\\\$1\(ra\\\\$3'); $self->{rw}->request('..'); $self->{rw}->request(qw{ .if \n(.g .mso www.tmac}); $self->{rw}->request('TH', # Nothing in the man macros say this has to be the same as # the $file and $sect. While it is best to follow convention, # some stylesheets may want to uppercase/lowercase the name, # so it is best leave this to them. man_normalize_ws(man_escape($elem->attr('h1'))), man_normalize_ws(man_escape($elem->attr('h2'))), man_normalize_ws(man_escape($elem->attr('h3'))), man_normalize_ws(man_escape($elem->attr('h4'))), man_normalize_ws(man_escape($elem->attr('h5')))); $templates->pop_mode(); }); $templates->add_rule('manpage>', 'file-unselected', sub { my ($self, $elem, $templates) = @_; $self->{rw}->print_ws("\n"); # ensure file ends in eol $self->{fh}->close or die $! ? "$0: error closing file/pipe: $!\n" : "$0: program in pipeline exited with an error\n"; $self->{fh} = undef; $self->{rw} = undef; my $mainfilename = man_filename($elem->attr('title'), $elem->attr('sect')); # Make the files for the alternate names for the man page foreach my $refname (@{$elem->ext->{'refnames'}}) { my $filename = man_filename($refname, $elem->attr('sect')); if($filename eq $mainfilename || $self->{options}->{'no-links'} || $self->{options}->{'to-stdout'}) { # Same as main man page, don't make link. } else { print STDOUT "$filename\n" if $self->{options}->{'list-files'}; if($self->{options}->{'symlinks'}) { symlink($mainfilename, $filename); } else { my $sectnum = $1 if $mainfilename =~ /^.+\.(\d)/; my $fh = new IO::File $filename, "w"; my $rw = new RoffWriter($fh); $rw->request('so', man_escape("man${sectnum}/$mainfilename")); $fh->close; } } } $templates->push_mode('file-unselected'); }); $templates->add_rule('manpageset<', 'file-unselected', sub {}); $templates->add_rule('manpageset>', 'file-unselected', sub {}); $templates->add_rule('text()', 'file-unselected', \&illegal_text_handler); $templates->add_rule('*<', 'file-unselected', \&illegal_element_handler); ################################################## # # A clean solution to the extra-newlines problem # ################################################## # Call before almost block-level element; needed to ensure # hanging indent and line-breaking before and after # is handled correctly. sub block_start { my ($self, $elem) = @_; my $lastchild = $elem->parent->ext->{lastchild}; # There's no macro to stop the hang indent without # starting a new paragraph (.PP), so it has to be # done at the beginning of the next block. if($lastchild eq 'hanging') { $self->{rw}->request('PP'); } # Conversely, here we are supposed to be hanging, # so do not use .PP, which would nullify it elsif($elem->within('TPitem')) { $self->{rw}->skip_line() unless $lastchild eq ''; # Don't put blank before first block } # Start a new 'paragraph' elsif($lastchild eq 'block') { # .PP macro messes up the indentation when # used inside a table entry. if($elem->parent->name eq 'entry') { $self->{rw}->skip_line(); } else { $self->{rw}->request('PP'); } } # Could also be done with .PP. elsif($lastchild eq 'inline') { $self->{rw}->skip_line(); } $elem->parent->ext->{lastchild} = 'block'; } sub mixed_inline_start { my ($self, $node) = @_; # If text is just whitespace, then breaking should not be done # at this point. Otherwise the following input # # xxx... # yyy # # would lead to extra .PP requests: # # xxx # .PP # .PP # yyy # # the first .PP being caused by the newline # at the end of the tag that is otherwise meaningless. # # So quit now if the text node is whitespace. # Note this means we also do not change the lastchild # status; this is correct behavior, because we still # want breaking to be done later if necessary. return if $node->{Data} !~ /[^ \t\r\n]/; if($node->parent->ext->{lastchild} eq 'block') { $self->{rw}->skip_line(); } elsif($node->parent->ext->{lastchild} eq 'hanging') { # Skipping a line after a hanging paragraph # doesn't work, because we want to stop # the indent $self->{rw}->request('PP'); } $node->parent->ext->{lastchild} = 'inline'; } ################################################## # # Changing fonts # ################################################## $templates->add_rule('b<', \&bold_start_handler); $templates->add_rule('b>', \&bold_end_handler); $templates->add_rule('i<', \&italic_start_handler); $templates->add_rule('i>', \&italic_end_handler); $templates->add_rule('b<', 'single-line-mode', \&bold_start_handler); $templates->add_rule('b>', 'single-line-mode', \&bold_end_handler); $templates->add_rule('i<', 'single-line-mode', \&italic_start_handler); $templates->add_rule('i>', 'single-line-mode', \&italic_end_handler); $templates->add_rule('b<', 'table-mode', \&bold_start_handler); $templates->add_rule('b>', 'table-mode', \&bold_end_handler); $templates->add_rule('i<', 'table-mode', \&italic_start_handler); $templates->add_rule('i>', 'table-mode', \&italic_end_handler); $templates->add_rule('b<', 'verbatim-mode', \&bold_start_handler); $templates->add_rule('b>', 'verbatim-mode', \&bold_end_handler); $templates->add_rule('i<', 'verbatim-mode', \&italic_start_handler); $templates->add_rule('i>', 'verbatim-mode', \&italic_end_handler); sub bold_start_handler { my ($self, $elem, $templates) = @_; mixed_inline_start($self, $elem); # If the last font is also bold, don't change anything. # Basically this is to just get more readable man output. $self->{rw}->escape('fB') unless $elem->in('b'); } sub bold_end_handler { my ($self, $elem, $templates) = @_; if($elem->in('i')) { $self->{rw}->escape('fI'); } elsif($elem->in('b')) { } else { $self->{rw}->escape('fR'); } } sub italic_start_handler { my ($self, $elem, $templates) = @_; mixed_inline_start($self, $elem); # If the last font is also bold, don't change anything. # Basically this is to just get more readable man output. $self->{rw}->escape('fI') unless $elem->in('i'); } sub italic_end_handler { my ($self, $elem, $templates) = @_; if($elem->in('b')) { $self->{rw}->escape('fB'); } elsif($elem->in('i')) { } else { $self->{rw}->escape('fR'); } } # Fixed-width fonts # # We do not use the font "CW", because you then cannot apply bold # and italic to it. Although groff comes with the fonts # "CI" and "CB" (in Postscript), they are not defined # for TTY output! # # Switching the font family (with \Fx) is a groff extension; to be # compatible with other man-page processors we use a custom escape # instead of outputing \Fx directly. See the handling of the manpage # element for the definition of these escapes. # sub monospace_start_handler { my ($self, $elem, $templates) = @_; if(not $elem->within('tt')) { $self->{rw}->escape('*(T<'); } } sub monospace_end_handler { my ($self, $elem, $templates) = @_; if(not $elem->within('tt')) { $self->{rw}->escape('*(T>'); } } $templates->add_rule('tt<', \&monospace_start_handler); $templates->add_rule('tt>', \&monospace_end_handler); $templates->add_rule('tt<', 'single-line-mode', \&monospace_start_handler); $templates->add_rule('tt>', 'single-line-mode', \&monospace_end_handler); $templates->add_rule('tt<', 'table-mode', \&monospace_start_handler); $templates->add_rule('tt>', 'table-mode', \&monospace_end_handler); $templates->add_rule('tt<', 'verbatim-mode', \&monospace_start_handler); $templates->add_rule('tt>', 'verbatim-mode', \&monospace_end_handler); # # Groff URL macros # sub ulink_start_handler { my ($self, $elem, $templates) = @_; $templates->push_mode('section-mode'); $self->{output_save} = ''; } sub ulink_end_handler { my ($self, $elem, $templates) = @_; $templates->pop_mode(); my $s = $self->{output_save}; $self->{output_save} = undef; $self->{rw}->request('URL', man_escape($elem->attr('url')), $s); } sub ulink_start_plain_handler { my ($self, $elem, $templates) = @_; } sub ulink_end_plain_handler { my ($self, $elem, $templates) = @_; $self->{rw}->print_ws( ' \(la' . man_escape($elem->attr('ulink')) . '\(ra '); } $templates->add_rule('ulink<', \&ulink_start_handler); $templates->add_rule('ulink>', \&ulink_end_handler); $templates->add_rule('ulink<', 'single-line-mode', \&ulink_start_plain_handler); $templates->add_rule('ulink>', 'single-line-mode', \&ulink_end_plain_handler); $templates->add_rule('ulink<', 'table-mode', \&ulink_start_handler); $templates->add_rule('ulink>', 'table-mode', \&ulink_end_handler); $templates->add_rule('ulink<', 'verbatim-mode', \&ulink_start_plain_handler); $templates->add_rule('ulink>', 'verbatim-mode', \&ulink_end_plain_handler); # # Turn off/on hyphenation (used for long URI's and the like) # sub hyphenation_off { my ($self, $elem, $templates) = @_; return if $templates->mode() eq 'single-line-mode'; $self->{rw}->request("'nh"); } sub hyphenation_on { my ($self, $elem, $templates) = @_; return if $templates->mode() eq 'single-line-mode'; $self->{rw}->request("'hy"); } $templates->add_rule('nh<', \&hyphenation_off); $templates->add_rule('nh>', \&hyphenation_on); $templates->add_rule('nh<', 'table-mode', \&hyphenation_off); $templates->add_rule('nh>', 'table-mode', \&hyphenation_on); $templates->add_rule('nh<', 'single-line-mode', sub {}); $templates->add_rule('nh<', 'verbatim-mode', sub {}); # roff distinguishes between the ASCII hyphen-minus # and a normal hyphen. # See sub disambiguate_hyphen_minus { my ($text, $elem) = @_; if(!$elem or $elem->within('tt') or $elem->within('verbatim')) { $text =~ s/-/\\-/g; } return $text; } sub disable_hyphenation { my ($text, $elem) = @_; return $text; # Disable for now if($elem and $elem->within('tt') and not $elem->within('verbatim')) { $text =~ s/ / \\%/g; } return $text; } ################################################## # # NAME section # ################################################## # The man page database parser needs the names and # description all on one line, so enter a special mode to do that. $templates->add_rule('refnameline<', sub { my ($self, $elem, $templates) = @_; $elem->parent->ext->{lastchild} = 'block'; $templates->push_mode('refnameline-mode'); }); $templates->add_rule('refnameline>', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); $self->{rw}->print_ws("\n"); $elem->ext->{'refnames'} = 0; }); $templates->add_rule('text()', 'refnameline-mode', \&single_line_text_handler); $templates->add_rule('refname<', 'refnameline-mode', sub { my ($self, $elem, $templates) = @_; $templates->push_mode('refname'); $self->{output_save} = ''; }); $templates->add_rule('refname>', 'refnameline-mode', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); if($elem->parent->ext->{'refnames'}++) { $self->{rw}->print_ws(', '); } $self->{rw}->print_ws(man_escape($self->{output_save})); # Store the refname; needed later to make the links. push(@{$elem->parent->parent->ext->{refnames}}, $self->{output_save}); $self->{output_save} = undef; }); $templates->add_rule('text()', 'refname', \&save_text_handler); $templates->add_rule('refpurpose<', 'refnameline-mode', sub { my ($self, $elem, $templates) = @_; $self->{rw}->print_ws(' \- '); }); ################################################## # # Section headings # ################################################## $templates->add_rule("SH<", sub { my ($self, $elem, $templates) = @_; $elem->parent->ext->{lastchild} = ''; $templates->push_mode('section-mode'); $self->{output_save} = ''; }); $templates->add_rule("SH>", sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); $self->{rw}->request('SH', man_normalize_ws(man_escape($self->{output_save}))); $self->{output_save} = undef; }); $templates->add_rule("SS<", sub { my ($self, $elem, $templates) = @_; $elem->parent->ext->{lastchild} = ''; $templates->push_mode('section-mode'); $self->{output_save} = ''; }); $templates->add_rule("SS>", sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); $self->{rw}->request('SS', man_normalize_ws(man_escape($self->{output_save}))); $self->{output_save} = undef; }); $templates->add_rule('text()', 'section-mode', \&save_text_handler); $templates->add_rule('b<', 'section-mode', sub {}); $templates->add_rule('i<', 'section-mode', sub {}); $templates->add_rule('tt<', 'section-mode', sub {}); $templates->add_rule('*<', 'section-mode', \&illegal_element_handler); ################################################## # # Paragraph # ################################################## $templates->add_rule('para<', sub { my ($self, $elem, $templates) = @_; block_start($self, $elem); my $adstack = $self->{'adjust-stack'}; if($elem->attr('align') ne '') { $self->{rw}->request('fi'); $self->{rw}->request('ad', $elem->attr('align')); push(@$adstack, $elem->attr('align')); } }); $templates->add_rule('para>', sub { my ($self, $elem, $templates) = @_; my $adstack = $self->{'adjust-stack'}; if($elem->attr('align') ne '') { pop(@$adstack); $self->{rw}->request('ad', $adstack->[-1]); } }); ################################################## # # Indented paragraphs of various sorts # ################################################## $templates->add_rule('TP<', sub { my ($self, $elem, $templates) = @_; $elem->parent->ext->{lastchild} = 'hanging'; }); $templates->add_rule('TPauto<', sub { my ($self, $elem, $templates) = @_; block_start($self, $elem); my $adstack = $self->{'adjust-stack'}; if($elem->attr('align') ne '') { $self->{rw}->request('fi'); $self->{rw}->request('ad', $elem->attr('align')); push(@$adstack, $elem->attr('align')); } }); $templates->add_rule('TPauto>', sub { my ($self, $elem, $templates) = @_; my $adstack = $self->{'adjust-stack'}; if($elem->attr('align') ne '') { pop(@$adstack); $self->{rw}->request('ad', $adstack->[-1]); } }); $templates->add_rule('TPtag<', sub { my ($self, $elem, $templates) = @_; if($elem->in('TP')) { $self->{rw}->request('TP', $elem->parent->attr('indent')); $templates->push_mode('single-line-mode'); } elsif($elem->in('TPauto')) { } else { &illegal_element_handler; } }); $templates->add_rule('TPtag>', sub { my ($self, $elem, $templates) = @_; if($elem->in('TP')) { $templates->pop_mode(); $self->{rw}->print_ws("\n"); } }); $templates->add_rule('TPitem<', sub { my ($self, $elem, $templates) = @_; if($elem->in('TP')) { } elsif($elem->in('TPauto')) { # This is from Bernd Westphal's old patch # to docbook2man-sgmlspl. $self->{rw}->escape('kx'); # Save current horiz. position to x $self->{rw}->request('if', # if too far left, qw{ (\nx>(\n(.l/2)) .nr x (\n(.l/5) }); # set x to 0.2 * line-length $self->{rw}->request("'in", # modify indent, suppress newline qw{ \n(.iu+\nxu }); } else { &illegal_element_handler; } }); $templates->add_rule('TPitem>', sub { my ($self, $elem, $templates) = @_; if($elem->in('TP')) { } elsif($elem->in('TPauto')) { $self->{rw}->request("'in", # restore indent qw{ \n(.iu-\nxu }); } }); ################################################## # # Verbatim sections (disable filling and adjusting) # ################################################## $templates->add_rule('verbatim<', sub { my ($self, $elem, $templates) = @_; block_start($self, $elem); $templates->push_mode('verbatim-mode'); $self->{rw}->request('nf'); }); $templates->add_rule('verbatim>', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); $self->{rw}->request('fi'); }); ################################################## # # Plain old indent # ################################################## $templates->add_rule('indent<', sub { my ($self, $elem, $templates) = @_; $elem->parent->ext->{lastchild} = 'block'; #block_start($self, $elem); # my $indent = $elem->attr('indent'); $self->{rw}->request('RS', $indent); }); $templates->add_rule('indent>', sub { my ($self, $elem, $templates) = @_; $self->{rw}->request('RE'); }); ################################################## # # Vertical spacing # ################################################## $templates->add_rule('sp<', sub { my ($self, $elem, $templates) = @_; $self->{rw}->request('sp', $elem->attr('length')); }); $templates->add_rule('br<', sub { my ($self, $elem, $templates) = @_; $self->{rw}->request('br'); }); ################################################## # # Tables # ################################################## =head1 Tables db2x_manxml implements CALS tables directly, or rather, a XML description of tables that is really similar to how DocBook CALS tables work. The differences are: =over 4 =item * Some presentational attributes may not work, because they are not supported by tbl. =item * Character-based alignment does not work. =item * tfoot goes after the tbody, not before. This deviation mainly comes from the fact that db2x_manxml is stream-based, so content that goes at the end of the output has to appear later on the input. (It could be worked around by buffering the tfoot data, but since tbl does not actually support table footers it is not worth the effort.) =item * A table cell entry is either an entry or entry element. The latter uses tbl's T{ ... T} facility to include entire blocks of text, whereas the former contains only inline entries. Theoretically all table cell entries can be considered as blocks, but for short inline entries using the entry element makes the output look nicer. Actually SGML DocBook (but not XML DocBook) makes this inline/block distinction also in the DTD content model for entry. For a reference, see "pernicious content" in the TDG. =item * entrytbl is not supported, obviously. =back I am happy to report though that both horizontal and vertical spans, and sparse cells[*] are supported. [*] That is, specifying that an individual table cell should go into a specific column (previously specified by colspec). =cut $templates->add_rule('table<', sub { my ($self, $elem, $templates) = @_; $self->{rw}->request('TS'); my $global_options; if($elem->attr('frame') eq '' or $elem->attr('frame') eq 'none') { } elsif($elem->attr('frame') eq 'all') { $global_options .= 'allbox '; } else { $templates->warn_location($elem, "only a frame of 'all' or 'none' is supported"); } if($elem->attr('pgwide')) { $global_options .= 'expand'; } $self->{rw}->print_ws($global_options . ";\n") if defined $global_options; $templates->push_mode('table-mode'); # Global options line }); $templates->add_rule('table>', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); $self->{rw}->request('TE'); }); =head2 Algorithm for rendering tables For simplicity in this description I will concentrate on rendering a tbody. Rendering thead and tfoot is similar. I will also assume that you know how tbl works and its syntax. First, when colspec or spanspec is encountered, the data on the column number, alignment, etc. is stored in the tgroup's node ext structure. colspecs and spanspecs that occur in thead and tfoot override the ones in tgroup, and tbody uses the colspecs and spanspecs that physically occur under tgroup, unchanged, as per the CALS specification. The most critical information is the column number. The running column number is always kept, and is used whenever a colspec does not specify a column number explicitly. (Similarly for entry and entrytbl.) tbl requires that the formatting information for I the table rows to come before any of the actual data. However, this information must be obtained as each row and cell is processed. (This information mainly consists of the length of horizontal or vertical spans, if any, as well as text alignment, which may be customized differently for each cell.) So all the rows have to be buffered as they are processed, and then, at the end of the table, the formatting information is output, then all the buffered rows. A special buffering mode in RoffWriter is used to do this. There is no problem with this buffering when processing thead or tfoot, since there are usually only one or two lines in those sections. But the tbody may have thousands of lines. Even if we don't exactly run out of memory, the output would not be very nice because we would have a thousand format-lines (the formatting information for one particular row) that are nearly identical. Therefore we add a refinement to our procedure: we watch the format-lines, and if they are the same for the last few rows we flush our buffer. If we have a different format-line coming later in our input, we use the table continuation request (C<.T&>) to change it (in blocks). So our output looks like this: l l l l # Format lines l l l s l l l l. # All the lines from the third line on have this format Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data .T& l l l s l l l l. ... Data ... .T& l l l r l l l l. ... Data ... Of course, theoretically we could use C<.T&> for each any every row, but this bloats the output. As I have mentioned, the format-lines contain span information. Actually cell spans can be handled fairly easily with an iterative/imperative algorithm. (As opposed to a functional/recursive one, which makes it a pain to implement in XSLT, and so we do it here instead.) First, there is a default format-line, which is constructed with the help of the colspec information. The format-line is represented as a flat array with each element corresponding to one column, in order from left-to-right (assume LTR natural languages here, since roff does not support other writing directions). The list elements are simply strings like "l", "r", "c", etc. i.e. the same sort of column specifiers as used in tbl. To make a format-line in the output it is only needed to C this list. When a table entry comes along and specifies some horizontal span, the default format-line is taken as the initial template for the current line's format-line, and the columns in this format-line array that are affected by the span are assigned a different specifier (something like "s"). The newly-changed format-line is the one that is used for the current line. Of course, when there is a horizontal span, care must be taken that we skip over the correct number of 'physical' cells. For vertical spans, the format-line handling is the same, except with a different tbl column specifier ("^"). Vertical spanning does require that subsequent rows know about the vertically spanning cells and reserve space for them: this is easily handled with another flat array in a similar fashion to the format-line array. Each element of the current_vspans array would hold a non-negative integer indicating how many more rows to reserve for each column. (Zero means there is no vertical span for that column, naturally.) Once each row is finished, each number of this list is decremented by one, unless it is zero, in which it stays at zero. Whenever a table cell requests vertical span, the appropriate column of the current_vspans array is re-assigned to. The current_vspans array is also consulted when advancing columns (as one row's table cells are processed) so that the current column is not advanced in the middle of some vertical span from a previous row. =cut $templates->add_rule('tgroup<', 'table-mode', sub { my ($self, $elem, $templates) = @_; $elem->ext->{total_cols} = $elem->attr('cols'); if($elem->attr('cols') !~ /^\d+$/ or $elem->attr('cols') < 1) { $templates->warn_location($elem, "fatal error: invalid number of columns for table"); } $elem->ext->{column_data} = []; $elem->ext->{colnames} = {}; $elem->ext->{spannames} = {}; $elem->ext->{colspec_current_colnum} = 0; $elem->ext->{align} = $elem->attr('align') || 'left'; $elem->ext->{rowsep} = ( (defined $elem->attr('rowsep'))? $elem->attr('rowsep') : $elem->parent->attr('rowsep') ); $elem->ext->{colsep} = ( (defined $elem->attr('colsep'))? $elem->attr('colsep') : $elem->parent->attr('colsep') ); }); $templates->add_rule('tgroup>', 'table-mode', sub {}); $templates->add_rule('colspec<', 'table-mode', sub { my ($self, $elem, $templates) = @_; my $t_elem = $elem->parent; my $tgroup = $t_elem->parent; if($t_elem->name ne 'tgroup') { $t_elem->ext->{total_cols} = $tgroup->ext->{total_cols}; $t_elem->ext->{column_data} = []; $t_elem->ext->{colnames} = []; $t_elem->ext->{spannames} = {}; } my $colnum; if($elem->attr('colnum')) { $colnum = $elem->attr('colnum'); if($colnum !~ /^\d+$/ or $colnum < 1) { $templates->warn_location($elem, "invalid column number --- ignoring\n"); $colnum = $t_elem->ext->{colspec_current_colnum} + 1; } elsif($colnum <= $t_elem->ext->{colspec_current_colnum}) { $templates->warn_location($elem, "column numbers of colspecs are not given in an increasing sequence\n"); } } else { $colnum = $t_elem->ext->{colspec_current_colnum} + 1; } if($colnum > $t_elem->ext->{total_cols}) { $templates->warn_location($elem, "column number exceeds total number of columns --- ignoring this colspec\n"); return; } $t_elem->ext->{colspec_current_colnum} = $colnum; my $column_data_entry = { colwidth => $elem->attr('colwidth'), colname => $elem->attr('colname'), colnum => $colnum, rowsep => $elem->attr('rowsep'), colsep => $elem->attr('colsep'), align => $elem->attr('align') || $tgroup->ext->{align} }; $t_elem->ext->{column_data}->[$colnum-1] = $column_data_entry; $t_elem->ext->{colnames}->{$elem->attr('colname')} = $column_data_entry if $elem->attr('colname') ne ''; }); $templates->add_rule('spanspec<', 'table-mode', sub { my ($self, $elem, $templates) = @_; my $t_elem = $elem->parent; $t_elem->ext->{spannames}->{$elem->attr('spanname')} = { start => $t_elem->ext->{colnames}->{$elem->attr('namest')}, end => $t_elem->ext->{colnames}->{$elem->attr('nameend')}, rowsep => $elem->attr('rowsep'), colsep => $elem->attr('colsep'), align => $elem->attr('align') || $t_elem->ext->{colnames}->{$elem->attr('namest')}->{align} }; }); sub tbl_build_format_line_helper { my ($self, $elem) = @_; my $tgroup = $elem->parent; my @format_line = (); for(my $i = 0; $i < $elem->ext->{total_cols}; $i++) { my $cd = $elem->ext->{column_data}->[$i]; my $f = tbl_align_to_tbl( (defined $cd ? $cd->{align} : $tgroup->ext->{align})); $f .= tbl_colwidth_to_tbl($cd->{colwidth}) if (defined $cd and defined $cd->{colwidth}); $f .= ' |' if ((defined $cd and $cd->{colsep}) or $tgroup->ext->{colsep}) and ($i != $elem->ext->{total_cols}-1); push(@format_line, $f); } return \@format_line; } sub tbl_colwidth_to_tbl { my ($s) = @_; # FIXME! return ''; } sub tbl_build_format_line { my ($self, $elem) = @_; if($elem->name eq 'tbody' or !defined $elem->ext->{column_data}) { foreach my $x (qw(total_cols column_data colnames spannames)) { $elem->ext->{$x} = $elem->parent->ext->{$x}; } } $elem->ext->{default_format_line} = tbl_build_format_line_helper($self, $elem); my @vspans = (0) x $elem->ext->{total_cols}; $elem->ext->{current_vspans} = \@vspans; my @vspan_template_format = ('^') x $elem->ext->{total_cols}; $elem->ext->{vspan_template_format} = \@vspan_template_format; my @current_rowseps = ('^') x $elem->ext->{total_cols}; $elem->ext->{current_rowseps} = \@current_rowseps; } sub t_elem_start_handler { my ($self, $elem, $templates) = @_; tbl_format_line_buffer_start($elem, $self->{rw}); } sub t_elem_end_handler { my ($self, $elem, $templates) = @_; tbl_format_line_buffer_flush($elem, $self->{rw}); } $templates->add_rule('thead<', 'table-mode', \&t_elem_start_handler); $templates->add_rule('thead>', 'table-mode', \&t_elem_end_handler); $templates->add_rule('tfoot<', 'table-mode', \&t_elem_start_handler); $templates->add_rule('tfoot>', 'table-mode', \&t_elem_end_handler); $templates->add_rule('tbody<', 'table-mode', \&t_elem_start_handler); $templates->add_rule('tbody>', 'table-mode', \&t_elem_end_handler); sub tbl_advance_column { my ($row, $rw, $new_colnum, $relative_advance) = @_; my $old_colnum = $row->ext->{current_colnum}; my $total_cols = $row->parent->ext->{total_cols}; if($relative_advance) { my $vspans = $row->parent->ext->{current_vspans}; for($new_colnum = $old_colnum + $relative_advance; $new_colnum <= $total_cols && ($vspans->[$new_colnum - 1] > 0); $new_colnum++) {} } elsif($new_colnum == -1) { $new_colnum = $total_cols + 1; } $row->ext->{current_colnum} = $new_colnum; $new_colnum = $total_cols if $new_colnum > $total_cols; $old_colnum = 1 if $old_colnum == 0; $rw->print("\t" x ($new_colnum - $old_colnum)); } $templates->add_rule('row<', 'table-mode', sub { my ($self, $elem, $templates) = @_; my $t_elem = $elem->parent; my $tgroup = $t_elem->parent; if(! $t_elem->ext->{num_rows}++) { tbl_build_format_line($self, $t_elem); } if(defined $tgroup->ext->{last_rowseps}) { # tbl has this funny (seemingly undocumented) # behavior where if a format line is all underscores # then the corresponding (blank) data line _must_ be omitted. $self->{rw}->print("\n") if grep(/[^_]/, @{$tgroup->ext->{last_rowseps}}); if($t_elem->name ne 'tbody') { tbl_format_line_buffer_push($t_elem, $tgroup->ext->{last_rowseps}); } else { tbl_format_line_buffer_push_ex($t_elem, $self->{rw}, $tgroup->ext->{last_rowseps}); } $tgroup->ext->{last_rowseps} = undef; } $elem->ext->{current_colnum} = 0; tbl_advance_column($elem, $self->{rw}, 0, 1); $elem->ext->{this_format_line} = list_copy($t_elem->ext->{default_format_line}); tbl_copy_vspan_template_format( $elem->ext->{this_format_line}, $t_elem->ext->{current_vspans}, $t_elem->ext->{vspan_template_format}); for(my $i = 0; $i < @{$t_elem->ext->{current_vspans}}; $i++) { if($t_elem->ext->{current_vspans}->[$i] > 0) { } elsif(defined $elem->attr('rowsep')) { $t_elem->ext->{current_rowseps}->[$i] = ( $elem->attr('rowsep') ? '_' : '^' ); } elsif(defined $t_elem->ext->{column_data}->[$i]) { $t_elem->ext->{current_rowseps}->[$i] = ( $t_elem->ext->{column_data}->[$i]->{rowsep} ? '_' : '^' ); } else { $t_elem->ext->{current_rowseps}->[$i] = ( $tgroup->ext->{rowsep} ? '_' : '^' ); } } }); sub tbl_copy_vspan_template_format { my ($format_line, $vspans, $vspan_template_format) = @_; for(my $i = 0; $i < @$vspans; $i++) { $format_line->[$i] = $vspan_template_format->[$i] if $vspans->[$i] > 0; } return $format_line; } $templates->add_rule('row>', 'table-mode', sub { my ($self, $elem, $templates) = @_; my $t_elem = $elem->parent; my $tgroup = $t_elem->parent; tbl_advance_column($elem, $self->{rw}, -1); $self->{rw}->print_ws("\n"); if($t_elem->name ne 'tbody') { tbl_format_line_buffer_push($t_elem, $elem->ext->{this_format_line}); } else { tbl_format_line_buffer_push_ex($t_elem, $self->{rw}, $elem->ext->{this_format_line}); } foreach my $c (@{$t_elem->ext->{current_vspans}}) { $c-- if $c > 0; } my @current_rowseps; for(my $i = 0; $i < $t_elem->ext->{total_cols}; $i++) { $current_rowseps[$i] = ($t_elem->ext->{current_vspans}->[$i] > 0 ? '^' : $t_elem->ext->{current_rowseps}->[$i]); } # We don't output the borders yet, because they are supposed # to be separators and we do not want one on the last row. # So output them on the next row. $tgroup->ext->{last_rowseps} = \@current_rowseps if grep { $_ eq '_' } @current_rowseps; }); # Compare two lists (given as references), # checking they have the same number of elements # and each corresponding element is string-wise equal. # sub list_eq { my ($a, $b) = @_; return 0 if (!defined $a or !defined $b or @$a != @$b); for(my $i = 0; $i < @$a; $i++) { return 0 if $a->[$i] ne $b->[$i]; } return 1; } # Shallow-copy a list, given a reference, # into a new list, with a new reference. # sub list_copy { if(wantarray) { return map { my @x = @$_; \@x } @_; } else { my @x = @{$_[0]}; return \@x; } } sub tbl_format_line_buffer_start { my ($t_elem, $rw) = @_; $t_elem->ext->{format_lines} = []; $t_elem->ext->{same_format_lines} = 0; $t_elem->ext->{current_format_line} = undef; $rw->buffer_on(); } sub tbl_format_line_buffer_push { my ($t_elem, $format_line) = @_; my $format_lines = $t_elem->ext->{format_lines}; if(scalar(@$format_lines) != 0 and list_eq( $format_lines->[-1], $format_line)) { $t_elem->ext->{same_format_lines}++; } else { $t_elem->ext->{same_format_lines} = 0; } push(@$format_lines, $format_line); } sub tbl_format_line_buffer_flush { my ($t_elem, $rw, $n) = @_; my $format_lines = $t_elem->ext->{format_lines}; my $buffered_rows = $rw->buffer_off(); $t_elem->ext->{same_format_lines} = 0; $t_elem->ext->{current_format_line} = undef; return if @$format_lines == 0; $rw->request('T&') if $t_elem->parent->parent->ext->{'T&'}++; $rw->print( join("\n", map { join(' ', @$_) } @$format_lines[0 .. ($#$format_lines - $n)]) . ".\n"); $rw->write($buffered_rows); $t_elem->ext->{format_lines} = []; } sub tbl_format_line_buffer_push_ex { my ($t_elem, $rw, $format_line) = @_; if(defined $t_elem->ext->{current_format_line}) { if(list_eq($t_elem->ext->{current_format_line}, $format_line)) { $rw->write($rw->buffer_off()); $rw->buffer_on(); } else { $t_elem->ext->{format_lines} = []; $t_elem->ext->{same_format_lines} = 0; $t_elem->ext->{current_format_line} = undef; tbl_format_line_buffer_push($t_elem, $format_line); } } else { tbl_format_line_buffer_push($t_elem, $format_line); if($t_elem->ext->{same_format_lines} == 3) { tbl_format_line_buffer_flush($t_elem, $rw, $t_elem->ext->{same_format_lines}); $t_elem->ext->{current_format_line} = $format_line; $rw->buffer_on(); } } } sub tbl_align_to_tbl { my ($align) = @_; if ($align eq 'left') { return 'l'; } elsif($align eq 'right') { return 'r'; } elsif($align eq 'center') { return 'c'; } else { return 'l' } } sub tbl_entry_start_handler { my ($self, $elem, $templates) = @_; my $row = $elem->parent; my $t_elem = $elem->parent->parent; my $tgroup = $t_elem->parent; my $start_col; my $end_col; my $align; my $colsep; if($elem->attr('colname')) { $start_col = $t_elem->{colnames}->{$elem->attr('colname')}; } elsif($elem->attr('spanname')) { my $span = $t_elem->{spannames}->{$elem->attr('spanname')}; $start_col = $span->{start}; $end_col = $span->{end}; $align = $span->{align}; $colsep = $span->{colsep}; } elsif($elem->attr('namest')) { $start_col = $t_elem->{colnames}->{$elem->attr('namest')}; $end_col = $t_elem->{colnames}->{$elem->attr('nameend')}; } $align = $elem->attr('align') if defined $elem->attr('align'); $colsep = $elem->attr('colsep') if defined $elem->attr('colsep'); if(defined $start_col) { tbl_advance_column($row, $self->{rw}, $start_col->{colnum}); } if(defined $elem->attr('rowsep')) { $t_elem->ext->{current_rowseps}->[$row->ext->{current_colnum} - 1] = ( $elem->attr('rowsep') ? '_' : '^' ); } if(defined $align) { my $t = tbl_align_to_tbl($align); $row->ext->{this_format_line}->[$row->ext->{current_colnum} - 1] =~ s/^[lrc]/$t/; } if(defined $colsep) { my $t = ($colsep and ($row->ext->{current_colnum} != $tgroup->ext->{total_cols})) ? ' |' : ''; $row->ext->{this_format_line}->[$row->ext->{current_colnum} - 1] =~ s/( \|)?$/$t/; } my $relative_advance = 1; if(defined $end_col) { for(my $i = $start_col->{colnum}; $i < $end_col->{colnum}; $i++) { $row->ext->{this_format_line}->[$i] = 's'; } $relative_advance = $end_col->{colnum} - $start_col->{colnum} + 1; } $elem->ext->{relative_advance} = $relative_advance; if($elem->attr('morerows')) { if($elem->attr('morerows') !~ /^\d+$/) { $templates->warn_location($elem, "invalid morerows value --- ignoring\n"); } else { for(my $i = 0; $i < $relative_advance; $i++) { my $c = $row->ext->{current_colnum} + $i; $t_elem->ext->{current_vspans}->[$c - 1] = $elem->attr('morerows') + 1; $t_elem->ext->{vspan_template_format}->[$c - 1] = '^'; $t_elem->ext->{vspan_template_format}->[$c - 1] .= ' |' if $row->ext->{this_format_line}->[$row->ext->{current_colnum} - 1] =~ /\|$/; } } } if($elem->name eq 'entry') { $self->{rw}->print("T{\n"); $templates->push_mode(''); } else { $self->{rw}->print("\\&"); $templates->push_mode('single-line-mode'); } } sub tbl_entry_end_handler { my ($self, $elem, $templates) = @_; my $row = $elem->parent; $templates->pop_mode(); if($elem->name eq 'entry') { $self->{rw}->print_ws("\nT}"); } tbl_advance_column($row, $self->{rw}, 0, $elem->ext->{relative_advance}); } $templates->add_rule('simentry<', 'table-mode', \&tbl_entry_start_handler); $templates->add_rule('simentry>', 'table-mode', \&tbl_entry_end_handler); $templates->add_rule('entry<', 'table-mode', \&tbl_entry_start_handler); $templates->add_rule('entry>', 'table-mode', \&tbl_entry_end_handler); $templates->add_rule('*<', 'table-mode', \&illegal_element_handler); $templates->add_rule('text()', 'table-mode', \&illegal_text_handler); # # Minimal entrytbl support (from Craig Ruff) # $templates->add_rule('entrytbl<', 'table-mode', sub { my ($self, $elem, $templates) = @_; $elem->ext->{relative_advance} = 1; if($elem->name eq 'entrytbl') { $self->{rw}->print("T{\n"); $templates->push_mode('entrytbl-mode'); } }); $templates->add_rule('entrytbl>', 'table-mode', sub { my ($self, $elem, $templates) = @_; my $row = $elem->parent; $templates->pop_mode(); if($elem->name eq 'entrytbl') { $self->{rw}->print_ws("\nT}"); } tbl_advance_column($row, $self->{rw}, 0, $elem->ext->{relative_advance}); }); $templates->add_rule('TP<', 'entrytbl-mode', sub { my ($self, $elem, $templates) = @_; $elem->parent->ext->{lastchild} = 'hanging'; }); $templates->add_rule('TP>', 'entrytbl-mode', sub {}); $templates->add_rule('TPtag<', 'entrytbl-mode', sub { my ($self, $elem, $templates) = @_; $self->{rw}->request('TP', $elem->parent->attr('indent')); $templates->push_mode('single-line-mode'); }); $templates->add_rule('TPtag>', 'entrytbl-mode', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); $self->{rw}->print_ws("\n"); }); $templates->add_rule('TPitem<', 'entrytbl-mode', sub { my ($self, $elem, $templates) = @_; $templates->push_mode(''); }); $templates->add_rule('TPitem>', 'entrytbl-mode', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); }); $templates->add_rule('text()', 'entrytbl-mode', sub { my ($self, $node, $templates) = @_; mixed_inline_start($self, $node); $self->{rw}->print_ws( disambiguate_hyphen_minus(man_escape($node->{Data}), $node)); }); ################################################## # # Character data # ################################################## sub save_text_handler { my ($self, $node, $templates) = @_; $self->{output_save} .= $node->{Data}; } sub single_line_text_handler { my ($self, $node, $templates) = @_; my $s = $node->{Data}; $s =~ tr/\n/ /; $s = disambiguate_hyphen_minus(man_escape($s), $node); mixed_inline_start($self, $node); $self->{rw}->print_ws($s); } sub illegal_text_handler { my ($self, $node, $templates) = @_; if($node->{Data} =~ /[^ \t\r\n]/) { $templates->warn_location($node, "character data is not allowed here"); } } $templates->add_rule('*<', 'single-line-mode', \&illegal_element_handler); $templates->add_rule('text()', 'single-line-mode', \&single_line_text_handler); $templates->add_rule('*<', 'verbatim-mode', \&illegal_element_handler); $templates->add_rule('text()', 'verbatim-mode', sub { my ($self, $node, $templates) = @_; $self->{rw}->print( disambiguate_hyphen_minus(man_escape($node->{Data}))); }); $templates->add_rule('text()', sub { my ($self, $node, $templates) = @_; mixed_inline_start($self, $node); my $text = man_escape($node->{Data}); $text = disambiguate_hyphen_minus($text, $node); $text = disable_hyphenation($text, $node); $self->{rw}->print_ws($text, $node); }); ################################################## # # Comments # ################################################## $templates->add_rule('comment<', sub { my ($self, $elem, $templates) = @_; $templates->push_mode('comment-mode'); }); $templates->add_rule('comment>', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode('comment-mode'); $self->{rw}->comment($elem->ext->{content}); }); $templates->add_rule('*<', 'comment-mode', \&illegal_element_handler); $templates->add_rule('text()', 'comment-mode', sub { my ($self, $node, $templates) = @_; $node->parent->ext->{content} .= $node->{Data}; }); ################################################## # # Processing instructions # ################################################## $templates->add_rule('processing-instruction()', sub { my ($self, $node, $templates) = @_; if($node->{Target} eq 'man') { my $data = $node->{Data}; $data =~ s/\ /\n/g; $data =~ s/\ /\n/g; $self->{rw}->print_ws($data); } }); $templates->add_rule('*<', \&illegal_element_handler); sub illegal_element_handler { my ($self, $node, $templates) = @_; $templates->warn_location($node, "element not allowed here\n"); }; ################################################## # # Main # ################################################## package main; use XML::SAX::ParserFactory; unshift(@ARGV, '-') unless @ARGV; my $parser = XML::SAX::ParserFactory->parser(DocumentHandler => $manxml::templates); foreach my $file (@ARGV) { if($file eq '-') { $parser->parse_file(\*STDIN); } else { $parser->parse_uri($file); } } docbook2X-0.8.8/perl/db2x_xsltproc.pl0000755000175000017500000002757710110663000014406 00000000000000# vim:sw=4 sta et showmatch # docbook2X.pl - script to invoke XSLT processor for docbook2X # (See docbook2X documentation for details) # # (C) 2003-2004 Steve Cheng # # See the COPYING file in the docbook2X distribution # for the copyright status of this software. # # Note: db2x_xsltproc.pl does not run by itself! # It must be configured by including a config.pl file # which is done when building docbook2X. use strict; use Getopt::Long; Getopt::Long::Configure('gnu_getopt'); my $options = { 'output' => '', 'xinclude' => '0', 'sgml' => '0', 'catalogs' => [], 'network' => '0', 'stylesheet' => '', 'param' => {}, 'string-param' => {}, 'debug' => 0, 'nesting-limit' => 0, 'profile' => 0, 'xslt-processor' => $db2x_config{'xslt-processor'}, }; # Hack, this allows us to easily test the docbook2X distribution # with different processors without re-running configure if(exists $ENV{DB2X_XSLT_PROCESSOR}) { $options->{'xslt-processor'} = $ENV{DB2X_XSLT_PROCESSOR}; } sub options_help { print "Usage: $0 [options] xml-document\n"; print <<'end'; XSLT processor invocation wrapper -v, --version display version information and exit -h, --help display this usage information -o, --output FILE send output to file instead of stdout -I, --xinclude do XInclude processing -S, --sgml input document is SGML rather than XML -C, --catalogs FILES use additional catalogs -N, --network allow fetching resources over network -s, --stylesheet FILE specify different stylesheet to use -p, --param NAME=VALUE add or modify a parameter to stylesheet VALUE is an XPath expression -g, --string-param NAME=VALUE same as -p, but VALUE is treated as a string -d, --debug display log of transformation -D, --nesting-limit change maximum nesting depth of templates -P, --profile display profiling information -X, --xslt-processor specify a XSLT processor to use; possible choices are: libxslt, saxon, xalan-j See the db2x_xsltproc(1) manual page and the docbook2X documentation for more details. end exit 0; } sub options_version { print "db2x_xsltproc (part of docbook2X " . $db2x_config{'docbook2X-version'} . ")\n"; print <<'end'; $Revision: 1.5 $ $Date: 2004/08/18 14:21:52 $ Copyright (C) 2004 Steve Cheng This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. end exit 0; } $SIG{__WARN__} = sub { print STDERR "$0: " . $_[0]; }; if(!GetOptions($options, 'output|o=s', 'xinclude|I', 'sgml|S', 'catalogs|C=s', 'network|N', 'stylesheet|s=s', 'param|p=s', 'string-param|stringparam|g=s', 'debug|d', 'nesting-limit|D=i', 'profile|P', 'xslt-processor|X=s', 'help', \&options_help, 'version', \&options_version)) { print STDERR "Try \"$0 --help\" for more information.\n"; exit 1; } $SIG{__WARN__} = undef; sub check_options { my ($options, @argv) = @_; if($options->{'stylesheet'} eq 'texi') { $options->{'stylesheet'} = "http://docbook2x.sf.net/latest/xslt/texi/docbook.xsl"; } elsif($options->{'stylesheet'} eq 'man') { $options->{'stylesheet'} = "http://docbook2x.sf.net/latest/xslt/man/docbook.xsl"; } if(scalar(@argv) != 1) { print STDERR "$0: you must specify exactly one source document\n"; exit 1; } } check_options($options, @ARGV); if($options->{'xslt-processor'} eq 'libxslt') { check_executable($db2x_config{'xsltproc-program'}); invoke_libxslt($options, @ARGV); } elsif($options->{'xslt-processor'} eq 'saxon') { check_executable($db2x_config{'java-program'}); check_jars($db2x_config{'saxon-jars'}, $db2x_config{'resolver-jars'}); invoke_saxon($options, @ARGV); } elsif($options->{'xslt-processor'} eq 'xalan-j') { check_executable($db2x_config{'java-program'}); check_jars($db2x_config{'xalan-jars'}, $db2x_config{'resolver-jars'}); invoke_xalan_j($options, @ARGV); } else { print STDERR "$0: XSLT processor \"" . $options->{'xslt-processor'} . "\" not supported\n"; exit 2; } sub check_executable { foreach my $exe (@_) { if($exe eq '') { print STDERR "$0: selected XSLT processor not installed\n"; print STDERR "$0: cannot use this XSLT processor --- try another one.\n"; exit 2; } if(!-x $exe) { print STDERR "$0: could not execute $exe\n"; print STDERR "$0: cannot use this XSLT processor --- try another one.\n"; exit 2; } } } sub check_jars { foreach my $jar_path (@_) { if($jar_path eq '') { print STDERR "$0: selected XSLT processor not installed\n"; print STDERR "$0: cannot use this XSLT processor --- try another one.\n"; exit 2; } if(0 < grep { $_ ne '' and !-r $_ } (split(/:/, $jar_path))) { print STDERR "$0: could not read JAR file $_\n"; print STDERR "$0: cannot use this XSLT processor --- try another one.\n"; exit 2; } } } sub invoke_libxslt { my ($options, @argv) = @_; my @args; push(@args, '--xinclude') if $options->{xinclude}; push(@args, '--nonet') if !$options->{network}; push(@args, '--debug') if $options->{debug}; push(@args, '--profile') if $options->{profile}; push(@args, '--maxdepth', $options->{'nesting-limit'}) if $options->{'nesting-limit'} > 0; push(@args, '--output', $options->{'output'}) if $options->{'output'} ne ''; foreach my $k (keys(%{$options->{param}})) { push(@args, '--param', $k, $options->{param}->{$k}); } foreach my $k (keys(%{$options->{'string-param'}})) { push(@args, '--stringparam', $k, $options->{'string-param'}->{$k}); } push(@args, $options->{'stylesheet'}); unshift(@args, $db2x_config{'xsltproc-program'}); if(exists $ENV{XML_CATALOG_FILES}) { $ENV{XML_CATALOG_FILES} =~ tr/:/ /; } else { $ENV{XML_CATALOG_FILES} = "/etc/xml/catalog"; } $ENV{XML_CATALOG_FILES} = join(' ', @{$options->{catalogs}}) . ' ' . $ENV{XML_CATALOG_FILES} . ' ' . $db2x_config{'stylesheets-catalog'}; if(!$options->{sgml}) { push(@args, @argv); print STDERR join(' ', @args) . "\n" if $options->{'debug'}; exec { $args[0] } (@args); } else { push(@args, '-'); exec shell_quote($db2x_config{'sgml2xml-isoent-program'}) . ' ' . shell_quote(@argv) . ' | ' . shell_quote(@args); } } sub setup_java_catalogs { my ($options) = @_; my $cat; if(exists $ENV{XML_CATALOG_FILES}) { $cat = $ENV{XML_CATALOG_FILES}; $cat =~ tr/:/;/; } else { $cat = '/etc/xml/catalog'; } $cat = join(';', @{$options->{catalogs}}) . ';' . $cat . ';' . $db2x_config{'stylesheets-catalog'}; return $cat; } sub invoke_saxon { my ($options, @argv) = @_; my @args; my $error = 0; if($options->{xinclude}) { print STDERR "$0: --xinclude not supported by SAXON processor\n"; exit 2; } if(keys(%{$options->{param}}) > 0) { print STDERR "$0: --param not supported by SAXON processor\n"; print STDERR "$0: (perhaps use --string-param instead?)\n"; exit 2; } foreach my $opt (qw(debug nesting-limit profile)) { print STDERR "$0: --$opt not supported by SAXON processor --- ignoring\n" if $options->{$opt}; } push(@args, '-classpath', join(':', $db2x_config{'resolver-jars'}, $db2x_config{'saxon-jars'})); push(@args, '-Dxml.catalog.files=' . setup_java_catalogs($options)); push(@args, qw(-Dxml.catalog.staticCatalog=yes -Dxml.catalog.verbosity=1 -Dxml.catalog.prefer=public)); push(@args, 'com.icl.saxon.StyleSheet'); push(@args, qw(-x org.apache.xml.resolver.tools.ResolvingXMLReader -y org.apache.xml.resolver.tools.ResolvingXMLReader -r org.apache.xml.resolver.tools.CatalogResolver -l -u)); push(@args, '-o', $options->{'output'}) if $options->{'output'} ne ''; my $xmldoc = $argv[0]; $xmldoc = '-' if $options->{sgml}; # Grr... SAXON barfs at '-' for reading from stdin $xmldoc = '/dev/stdin' if $xmldoc eq '-'; if($options->{'stylesheet'} ne '') { push(@args, $xmldoc); push(@args, $options->{'stylesheet'}); } else { push(@args, '-a'); push(@args, $xmldoc); } foreach my $k (keys(%{$options->{'string-param'}})) { push(@args, $k . '=' . $options->{'string-param'}->{$k}); } unshift(@args, $db2x_config{'java-program'}); if(!$options->{sgml}) { print STDERR join(' ', @args) . "\n" if $options->{'debug'}; exec { $args[0] } (@args); } else { exec shell_quote($db2x_config{'sgml2xml-isoent-program'}) . ' ' . shell_quote(@argv) . ' | ' . shell_quote(@args); } } sub invoke_xalan_j { my ($options, @argv) = @_; my @args; my $error = 0; if($options->{xinclude}) { print STDERR "$0: --xinclude not supported by Xalan-Java processor\n"; exit 2; } if(keys(%{$options->{param}}) > 0) { print STDERR "$0: --param not supported by Xalan-Java processor\n"; print STDERR "$0: (perhaps use --string-param instead?)\n"; exit 2; } foreach my $opt (qw(debug profile)) { print STDERR "$0: --$opt not supported by Xalan-Java processor --- ignoring\n" if $options->{$opt}; } # Workaround: see # http://sources.redhat.com/ml/docbook-apps/2004-q1/msg00065.html my $xalan_jar_dir = $db2x_config{'xalan-jars'}; $xalan_jar_dir =~ s/:.*//; $xalan_jar_dir =~ s/([^\/]+)$//; my $resolver_jar_dir = $db2x_config{'resolver-jars'}; $xalan_jar_dir =~ s/:.*//; $resolver_jar_dir =~ s/([^\/]+)$//; push(@args, "-Djava.endorsed.dirs=$xalan_jar_dir:$resolver_jar_dir"); push(@args, '-classpath', join(':', $db2x_config{'resolver-jars'}, $db2x_config{'xalan-jars'})); push(@args, '-Dxml.catalog.files=' . setup_java_catalogs($options)); push(@args, qw(-Dxml.catalog.staticCatalog=yes -Dxml.catalog.verbosity=1 -Dxml.catalog.prefer=public)); push(@args, 'org.apache.xalan.xslt.Process'); push(@args, qw(-EntityResolver org.apache.xml.resolver.tools.CatalogResolver -URIResolver org.apache.xml.resolver.tools.CatalogResolver -L)); push(@args, '-RL', $options->{'nesting-limit'}) if $options->{'nesting-limit'} > 0; push(@args, '-out', $options->{'output'}) if $options->{'output'} ne ''; push(@args, '-xsl', $options->{'stylesheet'}) if $options->{'stylesheet'} ne ''; foreach my $k (keys(%{$options->{'string-param'}})) { push(@args, '-param', $k, $options->{'string-param'}->{$k}); } unshift(@args, $db2x_config{'java-program'}); if(!$options->{sgml}) { push(@args, '-in', @argv); print STDERR join(' ', @args) . "\n" if $options->{'debug'} ; exec { $args[0] } (@args); } else { push(@args, qw(-in -)); exec shell_quote($db2x_config{'sgml2xml-isoent-program'}) . ' ' . shell_quote(@argv) . ' | ' . shell_quote(@args); } } sub shell_quote { join(' ', map { my $u = $_; $u =~ s#([\$`"\\\n])#\\$1#g; '"' . $u . '"' } @_); } docbook2X-0.8.8/perl/config.pl.in0000644000175000017500000000175310105514412013452 00000000000000#!@PERL@ my %db2x_config = ( 'docbook2X-version' => q<@VERSION@>, # Used by db2x_manxml and db2x_texixml only 'utf8trans-program' => q<@INSTALLED_UTF8TRANS@>, 'utf8trans-map-roff' => q<@INSTALLED_CHARMAP_ROFF@>, 'utf8trans-map-texi' => q<@INSTALLED_CHARMAP_TEXI@>, 'iconv-program' => q<@ICONV@>, 'makeinfo-program' => q<@MAKEINFO@>, # Used by docbook2X.pl only 'db2x_xsltproc-program' => q<@INSTALLED_DB2X_XSLTPROC@>, 'db2x_manxml-program' => q<@INSTALLED_DB2X_MANXML@>, 'db2x_texixml-program' => q<@INSTALLED_DB2X_TEXIXML@>, # Used by db2x_xsltproc.pl only 'stylesheets-catalog' => q<@INSTALLED_STYLESHEETS_CATALOG@>, 'xsltproc-program' => q<@XSLTPROC@>, 'sgml2xml-isoent-program' => q<@INSTALLED_SGML2XML_ISOENT@>, 'java-program' => q<@JAVA@>, 'resolver-jars' => q<@RESOLVER_JARS@>, 'saxon-jars' => q<@SAXON_JARS@>, 'xalan-jars' => q<@XALAN_JARS@>, 'xslt-processor' => q<@XSLT_PROCESSOR@>, ); docbook2X-0.8.8/perl/sgml2xml-isoent.in0000644000175000017500000001121010407401501014623 00000000000000#!/bin/sh set -e # This script comes from docbook2X. # Copyright (C) 2004 Steve Cheng # MIT license. sed_script=' # This sed script automatically adds the XML ISO entities # to the output from sgml2xml/sx/osx, so that # XML tools can be used readily on SGML (DocBook) documents. # Work around osx misfeature: # it has no option to just echo SDATA entities, # but insists on using PIs if one wants to preserve them s//\&\1;/ # Note that this DOCTYPE parsing is not really correct. # For example it cannot handle a DOCTYPE declaration # that is split across several lines. # But it works with the output from sx. /^\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ %ISOamsa;\ %ISOamsb;\ %ISOamsc;\ %ISOamsn;\ %ISOamso;\ %ISOamsr;\ %ISObox;\ %ISOcyr1;\ %ISOcyr2;\ %ISOdia;\ %ISOgrk1;\ %ISOgrk2;\ %ISOgrk3;\ %ISOgrk4;\ %ISOlat1;\ %ISOlat2;\ %ISOnum;\ %ISOpub;\ %ISOtech; }' sx_whining='W: reference to internal SDATA entity' # The purpose of the following slew of redirections # is to get the error messages in the right place # and to return sx/osx exit status. # (the sed and grep are unlikely to fail) # Prefer sx (sgml2xml) over osx because it is faster if test -x "@SX@"; then exec 3>&1 4>&2; status=`((("@SX@" -xid -xlower "$@"; echo $? >&5) | sed -e "$sed_script") 2>&1 1>&3 | grep -v "$sx_whining" 1>&4) 5>&1`; exit $status; elif test -x "@OSX@"; then exec 3>&1 4>&2; status=`(("@OSX@" -xid -xlower -xsdata-as-pis "$@"; echo $? >&5) | sed -e "$sed_script") 5>&1 2>&4 1>&3`; exit $status; else echo "$0: cannot find sx(sgml2xml) or osx to convert SGML to XML. Cannot continue." 2>&1 exit 255; fi docbook2X-0.8.8/perl/Makefile.am0000644000175000017500000000270610407414224013303 00000000000000# $Id: Makefile.am,v 1.21 2006/03/20 02:51:00 stevecheng Exp $ # # This Makefile installs the Perl scripts and modules. # include $(top_srcdir)/docbuild.mk PL_FILES = db2x_manxml.pl db2x_texixml.pl docbook2X.pl db2x_xsltproc.pl SCRIPT_FILES = db2x_xsltproc sgml2xml-isoent \ db2x_manxml db2x_texixml \ docbook2man docbook2texi MAKEMAKER_FILES = XML/Handler/Makefile.PL XML/Handler/SGMLSpl.pm bin_SCRIPTS = $(SCRIPT_FILES) db2x_xsltproc: config.pl db2x_xsltproc.pl rm -f $@ cat $^ >$@ chmod 555 $@ $(PERL) -c -w $@ db2x_manxml: config.pl XML/Handler/SGMLSpl.pm db2x_manxml.pl rm -f $@ cat $^ >$@ chmod 555 $@ $(db2x_perl) -c -w $@ db2x_texixml: config.pl XML/Handler/SGMLSpl.pm db2x_texixml.pl rm -f $@ cat $^ >$@ chmod 555 $@ $(db2x_perl) -c -w $@ docbook2man: config.pl docbook2X.pl rm -f $@ (cat config.pl ; echo 'my $$CONVERSION_TYPE = q;'; cat $(srcdir)/docbook2X.pl) >$@ chmod 555 $@ $(PERL) -c -w $@ docbook2texi: config.pl docbook2X.pl rm -f $@ (cat config.pl ; echo 'my $$CONVERSION_TYPE = q;'; cat $(srcdir)/docbook2X.pl) >$@ chmod 555 $@ $(PERL) -c -w $@ # Not needed anymore, we include the SGMLSpl module source # directly into the db2x_manxml and db2x_texixml scripts #install-data-local: # if test ! -e XML ; then cp -dpR $(srcdir)/XML . ; fi # cd XML/Handler && perl Makefile.PL PREFIX=$(prefix) && $(MAKE) install EXTRA_DIST = $(PL_FILES) $(MAKEMAKER_FILES) DISTCLEANFILES = config.pl CLEANFILES = $(SCRIPT_FILES) docbook2X-0.8.8/perl/Makefile.in0000644000175000017500000002777310572275763013347 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am,v 1.21 2006/03/20 02:51:00 stevecheng Exp $ # # This Makefile installs the Perl scripts and modules. # # ---------------------------------------------------------------------- # # Common defines for building documentation # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/config.pl.in $(srcdir)/sgml2xml-isoent.in \ $(top_srcdir)/docbuild.mk subdir = perl ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/utf8trans/config.h CONFIG_CLEAN_FILES = config.pl sgml2xml-isoent am__installdirs = "$(DESTDIR)$(bindir)" binSCRIPT_INSTALL = $(INSTALL_SCRIPT) SCRIPTS = $(bin_SCRIPTS) SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GROFF = @GROFF@ HAVE_GROFF_FALSE = @HAVE_GROFF_FALSE@ HAVE_GROFF_TRUE = @HAVE_GROFF_TRUE@ HAVE_HTML_XSL_FALSE = @HAVE_HTML_XSL_FALSE@ HAVE_HTML_XSL_TRUE = @HAVE_HTML_XSL_TRUE@ HAVE_TIDY_FALSE = @HAVE_TIDY_FALSE@ HAVE_TIDY_TRUE = @HAVE_TIDY_TRUE@ HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@ HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@ ICONV = @ICONV@ INSTALLED_CHARMAP_ROFF = @INSTALLED_CHARMAP_ROFF@ INSTALLED_CHARMAP_TEXI = @INSTALLED_CHARMAP_TEXI@ INSTALLED_DB2X_MANXML = @INSTALLED_DB2X_MANXML@ INSTALLED_DB2X_TEXIXML = @INSTALLED_DB2X_TEXIXML@ INSTALLED_DB2X_XSLTPROC = @INSTALLED_DB2X_XSLTPROC@ INSTALLED_SGML2XML_ISOENT = @INSTALLED_SGML2XML_ISOENT@ INSTALLED_STYLESHEETS_CATALOG = @INSTALLED_STYLESHEETS_CATALOG@ INSTALLED_UTF8TRANS = @INSTALLED_UTF8TRANS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA = @JAVA@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ OSX = @OSX@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RESOLVER_JARS = @RESOLVER_JARS@ SAXON_JARS = @SAXON_JARS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SX = @SX@ TIDY = @TIDY@ VERSION = @VERSION@ XALAN_JARS = @XALAN_JARS@ XMLLINT = @XMLLINT@ XSLTPROC = @XSLTPROC@ XSLT_PROCESSOR = @XSLT_PROCESSOR@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ db2x_perl = $(PERL) # Location of docbook2X programs stylesheets_catalog = $(top_srcdir)/xslt/catalog.xml utf8trans = $(top_builddir)/utf8trans/utf8trans db2x_texixml = $(db2x_perl) $(top_builddir)/perl/db2x_texixml --utf8trans-program=$(utf8trans) --utf8trans-map=$(top_srcdir)/charmaps/texi.charmap db2x_manxml = $(db2x_perl) $(top_builddir)/perl/db2x_manxml --utf8trans-program=$(utf8trans) --utf8trans-map=$(top_srcdir)/charmaps/roff.charmap db2x_xsltproc = $(top_builddir)/perl/db2x_xsltproc -C $(stylesheets_catalog) PL_FILES = db2x_manxml.pl db2x_texixml.pl docbook2X.pl db2x_xsltproc.pl SCRIPT_FILES = db2x_xsltproc sgml2xml-isoent \ db2x_manxml db2x_texixml \ docbook2man docbook2texi MAKEMAKER_FILES = XML/Handler/Makefile.PL XML/Handler/SGMLSpl.pm bin_SCRIPTS = $(SCRIPT_FILES) # Not needed anymore, we include the SGMLSpl module source # directly into the db2x_manxml and db2x_texixml scripts #install-data-local: # if test ! -e XML ; then cp -dpR $(srcdir)/XML . ; fi # cd XML/Handler && perl Makefile.PL PREFIX=$(prefix) && $(MAKE) install EXTRA_DIST = $(PL_FILES) $(MAKEMAKER_FILES) DISTCLEANFILES = config.pl CLEANFILES = $(SCRIPT_FILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/docbuild.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu perl/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu perl/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh config.pl: $(top_builddir)/config.status $(srcdir)/config.pl.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ sgml2xml-isoent: $(top_builddir)/config.status $(srcdir)/sgml2xml-isoent.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" @list='$(bin_SCRIPTS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f $$d$$p; then \ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \ else :; fi; \ done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; for p in $$list; do \ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) $(mkdir_p) $(distdir)/.. $(distdir)/XML/Handler @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(SCRIPTS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-binSCRIPTS install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binSCRIPTS uninstall-info-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-binSCRIPTS install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-binSCRIPTS \ uninstall-info-am db2x_xsltproc: config.pl db2x_xsltproc.pl rm -f $@ cat $^ >$@ chmod 555 $@ $(PERL) -c -w $@ db2x_manxml: config.pl XML/Handler/SGMLSpl.pm db2x_manxml.pl rm -f $@ cat $^ >$@ chmod 555 $@ $(db2x_perl) -c -w $@ db2x_texixml: config.pl XML/Handler/SGMLSpl.pm db2x_texixml.pl rm -f $@ cat $^ >$@ chmod 555 $@ $(db2x_perl) -c -w $@ docbook2man: config.pl docbook2X.pl rm -f $@ (cat config.pl ; echo 'my $$CONVERSION_TYPE = q;'; cat $(srcdir)/docbook2X.pl) >$@ chmod 555 $@ $(PERL) -c -w $@ docbook2texi: config.pl docbook2X.pl rm -f $@ (cat config.pl ; echo 'my $$CONVERSION_TYPE = q;'; cat $(srcdir)/docbook2X.pl) >$@ chmod 555 $@ $(PERL) -c -w $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: docbook2X-0.8.8/perl/docbook2X.pl0000755000175000017500000000516210417755740013454 00000000000000# vim:sw=4 sta et showmatch # docbook2X.pl - script to invoke man page or Texinfo conversion # (See docbook2X documentation for details) # # (C) 2003-2004 Steve Cheng # # See the COPYING file in the docbook2X distribution # for the copyright status of this software. # # Note: docbook2X.pl does not run by itself! # It must be configured by including a config.pl file # which is done when building docbook2X. use strict; my @xsltproc_opts; my @xml_opts; while(my $opt = shift @ARGV) { if($opt eq '--help') { print_help(); exit(0); } elsif($opt eq '--version') { print_version(); exit(0); } elsif($opt =~ /^--((sym-?|so-?|no-?)links|no-groff-extensions|compatible|list-files|to-stdout|info|plaintext)$/) { push @xml_opts, $opt; } elsif($opt =~ /^--(encoding|utf8trans-(program|map)|iconv-program)/) { push @xml_opts, $opt; push @xml_opts, shift(@ARGV) if $opt !~ /=/; } elsif($opt eq '--output') { # This option is ineffectual. shift @ARGV if $opt !~ /=/; # Get rid of filename argument also } elsif($opt eq '-o') { # Same as --output. shift @ARGV; } else { push @xsltproc_opts, $opt; } } if(!grep /^-s|--stylesheet$/, @xsltproc_opts) { unshift @xsltproc_opts, ('-s', $CONVERSION_TYPE); } unshift @xsltproc_opts, $db2x_config{'db2x_xsltproc-program'}; if($CONVERSION_TYPE eq 'texi') { unshift @xml_opts, $db2x_config{'db2x_texixml-program'}; } elsif($CONVERSION_TYPE eq 'man') { unshift @xml_opts, $db2x_config{'db2x_manxml-program'}; } exec( shell_quote(@xsltproc_opts) . ' | ' . shell_quote(@xml_opts)); sub shell_quote { join(' ', map { my $u = $_; $u =~ s#([\$`"\\\n])#\\$1#g; '"' . $u . '"' } @_); } sub print_help { print "Usage: $0 [OPTION]... XML-FILE\n"; if($CONVERSION_TYPE eq 'texi') { print "Convert DocBook XML documents to Texinfo\n\n"; } elsif($CONVERSION_TYPE eq 'man') { print "Convert DocBook XML documents to man pages\n\n"; } print "See docbook2X(1) for more details about this program.\n"; } sub print_version { print "$0 (part of docbook2X " . $db2x_config{'docbook2X-version'} . ")\n"; print <<'end'; $Revision: 1.12 $ $Date: 2006/04/14 17:29:04 $ Copyright (C) 2003-2004 Steve Cheng This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. end } docbook2X-0.8.8/perl/db2x_texixml.pl0000755000175000017500000014407110421574707014233 00000000000000# vim:sw=4 et sta showmatch # db2x_texixml - convert Texi-XML to Texinfo # (See docbook2X documentation for details) # # (C) 2000-2004 Steve Cheng # # See the COPYING file in the docbook2X distribution # for the copyright status of this software. # # Note: db2x_texixml.pl does not run by itself! # It must be configured by including a config.pl file # which is done when building docbook2X. # In addition, the non-standard module # XML::Handler::SGMLSpl must be explicitly loaded # when docbook2X is not installed. package main; use strict; ############################################################################# # # Option parsing # ############################################################################# use Getopt::Long; Getopt::Long::Configure('bundling'); my $cmdoptions = { 'encoding' => 'us-ascii', 'list-files' => 0, 'to-stdout' => 0, 'output-dir' => '', 'info' => 0, 'plaintext' => 0, 'utf8trans-program' => $db2x_config{'utf8trans-program'}, 'utf8trans-map' => $db2x_config{'utf8trans-map-texi'}, 'iconv-program' => $db2x_config{'iconv-program'}, 'makeinfo-program' => $db2x_config{'makeinfo-program'}, }; sub options_help { print "Usage: $0 [OPTION]... [FILE]...\n"; print <<'end'; Make Texinfo documents from Texi-XML --encoding=ENCODING Character encoding for Texinfo files Default is US-ASCII --list-files Write list of output files to stdout --to-stdout Write output to stdout instead of to files --output-dir Directory to write the output files Default is current working directory --info Pipe output to makeinfo, creating Info files directly --plaintext Pipe output to makeinfo, creating plain text files These options set the location of auxiliary programs: --utf8trans-program=PATH, --utf8trans-map=PATH, --iconv-program=PATH, --makeinfo-program=PATH --help Show this help and exit --version Show version and exit See the db2x_texixml(1) manual page and the docbook2X documentation for more details. end exit 0; } sub options_version { print "db2x_texixml (part of docbook2X " . $db2x_config{'docbook2X-version'} . ")\n"; print <<'end'; $Revision: 1.49 $ $Date: 2006/04/20 03:02:31 $ Copyright (C) 2000-2004 Steve Cheng This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. end exit 0; } $SIG{__WARN__} = sub { print STDERR "$0: " . $_[0]; }; if(!GetOptions($cmdoptions, 'encoding=s', 'list-files', 'to-stdout', 'output-dir=s', 'info', 'plaintext', 'utf8trans-program=s', 'utf8trans-map=s', 'iconv-program=s', 'makeinfo-program=s', 'help', \&options_help, 'version', \&options_version)) { print STDERR "Try \"$0 --help\" for more information.\n"; exit 1; } $SIG{__WARN__} = undef; #use XML::Handler::SGMLSpl; # we link to this explicitly during building my $texixmldata = { 'options' => $cmdoptions }; $texixml::templates = XML::Handler::SGMLSpl->new($texixmldata); $texixml::templates->push_mode('file-unselected'); $texixml::templates->{namespaces}->{''}="http://docbook2x.sourceforge.net/xmlns/Texi-XML"; ############################################################################# # # TexiWriter: output routines # ############################################################################# package TexiWriter; require Exporter; @TexiWriter::ISA = qw(Exporter); @TexiWriter::EXPORT_OK = qw(texi_escape texi_arg_escape); # # Use TexiWriter on specified file # Params: fh - an IO::Handle to send the output # sub new { my ($class, $fh) = @_; my $self = { fh => $fh, line_start => 1, output_buffers => [] }; return bless($self, $class); } # # Print text with whitespace folding # (actually only newline folding) # Usually need to escape text first # Params: text - string to print # sub print_ws { my ($self, $text) = @_; foreach my $line (split(/(\n)/, $text)) { if($line eq "\n") { # Don't leave a blank line $self->{fh}->print("\n") unless $self->{line_start}++; } else { # Don't put any spaces at the beginning # of a line. These cause makeinfo # to erroneously indent the text. $line =~ s/^[ \t]+// if $self->{line_start}; # Collapse whitespace $line =~ tr/ \t/ /; if($line ne '') { $self->{fh}->print($line); $self->{line_start} = 0; } } } } # # This is basically just a print, but # with the special instruction that, # if a '\n' is present at the beginning # of the string, this means to start a new line, # # i.e. if we are already at the beginning of the line # we do not emit another '\n' and therefore create # a blank line. # # This routine is useful for emitting "block" Texinfo # commands that have to start at the beginning of the # line. (Note: unlike RoffWriter's request method, # TexiWriter does not provide an explicit "do command" # method --- they are cumbersome and not necessary # for the Texinfo format.) # # No escaping of the text is done. # # Params: text - string to print # sub output { my ($self, $text) = @_; if($text =~ s/^\n//) { $self->{fh}->print("\n") unless $self->{line_start}++; } return if $text eq ''; $self->{fh}->print($text); $self->{line_start} = ($text =~ /\n$/); } # # The following functions implement a simple stack # of output buffers. These are used to handle the arguments # of a Texinfo @-command, when the content of the arguments # is not immediately accessible in stream XML processing. # # The line-breaking semantics of regular output() are not implemented, # because they do not make sense on strings. # sub output_buffer_push { my ($self) = @_; unshift(@{$self->{output_buffers}}, ""); } sub output_buffer_pop { my ($self) = @_; return shift(@{$self->{output_buffers}}); } sub savable_output { my ($self, $text) = @_; if(scalar(@{$self->{output_buffers}}) == 0) { return output($self, $text); } else { $self->{output_buffers}->[0] .= $text; } } # # Print text without folding whitespace # Usually need to escape text first # Params: text - string to print # sub print { my ($self, $text) = @_; $self->{fh}->print($text); $self->{line_start} = ($text =~ /\n$/); } # Escape Texinfo syntax chars # sub texi_escape { my $s = shift; $s =~ s/([\@\{\}])/\@$1/g; return $s; } sub texi_arg_escape { my $s = shift; $s =~ s/,/\@comma\{\}/g; return $s; } # Escape the ',' when output buffering is activated, # because output buffering is typically used to handle # arguments, and a literal ',' would be misinterpreted # as an argument delimeter. sub texi_arg_escape_conditional { my ($self, $text) = @_; if(scalar(@{$self->{output_buffers}}) > 0) { $text =~ s/,/\@comma\{\}/g; } return $text; } ############################################################################# # # Template rules # ############################################################################# package texixml; import TexiWriter qw(texi_escape texi_arg_escape); use IO::File; use vars qw($templates); ################################################## # # A clean solution to the extra-newlines problem # ################################################## # In essence, texi_xml usually puts newlines only where you # expect a human editing a Texinfo file directly would. # The heuristic works by checking if we are at the beginning # of a line or not in our output ($texixml::newline_last), # and if so, refrain from putting too many newlines # (which would actually produce 2 or more blank lines). # # texi_xml also keeps track of what type of element (block, inline # or neither) it just processed, then makes line breaks only # if it is required to separate them. # # This is not complete "whitespace collapsing", but since Texinfo # is reasonably tolerant in its whitespace handling we don't need # to have a model that collapses whitespace perfectly in every case. # # sub block_start { my ($self, $elem) = @_; if(scalar(@{$self->{tw}->{output_buffers}}) > 0) { die "$0: block_start called while saving output (this is a bug)"; } $self->{tw}->output("\n\n") unless ($elem->in('listitem') and $elem->parent->ext->{lastchild} eq '') or ($elem->in('entry') and $elem->parent->ext->{lastchild} eq ''); # Don't put blank before the first block in # varlistentries and entries of a multitable. $elem->parent->ext->{lastchild} = 'block'; } sub mixed_inline_start { my ($self, $node) = @_; if(scalar(@{$self->{tw}->{output_buffers}}) > 0) { return; } # Example: # Warning...Do not indent this text # since it's part of the same paragraph $self->{tw}->output("\n\n\@noindent\n") if $node->parent->ext->{lastchild} eq 'block'; $node->parent->ext->{lastchild} = 'inline'; } ################################################## # # Texinfo preamble and eof # ################################################## sub shell_quote { join(' ', map { my $u = $_; $u =~ s#([\$`"\\\n])#\\$1#g; '"' . $u . '"' } @_); } sub texi_openfile { my ($self, $basename) = @_; my $dir = $self->{options}->{'output-dir'}; $dir =~ s/([^\/])$/$1\//; # terminate with slash my $encoding = $self->{options}->{encoding}; my $openstr = ''; if(($encoding !~ /^utf|ucs/i or $encoding =~ s/\/\/TRANSLIT$//i) and $self->{options}->{'utf8trans-program'} ne '') { $openstr .= '| ' . shell_quote($self->{options}->{'utf8trans-program'}) . ' -- ' . shell_quote($self->{options}->{'utf8trans-map'}) . ' '; } if($encoding !~ /^utf-?8$/i and $self->{options}->{'iconv-program'} ne '') { $openstr .= '| ' . shell_quote($self->{options}->{'iconv-program'}, '-f', 'utf-8', '-t', $encoding) . ' '; } if($self->{options}->{'plaintext'}) { my $filename = "${dir}${basename}.txt"; $openstr .= '| ' . shell_quote($self->{options}->{'makeinfo-program'}, '--no-headers'); if(not $self->{options}->{'to-stdout'}) { print "$filename\n" if $self->{options}->{'list-files'}; $openstr .= ' > ' . shell_quote($filename); } } elsif($self->{options}->{'info'}) { if(not $self->{options}->{'to-stdout'}) { $openstr .= '| ( cd ' . shell_quote($dir) . ' && exec ' . shell_quote($self->{options}->{'makeinfo-program'}) . ' )'; print "${dir}${basename}.info\n" if $self->{options}->{'list-files'}; } else { $openstr .= '| ' . shell_quote( $self->{options}->{'makeinfo-program'}) . ' -o -'; } } else { my $filename = "${dir}${basename}.texi"; if($openstr eq '') { if(not $self->{options}->{'to-stdout'}) { $openstr = $filename; # Trick from Perl FAQ to open file with arbitrary characters $openstr =~ s#^(\s)#./$1#; $openstr = ">${openstr}\0"; print "$filename\n" if $self->{options}->{'list-files'}; } else { $openstr = '>-'; } } else { $openstr .= '> ' . shell_quote($filename); print "$filename\n" if $self->{options}->{'list-files'}; } } my $iof = new IO::File($openstr) or die "$0: error opening $openstr: $!\n"; # Set output encoding to UTF-8 on Perl >=5.8.0 # so it doesn't complain binmode($iof, ":utf8") unless $] < 5.008; return $iof; } $templates->add_rule('texinfoset<', 'file-unselected', sub { my ($self, $elem, $templates) = @_; $self->{node2id_map} = {}; $self->{id2node_map} = {}; $self->{id2file_map} = {}; $self->{id_counter} = 1; }); $templates->add_rule('texinfoset>', 'file-unselected', sub {}); $templates->add_rule('texinfo<', 'file-unselected', sub { my ($self, $elem, $templates) = @_; my $basename; if($elem->attr('file') ne '') { $basename = filename_escape($elem->attr('file')); } elsif($self->{inputfile} ne '-') { $basename = $self->{inputfile}; # strip the path component, and extension $basename = $1 if $basename =~ /([^\/]+)$/; $basename =~ s/\.txml$//; } else { $basename = 'untitled'; } $self->{fh} = texi_openfile($self, $basename); $self->{tw} = new TexiWriter($self->{fh}); $self->{basename} = $basename; $self->{tw}->output("\\input texinfo\n"); $self->{tw}->output("\n\@setfilename ${basename}.info\n"); my $encoding = $self->{options}->{encoding}; $encoding =~ s#//TRANSLIT$##i; $self->{tw}->output("\@documentencoding $encoding\n"); $templates->pop_mode(); }); $templates->add_rule('texinfo>', 'file-unselected', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n\n\@bye\n"); $self->{fh}->close or die $! ? "$0: error closing file/pipe: $!\n" : "$0: program in pipeline exited with an error\n"; $self->{fh} = undef; $self->{tw} = undef; $templates->push_mode('file-unselected'); }); $templates->add_rule('text()', 'file-unselected', \&illegal_text_handler); $templates->add_rule('*<', 'file-unselected', \&illegal_element_handler); sub illegal_text_handler { my ($self, $node, $templates) = @_; if($node->{Data} =~ /[^ \t\r\n]/) { $templates->warn_location($node, "character data is not allowed here"); } } ################################################## # # Node name maps # ################################################## $templates->add_rule('nodenamemap<', 'file-unselected', sub { my ($self, $elem, $templates) = @_; $templates->push_mode('nodenamemap-mode'); }); $templates->add_rule('nodenamemap>', 'file-unselected', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); }); $templates->add_rule('nodenamemapentry<', 'nodenamemap-mode', sub { my ($self, $elem, $templates) = @_; $elem->ext->{nodenames} = []; }); $templates->add_rule('nodenamemapentry>', 'nodenamemap-mode', sub { my ($self, $elem, $templates) = @_; my $id = $elem->attr('id'); my $f = filename_escape($elem->attr('file')); my $nodename; foreach my $s (@{$elem->ext->{nodenames}}) { if(not exists $self->{node2id_map}->{"${f}/$s"}) { $nodename = $s; last; } } if(not defined $nodename) { if(scalar(@{$elem->ext->{nodenames}}) > 0) { for(my $i = 1; ; $i++) { $nodename = $elem->ext->{nodenames}->[0] . ' <' . $i . '>'; last if not exists $self->{node2id_map}->{"${f}/$nodename"}; } } elsif(not exists $self->{node2id_map}->{ $f . '/' . ($nodename = nodename_escape($id))}) { } else { $nodename = 'untitled node <' . $self->{id_counter}++ . '>'; } } $self->{node2id_map}->{"${f}/$nodename"} = $id; $self->{id2node_map}->{$id} = $nodename; $self->{id2file_map}->{$id} = $f; }); $templates->add_rule('nodename<', 'nodenamemap-mode', sub { my ($self, $elem, $templates) = @_; $elem->ext->{nodename} = ''; }); $templates->add_rule('nodename>', 'nodenamemap-mode', sub { my ($self, $elem, $templates) = @_; my $nodenames = $elem->parent->ext->{nodenames}; my $s = nodename_escape($elem->ext->{nodename}); push(@$nodenames, $s) unless $s eq ''; }); $templates->add_rule('text()', 'nodenamemap-mode', sub { my ($self, $node, $templates) = @_; if($node->in('nodename')) { $node->parent->ext->{nodename} .= $node->{Data}; } else { &illegal_text_handler; } }); $templates->add_rule('*<', 'nodenamemap-mode', \&illegal_element_handler);; sub get_nodename { my ($self, $elem, $nodename_attr, $id_attr, $optional) = @_; if($nodename_attr ne '') { return nodename_escape($nodename_attr); } else { my $f = $self->{id2file_map}->{$id_attr}; if($f ne '' and $f ne $self->{basename}) { # Error, we expect this node to be in the same # file. $templates->warn_location($elem, "fatal error: node belongs to a different file"); die; } return undef if($optional and $id_attr eq ''); if($id_attr eq '') { $templates->warn_location($elem, "fatal error: neither a node name nor an ID was specified"); die; } if(not exists($self->{id2node_map}->{$id_attr})) { $templates->warn_location($elem, "ID \"${id_attr}\" does not exist"); return nodename_escape($id_attr); } return $self->{id2node_map}->{$id_attr}; } } sub get_nodename_filename { my ($self, $elem, $nodename_attr, $file_attr, $id_attr, $optional) = @_; if($nodename_attr ne '' or $file_attr ne '') { return (nodename_escape($nodename_attr), filename_escape($file_attr)); } else { return undef if $optional and $id_attr eq ''; if($id_attr eq '') { $templates->warn_location($elem, "fatal error: neither a node name nor an ID was specified"); die; } if(not exists($self->{id2node_map}->{$id_attr})) { $templates->warn_location($elem, "fatal error: ID \"${id_attr}\" does not exist"); return (nodename_escape($id_attr), '') } return ($self->{id2node_map}->{$id_attr}, $self->{id2file_map}->{$id_attr}); } } ################################################## # # Simple title pages # ################################################## $templates->add_rule('settitle<', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n\@settitle "); $templates->push_mode('single-line-mode'); }); $templates->add_rule('settitle>', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); $self->{tw}->output("\n"); }); $templates->add_rule('titlepage<', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n\@titlepage\n"); }); $templates->add_rule('titlepage>', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n\@end titlepage\n"); }); $templates->add_rule('title<', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n\@title "); $templates->push_mode('single-line-mode'); }); $templates->add_rule('title>', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); $self->{tw}->output("\n"); }); $templates->add_rule('subtitle<', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n\@subtitle "); $templates->push_mode('single-line-mode'); }); $templates->add_rule('subtitle>', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); $self->{tw}->output("\n"); }); $templates->add_rule('author<', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n\@author "); $templates->push_mode('single-line-mode'); }); $templates->add_rule('author>', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); $self->{tw}->output("\n"); }); ################################################## # # Menus, nodes # ################################################## # Do escaping for nodenames: # NOTE: stylesheets should do this if possible # since there can be rare name clashes. sub nodename_escape { my $name = shift; for ($name) { tr/().,:/[]_;;/; tr/ \t\n/ /s; s/^ +//g; s/ +$//g; } return $name; } sub filename_escape { my $s = shift; $s =~ tr/\//_/; return $s; } $templates->add_rule('node<', sub { my ($self, $elem, $templates) = @_; my $node = texi_escape( get_nodename($self, $elem, $elem->attr('name'), $elem->attr('id'))); my $next = texi_escape(get_nodename($self, $elem, $elem->attr('next'), $elem->attr('nextid'), 'optional')); my $previous = texi_escape(get_nodename($self, $elem, $elem->attr('previous'), $elem->attr('previousid'), 'optional')); my $up = texi_escape(get_nodename($self, $elem, $elem->attr('up'), $elem->attr('upid'), 'optional')); if(defined($next) or defined($previous) or defined($up)) { if($node =~ /^[Tt]op$/ and $elem->attr('up') eq '') { $up = '(dir)'; } $self->{tw}->output( "\n\n\@node ${node}, ${next}, ${previous}, ${up}\n"); } else { $self->{tw}->output("\n\n\@node $node\n"); } }); $templates->add_rule('menu<', sub { my ($self, $elem, $templates) = @_; block_start($self, $elem); $self->{tw}->output("\@menu\n"); $templates->push_mode('menu-mode'); }); $templates->add_rule('menu>', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); $self->{tw}->output("\n\@end menu\n"); }); $templates->add_rule('detailmenu<', 'menu-mode', sub { my ($self, $elem, $templates) = @_; block_start($self, $elem); $self->{tw}->output("\@detailmenu\n"); }); $templates->add_rule('detailmenu>', 'menu-mode', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n\@end detailmenu\n"); }); $templates->add_rule('menuline<', 'menu-mode', sub { my ($self, $elem, $templates) = @_; $templates->push_mode('menu-saved-text-mode'); $self->{tw}->output_buffer_push(); }); $templates->add_rule('menuline>', 'menu-mode', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); my $s = $self->{tw}->output_buffer_pop(); $self->{tw}->output($s . "\n"); $self->{tw}->output("\n\n") if($s eq ''); }); $templates->add_rule('menuentry<', 'menu-mode', sub {}); $templates->add_rule('menuentry>', 'menu-mode', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n"); }); $templates->add_rule('menuentrytitle<', 'menu-mode', sub { my ($self, $elem, $templates) = @_; $templates->push_mode('menu-saved-text-mode'); $self->{tw}->output_buffer_push(); }); $templates->add_rule('menuentrytitle>', 'menu-mode', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); my $entry = $self->{tw}->output_buffer_pop(); # Since the contents of @menu is supposed to be "pre-formatted", # Texinfo will be picky about extra spaces. # Eliminate them here. $entry =~ tr/ / /s; $entry =~ s/^ //; # Although the menu entry is not constrained to the set # of characters allowed for node names, the use of ':' # to separate the parts of menu entry implies that it # is not an allowed character. $entry =~ tr/:/;/; my ($node,$file) = get_nodename_filename($self, $elem->parent, $elem->parent->attr('node'), $elem->parent->attr('file'), $elem->parent->attr('idref'), $elem->parent->in('directory')); $node = texi_escape($node); $file = texi_escape($file); # The eventual output my $s; $self->{tw}->output("\n"); if($file ne '' and ($node eq '' or $file ne $self->{basename})) { $s = "* ${entry}: (${file})${node}."; } else { if($entry eq $node) { $s = "* ${entry}::"; } else { $s = "* ${entry}: ${node}."; } } $self->{tw}->output($s); $elem->parent->ext->{'entry_length'} = length($s); }); use Text::Wrap (); $templates->add_rule('menuentrydescrip<', 'menu-mode', sub { my ($self, $elem, $templates) = @_; $templates->push_mode('menu-saved-text-mode'); $self->{tw}->output_buffer_push(); }); $templates->add_rule('menuentrydescrip>', 'menu-mode', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); my $text = $self->{tw}->output_buffer_pop(); # Since the contents of @menu is supposed to be "pre-formatted", # Texinfo will be picky about extra spaces. # Eliminate them here. $text =~ tr/ / /s; $text =~ s/^ //; my $entry_length = $elem->parent->ext->{'entry_length'}; my $first_line_padding = $entry_length<32 ? 32-$entry_length : 3; my $first_line_overflow = 0; my $start_column = $entry_length + $first_line_padding + 2; if($start_column > 50) { $first_line_overflow = 1; $start_column = 50; } $Text::Wrap::columns = 78 - $start_column; my @lines = split(/(\n)/, Text::Wrap::wrap("", "", $text)); if(!$first_line_overflow) { my $first_line = shift @lines; if($first_line) { $self->{tw}->output((' ' x $first_line_padding) . $first_line); } } else { $self->{tw}->output("\n"); } foreach my $line (@lines) { if($line eq "\n") { $self->{tw}->output("\n"); } else { $self->{tw}->output((' ' x $start_column) . $line); } } }); $templates->add_rule('text()', 'menu-mode', \&illegal_text_handler); $templates->add_rule('*<', 'menu-mode', \&illegal_element_handler); ################################################## # # Info directory # ################################################## $templates->add_rule('directory<', sub { my ($self, $elem, $templates) = @_; # If creating plain text files, suppress the directory. # Really, makeinfo ought to do this, but it doesn't. if($self->{options}->{'plaintext'}) { $templates->push_mode('directory-suppress'); return; } if(defined $elem->attr('category')) { $self->{tw}->output("\n\@dircategory " . texi_escape($elem->attr('category')) . "\n"); } $self->{tw}->output("\n\@direntry\n"); $templates->push_mode('menu-mode'); }); $templates->add_rule('directory>', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); return if $self->{options}->{'plaintext'}; $templates->pop_mode(); $self->{tw}->output("\n\@end direntry\n"); }); $templates->add_rule('text()', 'directory-suppress', sub {}); $templates->add_rule('*<', 'directory-suppress', sub {}); ################################################## # # Internationalization # ################################################## $templates->add_rule('documentlanguage<', sub { my ($self, $elem, $templates) = @_; my $lstack = $self->{'language-stack'}; if(defined $elem->attr('lang')) { $self->{tw}->output("\n\@documentlanguage " . $elem->attr('lang') . "\n"); push(@$lstack, $elem->attr('lang')); } else { pop(@$lstack); $self->{tw}->output("\n\@documentlanguage " . $lstack->[-1] . "\n") if scalar(@$lstack); } }); ################################################## # # Inline elements # ################################################## sub inline_start_handler { my ($self, $elem, $templates) = @_; mixed_inline_start($self, $elem); $self->{tw}->savable_output('@'. $elem->name . '{'); } sub inline_end_handler { my ($self, $elem, $templates) = @_; $self->{tw}->savable_output('}'); } foreach my $gi (qw(code samp cite email dfn file sc acronym emph strong key kbd var env command option i b r t footnote)) { $templates->add_rule("${gi}<", \&inline_start_handler); $templates->add_rule("${gi}>", \&inline_end_handler); $templates->add_rule("${gi}<", 'single-line-mode', \&inline_start_handler); $templates->add_rule("${gi}>", 'single-line-mode', \&inline_end_handler); $templates->add_rule("${gi}<", 'saved-text-mode', \&inline_start_handler); $templates->add_rule("${gi}>", 'saved-text-mode', \&inline_end_handler); $templates->add_rule("${gi}<", 'verbatim-mode', sub {}); $templates->add_rule("${gi}>", 'verbatim-mode', sub {}); $templates->add_rule("${gi}<", 'menu-saved-text-mode', sub {}); $templates->add_rule("${gi}>", 'menu-saved-text-mode', sub {}); } sub anchor_start { my ($self, $elem, $templates) = @_; mixed_inline_start($self, $elem); $self->{tw}->savable_output('@anchor{' . texi_escape(get_nodename($self, $elem, $elem->attr('node'), $elem->attr('id'))) . '}'); } $templates->add_rule('anchor<', \&anchor_start); $templates->add_rule('anchor<', 'single-line-mode', \&anchor_start); $templates->add_rule('anchor<', 'saved-text-mode', \&anchor_start); $templates->add_rule('anchor<', 'menu-saved-text-mode', \&anchor_start); $templates->add_rule('anchor<', 'verbatim-mode', \&anchor_start); $templates->add_rule('*<', 'single-line-mode', \&illegal_element_handler); $templates->add_rule('*<', 'saved-text-mode', \&illegal_element_handler); $templates->add_rule('*<', 'menu-saved-text-mode', \&illegal_element_handler); ################################################## # # Cross references, links # ################################################## sub crossref_start_handler { my ($self, $elem, $templates) = @_; mixed_inline_start($self, $elem); $self->{tw}->output_buffer_push(); $templates->push_mode('saved-text-mode'); } sub crossref_end_handler { my ($self, $elem, $templates) = @_; $templates->pop_mode(); # Syntax: # @ref{$node,$infolabel,$label,$file,$printmanual} # node - required # infolabel, label - optional # label is actually the inline content of this element # infofile, printmanual - optional my ($node, $file) = get_nodename_filename($self, $elem, $elem->attr('node'), $elem->attr('file'), $elem->attr('idref')); my $infolabel = $elem->attr('infolabel'); my $label = $self->{tw}->output_buffer_pop(); # If the node and cross reference label turn out to be # the same, make the latter empty so info won't display it # twice. $label = '' if $node eq $label; $infolabel = '' if $node eq $infolabel; # Note: # 1. Node names cannot contain commas anyway, so no # texi_arg_escape needed. # 2. label is not escaped here, because it already IS escaped. $node = texi_escape($node); $infolabel = texi_arg_escape(texi_escape($infolabel)); $file = texi_arg_escape(texi_escape($file)); my $printmanual = texi_arg_escape( texi_escape($elem->attr('printmanual'))); $self->{tw}->savable_output('@' . $elem->name . '{' . $node); if($file ne '' and $file ne $self->{basename}) { # Reference to another file $self->{tw}->savable_output(",$infolabel,$label,$file,$printmanual}"); } else { # Same file if($label eq '' and $infolabel eq '') { $self->{tw}->savable_output("}"); return; } elsif($label eq '') { $self->{tw}->savable_output(",$infolabel}"); } else { $self->{tw}->savable_output(",$infolabel,$label}"); } } } foreach my $gi (qw(xref ref pxref)) { $templates->add_rule("${gi}<", \&crossref_start_handler); $templates->add_rule("${gi}>", \&crossref_end_handler); $templates->add_rule("${gi}<", 'single-line-mode', \&crossref_start_handler); $templates->add_rule("${gi}>", 'single-line-mode', \&crossref_end_handler); $templates->add_rule("${gi}<", 'saved-text-mode', \&crossref_start_handler); $templates->add_rule("${gi}>", 'saved-text-mode', \&crossref_end_handler); $templates->add_rule("${gi}<", 'verbatim-mode', sub {}); $templates->add_rule("${gi}>", 'verbatim-mode', sub {}); $templates->add_rule("${gi}<", 'menu-saved-text-mode', sub {}); $templates->add_rule("${gi}>", 'menu-saved-text-mode', sub {}); } ################################################## # # URI references # ################################################## $templates->add_rule('uref<', sub { my ($self, $elem, $templates) = @_; mixed_inline_start($self, $elem); $self->{tw}->output_buffer_push(); $templates->push_mode('saved-text-mode'); }); $templates->add_rule('uref>', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); my $url = texi_escape($elem->attr('url')); my $text = $self->{tw}->output_buffer_pop(); if($text eq '') { $self->{tw}->savable_output("\@uref{$url}"); } else { $self->{tw}->savable_output("\@uref{$url,$text}"); } }); # FIXME $templates->add_rule("uref<", 'single-line-mode', sub {}); $templates->add_rule("uref>", 'single-line-mode', sub {}); $templates->add_rule("uref<", 'saved-text-mode', sub {}); $templates->add_rule("uref>", 'saved-text-mode', sub {}); $templates->add_rule("uref<", 'verbatim-mode', sub {}); $templates->add_rule("uref>", 'verbatim-mode', sub {}); $templates->add_rule("uref<", 'menu-saved-text-mode', sub {}); $templates->add_rule("uref>", 'menu-saved-text-mode', sub {}); ################################################## # # Sectioning elements # ################################################## sub section_start_handler { my ($self, $elem, $templates) = @_; $elem->parent->ext->{'lastchild'} = 'block'; $self->{tw}->output("\n\@" . $elem->name . ' '); $templates->push_mode('single-line-mode'); } sub section_end_handler { my ($self, $elem, $templates) = @_; $templates->pop_mode(); $self->{tw}->output("\n"); } foreach my $gi (qw(chapter section subsection subsubsection majorheading chapheading heading subheading subsubheading top unnumbered unnumberedsec unnumberedsubsec unnumberedsubsubsec appendix appendixsec appendixsubsec appendixsubsubsec)) { $templates->add_rule("${gi}<", \§ion_start_handler); $templates->add_rule("${gi}>", \§ion_end_handler); } ################################################## # # Paragraph # ################################################## $templates->add_rule('para<', sub { my ($self, $elem, $templates) = @_; block_start($self, $elem); }); $templates->add_rule('para>', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n"); }); ################################################## # # Verbatim displays # ################################################ sub verbatim_block_start_handler { my ($self, $elem, $templates) = @_; block_start($self, $elem); $self->{tw}->output('@' . $elem->name . "\n"); $templates->push_mode('verbatim-mode'); } sub verbatim_block_end_handler { my ($self, $elem, $templates) = @_; $templates->pop_mode(); $self->{tw}->output("\n\@end " . $elem->name . "\n"); } foreach my $gi (qw(example display format)) { $templates->add_rule("${gi}<", \&verbatim_block_start_handler); $templates->add_rule("${gi}>", \&verbatim_block_end_handler); } $templates->add_rule('*<', 'verbatim-mode', \&illegal_element_handler); ################################################## # # Quotation blocks # ################################################## sub quotation_block_start_handler { my ($self, $elem, $templates) = @_; block_start($self, $elem); $self->{tw}->output('@' . $elem->name . "\n"); } sub quotation_block_end_handler { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n\@end " . $elem->name . "\n"); } foreach my $gi (qw(quotation cartouche flushleft flushright)) { $templates->add_rule("${gi}<", \"ation_block_start_handler); $templates->add_rule("${gi}>", \"ation_block_end_handler); } ################################################## # # Lists # ################################################## $templates->add_rule('enumerate<', sub { my ($self, $elem, $templates) = @_; block_start($self, $elem); $self->{tw}->output("\@enumerate " . $elem->attr('begin') . "\n"); }); $templates->add_rule('enumerate>', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n\@end enumerate\n"); }); $templates->add_rule('itemize<', sub { my ($self, $elem, $templates) = @_; block_start($self, $elem); if($elem->attr('markchar') ne '') { $self->{tw}->output("\@itemize ") . texi_escape($elem->attr('markchar')) . "\n"; } else { $self->{tw}->output("\@itemize \@w\n"); } }); $templates->add_rule('itemize>', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n\@end itemize\n"); }); $templates->add_rule('varlist<', sub { my ($self, $elem, $templates) = @_; block_start($self, $elem); $self->{tw}->output("\@table \@asis\n"); }); $templates->add_rule('varlist>', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n\@end table\n"); }); $templates->add_rule('varlistentry<', sub { my ($self, $elem, $templates) = @_; block_start($self, $elem); }); $templates->add_rule('term<', sub { my ($self, $elem, $templates) = @_; if($elem->parent->ext->{numterms}++) { $self->{tw}->output("\@itemx "); } else { $self->{tw}->output("\@item "); } $templates->push_mode('single-line-mode'); }); $templates->add_rule('term>', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); $self->{tw}->output("\n"); }); $templates->add_rule('listitem<', sub { my ($self, $elem, $templates) = @_; # listitem is used in both varlistentry and plain lists, # but the @item markup is supplied by in the former # case already. if($elem->parent->name ne 'varlistentry') { block_start($self, $elem); $self->{tw}->output("\@item\n"); } }); ################################################## # # Tables # ################################################# $templates->add_rule('multitable<', sub { my ($self, $elem, $templates) = @_; block_start($self, $elem); $elem->ext->{total_cols} = $elem->attr('cols'); $elem->ext->{column_data} = []; $elem->ext->{colspec_current_colnum} = 0; $elem->ext->{colnames} = {}; $elem->ext->{spannames} = {}; }); $templates->add_rule('colspec<', sub { my ($self, $elem, $templates) = @_; my $col; if($elem->attr('colnum')) { $col = $elem->attr('colnum'); } else { $col = $elem->parent->ext->{colspec_current_colnum} + 1; } $elem->parent->ext->{colspec_current_colnum} = $col; if($elem->attr('colname') ne '') { $elem->parent->ext->{colnames}->{$elem->attr('colname')} = $col; } $elem->parent->ext->{column_data}->[$col-1] = '' . $elem->attr('colwidth'); }); $templates->add_rule('spanspec<', sub { my ($self, $elem, $templates) = @_; $elem->parent->ext->{spannames}->{$elem->attr('spanname')} = [ $elem->attr('namest'), $elem->attr('nameend') ]; }); $templates->add_rule('tbody<', sub { my ($self, $elem, $templates) = @_; my $column_data = $elem->parent->ext->{column_data}; my $totalcols = $elem->parent->ext->{total_cols}; my @vspans = (); for(my $i = 0; $i < $totalcols; $i++) { push(@vspans, 0); } $elem->ext->{current_vspans} = \@vspans; my $proportsum = 0; for(my $i = 0; $i < $totalcols; $i++) { my $colwidth = $column_data->[$i]; if($colwidth eq '') { $colwidth = $column_data->[$i] = '1*'; } # Later we may support other types of width measure, # so proportional measures should be written # as "r*". $colwidth =~ s/\*\s*$//; $proportsum += $colwidth; } my $columnfractions = ''; for(my $i = 0; $i < $totalcols; $i++) { my $colwidth = $column_data->[$i]; $colwidth =~ s/\*\s*$//; $columnfractions .= $colwidth/$proportsum . ' '; } $columnfractions =~ s/ $//; $self->{tw}->output("\n\@multitable \@columnfractions $columnfractions\n"); }); $templates->add_rule('tbody>', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n\@end multitable\n"); }); $templates->add_rule('row<', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n\@item\n"); $elem->ext->{current_colnum} = 0; tbl_advance_column($elem, $self->{tw}, 0, 1); }); $templates->add_rule('row>', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n"); my $vspans = $elem->parent->ext->{current_vspans}; for(my $i = 0; $i < @$vspans; $i++) { $vspans->[$i]-- if $vspans->[$i] > 0; } }); $templates->add_rule('entry<', sub { my ($self, $elem, $templates) = @_; my $tableext = $elem->parent->parent->parent->ext; my $namest; my $nameend; if($elem->attr('spanname')) { $namest = $tableext->{spannames}->{$elem->attr('spanname')}->[0]; $nameend = $tableext->{spannames}->{$elem->attr('spanname')}->[1]; } elsif($elem->attr('namest')) { $namest = $elem->attr('namest'); $nameend = $elem->attr('nameend'); } my $relative_advance = 1; my $colnum; if(defined $namest) { my $col_st = $colnum = $tableext->{colnames}->{$namest}; my $col_end = $tableext->{colnames}->{$nameend}; $relative_advance = $col_end - $col_st + 1; } elsif($elem->attr('colname')) { $colnum = $tableext->{colnames}->{$elem->attr('colname')}; } if(defined $colnum) { tbl_advance_column($elem->parent, $self->{tw}, $colnum); } $elem->ext->{relative_advance} = $relative_advance; if($elem->attr('morerows')) { if($elem->attr('morerows') !~ /^\d+$/) { warn_location($elem, "invalid morerows value --- ignoring\n"); } else { for(my $i = 0; $i < $relative_advance; $i++) { $elem->parent->parent->ext->{current_vspans}->[ $elem->parent->ext->{current_colnum} - 1 + $i] = $elem->attr('morerows') + 1; } } } }); $templates->add_rule('entry>', sub { my ($self, $elem, $templates) = @_; tbl_advance_column($elem->parent, $self->{tw}, 0, $elem->ext->{relative_advance}); }); sub tbl_advance_column { my ($row, $tw, $new_colnum, $relative_advance) = @_; my $old_colnum = $row->ext->{current_colnum}; my $total_cols = $row->parent->parent->ext->{total_cols}; if($relative_advance) { my $vspans = $row->parent->ext->{current_vspans}; for($new_colnum = $old_colnum + $relative_advance; $new_colnum <= $total_cols && ($vspans->[$new_colnum - 1] > 0); $new_colnum++) {} } elsif($new_colnum == -1) { $new_colnum = $total_cols + 1; } $row->ext->{current_colnum} = $new_colnum; $new_colnum = $total_cols if $new_colnum > $total_cols; $old_colnum = 1 if $old_colnum == 0; $tw->output('@tab ' x ($new_colnum - $old_colnum)); } ################################################## # # Graphics # ################################################## sub image_handler { my ($self, $elem, $templates) = @_; mixed_inline_start($self, $elem); my $filename = texi_escape($elem->attr('filename')); # The @image command has to have the basename and extension # separated, so do that. my $basename; my $extension; if($filename =~ /^(.+)(\.[^\.]+)$/) { $basename = $1; $extension = $2; } else { $basename = $filename; $extension = ''; } if(defined $elem->attr('width') or defined $elem->attr('height')) { $self->{tw}->savable_output('@image{' . $basename . ',' . texi_escape($elem->attr('width')) . ',' . texi_escape($elem->attr('height')) . ',,' . $extension . '}'); } else { $self->{tw}->savable_output( '@image{' . $basename . ',,,,' . $extension . '}'); } } $templates->add_rule('image<', \&image_handler); $templates->add_rule('image<', 'single-line-mode', \&image_handler); $templates->add_rule('image<', 'saved-text-mode', \&image_handler); $templates->add_rule('image<', 'verbatim-mode', \&image_handler); $templates->add_rule('image<', 'menu-saved-text-mode', sub {}); ################################################## # # Vertical spacing # ################################################## $templates->add_rule('sp<', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n\@sp " . $elem->attr('lines') . "\n"); }); $templates->add_rule('page<', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n\@page\n"); }); ################################################## # # Indices # ################################################## $templates->add_rule('indexterm<', sub { my ($self, $elem, $templates) = @_; # We allow indexterm at block level just like # DocBook. When that happens, don't treat # it as an inline (hence no @noindent mantra). if($elem->parent->ext->{lastchild} ne 'block') { mixed_inline_start($self, $elem); } my $class = $elem->attr('class'); $class = 'c' if $class eq 'cp'; $class = 'f' if $class eq 'fn'; $class = 'v' if $class eq 'vr'; $class = 'k' if $class eq 'ky'; $class = 'p' if $class eq 'pg'; $class = 't' if $class eq 'tp'; # @cindex has to start on a new line. # I don't know if we are in a middle of an inline # command (eg @{code}) that @cindex would work # and not disrupt the inline. I'm just hoping it works. # If it doesn't, then it is a dumb limitation! $self->{tw}->output("\n\@" . $class . 'index '); # Are @-commands allowed for indexed terms? $templates->push_mode('single-line-mode'); }); $templates->add_rule('indexterm>', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode(); $self->{tw}->output("\n"); }); $templates->add_rule('printindex<', sub { my ($self, $elem, $templates) = @_; block_start($self, $elem); my $class = $elem->attr('class'); $class = 'cp' if $class eq 'c'; $class = 'fn' if $class eq 'f'; $class = 'vr' if $class eq 'v'; $class = 'ky' if $class eq 'k'; $class = 'pg' if $class eq 'p'; $class = 'tp' if $class eq 't'; $self->{tw}->output("\n\@printindex " . $class . "\n"); }); ################################################## # # Character data # ################################################## $templates->add_rule('text()', 'single-line-mode', sub { my ($self, $node, $templates) = @_; my $s = texi_escape($node->{Data}); # Collapse spaces, no newlines. $s =~ tr/ \t\n/ /s; $s = $self->{tw}->texi_arg_escape_conditional($s); $self->{tw}->savable_output($s); }); sub saved_text_mode_handler { my ($self, $node, $templates) = @_; my $s = texi_escape($node->{Data}); # Collapse spaces, no newlines. $s =~ tr/ \t\n/ /s; $s = $self->{tw}->texi_arg_escape_conditional($s); $self->{tw}->savable_output($s); } sub menu_saved_text_mode_handler { my ($self, $node, $templates) = @_; my $s = texi_escape($node->{Data}); # Collapse spaces, no newlines. $s =~ tr/ \t\n/ /s; $self->{tw}->savable_output($s); } $templates->add_rule('text()', 'saved-text-mode', \&saved_text_mode_handler); $templates->add_rule('text()', 'menu-saved-text-mode', \&menu_saved_text_mode_handler); $templates->add_rule('text()', 'menu-mode', sub {}); $templates->add_rule('text()', 'verbatim-mode', sub { my ($self, $node, $templates) = @_; my $s = texi_escape($node->{Data}); $self->{tw}->print($s); }); $templates->add_rule('text()', sub { my ($self, $node, $templates) = @_; my $s = texi_escape($node->{Data}); mixed_inline_start($self, $node) unless $s =~ /^[ \t\r\n]+$/; # Whitespace used to separate element # in a non-mixed content model should # not cause any spurious breaks. $self->{tw}->print_ws($s); }); ################################################## # # Comments # ################################################## $templates->add_rule('comment<', sub { my ($self, $elem, $templates) = @_; $self->{tw}->output("\n"); $self->{tw}->output_buffer_push(); $templates->push_mode('comment-mode'); }); $templates->add_rule('comment>', sub { my ($self, $elem, $templates) = @_; $templates->pop_mode('comment-mode'); foreach my $line (split(/\n/, $self->{tw}->output_buffer_pop())) { $self->{tw}->output("\@c $line\n"); } }); $templates->add_rule('text()', 'comment-mode', sub { my ($self, $node, $templates) = @_; my $s = $node->{Data}; $self->{tw}->savable_output($s); }); ################################################## # # Processing instructions # ################################################## $templates->add_rule('processing-instruction()', sub { my ($self, $node, $templates) = @_; if($node->{Target} eq 'texinfo') { my $data = $node->{Data}; $data =~ s/\ /\n/g; $data =~ s/\ /\n/g; $self->{tw}->output($data); } }); ################################################## # # Catch unknown elements # ################################################## $templates->add_rule('*<', \&illegal_element_handler); sub illegal_element_handler { my ($self, $node, $templates) = @_; $templates->warn_location($node, "element not allowed here"); }; ############################################################################# # # Main # ############################################################################# package main; use XML::SAX::ParserFactory; unshift(@ARGV, '-') unless @ARGV; my $parser = XML::SAX::ParserFactory->parser( DocumentHandler => $texixml::templates); foreach my $file (@ARGV) { $texixmldata->{inputfile} = $file; if($file eq '-') { $parser->parse_file(\*STDIN); } else { $parser->parse_uri($file); } } docbook2X-0.8.8/test/0000777000175000017500000000000010572276011011346 500000000000000docbook2X-0.8.8/test/mass/0000777000175000017500000000000010572276010012310 500000000000000docbook2X-0.8.8/test/mass/sep-man.xsl0000644000175000017500000000366210422044753014324 00000000000000 docbook2X-0.8.8/test/mass/test.pl0000755000175000017500000001446510422454206013554 00000000000000#!/usr/bin/perl # This script tests docbook2X by mass-converting a set of XML DocBook # documents to man pages and Texinfo documents. The author # uses this script on Doclifter-generated refentry documents. # # This script differs from ../doclifter/test.pl # in that it does not invoke doclifter directly # (newer versions of doclifter has a mass conversion command, # manlifter). It also works much faster, as xsltproc and # db2x_manxml/db2x_texixml are only loaded once for each # set of documents. # # It will automatically log any syntactical errors, but other sorts # of errors (i.e. incorrect rendering) will have to be found with # manual insepection. Timings of the conversion process # are also printed out. # # To use this script, the following programs need to be installed: # * perl # * libxslt (xsltproc) XSLT processor # * xmllint from libxml2 # * makeinfo from Texinfo package # * groff from GNU Troff package # # IMPORTANT: # If the executables of docbook2X are not in the directory tree # that this script lives, then you have to modify the paths below # before running this script. # use FindBin qw($RealBin); my $db2x_home = "${RealBin}/../../"; # build directory if not the same as source dir. my $db2x_build = $db2x_home; use strict; use Getopt::Long; my $mandir_sect = ''; my $tag = ''; my $type = 'man'; my $components = 'dxu'; Getopt::Long::Configure ("bundling"); my $res = GetOptions ("tag|t=s" => \$tag, # tag for log filenames "s=s" => \$type, "c=s" => \$components); die if !$res; $tag = 'TEST' if $tag eq ''; open(STDERR, "| tee -a $tag.log"); my @dirs = @ARGV; # Current timings; see process_timings subroutine my $current_cutm = 0; my $current_cstm = 0; foreach my $dir (@dirs) { $dir =~ s/\/$//; # my @sources = glob("$dir/*.xml"); if($type eq 'man') { if($components =~ /d/) { # DocBook to Man-XML step my $cmd = "xsltproc --stringparam doctype-system ${db2x_home}dtd/Man-XML --stringparam path $dir ${db2x_home}test/mass/sep-man.xsl $dir/*.xml"; my $err = system3($cmd); if($err) { next; } } if($components =~ /D/) { $ENV{db2x_dtd} = "${db2x_home}dtd/Man-XML"; my $cmd = "xsltproc --stringparam lowercase-file 1 ${db2x_home}xslt/man/docbook.xsl $dir/*.xml | ${db2x_home}test/mass/collect-manpageset.sed > $dir/$tag.Mxml"; my $err = system3($cmd); if($err) { next; } } if($components =~ /v/) { my $cmd = "xmllint --stream --valid $dir/*.mxml"; my $err = system3($cmd); if($err) { next; } } if($components =~ /V/) { my $cmd = "xmllint --stream --valid $dir/$tag.Mxml"; my $err = system3($cmd); if($err) { next; } } if($components =~ /x/) { # Man-XML to man pages step my $cmd = "${db2x_build}perl/db2x_manxml --list-files --output-dir=$dir --encoding=utf-8 $dir/*.mxml"; my $err = system3($cmd); if($err) { next; } } if($components =~ /X/) { # Man-XML to man pages step my $cmd = "${db2x_build}perl/db2x_manxml --list-files --output-dir=$dir --encoding=utf-8 $dir/$tag.Mxml"; my $err = system3($cmd); if($err) { next; } } if($components =~ /y/) { # DocBook to Man-XML step my $cmd = "xsltproc --stringparam output-dir $dir ${db2x_home}xslt/backend/db2x_manxml.xsl $dir/*.mxml"; my $err = system3($cmd); if($err) { next; } } if($components =~ /Y/) { # DocBook to Man-XML step my $cmd = "xsltproc --stringparam output-dir $dir ${db2x_home}xslt/backend/db2x_manxml.xsl $dir/$tag.Mxml"; my $err = system3($cmd); if($err) { next; } } if($components =~ /u/) { # utf8trans step my $cmd = "${db2x_build}utf8trans/utf8trans -m ${db2x_home}charmaps/roff.charmap $dir/*.[1-9]*"; my $err = system3($cmd); if($err) { next; } } if($components =~ /g/) { # Test by running through groff my $cmd = "groff -t -Tutf8 -w all -man $dir/*.[1-9]* >$dir/$tag.g"; my $err = system3($cmd); if($err) { next; } } if($components =~ /h/) { # Test by running through ../htest-man.pl my $cmd = "perl ${db2x_home}test/htest-man.pl $dir/*.[1-9]*"; my $err = system3($cmd); if($err) { next; } } } elsif($type eq 'texi') { if($components =~ /d/) { # DocBook to Texi-XML step my $cmd = "xsltproc --stringparam doctype-system ${db2x_home}dtd/Texi-XML --stringparam path $dir ${db2x_home}test/mass/sep-texi.xsl $dir/*.xml"; my $err = system3($cmd); if($err) { next; } } if($components =~ /v/) { my $cmd = "xmllint --stream --valid $dir/*.txml"; my $err = system3($cmd); if($err) { next; } } if($components =~ /x/) { # Texi-XML to Info step my $cmd = "${db2x_build}perl/db2x_texixml --list-files --output-dir=$dir --encoding=utf-8//TRANSLIT $dir/*.txml"; my $err = system3($cmd); if($err) { next; } } if($components =~ /u/) { # utf8trans step my $cmd = "${db2x_build}utf8trans/utf8trans -m ${db2x_home}charmaps/texi.charmap $dir/*.texi"; my $err = system3($cmd); if($err) { next; } } if($components =~ /g/) { # Test by running through makeinfo my $cmd = "cd $dir && makeinfo --no-split *.texi"; my $err = system3($cmd); if($err) { next; } } } } sub system3 { my $cmd = shift @_; print STDERR "<<< starting executing $cmd >>>\n"; my $err = system2($cmd); my ($cutm,$cstm) = process_timings(); print STDERR " user ${cutm}s, system ${cstm}s\n"; if($err) { print STDERR "<<< error executing $cmd >>>\n\n"; } else { print STDERR "<<< finished executing $cmd >>>\n\n"; } return $err; } sub system2 { system(@_); if ($? == -1) { die "failed to execute: $!\n"; } elsif ($? & 127) { printf "child died with signal %d, %s coredump\n", ($? & 127), ($? & 128) ? 'with' : 'without'; return -1; } else { return $? >> 8; } } sub process_timings() { # utm means "user time" # stm means "system time", etc. # my ($utm,$stm,$new_cutm,$new_cstm) = times; my $last_cutm = $new_cutm - $current_cutm; my $last_cstm = $new_cstm - $current_cstm; $current_cutm = $new_cutm; $current_cstm = $new_cstm; return ($last_cutm, $last_cstm); } docbook2X-0.8.8/test/mass/sep-texi.xsl0000644000175000017500000000355310422044753014521 00000000000000 docbook2X-0.8.8/test/mass/collect-manpageset.sed0000755000175000017500000000120210421566742016475 00000000000000#!/bin/sed -f # Wrap succession of documents in one manpageset element # Note 1: We assume UTF-8 encoding everywhere, which is what # the stylesheets generate (and there is no reason to change it). # Note 2: The location of the DTD should be in the env # environment variable db2x_dtd 1 { i\ \ " i\ } $a\ # Remove any XML declarations in the sub-documents //d docbook2X-0.8.8/test/sgml/0000777000175000017500000000000010572276011012310 500000000000000docbook2X-0.8.8/test/sgml/Makefile.am0000644000175000017500000000200110422444774014260 00000000000000# vim: noet sw=8 # ---------------------------------------------------------------------- # $Id: Makefile.am,v 1.3 2006/04/22 15:21:32 stevecheng Exp $ # include $(top_srcdir)/docbuild.mk SGML_FILES = docbook2man-sgmlspl.sgml MXML_FILES = docbook2man-sgmlspl.mxml MAN_FILES = docbook2man-sgmlspl.1 .PHONY: installcheck man # We require installcheck, because the sgml2xml-isoent # installed location is hard-coded into the db2x_xsltproc library. # It isn't worth it to make it a configurable option. # # Note that we don't write commands in this Makefile # to convert to XML, since the whole point is to test # that db2x_xsltproc is calling sgml2xml-isoent properly. installcheck: man man: $(MAN_FILES) %.mxml: %.sgml $(db2x_xsltproc) --sgml -s man -o $@ $< %.1: %.mxml $(db2x_manxml) $< if HAVE_GROFF $(GROFF) -man -Tutf8 -z -w all $@ 2>&1 | grep "warning: " ; test $$? -eq 1 endif $(db2x_perl) $(srcdir)/../htest-man.pl $@ CLEANFILES = $(MXML_FILES) $(MAN_FILES) EXTRA_DIST = $(SGML_FILES) .DELETE_ON_ERROR: docbook2X-0.8.8/test/sgml/Makefile.in0000644000175000017500000002426310572275764014316 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # vim: noet sw=8 # ---------------------------------------------------------------------- # $Id: Makefile.am,v 1.3 2006/04/22 15:21:32 stevecheng Exp $ # # ---------------------------------------------------------------------- # # Common defines for building documentation # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/docbuild.mk subdir = test/sgml ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/utf8trans/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GROFF = @GROFF@ HAVE_GROFF_FALSE = @HAVE_GROFF_FALSE@ HAVE_GROFF_TRUE = @HAVE_GROFF_TRUE@ HAVE_HTML_XSL_FALSE = @HAVE_HTML_XSL_FALSE@ HAVE_HTML_XSL_TRUE = @HAVE_HTML_XSL_TRUE@ HAVE_TIDY_FALSE = @HAVE_TIDY_FALSE@ HAVE_TIDY_TRUE = @HAVE_TIDY_TRUE@ HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@ HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@ ICONV = @ICONV@ INSTALLED_CHARMAP_ROFF = @INSTALLED_CHARMAP_ROFF@ INSTALLED_CHARMAP_TEXI = @INSTALLED_CHARMAP_TEXI@ INSTALLED_DB2X_MANXML = @INSTALLED_DB2X_MANXML@ INSTALLED_DB2X_TEXIXML = @INSTALLED_DB2X_TEXIXML@ INSTALLED_DB2X_XSLTPROC = @INSTALLED_DB2X_XSLTPROC@ INSTALLED_SGML2XML_ISOENT = @INSTALLED_SGML2XML_ISOENT@ INSTALLED_STYLESHEETS_CATALOG = @INSTALLED_STYLESHEETS_CATALOG@ INSTALLED_UTF8TRANS = @INSTALLED_UTF8TRANS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA = @JAVA@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ OSX = @OSX@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RESOLVER_JARS = @RESOLVER_JARS@ SAXON_JARS = @SAXON_JARS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SX = @SX@ TIDY = @TIDY@ VERSION = @VERSION@ XALAN_JARS = @XALAN_JARS@ XMLLINT = @XMLLINT@ XSLTPROC = @XSLTPROC@ XSLT_PROCESSOR = @XSLT_PROCESSOR@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ db2x_perl = $(PERL) # Location of docbook2X programs stylesheets_catalog = $(top_srcdir)/xslt/catalog.xml utf8trans = $(top_builddir)/utf8trans/utf8trans db2x_texixml = $(db2x_perl) $(top_builddir)/perl/db2x_texixml --utf8trans-program=$(utf8trans) --utf8trans-map=$(top_srcdir)/charmaps/texi.charmap db2x_manxml = $(db2x_perl) $(top_builddir)/perl/db2x_manxml --utf8trans-program=$(utf8trans) --utf8trans-map=$(top_srcdir)/charmaps/roff.charmap db2x_xsltproc = $(top_builddir)/perl/db2x_xsltproc -C $(stylesheets_catalog) SGML_FILES = docbook2man-sgmlspl.sgml MXML_FILES = docbook2man-sgmlspl.mxml MAN_FILES = docbook2man-sgmlspl.1 CLEANFILES = $(MXML_FILES) $(MAN_FILES) EXTRA_DIST = $(SGML_FILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/docbuild.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/sgml/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu test/sgml/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../.. @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-info-am .PHONY: installcheck man # We require installcheck, because the sgml2xml-isoent # installed location is hard-coded into the db2x_xsltproc library. # It isn't worth it to make it a configurable option. # # Note that we don't write commands in this Makefile # to convert to XML, since the whole point is to test # that db2x_xsltproc is calling sgml2xml-isoent properly. installcheck: man man: $(MAN_FILES) %.mxml: %.sgml $(db2x_xsltproc) --sgml -s man -o $@ $< %.1: %.mxml $(db2x_manxml) $< @HAVE_GROFF_TRUE@ $(GROFF) -man -Tutf8 -z -w all $@ 2>&1 | grep "warning: " ; test $$? -eq 1 $(db2x_perl) $(srcdir)/../htest-man.pl $@ .DELETE_ON_ERROR: # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: docbook2X-0.8.8/test/sgml/docbook2man-sgmlspl.sgml0000644000175000017500000001424610103546061016767 00000000000000 docbook2man-sgmlspl 1 docbook2man-spec.pl docbook2man-spec_makelinks Convert DocBook to man pages sgmlspl docbook2man-spec.pl nsgmls sgml document | sgmlspl docbook2man-spec.pl options docbook2man-spec_makelinks < manpage.links Description docbook2man-spec.pl Man pages, converting to docbook2man-spec.pl produces man pages from SGML DocBook documents. docbook2man-spec.pl must be used with sgmlspl1 , a Perl SGML processor script. It reads ESIS, such as that produced by nsgmls 1, from standard input. The content in refentry is converted. The man pages are written to the current directory. If a particular refentry does not have any refmeta information, then the man page will be written to standard output. An additional file manpage.links will contains any aliases of the man pages generated. This file is in the format: man page [tab] alias manpage The script docbook2man-spec_makelinks creates alias man pages that include the content of the principal man page using the .so request. If the source document has any forward references (xrefs to man pages in the same document), then docbook2man-spec.pl may have to be invoked twice to completely resolve them. The manpage.refs file keeps track of these cross references. New projects are recommended to use docbook2manxml1 from docbook2X (a separate package) instead, which is superior to this tool. Options The source document usually indicates the sections that each man page should belong to (with manvolnum in refmeta). In case the source document does not indicate man-page sections, this option specifies the default. Set date as the date to use for man pages that do not specify the date (using docinfo/date markup). If this option is not specified, the current date is used. The date must be given as one argument; i.e. shell quoting may have to be used for dates with spaces. When is in effect, man-page file names (specified using refentrytitle) are case-folded to lowercase. Otherwise, no case-folding will be performed. The latter is the default. When citing other man pages, the man-page section is either given as is, or has the letters stripped from it, citing only the number of the section (e.g. section 3x becomes 3). This option specifies which style. The default is . Examples Converting DocBook source to man pages $ nsgmls mydoc.sgml | sgmlspl docbook2man-spec.pl $ docbook2man-spec_makelinks <manpage.refs Limitations This script fails if nsgmls is parsing a file with the XML SGML declaration, because SGML folds identifiers to uppercase while XML does not, and XML DocBook uses all lowercase. Thus XML files must be parsed as SGML. The code is obfuscated. Some types of markup are incorrectly handled, according to standard processing expectations. docbook2X-0.8.8/test/doclifter/0000777000175000017500000000000010572276010013320 500000000000000docbook2X-0.8.8/test/doclifter/test.pl0000755000175000017500000000474010106737223014561 00000000000000#!/usr/bin/perl # This script tests docbook2X by converting existing man pages # to DocBook XML using Eric S. Raymond's doclifter, # and then running docbook2man and docbook2texi on the result. # # It will automatically log any syntactical errors, but other sorts # of errors (i.e. incorrect rendering) will have to be found with # manual insepection. # # You need to have installed both docbook2X and doclifter # to run this script. # # The option --mandir=n tells the script to go convert all the # man pages in section n that are presently installed on your # system. Warning: this will take a very long time. # use strict; use Getopt::Long; my $mandir_sect = ''; my $tag = ''; my $res = GetOptions ("tag|t=s" => \$tag, # tag for log filenames "mandir=s" => \$mandir_sect); die if !$res; $tag .= '-' if $tag ne ''; my @source_man_files = @ARGV; if($mandir_sect ne '') { @source_man_files = glob("/usr/share/man/man${mandir_sect}/*"); } elsif(@ARGV == 0) { die "Please specify some test man pages\n"; } open(DOCLIFTER_FAIL_LOG, ">>${tag}doclifter-fail.log") or die "can't open DOCLIFTER_FAIL_LOG: $!"; open(MAN_FAIL_LOG, ">>${tag}man-fail.log") or die "can't open MAN_FAIL_LOG: $!"; open(TEXI_FAIL_LOG, ">>${tag}texi-fail.log") or die "can't open TEXI_FAIL_LOG: $!"; open(GOOD_LOG, ">>${tag}good.log") or die "can't open GOOD_LOG: $!"; open(STDERR, "| tee -a ${tag}errors.log"); foreach my $s (@source_man_files) { my $b = $1 if $s =~ /([^\.\/]+\.[1-8][a-zA-Z]*)(\.gz)?$/; # base name my $x = "${b}.xml"; my $m = "${b}"; my $i = "${b}.info"; print STDERR "<<<<<<<<<<< $s >>>>>>>>>>>>>>>\n"; my $e = system2("zcat -f $s | doclifter > $x"); if($e == 2) { unlink $x; next; } elsif($e != 0) { print DOCLIFTER_FAIL_LOG "$s\n"; next; } if(system2("docbook2man --to-stdout $x > $m") != 0) { print MAN_FAIL_LOG "$s\n"; } if(system2("docbook2texi --info --to-stdout $x > $i") != 0) { print TEXI_FAIL_LOG "$s\n"; } print GOOD_LOG "$s\n"; } close(DOCLIFTER_FAIL_LOG); close(MAN_FAIL_LOG); close(TEXI_FAIL_LOG); close(GOOD_LOG); sub system2 { system(@_); if ($? == -1) { die "failed to execute: $!\n"; } elsif ($? & 127) { printf "child died with signal %d, %s coredump\n", ($? & 127), ($? & 128) ? 'with' : 'without'; return -1; } else { return $? >> 8; } } docbook2X-0.8.8/test/complete-manuals/0000777000175000017500000000000010572276011014614 500000000000000docbook2X-0.8.8/test/complete-manuals/xml-catalogs-spec.xml0000644000175000017500000026576010420235405020607 00000000000000 ]>
$Id: xml-catalogs-spec.xml,v 1.1 2006/04/15 18:27:17 stevecheng Exp $ &name; &version; XML HTML PDF http://www.oasis-open.org/committees/entity/specs XML Catalogs NormanWalsh Sun Sun Microsystems, Inc.
Norman.Walsh@Sun.COM
03 Jun 2003 2000200120022003 OASIS Open, Inc. All Rights Reserved. Abstract The requirement that all external identifiers in XML documents must provide a system identifier has unquestionably been of tremendous short-term benefit to the XML community. It has allowed a whole generation of tools to be developed without the added complexity of explicit entity management. However, the interoperability of XML documents has been impeded in several ways by the lack of entity management facilities: External identifiers may require resources that are not always available. For example, a system identifier that points to a resource on another machine may be inaccessible if a network connection is not available. External identifiers may require protocols that are not accessible to all of the vendors' tools on a single computer system. An external identifier that is addressed with the ftp: protocol, for example, is not accessible to a tool that does not support that protocol. It is often convenient to access resources using system identifiers that point to local resources. Exchanging documents that refer to local resources with other systems is problematic at best and impossible at worst. The problems involved with sharing documents, or packages of documents, across multiple systems are large and complex. While there are many important issues involved and a complete solution is beyond the current scope, the OASIS membership agrees upon the enclosed set of conventions to address a useful subset of the complete problem. To address these issues, this &standard; defines an entity catalog that maps both external identifiers and arbitrary &uriref;s to &uriref;s. Status This Committee Specification was approved for publication by the OASIS Entity Resolution Technical Committee. It represents the consensus of the committee. Please send comments on this specification to the entity-resolution-comment@lists.oasis-open.org list. To subscribe, send an email message to entity-resolution-comment-request@lists.oasis-open.org with the word subscribe as the body of the message. Editorial revisions from 22 Apr 2003 telcon 22 Apr 2003 Editorial revisions; reverted to Working Draft for review 18 Apr 2003 Editorial revisions 21 Feb 2003 Committee Specification 24 Oct 2002 Working Draft 18 Oct 2002 Committee Specification 06 Aug 2001
Introduction In order to make optimal use of the information about an XML external resource, there needs to be some interoperable way to map the information in an XML external identifier into a &uriref; for the desired resource. This &standard; defines an entity catalog that handles two simple cases: Mapping an external entity's public identifier and/or system identifier to a &uriref;. Mapping the &uriref; of a resource (a namespace name, stylesheet, image, etc.) to another &uriref;. Though it does not handle all issues that a combination of a complete entity manager and storage manager addresses, it simplifies both the use of multiple products in a great majority of cases and the task of processing documents on different systems. This entity catalog is designed to be compatible with catalogs as mandated by the Technical Committee .
Terminology The key words must, must not, required, shall, shall not, should, should not, recommended, may, and optional in this &standard; are to be interpreted as described in . Note that for reasons of style, these words are not capitalized in this document. The terms &uri; and &uriref; are to be interpreted as described in . The term external identifier is to be interpreted as defined in Production 75 of . External identifiers have two parts, an optional public identifier and a system identifier. The terms public identifier and system identifier in this &standard; always refer to the respective part of an external identifier. All system identifiers are &uriref;s, but not all &uriref;s are system identifiers. A system identifer is always logically part of an external identifier, even when the public identifer is not provided. The logical input to a catalog processor is an external identifier (some combination of public and system identifiers) or a &uriref;. The logical output of the catalog processor is a &uriref;. (This &standard; does not attempt to define an API for catalog processors so the logical interfaces and the practical interfaces may differ.) A catalog is a logical structure that contains mapping information. A catalog may be physically contained in one or more catalog entry files. A catalog entry file is a document that contains a set of catalog entries.
An Entity Catalog This &standard; defines an application-independent entity catalog that maps external identifiers and &uriref;s to (other) &uriref;s. It also defines a format for catalog entry files in terms of and . The principal task of a catalog processor is to find entries in the catalog that match the input provided and return the associated &uriref; as the output. The first such match is always used, and there is no requirement for the catalog processor to search for additional matches. This catalog is used by an application's entity manager. This &standard; does not dictate when an entity manager should access this catalog; for example, an application may attempt other mapping algorithms before or after accessing this catalog. The catalog is effectively an ordered list of (one or more) catalog entry files. It is up to the application to determine the ordered list of catalog entry files to be used as the logical catalog. (This &standard; uses the term catalog entry file to refer to one component of a logical catalog even though a catalog entry file can be any kind of storage object or entity including—but not limited to—a table in a database, some object identified by a &uriref;, or some dynamically generated set of catalog entries.) Each entry in the catalog associates a &uriref; with information about an external reference that appears in an XML document. For example, the following are possible catalog entries that associate a &uriref; with a public identifier: ]]> This &standard; defines the following catalog entry types: catalog, delegatePublic, delegateSystem, delegateURI, group, nextCatalog public, rewriteSystem, rewriteURI, system, and uri. In order to be conformant with this &standard;, an application must implement all of these entry types with the semantics described herein. The namespace name defined by this &standard; is &namespaceURI;. This &standard; reserves all elements and attributes from its namespace for current and future use. In addition, unqualified attributes on elements in its namespace, other than the attributes explicitly described in this &standard;, are reserved for future use. To provide for possible future extension and other applications of this catalog, its format allows for other information indicated by elements and attributes from namespaces other than the one defined by this &standard;.
Using Catalogs A catalog can be used in two different, independent ways: (1) it can be used to locate the replacement text for an external entity, or (2) it can be used to locate an alternate &uriref; for a resource. Although these functions are similar in nature, they are distinct and exercise two different sets of entries in the catalog. In either case, the following entries in the catalog are interpreted as follows: The catalog entry is the root of a catalog entry file. All other entries occur within this catalog element. The group entry is simply a wrapper on which prefer () and xml:base () can occur. It has no other effect on the entries that it contains. When examining entries in the catalog sequentially, the presence of a group entry does not effect the order in which they are examined. The nextCatalog entry indicates that an entity manager must use the associated &uriref; to locate an additional catalog entry file to be processed after the current catalog entry file. The nextCatalog entry can be used to insert a new catalog entry file into the current list of catalog entry files. The catalog attribute on a nextCatalog entry is used to locate another catalog entry file that is inserted into the catalog entry file list after the current catalog entry file. Multiple nextCatalog entries are allowed, and the referenced catalog entry files are inserted into the existing working catalog entry file list in the order in which they occur in the current catalog entry file (document order). Catalog entry files identified by nextCatalog entries will only be examined after all other entries in the current catalog entry file have been considered and none of them provide a match for the current input.
External Identifier Entries External Identifiers, as defined in [Production 75] of , identify the external subset, entities, and notations of an XML document. They are not used to identify other resources such as namespace names and stylesheets; URI entries are used for that purpose. For the purposes of resolving external identifiers, a catalog-based resolver considers the following entries: The public entry indicates that an entity manager must use the associated &uriref; to locate the replacement text for an entity with the specified public identifier. The system entry indicates that an entity manager must use the associated &uriref; to locate the replacement text for an entity with the specified system identifier. The rewriteSystem entry indicates that an entity manager must rewrite the specified system identifier by replacing the matching prefix with the associated rewrite prefix. The resulting string must be used to locate the replacement text. The delegatePublic entry indicates that external identifiers with a public identifier that starts with the specified string must be resolved by considering the catalog specified by the associated &uriref;. The delegateSystem entry indicates that external identifiers with a system identifier that starts with the specified string must be resolved by considering the catalog specified by the associated &uriref;. Although system identifiers are assumed to be URI reference[s]…meant to be dereferenced to obtain input for the XML processor to construct the entity's replacement text, in some circumstances (such as when the document was generated on another system, when the document was generated in another location on the same system, or when some files referenced by system identifiers have moved since the document was generated), the specified system identifiers are not always the best identifiers for the replacement text. For this or other reasons, it may be desirable to prefer the public identifier over the system identifier in determining the entity's replacement text. Therefore, this &standard; defines two modes for searching the catalog: prefer system identifier mode and prefer public identifier mode. If system identifiers are preferred, a system identifier was provided, and there is no matching system or rewriteSystem type entry, then the system identifier given in the external identifier is used as the &uriref; to locate the entity's replacement text regardless of any public identifier given in the external identifier. This &standard; does not specify what happens if a preferred system identifier does not identify an accessible storage object; an application may look up the public identifier and/or entity name to find another &uriref;, or it may simply report an error. An application should at least have the option of issuing a warning if the system identifier fails in this mode. If public identifiers are preferred, a public identifier was specified, and there is no matching system or rewriteSystem type entry, the system identifier given in the external identifier is used as the &uriref; to locate the entity's replacement text only if no mapping can be found in the catalog for the public identifier.
The <sgmltag class="attribute">prefer</sgmltag> attribute The prefer attribute can be used on catalog and group entry types to indicate, for the enclosed set of catalog entries, if system or public entry matches are preferred. Each occurrence of a prefer attribute specifies the search strategy mode for entries contained within the catalog or group element on which it occurs. A public or delegatePublic entry encountered when prefer is public will be considered for possible matching whether or not the external identifier has an explicit system identifier. A public or delegatePublic entry encountered when prefer is system will be ignored during lookups for which the external identifier has an explicit system identifier. No other entry types are affected by the prefer attribute. The initial search strategy in force at the beginning of each catalog entry file depends on the preference as determined by the application. An application must provide some way (e.g., a runtime argument, environment variable, preference switch) that allows the user to specify which of these modes to use in the absence of any occurrence of the prefer attribute on the catalog entry. When doing a catalog lookup, an entity manager generally uses whatever is available from among the entity declaration's system identifier and public identifier to find catalog entries that match the given information. A match in one catalog entry file will take precedence over any match in a later catalog entry file (and, in fact, the entity manager need not process subsequent catalog entry files once a match has occurred).
URI Entries URI references that are not part of an external identifier, such as namespace names, stylesheets, included files, graphics, and hypertext references, simply identify other resources. They are resolved using URI entries as described below. The input to a resolver that locates resources is simply the original &uriref;. For the purposes of resolving &uriref;s, a catalog-based resolver considers the following entries: The uri entry indicates that an entity manager must use the associated &uriref; to locate the resource. The rewriteURI entry indicates that an entity manager must rewrite the specified &uriref; by replacing the matching prefix with the associated rewrite prefix. The resulting string must be used to locate the resource. The delegateURI entry indicates that a &uriref; that starts with the specified string must be resolved by considering the catalog specified by the associated &uriref;. As when resolving &uriref;s, a match in one catalog entry file will take precedence over any match in a later catalog entry file (and, in fact, the entity manager need not process subsequent catalog entry files once a match has occurred).
Rewrite Entries Rewrite entries are provided as a convenience for performing redirection of a whole set of entities with a single catalog entry. Typical uses are website mirroring and dealing with fragment identifiers. If the entire website at http://example.com/ has been mirrored onto your local system in file:///share/mirrors/example/, it is likely that you want any system identifier reference to the website to be redirected to your local system. One way of doing this would be to create a system entry for every relevant identifier. If there are many entities on the website, this may be tedious. Instead, a single rewrite entry can be used: ]]> Similarly, if you have a large number of references to a single document using many different fragment identifiers, it may be tedious to construct uri entries for every URI reference if the base document moves. Again, a single rewrite can be used instead: ]]>
An XML Catalog Example The catalog files in and are complete examples of XML Catalog files. A DocBook XML Catalog File: <filename>docbook.xml</filename>. <!DOCTYPE catalog PUBLIC "-//OASIS//DTD XML Catalogs V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public"> <group xml:base="http://www.oasis-open.org/docbook/xml/4.1.2/"> <public publicId="-//OASIS//DTD DocBook XML V4.1.2//EN" uri="docbookx.dtd"/> <public publicId="-//OASIS//ENTITIES DocBook XML Notations V4.1.2//EN" uri="dbnotnx.mod"/> <public publicId="-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN" uri="dbcentx.mod"/> <public publicId="-//OASIS//ELEMENTS DocBook XML Information Pool V4.1.2//EN" uri="dbpoolx.mod"/> <public publicId="-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.1.2//EN" uri="dbhierx.mod"/> <public publicId="-//OASIS//ENTITIES DocBook XML Additional General Entities V4.1.2//EN" uri="dbgenent.mod"/> <public publicId="-//OASIS//DTD DocBook XML CALS Table Model V4.1.2//EN" uri="calstblx.dtd"/> </group> <public publicId="-//OASIS//DTD DocBook MathML Module V1.0//EN" uri="http://www.oasis-open.org/docbook/xml/mathml/1.0/dbmathml.dtd"/> <nextCatalog catalog="stylesheets.xml"/> </catalog> A Stylesheet XML Catalog File: <filename>stylesheet.xml</filename>. <!DOCTYPE catalog PUBLIC "-//OASIS//DTD XML Catalogs V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public"> <!-- Circumvent relative URI in spec.xsl that doesn't work online --> <uri name="http://www.oasis-open.org/committes/tr.xsl" uri="http://www.oasis-open.org/committes/entity/stylesheets/base/tr.xsl"/> </catalog> Together, these two catalog files provide sufficient resolution information to parse and format the XML source for this &standard;.
Catalog Entry Files Applications conforming to this &standard; must provide some (implementation dependent) mechanism that allows the user to establish the initial list of catalog entry files. This may be a preferences dialog, an environment variable, an application properties file, or any other appropriate mechanism. All conforming processors must accept and process catalog entry files written in the format described by this specification. They may also accept and process other formats, but they are not required to do so. If an application encounters a catalog entry file in a format that it does not understand, it must treat it as a resource failure.
Document Control of Catalog Entry Files If a document contains external identifiers or &uriref;s, it may be useful for the document to identify a catalog that is likely to aid in the resolution of those references. For example, XML documents stored on the www.example.com server may wish to indicate that http://www.example.com/catalog is a useful public catalog to use when parsing them. This &standard; defines the processing instruction oasis-xml-catalog for this purpose. The oasis-xml-catalog processing instruction has a single pseudo-attribute, catalog, that identifies a single catalog entry file. If a document contains one or more oasis-xml-catalog processing instruction(s), the catalog entry file(s) identified must be used during resolution of external identifiers and &uriref;s within that document. Catalog entry files referenced by the processing instruction are added to the end of any system- or user-defined catalog entry file list. For example, in <?xml version="1.0"?> <?oasis-xml-catalog catalog="http://example.com/catalog.xml"?> <!DOCTYPE doc PUBLIC "-//Example//DTD Document V1.0//EN" "http://www.example.com/schema/doc.dtd"> ... The URI http://example.com/catalog.xml is added to the end of the of the list of catalog entry files used for resolution within this document. The following constraints apply: The oasis-xml-catalog processing instruction must appear in the prologue after the XML declaration and before the start of the document type declaration. It is an error for the processing instruction to occur in the internal subset or after the document type declaration. Processors should recover from the error by ignoring any processing instructions that occur after the start of the document type declaration. Likewise, it is an error for the processing instruction to occur after other processing instructions that contain &uriref;s, such as stylesheet processing instructions (). Applications should recover by ignoring catalog entry files mentioned in such oasis-xml-catalog processing instructions. If more than one catalog processing instruction is present, each catalog entry file specified is added to the end of the catalog entry file list. If the catalog entry file is specified with a relative URI, it is relative to the base URI of the document that contains the processing instruction. The URI that identifies the catalog entry file is not subject to catalog resolution. Catalog-aware applications should support the oasis-xml-catalog processing instruction. If the processing instruction is supported, they must provide a facility which allows a user to request that all oasis-xml-catalog processing instructions be ignored. One common idiom for controlling parser features is the use of a feature URI. This &standard; defines the following feature URI for this purpose: http://www.oasis-open.org/committees/entity/features/catalog-pi If this feature is disabled, oasis-xml-catalog processing instructions must be ignored.
<quote>Bootstrapping</quote> Catalog Resolution XML Catalog files are XML documents and as such may contain external identifiers and URI references. Conformant processors are not required to be able to perform resolution of those identifiers through the XML Catalog. Implementations are encouraged to provide some sort of bootstrapping functionality to resolve external identifiers and URIs that the implementation needs to load catalog entry files. For example, presented with the following catalog entry file: <!DOCTYPE catalog PUBLIC "-//OASIS//DTD XML Catalogs V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public"> <public publicId="-//OASIS//DTD DocBook XML V4.1.2//EN" uri="docbookx.dtd"/> </catalog> an implementation should recognize the standard external identifier used on the catalog and provide the parser with access to that DTD in some implementation defined way if it's necessary. Users can avoid any problems that might arise by limiting the external identifiers and URIs used to those that do not need resolution. Note that this only applies to external identifiers and URIs that must be resolved in order to load the catalog entry file. For example, if a local copy of the XML Catalog DTD is available at /etc/xml/catalog.dtd, the problems of resolution associated with loading this file can be avoided by pointing directly to that local copy in the catalog entry file: <!DOCTYPE catalog PUBLIC "-//OASIS//DTD XML Catalogs V1.0//EN" "/etc/xml/catalog.dtd"> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public"> <public publicId="-//OASIS//DTD DocBook XML V4.1.2//EN" uri="docbookx.dtd"/> </catalog>
Catalog Circularities The catalog resolution semantics are not recursive. Once a matching catalog entry has been found, the value that results from that entry is returned without further examination of the catalog. In other words, if the catalog contains the following entries and only these entries: ]]> An attempt to resolve http://example.com/path/resource will return http://example.com/alternate/resource. The fact that the URI returned would be subject to a different interpretation if it was passed to the resolver has no effect on the resolver: it stops when a match is found. (This example uses URI entries, but the semantics hold true for all entry types.) This avoids an obvious opportunity for circular reference inside the resolver. However, applications are free to make multiple calls to the resolver if they wish, in which case it is the responsibility of the application to handle any circularities that arise. Even so, catalog circularities may arise, for example, in a chain of catalogs or delegated catalogs. Implementations should detect circularity and if a circularity is detected, it must be treated as an error. Applications may recover from this error by indicating to the calling application that no match was found. Given the dynamic nature of resources on the internet, it may not always be possible for implementations to detect circular references. Failure to detect circularity of references is not a failure to conform to this specification.
XML Catalog Entries Each catalog entry file consists of some number of catalog entries. Catalog entries can be identified by the namespace name defined by this &standard;. Elements and attributes from other namespaces are are allowed, but they must be ignored for the purposes of resolution defined by this &standard;. If an element is ignored, all of its descendants must also be ignored, regardless of their namespace.
Common Attributes There are two attributes common to most elements: id and xml:base. The id is provided so that individual entries can be uniquely identified; it has no impact on the semantics of the catalog as defined by this &standard;. The xml:base attribute changes the base URI for the entry on which it occurs (and all entries contained within it, unless further modified by another xml:base attribute). The semantics of xml:base are normatively defined in . All of the attributes defined by this &standard; are in the per-element-type partition. Use of global attributes, for example, <cat:group cat:id="groupId"> instead of <cat:group id="groupId"> is forbidden.
Public Identifier Normalization In order to accurately and interoperably compare public identifiers, catalog processors must perform normalization on public identifiers in both the catalog and the input passed to them. All strings of white space in public identifiers must be normalized to single space characters (#x20), and leading and trailing white space must be removed.
System Identifier and URI Normalization In order to accurately and interoperably compare system identifiers and &uriref;s, catalog processors must perform normalization. The normalization described in this section must be performed on system identifiers and &uriref;s passed as input to the resolver and on strings in the catalog that are compared to them. &uriref;s require encoding and escaping of certain characters. The disallowed characters include all non-ASCII characters, plus the excluded characters listed in Section 2.4 of , except for the number sign (#) and percent sign (%) characters and the square bracket characters re-allowed in . These characters are summarized in . Excluded US-ASCII Characters Hex Value Character Hex Value Character Hex Value Character 00NUL 0FSI 1ERS 01SOH 10DLE 1FUS 02STX 11DC1 20(space) 03ETX 12DC2 22" 04EOT 13DC3 3C< 05ENQ 14DC4 3E> 06ACK 15NAK 5C\ 07BEL 16SYN 5E^ 08BS 17ETB 60` 09HT 18CAN 7B{ 0ALF 19EM 7C| 0BVT 1ASUB 7D} 0CFF 1BESC 7FDEL 0DCR 1CFS 0ESO 1DGS
Catalog processors must escape disallowed characters as follows: Each disallowed character is converted to UTF-8 as one or more bytes. Any octets corresponding to a disallowed character are escaped with the URI escaping mechanism (that is, converted to %HH, where HH is the hexadecimal notation of the octet value). If escaping must be performed, uppercase hexadecimal characters should be used. The original character is replaced by the resulting character sequence. Note that this normalization process is idempotent: repeated normalization does not change a normalized &uriref;.
URN "Unwrapping" This &standard; requires processors to implement special treatment of URNs in the publicid URN Namespace (). URNs of this form must, in some contexts, be "unwrapped" by the Catalog processor. This unwrapping translates the URN form of the public identifier back into the standard ISO 8879 form for the purposes of subsequent catalog processing. Unwrapping a urn:publicid: URN is accomplished by transcribing characters in the URN according to the following table after discarding the leading urn:publicid: string: URN Characters Public Identifier Characters + " " (space) : // ; :: %2B + %3A : %2F / %3B ; %27 ' %3F ? %23 # %25 % For example, the following URN in the publicid namespace: urn:publicid:-:OASIS:DTD+DocBook+XML+V4.1.2:EN Represents the public identifier: -//OASIS//DTD DocBook XML V4.1.2//EN URNs in the publicid namespace should always represent normalized public identifiers (). In the event that an unwrapped public identifier is not normalized, the catalog processor must normalize it. URNs in the publicid namespace are intended for use in documents. Since the resolver is required to unwrap them before searching the catalog, they should never be used literally in the catalog. (Nothing will ever match them.)
Catalog Elements The root element of a catalog entry file is catalog. There are ten other element types: group, public, system, rewriteSystem, delegatePublic, delegateSystem, rewriteURI, delegateURI, uri, and nextCatalog. Each of these element types is described in one of the following sections.
The <sgmltag>catalog</sgmltag> Entry Each XML Catalog entry file consists of a single catalog element. This element may set the global prefer value and global base URI. It is otherwise just a container for the other elements.
The <sgmltag>group</sgmltag> Entry The group element is a convenience wrapper for specifying a prefer setting or base URI for a set of catalog entries. It has no semantics other than scoping these settings. The ability to scope the prefer and and base URI settings is required in order to reasonably translate existing catalogs into XML Catalogs.
The <sgmltag>public</sgmltag> Entry The public element associates a &uriref; with the public identifier portion of an external identifier. A public entry matches a public identifier if the normalized value () of the public identifier is lexically identical to the normalized value of the publicId attribute of the entry. If the value of the uri attribute is relative, it must be made absolute with respect to the base &uri; currently in effect. The &uriref; should not include a fragment identifier.
The <sgmltag>system</sgmltag> Element The system element associates a &uriref; with the system identifier portion of an external identifier. A system entry matches a system identifier if the normalized value () of the system identifier is lexically identical to the normalized value of the systemId attribute of the entry. If the value of the uri attribute is relative, it must be made absolute with respect to the base &uri; currently in effect. The &uriref; should not include a fragment identifier.
The <sgmltag>rewriteSystem</sgmltag> Element The rewriteSystem element rewrites the beginning of a system identifier. A rewriteSystem entry matches a system identifier if the normalized value () of the system identifier begins precisely with the normalized value of the systemIdStartString attribute of the entry. If the value of the rewritePrefix attribute is relative, it must be made absolute with respect to the base &uri; currently in effect. Rewriting removes the matching prefix from the supplied system identifier and replaces it with the value of the rewritePrefix attribute, returning the entire URI with the new prefix. If more than one rewriteSystem entry matches, the matching entry with the longest normalized systemIdStartString value is used. Given the following catalog fragment: ]]> The first two entries match the system identifier http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd, but the third does not. The rewritten system identifier in this case is: file:///sourceforge/docbook/docbook/xml/4.1.2/docbookx.dtd.
The <sgmltag>delegatePublic</sgmltag> Element The delegatePublic element associates an alternate catalog with a partial public identifier. A delegatePublic entry matches a public identifier if the normalized value () of the public identifier begins precisely with the normalized value of the publicIdStartString attribute of the entry. Given the following catalog fragment: ]]> The first two entries match the public identifier -//OASIS//DTD DocBook V4.1.2//EN, but the third does not. If the value of the catalog attribute is relative, it must be made absolute with respect to the base &uri; currently in effect.
The <sgmltag>delegateSystem</sgmltag> Element The delegateSystem element associates an alternate catalog with a partial system identifier. A delegateSystem entry matches a system identifier if the normalized value () of the system identifier begins precisely with the normalized value of the systemIdStartString attribute of the entry. Given the following catalog fragment: ]]> The first two entries match the system identifier http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd, but the third does not. If the value of the catalog attribute is relative, it must be made absolute with respect to the base &uri; currently in effect.
The <sgmltag>uri</sgmltag> Element The uri element associates an alternate &uriref; with a &uriref; that is not part of an external identifier. A uri entry matches a &uriref; if the normalized value () of the &uriref; is lexically identical to the normalized value of the name attribute of the entry. Given the following catalog fragment: ]]> The second entry matches the &uriref; http://www.oasis-open.org/committees/docbook/, but the first does not. If the value of the uri attribute is relative, it must be made absolute with respect to the base &uri; currently in effect.
The <sgmltag>rewriteURI</sgmltag> Element The rewriteURI element rewrites the beginning of a &uriref; that is not part of an external identifier. A rewriteURI entry matches a &uriref; if the normalized value () of the &uriref; begins precisely with the normalized value of the uriStartString attribute of the entry. If the value of the rewritePrefix attribute is relative, it must be made absolute with respect to the base &uri; currently in effect. Rewriting removes the matching prefix from the supplied &uriref; and replaces it with the value of the value of the rewritePrefix attribute. If more than one rewriteURI entry matches, the matching entry with the longest normalized uriStartString value is used.
The <sgmltag>delegateURI</sgmltag> Element The delegateURI element associates an alternate catalog with a partial &uriref;. A delegateURI entry matches a &uriref; if the normalized value () of the &uriref; begins precisely with the normalized value of the uriStartString attribute of the entry. If the value of the catalog attribute is relative, it must be made absolute with respect to the base &uri; currently in effect.
The <sgmltag>nextCatalog</sgmltag> Element The nextCatalog elements indicate additional catalog entry file(s) to be considered during the process of resolution. If the value of the catalog attribute is relative, it must be made absolute with respect to the base &uri; currently in effect. Catalogs loaded due to a nextCatalog directive have an initial base URI that is dependent on the location of the loaded catalog entry file. No xml:base information is inherited from the originating catalog.
Catalog Resolution Semantics This section describes how catalog resolution is performed. Resolution begins with a list of catalog entry files and either an external identifier or a &uriref;.
External Identifier Resolution This section describes how catalog entries are used to resolve external identifiers.
Input to the Resolver An external identifier will have at least one and perhaps both of the following: a public identifier a system identifier Resolvers should respect the system identifiers provided by authors. If the system part of the external identifier is relative, resolution should use that relative URI as the system identifier. If resolution with the relative form fails, it's reasonable for resolvers to try again using the absolute form. If the public identifier is a URN in the publicid namespace (), it is converted into another public identifier by unwrapping the URN (). This may be done, for example, so that a URN can be specified as the public identifier and a URL as the system identifier, in the absence of widely deployed URN-resolution facilities. If the system identifier is a URN in the publicid namespace, it is converted into a public identifier by unwrapping the URN. In this case, one of the following must apply: No public identifier was provided. Resolution continues as if the public identifier constructed by unwrapping the URN was supplied as the original public identifier and no system identifier was provided. The normalized public identifier provided is lexically identical to the public identifier constructed by unwrapping the URN. Resolution continues as if the system identifier had not been supplied. The normalized public identifier provided is different from the public identifier constructed by unwrapping the URN. This is an error. Applications may recover from this error by discarding the system identifier and proceeding with the original public identifier.
Resolution of External Identifiers Resolution follows the steps listed below, proceeding to each subsequent step if and only if no other action is indicated. Resolution begins in the first catalog entry file in the current catalog entry file list. If a system identifier is provided, and at least one matching system entry exists, the (absolutized) value of the uri attribute of the first matching system entry is returned. If a system identifier is provided, and at least one matching rewriteSystem entry exists, rewriting is performed. If more than one rewriteSystem entry matches, the matching entry with the longest normalized systemIdStartString value is used. Rewriting removes the matching prefix and replaces it with the rewrite prefix identified by the matching rewriteSystem entry. The rewritten string is returned. If a system identifier is provided, and one or more delegateSystem entries match, delegation is performed. If delegation is to be performed, a new catalog entry file list is generated from the set of all matching delegateSystem entries. The (absolutized) value of the catalog attribute of each matching delegateSystem entry is inserted into the new catalog entry file list such that the delegate entry with the longest matching systemIdStartString is first on the list, the entry with the second longest match is second, etc. These are the only catalog entry files on the list, the current list is not considered for the purpose of delegation. If delegation fails to find a match, resolution for this entity does not resume with the current list. (A subsequent resolution attempt for a different entity begins with the original list; in other words the catalog entry file list used for delegation is distinct and unrelated to the normal catalog entry file list.) Catalog resolution restarts using exclusively the catalog entry files in this new list and the given system identifier; any originally given public identifier is ignored during the remainder of the resolution of this external identifier: return to step 1. If a public identifier is provided, and at least one matching public entry exists, the (absolutized) value of the uri attribute of the first matching public entry is returned. If a system identifier is also provided as part of the input to this catalog lookup, only public entries that occur where the prefer setting is public are considered for matching. If a public identifier is provided, and one or more delegatePublic entries match, delegation is performed. If a system identifier is also provided as part of the input to this catalog lookup, only delegatePublic entries that occur where the prefer setting is public are considered for matching. If delegation is to be performed, a new catalog entry file list is generated from the set of all matching delegatePublic entries. The value of the catalog attribute of each matching delegatePublic entry is inserted into the new catalog entry file list such that the delegate entry with the longest matching publicIdStartString is first on the list, the entry with the second longest match is second, etc. These are the only catalog entry files on the list, the current list is not considered for the purpose of delegation. If delegation fails to find a match, resolution for this entity does not resume with the current list. (A subsequent resolution attempt for a different entity begins with the original list; in other words the catalog entry file list used for delegation is distinct and unrelated to the normal catalog entry file list.) Catalog resolution restarts using exclusively the catalog entry files in this new list and the given public identifier; any originally given system identifier is ignored during the remainder of the resolution of this external identifier: return to step 1. If the current catalog entry file contains one or more nextCatalog entries, the catalog entry files referenced by each nextCatalog entry's catalog attribute are inserted, in the order that they appear in this catalog entry file, onto the current catalog entry file list, immediately after the current catalog entry file. If there are one or more catalog entry files remaining on the current catalog entry file list, load the next catalog entry file and continue resolution efforts: return to step 2. Indicate to the calling application that no match was found.
URI Resolution This section describes how catalog entries are used to resolve &uriref;s.
Input to the Resolver &uriref; resolution always begins with a single &uriref;. Resolvers should respect the &uriref;s provided by authors. If the URI is relative, resolution should use that relative URI. If resolution with the relative form fails, it's reasonable for resolvers to try again using the absolute form. If the &uriref; is a URN in the publicid namespace (), it is converted into a public identifier by unwrapping the URN (). Resolution continues by following the semantics of external identifier resolution () as if the public identifier constructed by unwrapping the URN had been provided and no system identifier had been provided. Otherwise, resolution of the &uriref; proceeds according to the steps below.
Resolution of &uriref;s Resolution of a generic &uriref; follows the steps listed below, proceeding to each subsequent step if and only if no other action is indicated. Resolution begins in the first catalog entry file in the current catalog list. If at least one matching uri entry exists, the (absolutized) value of the uri attribute of the first matching uri entry is returned. If at least one matching rewriteURI entry exists, rewriting is performed. If more than one rewriteURI entry matches, the matching entry with the longest normalized uriStartString value is used. Rewriting removes the matching prefix and replaces it with the rewrite prefix identified by the matching rewriteURI entry. The rewritten string is returned. If one or more delegateURI entries match, delegation is performed. If delegation is to be performed, a new catalog entry file list is generated from the set of all matching delegateURI entries. The (absolutized) value of the catalog attribute of each matching delegateURI entry is inserted into the new catalog entry file list such that the delegate entry with the longest matching uriStartString is first on the list, the entry with the second longest match is second, etc. These are the only catalog entry files on the list, the current list is not considered for the purpose of delegation. If delegation fails to find a match, resolution for this entity does not resume with the current list. (A subsequent resolution attempt for a different entity begins with the original list; in other words the catalog entry file list used for delegation is distinct and unrelated to the normal catalog entry file list.) Catalog resolution restarts using exclusively the catalog entry files in this new list and the given &uriref;: return to step 1. If the current catalog entry file contains one or more nextCatalog entries, the catalog entry files referenced by each nextCatalog entry's catalog attribute are inserted, in the order that they appear in this catalog entry file, onto the current catalog entry file list, immediately after the current catalog entry file. If there are one or more catalog entry files remaining on the current catalog entry file list, load the next catalog entry file and continue resolution efforts: return to step 2. Indicate to the calling application that no match was found.
Resource Failures The catalog processor is sometimes required to load a catalog entry file. This may occur at the beginning of processing, when dealing with the initial list of catalog entry files, or during subsequent processing of a nextCatalog entry or one of the delegate entries. If the processor attempts to load a resource and fails (because the resource does not exist or is not reachable, for example), it must recover by ignoring the catalog entry file that failed and proceeding. Similarly, if the resource retrieved is not an understandable catalog (because it is not in a format that the processor recognizes, or it purports to be XML but is not well-formed, or for any other reason), the processor must recover by responding as if the resource could not be loaded. In order for a resource to be considered an XML Catalog, the following conditions must hold: The resource retrieved must be well-formed consistent with . The root element must be catalog. The namespace name of the root element must be &namespaceURI;. It is not an error for catalog processors to accept other forms of catalog documents, but their identification and specification is outside the scope of this &standard;.
A W3C XML Schema for the XML Catalog This grammar defines the syntax for OASIS XML Catalog &standard; entry files. This grammar has the following identifier: System identifier: http://www.oasis-open.org/committees/entity/release/1.0/catalog.xsd A RELAX NG Grammar for the XML Catalog This grammar defines the syntax for OASIS XML Catalog &standard; entry files. This grammar has the following identifier: System identifier: http://www.oasis-open.org/committees/entity/release/1.0/catalog.rng A DTD for the XML Catalog This DTD grammar partiallyAny catalog file which is valid according to this DTD is valid according to this &standard;. However, catalog files which make use of extension elements or attributes may be valid according to this &standard; but invalid according to this DTD, due to the limits of DTD validation with respect to namespaces. defines the syntax for OASIS XML Catalog &standard; entry files. This DTD has the following identifiers: Public identifier: -//OASIS//DTD XML Catalogs V1.0//EN System identifier: http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd Support for TR9401 Catalog Semantics This &standard; defines a subset of the catalog entry types described in that are applicable to XML. For implementors wishing to provide full TR9401 support, this appendix defines the elements that should be used for the remaining TR9401 catalog entry types. The elements described in this appendix provide full TR9401 semantics in the XML Catalog format. These are implemented as extension elements in the namespace: &namespaceURItr9401;. For a complete description of the semantics of these elements see .
The <sgmltag>doctype</sgmltag> Element The doctype element associates a DTD with a document element.
The <sgmltag>document</sgmltag> Element The document element identifies a default document.
The <sgmltag>dtddecl</sgmltag> Element The dtddecl element associates an SGML declaration with a public identifier.
The <sgmltag>entity</sgmltag> Element The entity element associates a document with an entity name.
The <sgmltag>linktype</sgmltag> Element The linktype element associates an external subset with a linktype declaration name.
The <sgmltag>notation</sgmltag> Element The notation element associates a &uriref; with a notation name.
The <sgmltag>sgmldecl</sgmltag> Element The sgmldecl element provides the location of a default SGML declaration.
OASIS Entity Resolution Committee The following individuals are members of the committee that developed this &standard;: Paul Grosso, Arbortext David Leland, Elsevier Science London Normand Montour, IBM Norman Walsh, Sun Microsystems (Editor) Lauren Wood, Individual Member (Chair) The following additional individuals were members of the committee during the development of previous versions: Tony Coates, Reuters John Cowan, Reuters Health Notices Copyright © 2000, 2001, 2002 OASIS Open, Inc. All Rights Reserved. OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS's procedures with respect to rights in OASIS specifications can be found at the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification, can be obtained from the OASIS Executive Director. OASIS invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to implement this specification. Please address the information to the OASIS Executive Director. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to OASIS, except as needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights defined in the OASIS Intellectual Property Rights document must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns. This document and the information contained herein is provided on an AS IS basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. OASIS has been notified of intellectual property rights claimed in regard to some or all of the contents of this specification. For more information consult the online list of claimed rights. Intellectual Property Rights For information on whether any patents have been disclosed that may be essential to implementing this specification, and any offers of patent licensing terms, please refer to the Intellectual Property Rights section of the Entity Resolution web page () References Normative XMLTim Bray, Jean Paoli, and C. M. Sperberg-McQueen, Eve Maler, editors. Extensible Markup Language (XML) 1.0 Second Edition. World Wide Web Consortium, 2000. XML NamespacesTim Bray, Dave Hollander, and Andrew Layman, editors. Namespaces in XML. World Wide Web Consortium, 1999. RFC 2119IETF (Internet Engineering Task Force). RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. 1997. RFC 3151IETF (Internet Engineering Task Force). RFC 3151: A URN Namespace for Public Identifiers. N. Walsh, J. Cowan, P. Grosso, 2001. XML BaseJonathan Marsh, editor. XML Base. World Wide Web Consortium, 2000. Non-Normative XML Schema DatatypesPaul V. Biron and Ashok Malhotra, editors. XML Schema Part 2: Datatypes. World Wide Web Consortium, 2000. RELAX NGJames Clark and MURATA Makoto, editors. RELAX NG Specification. OASIS. 2001. XML StylesheetsJames Clark, editor. Associating Style Sheets with XML Documents Version 1.0. World Wide Web Consortium. 1999. TR 9401Paul Grosso, editor. OASIS Technical Resolution 9401:1997 (Amendment 2 to TR 9401). OASIS. 1997. RFC 2279IETF (Internet Engineering Task Force). RFC 2279: UTF-8, a transformation format of ISO 10646. F. Yergeau. 1998. RFC 2396IETF (Internet Engineering Task Force). RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax. T. Berners-Lee, R. Fielding, L. Masinter. 1998. RFC 2732IETF (Internet Engineering Task Force). RFC 2732: Format for Literal IPv6 Addresses in URL's. R. Hinden, B. Carpenter, L. Masinter. 1999. W3C XML SchemaHenry S. Thompson, David Beech, Murray Maloney, et al. editors. XML Schema Part 1: Structures. World Wide Web Consortium, 2000. RequirementsNorman Walsh, editor. OASIS Entity Resolution Technical Committee Requirements Document. OASIS. 2000.
docbook2X-0.8.8/test/complete-manuals/Makefile.am0000644000175000017500000000165110420235405016561 00000000000000# ---------------------------------------------------------------------- # $Id: Makefile.am,v 1.5 2006/04/15 18:27:17 stevecheng Exp $ # include $(top_srcdir)/docbuild.mk XML_FILES = at1.xml dbtotexi.xml xml-catalogs-spec.xml TXML_FILES = at1.txml dbtotexi.txml xml-catalogs-spec.txml TEXI_FILES = at1.texi dbtotexi.texi xml-catalogs-spec.texi INFO_FILES = at1.info dbtotexi.info xml-catalogs-spec.info # ---------------------------------------------------------------------- # # User targets # .PHONY: check texi info check: texi info texi: $(TEXI_FILES) info: $(INFO_FILES) # ---------------------------------------------------------------------- # # Texinfo conversion # %.txml: %.xml $(db2x_xsltproc) -s texi -g output-file="$*" -o $@ $< %.texi: %.txml $(db2x_texixml) $< %.info: %.texi makeinfo --no-split $< EXTRA_DIST = $(XML_FILES) CLEANFILES = $(TXML_FILES) $(TEXI_FILES) $(INFO_FILES) .DELETE_ON_ERROR: docbook2X-0.8.8/test/complete-manuals/Makefile.in0000644000175000017500000002421310572275764016615 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # ---------------------------------------------------------------------- # $Id: Makefile.am,v 1.5 2006/04/15 18:27:17 stevecheng Exp $ # # ---------------------------------------------------------------------- # # Common defines for building documentation # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/docbuild.mk subdir = test/complete-manuals ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/utf8trans/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GROFF = @GROFF@ HAVE_GROFF_FALSE = @HAVE_GROFF_FALSE@ HAVE_GROFF_TRUE = @HAVE_GROFF_TRUE@ HAVE_HTML_XSL_FALSE = @HAVE_HTML_XSL_FALSE@ HAVE_HTML_XSL_TRUE = @HAVE_HTML_XSL_TRUE@ HAVE_TIDY_FALSE = @HAVE_TIDY_FALSE@ HAVE_TIDY_TRUE = @HAVE_TIDY_TRUE@ HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@ HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@ ICONV = @ICONV@ INSTALLED_CHARMAP_ROFF = @INSTALLED_CHARMAP_ROFF@ INSTALLED_CHARMAP_TEXI = @INSTALLED_CHARMAP_TEXI@ INSTALLED_DB2X_MANXML = @INSTALLED_DB2X_MANXML@ INSTALLED_DB2X_TEXIXML = @INSTALLED_DB2X_TEXIXML@ INSTALLED_DB2X_XSLTPROC = @INSTALLED_DB2X_XSLTPROC@ INSTALLED_SGML2XML_ISOENT = @INSTALLED_SGML2XML_ISOENT@ INSTALLED_STYLESHEETS_CATALOG = @INSTALLED_STYLESHEETS_CATALOG@ INSTALLED_UTF8TRANS = @INSTALLED_UTF8TRANS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA = @JAVA@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ OSX = @OSX@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RESOLVER_JARS = @RESOLVER_JARS@ SAXON_JARS = @SAXON_JARS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SX = @SX@ TIDY = @TIDY@ VERSION = @VERSION@ XALAN_JARS = @XALAN_JARS@ XMLLINT = @XMLLINT@ XSLTPROC = @XSLTPROC@ XSLT_PROCESSOR = @XSLT_PROCESSOR@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ db2x_perl = $(PERL) # Location of docbook2X programs stylesheets_catalog = $(top_srcdir)/xslt/catalog.xml utf8trans = $(top_builddir)/utf8trans/utf8trans db2x_texixml = $(db2x_perl) $(top_builddir)/perl/db2x_texixml --utf8trans-program=$(utf8trans) --utf8trans-map=$(top_srcdir)/charmaps/texi.charmap db2x_manxml = $(db2x_perl) $(top_builddir)/perl/db2x_manxml --utf8trans-program=$(utf8trans) --utf8trans-map=$(top_srcdir)/charmaps/roff.charmap db2x_xsltproc = $(top_builddir)/perl/db2x_xsltproc -C $(stylesheets_catalog) XML_FILES = at1.xml dbtotexi.xml xml-catalogs-spec.xml TXML_FILES = at1.txml dbtotexi.txml xml-catalogs-spec.txml TEXI_FILES = at1.texi dbtotexi.texi xml-catalogs-spec.texi INFO_FILES = at1.info dbtotexi.info xml-catalogs-spec.info EXTRA_DIST = $(XML_FILES) CLEANFILES = $(TXML_FILES) $(TEXI_FILES) $(INFO_FILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/docbuild.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/complete-manuals/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu test/complete-manuals/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../.. @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-info-am # ---------------------------------------------------------------------- # # User targets # .PHONY: check texi info check: texi info texi: $(TEXI_FILES) info: $(INFO_FILES) # ---------------------------------------------------------------------- # # Texinfo conversion # %.txml: %.xml $(db2x_xsltproc) -s texi -g output-file="$*" -o $@ $< %.texi: %.txml $(db2x_texixml) $< %.info: %.texi makeinfo --no-split $< .DELETE_ON_ERROR: # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: docbook2X-0.8.8/test/complete-manuals/at1.xml0000644000175000017500000013244010110540577015742 00000000000000 ]> Getting started with SGML A guide to the Standard Generalized Markup Language and its role in information management ArborText, Inc. Ann Arbor, Michigan 18 October 1995 As the world standard for textual information, SGML has gained prominence in many industries. Hundreds of companies have adopted SGML and thousands are considering it. If your organization produces a high volume of technical or business information of significant value, and if that information lends itself to a regular structure, then SGML probably offers significant benefits to you and your organization. This White Paper examines the factors that led to the development of SGML, the basic knowledge you need to understand SGML, the reasons for adopting SGML, lists those industries where SGML use is already widespread, and lists resources for more information and training. at1 The Business Challenge The explosive success of the Internet is an obvious example of an information revolution that's well under way. Companies that realize the tremendous cost and value of information management are reengineering their processes for creating, distributing and accessing information. The opportunities in each of these areas can be enormous: Information Creation By some estimates, 20% of our GNP is spent on generating new information. And over 90% of that information is in documents, not databases. When was the last time you took a close look at how much your organization invests in the creation of information? In conventional word processing and desktop publishing systems, your authors spend up to 30% of their time searching for information, and another 30% of their time applying styles and squeezing paragraphs so that each printed page looks nice. Plus, nearly every 18 months, technology changes completely, so you're continually paying for data conversions as software and hardware become obsolete. Information Distribution A few years ago, you could provide your information on paper alone. Then CD-ROM technology became low-cost and widespread, so you've either already faced or soon expect to face the massive re-publishing effort needed to make all your information available electronically. And in just the last year, the &www; has thundered out of nowhere, creating yet another new format for your information. At the same time, your customers want your information tuned to their needs: they don't want to wade through huge technical manuals that describe all system variations and all possible uses for all possible users—they want information tailored to their own needs, so they can get to it and use it fast. Information Access In the U.S. alone, businesses produce 92 billion documents every year—and that number is skyrocketing. Can your people easily access the information you create in your own company? How about the information you receive from other companies? An organization's future can depend on how effectively it identifies, manages, and uses its information. The latest thinking in information management takes an enterprise-wide approach to the creation, distribution and maintenance of information. Organizations that have taken this broad view have realized enormous improvements in the cost, accuracy, timeliness, accessibility, and variety of the information they create and use. As part of this movement, companies in some industries are joining together to develop standards for exchanging information with each other and with their customers. Companies that keep up-to-date with these standards will be able to do business more efficiently and compete more effectively in global markets. This white paper describes how one such standard, the Standard Generalized Markup Language (SGML), works as part of an overall information management strategy. Unleashing the Power of Information Traditional documents and the methods for handling them suffer many limitations. The printed document is often the result of a sophisticated information process. Once it's printed, however, the document represents a dead-end in the information flow because it has no link to the electronic information base. Raw data may start in the form of technical specifications or engineering data. This information must be gathered, sorted, organized, and then manually assembled into hard copy documents. With each step in the documentation process, the information may have changed by mistake. The further removed the result is from the original source of information, the greater the risk of erroneous data. The problem can become so large that a majority of documents go out of date as soon as they are printed. A systematic approach to information management treats text and graphics as part of an organization's electronic information base. This gives everyone access to the information. By taking a broad view of the information creation and delivery process, you can see documents as any composition of information—the output from a database query, a printed document, an on-line diagnostic manual, an illustrated parts catalog, a collection of video clips, or a home page on the Internet's &www;. SGML allows you to manage information as data objects instead of characters on a page. Rather than a stream of indistinguishable bits and bytes, the data is chunked into identifiable discrete elements of information. This technology enables you to store and reuse the information efficiently, share it with many users, and maintain it in a database. Getting to Know SGML This white paper provides an introduction to existing SGML technology, its advantages and benefits, as well as an overview of some related standards and how they fit into an overall approach to managing information. We also define some of the terminology and acronyms to familiarize you with the language associated with SGML. While SGML is a fairly recent technology, the use of markup in computer-based documents has existed for a while. Let's first look at earlier markup schemes that led to SGML. What is markup? Markup is everything in a document that is not content. Markup originally referred to the handwritten notations that a designer would add to typewritten text; these notations contained instructions to a typesetter about how to lay out the copy and what typeface to use. This kind of markup is known as procedural markup. Procedural markup Most electronic publishing systems today, such as word processing software and desktop publishing software, use procedural markup. Procedural markup is typically unique to a specific software package such as Microsoft Word and Quark XPress. Each has its own set of markup codes that make sense only to itself. This markup usually takes the form of formatting codes that are mixed in with the text of the document. Procedural markup codes apply to a single way of presenting the information, such as a printed page, and provide no capability to define appearance for other media, such as CD-ROM and Internet. Descriptive markup Descriptive markup, also known as generic markup, describes the purpose of the text in a document, rather than its physical appearance on the page. The basic concept of descriptive markup is that the content of a document should remain separate from its style. Descriptive markup is based on the structure or content of a document and identifies elements accordingly—such as a chapter, a section, or a table of contents—using notations that describe what the element is, not how it appears. By separating presentation information (i.e., style) from the structure and content, descriptive markup allows for multiple presentations of the same information. For example, you can publish on paper, on-line, on CD-ROM and on the &www; (Internet), all from the same set of source files with descriptive markup. Drawbacks of procedural markup Producers of technical documentation increasingly prefer descriptive markup over procedural markup. Procedural markup is tedious and expensive; authors can spend 15% to 50% of their time on the appearance of each page. If style guidelines change, or if you need to present the same information in a different format, massive re-formatting is usually required. When a company changes software or hardware systems, enormous data translation tasks arise, often resulting in errors. Because procedural markup is tied to one final printed product, you cannot change formats easily. Interchanging documents based on procedural markup works easily only if both parties have the same hardware and software system. What is SGML? The Standard Generalized Markup Language, or SGML, is an international standard (ISO 8879) published in 1986. SGML prescribes a standard format for embedding descriptive markup within a document. More importantly, and crucial to its real value and power, SGML also specifies a standard method for describing the structure of a document. In other words, SGML allows you to set up structural rules for each type of document you produce. SGML ensures that each element, which is labeled with descriptive markup such as chapter, title, and paragraph, fits in the logical, predictable structure of your document type. SGML supports an infinite variety of document structures. Users typically create a different document structure for each category of information they produce: information bulletins, technical manuals, parts catalogs, design specifications, reports, letters and memos. SGML allows you to create documents that are independent of any specific hardware or software. Since SGML documents conform to an international standard, they are portable. You can exchange them seamlessly with users who have different systems. The world of photography demonstrates the power of standards: SGML is to documents as standardized film speed is to cameras. Today you can purchase a roll of film marked ISO 100, put the film in your camera, set the camera's film speed to 100 (which many cameras do automatically), and you're ready to shoot. You don't have to worry that the brand of film is not compatible with your particular make of camera. The film and camera manufacturing industries—through the International Organization for Standardization (ISO) and American Standards Association (ASA)—have agreed on standards for film speeds. Many industries plan to use SGML so that their documents work as easily on different computers as film works in different cameras. How does SGML work? To understand SGML we must look at the three layers of a typical document: structure, content, and style. SGML separates these three aspects, but deals mainly with the relationship between structure and content. Structure At the heart of an SGML application is a file called the DTD, or Document Type Definition. The DTD sets up the structure of a document, much like a database schema describes the types of information it handles. A DTD provides a framework for the types of elements (such as chapters and chapter headings, sections, and topics) that constitute a document. A DTD also specifies rules for the relationships between elements; for example, a chapter heading must be the first element after the start of a chapter; or each list must contain at least two items. These rules, which the DTD defines, help ensure that documents have a consistent, logical structure. A DTD accompanies an SGML document wherever it goes. A document instance is a document whose content has been tagged in conformance with a particular DTD. Content Content is the information itself: content includes titles, paragraphs, lists, tables, graphics, and audio. The method for identifying the content's position within the DTD structure is called tagging. Creating an SGML document involves inserting tags around content. These tags mark the beginning and end of each part of the structure and identify the type of contents they enclose. In the following example, par indicates the start of a paragraph, and par indicates the end of the paragraph:<par>Paragraph content.</par> You can nest elements within other elements; in the following example, the paragraph (par) is an element within the topic (topic):<topic><par>Content.</par></topic> The structure of a particular document is revealed by the nesting of tags:<section><subhead>Content</subhead> <par>Content is the information itself.</par></section> Fortunately, human beings usually don't have to deal with manually typing in tags and checking to make sure all the tags are there. Some SGML-based authoring software programs make it easy to enter tags by clicking on pull-down menus that guide you by listing only those tags that are valid at the cursor's current position in the document. These programs rely on a software module called a parser that verifies that the document follows the rules of the DTD. (The parser also verifies that the DTD itself is structurally correct.) The following illustration shows how an SGML-based authoring program would display the tags for the previous ASCII example: Style SGML itself has nothing to do with setting standards for style, so most systems still rely on proprietary methods of setting style. It is the style that determines the final appearance of the document information. Some efforts are being made to develop standards-based style sheets; two of these efforts have resulted in the mature OS standard and the still unreleased DSSSL standard. The U.S. Department of Defense CALS initiative developed its own style standard, known as the Output Specification (OS). The OS is in the form of a particular DTD that allows the user to create a Formatting Output Specification Instance, or FOSI (usually pronounced fossy), that is well suited to both print and electronic output. A FOSI is essentially a powerful style sheet that specifies the formatting for each tag in a DTD. With the FOSI, the document, and the DTD, you have a complete interchange package for printed documents that maintains its format and style as it is interchanged among systems. In early 1995, an ISO committee released a draft of the Document Style Semantics and Specification Language (DSSSL), which is on its way to becoming an international standard for presenting SGML-based documents. Official release is expected later this year. The complete DSSSL standard covers a broad scope, so subsets are being developed to handle varying levels of functionality. A subset whose functionality is approximately equivalent to FOSIs is expected, and work on tools to convert FOSIs to and from DSSSL is under way. Many military contracts currently require FOSIs, and many non-defense firms have also embraced the Department of Defense's OS standard because it's a mature and supported standard. It is expected that both DSSSL and FOSIs will remain important standards for the foreseeable future. What Does SGML Give Me? SGML has become mainstream technology that you can use with confidence. Your adoption of SGML will allow your organization to gain the maximum value from your generation and use of information: Increased productivity A structured approach to documents helps writers organize the information as they are creating it, and keeps content separate from style. This separation enables you to set up centrally-controlled style guidelines, so authors can focus on generating the content rather than adjusting each document's appearance. That change alone can as much as double your authors' productivity. You can also improve efficiency by keeping a central information base so that authors don't have to recreate the same information in order to use it. This also ensures that the most current information is made available to all. And, a single update to the information base ensures that all documents created from that information base will automatically be updated. Reusability A printed document is just one of many possible products from SGML-based information. For example, a technical publications group can use tags to identify a procedure as a sequence of steps. In this case, you identify the beginning and end of the procedure, and each step within the procedure. The same procedure can now appear in several forms: maintenance and operational manuals, on-line technical manuals, training guides, etc. More importantly, since the tags are machine-readable, the computer can manage and maintain the many different uses of the same single source of information, so no re-keying is required to produce this information in new document formats. Information longevity SGML is a simple, standard file format with an indefinite shelf life; you'll never again have to convert your documents when a hardware or software system becomes obsolete. Once you setup your SGML information base, the information will always be available, because it carries everything needed to create a document. So even when your hardware or software becomes obsolete, your information remains usable, portable, and available. Improved data integrity Defining a document's structure helps ensure that the right information is in the right place, which improves the organization of your information. Because SGML eliminates the need for data conversion when it passes across systems, you reduce the risk of losing information by filtering data from one format to another. Better data control With SGML, you can define and manipulate information elements at any level of detail. A tagged element can have attributes that provide characteristics or properties about the element. This attribute information is useful for managing and manipulating the information elements. For example, an ID (identifier) attribute can uniquely identify a single paragraph, a whole section, a legal notice, an illustration, a task, or any element that you may want to use repeatedly. The following example shows a paragraph with an ID attribute: <para id=431>Content.</para> By simply referencing the ID, you can include this information into your document in as many places as you need. This eliminates re-typing and ensures that the information is identical in every instance. Plus, the IDs you set are machine readable so that the computer can find and link related information. This allows you to use IDs for a variety of information management controls. These controls can help you: Manage the security of information by allowing only certain people to view or change information with selected IDs. Automate the information flow—for example, updating the data in one place can trigger the update of the same information in other places within the same document and in other documents. Shareability Since SGML is aware of the individual components of a document, you can easily build entirely new documents out of existing information. This capability enables users to share the latest information without duplicating it. An example of this might be a standard legal notice or copyright statement appearing in documents throughout a company. The legal department maintains this module of information, updating it on occasion. A single tag in your document can pull in the current legal notice each time you access or output your document, eliminating needless duplication of information and ensuring the accuracy of your information. Portability of information Today, information networks proliferate where different computers, operating systems, and applications must share information. In these sort of networks, portability becomes the key in making sure all who need it can access the information. Thanks to the hardware and software independence of SGML, you can easily exchange SGML documents among different environments. Flexibility beyond traditional publishing The information you create today may be used a year from now in ways you haven't yet anticipated. Just last year, the need to publish on the &www; did not even exist! The spectacular growth of the Web serves as dramatic proof that we simply cannot anticipate all the purposes for which our information may eventually be used. SGML permits you to use your information for applications beyond traditional publishing. For example: &www; pages information databases diagnostic/expert systems electronic mail hypermedia and hypertext documents database publishing CD-ROM publishing Interactive Electronic Technical Manuals (IETMs) electronic review Is SGML Right for Me? In the life cycle of a product, the cost of gathering, producing, and maintaining the necessary technical information can exceed the initial hardware cost. For many industries, technical information is part of a deliverable product, or a product in itself. Any industry whose product line is heavily dependent on information can benefit from SGML. In evaluating how SGML can help your organization, you may wish to consider some strategic business issues to help in your information management plan. A strategic approach should prompt you to examine your current information needs and your current document management methodology. Some questions to consider include: Does your information require a long life-span? (For example, technical information related to airplanes often needs to be maintained for over 20 years.) Do you need to exchange documents across mixed hardware environments? Do you need to produce large documents with a disciplined structure? Do your documents contain information common to other documents within a department, across corporate divisions, or even across separate organizations? Do you have information that's used for different purposes? (For example, a part number may appear in a maintenance manual as well as a parts inventory database.) Does your information change frequently and get used often? Do you produce information that needs to comply to industry or company guidelines? By examining your requirements, you can evaluate how SGML fits into your information management strategy. Standardizing on SGML doesn't mean you need to use it for all documents; SGML is most useful for documents with a definable structure. Since SGML handles documents as collections of distinguishable data elements, it is useful to think in terms of modules of information, rather than complete printed documents. SGML is most useful as a tool in an integrated information management strategy. Making such a strategic choice and planning the implementation should be decided by a company's high-level management. There will be initial implementation costs in moving to SGML. But the payback comes from benefits that accrue over time and enhance your investment in information. Any organization that exchanges information between systems, applications, departments, and companies will realize these benefits. What Is a Good SGML System? By design, SGML applications are meant to be customized. Just as there's no out-of-box database application that can serve all the needs of an organization, there are no one-size-fits-all SGML application. Since each organization's information requirements are different, there are many DTDs. More organizations are also looking at industry-wide information needs and developing standards for handling that information. A number of products on the market handle SGML to some degree. But not all products handle all the features of the SGML standard. The sections that follow describe some basic requirements. Provides real-time interactive parsing An invaluable feature in an SGML system is real-time, interactive SGML validation. This feature allows the software to provide context-sensitive editing assistance based on the cursor's current position in the document. For example, if the cursor is immediately after the beginning tag for a section, and all sections must have a section heading, the software allows you to insert only a section heading tag. This feature ensures that the author does the correct tagging at all times which ensures that the author creates a valid SGML document the first time. By contrast, systems that use batch parsing allow authors to insert tags and text without checking each action against the DTD. In this approach, authors create documents in one format, then filter parts of the document into SGML, and then run the SGML through a validating parser. When the parser finds errors, the author must correct the original document, then filter and parse the changes again. The author must repeat this cycle until the entire document parses successfully. This approach adds steps to the publishing process that add no value. Time saved by authoring in a familiar format is lost in the filtering and validating process. A system that creates native SGML information eliminates the costly, time-consuming, and often error-prone process of retrofitting documents into valid SGML. Uses real SGML If your authoring software merely produces SGML as output, then your information is still tied to a proprietary format, and still at the mercy of software and hardware obsolescence. A publishing system that uses SGML as its native file format allows your information to remain accessible and usable regardless of hardware and software changes. If you need your information to remain accessible as you grow into new systems and new technologies then using a native SGML file format provides a distinct advantage over a system that filters the data into SGML. Here's an acid test to identify a real SGML system: can the software accept any SGML document, display that document, and then save that document, leaving it unchanged? Supports any DTD To be fully usable, a good SGML product allows you to create a variety of new document types in addition to accepting existing DTDs used in some industries. This feature is sometimes called the ability to handle arbitrary or user-defined DTDs. With arbitrary DTDs you are free to create any document type. Supports SGML features The developers of SGML built into the standard a number of features that facilitate automated publishing and document reuse. A fully-featured SGML publishing package should support this functionality. Some of the basic features to look for include: Marked sections. Marked sections let you create multiple versions from a single master document using regions of conditional text that only appear in specified versions. For example, you might want to build a single source document that describes two variations of your product. You simply write the source document with marked sections for the areas that differ. The system can then identify these areas and produce two different versions of your information from the same source file. External file entities. A file entity is simply a pointer to a separate document file. You can use file entities to break a large document into subdocuments. You can also use a file entity to reference frequently repeated boilerplate information such as an electrical caution. Graphic entities. A graphic entity is a pointer to a separate graphic file. Text entities. A text entity is a single tag that represents a common phrase repeated throughout a document. This allows you to reference the tag instead of re-keying the phrase each time you need to use it. Who Uses SGML Now? Early in its history, the primary adopters of SGML were defense contractors. In the last two years, however, the trickle of commercial users has turned into a torrent. Many leading industrial groups recognize the benefits SGML offers and have adopted it for information management and exchange among their members, and between members and their vendors and customers. Several industries have developed standards for information exchange: AAP The American Association of Publishers developed The American National Standard for Electronic Manuscript Preparation and Markup, a general purpose book DTD for publishers, authors and editors. ATA (airlines) The Air Transport Association, a consortium representing the commercial airline industry, developed several DTDs under the ATA-100 specification. The ATA's European counterpart, AECMA, is also adopting standards based on SGML. ATA (trucking) The Maintenance Council of the American Trucking Association has initiated a task force with the mission of Establishing the Standard for Electronic Service Information. This task force represents large truck manufacturers and fleet operators interested in standardizing the interchange of service information, and they are developing the T2008 DTD, modeled after the SAE's J2008 DTD for automobiles and light trucks. The first release of the standard is expected in 1996. DocBook Founded by ten major producers and consumers of technical documentation for computer systems, the Davenport Group has developed the DocBook DTD for exchanging and delivering computer documentation. Founding members included Novell, O'Reilly & Associates, Fujitsu OSSI, Hewlett-Packard, Digital Equipment Corporation, SCO, Hal Computer Systems, Hitachi Computer Products, SunSoft and Unisys. DoD The U.S. Department of Defense created the Continuous Acquisition and Life-Cycle Support (CALS) initiative (recently renamed from Computer-aided Acquisition and Logistic Support). The next section describes CALS in more detail. Pinnacles Led by Intel, National Semiconductor, Texas Instruments, Phillips, and Hitachi, the Pinnacles Group is developing the Pinnacles Component Information Standard (PCIS) to allow reusability of component data by semiconductor customers and vendors. This data can include descriptions, specifications, physical diagrams, code fragments, behavior models, and other text, tables, graphics, and technical data. SAE The Society of Automotive Engineers is developing the J2008 DTD for electronic interchange of service and diagnostic information. The J2008 Task Force is part of the Vehicle Electronic/Electrical Systems Committee, whose mission is to increase customer satisfaction and lower product life cycle costs by recommending standards that promote more effective diagnosis of vehicle systems. The DTD is expected to be released for approval as a Technical Draft Standard in 1995. After three years, it will be voted upon again to determine if it should become a Recommended Practice. TCIF The Telecommunications Industry Forum is an international association of carriers and major vendors of telecommunications products and services. The TCIF initiative is focused on the re-use of technical information across multiple applications and different environments. Many SGML applications are in commercial use. Other industries moving to SGML include pharmaceuticals, publishing, and manufacturing. Overseas, SGML is gaining wide acceptance. The European Airbus, a consortium of companies in the commercial airline industry in Europe, adopted SGML. Telecommunications, aerospace, manufacturing, and other commercial and military interests throughout Europe are also using SGML. What Is CALS? CALS stands for Continuous Acquisition and Life-Cycle Support (recently renamed from Computer-aided Acquisition and Logistic Support). It is a large-scale, long-term information management project initiated by the U.S. Department of Defense (DoD). Since the DoD receives goods and services from a wide range of suppliers, contractors and subcontractors, it constantly handles massive quantities of technical information. Today's weapon systems are technologically complex and can have a life span of 20 years or more. As a result, the amount of technical data needed to support and maintain these systems is overwhelming. The CALS standards that apply to maintaining technical information include: MIL-STD-1840: The Automated Interchange of Technical Information: this is the umbrella standard specifying overall guidelines for electronic data storage and exchange of CALS documents on magnetic tape. MIL-M-28001: SGML (Standard Generalized Markup Language) for exchanging text. MIL-D-28000 IGES (Initial Graphics Exchange Specification) an object-oriented format for technical drawings. MIL-R-28002 CCITT Group 4 (International Consultative Committee on Telephony and Telegraphy) for raster images. MIL-D-28003 CGM (Computer Graphics Metafile) for object-oriented graphics. Resources Here are a few resources for more information on SGML. Conferences, tutorials, and training The Graphic Communications Association (GCA) was instrumental in the development of SGML. The GCA provides conferences, tutorials, newsletters, and publication sales for both members and non-members.Graphic Communications Association 100 Daingerfield Road Alexandria, Virginia 22314–2804 USA +1 703.519.8160 SGML Open is a non-profit, international consortium of providers of SGML products and services dedicated to accelerating the further adoption, application, and implementation of SGML.SGML Open 910 Beaver Grade Road, #3008 Coraopolis, Pennsylvania 15108 USA +1 412.264.4258 ArborText also offers a range of introductory to advanced level SGML training courses, including DTD and FOSI training. For further information on ArborText's training services, schedules, and course descriptions, please contact ATI's Training Team at +1 313.996.3566. Books on SGML SGML: An Author's Guide to the Standard Generalized Markup Language, Martin Bryan, Addison-Wesley, 1988, ISBN 0–201–17537–5 The SGML Handbook, Charles Goldfarb, Oxford University Press, 1990, ISBN 0–19–863737–9 Practical SGML, Eric van Herwijnen, Kluwer Academic Publishers, 1994, ISBN 0–7923–9434–8 Glossary ASCII (American Standard Code for Information Interchange) This standard character encoding scheme is used extensively in data transmission. ANSI (American National Standards Institute) This group is the U.S. member organization that belongs to the ISO, the International Organization for Standardization. attribute An attribute provides more information about an element such as classification level, unique reference identifiers, or formatting information. CCITT Group 4 (International Consultative Committee on Telegraphy and Telephony) This CALS standard for raster graphics incorporates tiling, which divides a large image into smaller tiles. You can exchange graphic files in CCITT/4 format in a compressed state so they take up much less file space. CITIS (Contractor Integrated Technical Information Service) As part of CALS Phase II, CITIS is a draft functional specification for services. DoD acquisition managers designed CITIS as a plan to gain access to product-related digital technical information. CGM (Computer Graphics Metafile) CGM is one of the CALS standard formats for representing 2–D technical illustrations. CGM is an object-oriented graphic format. DSSSL (Document Style Semantics and Specification Language) This draft international standard (DIS 10179) applies to the specification of processing information for SGML documents. DSSSL is expected to became an international standard. DTD (Document Type Definition) A DTD is the formal definition of the elements, structures, and rules for marking up a given type of SGML document. You can store a DTD at the beginning of a document or externally in a separate file. EDI (Electronic Data Interchange) This is a set of computer interchange standards for business documents such as invoices, bills, and purchase orders. element An element is a piece of data within a document that may contain either text or other subelements such as a paragraph, a chapter, and so on. element declaration A statement in the DTD defining an element and declaring the order in which it may appear in the document and what other elements it may include. entity An entity is a self-contained piece of data that can be referenced as a unit. You can refer to an entity by a symbolic name in the DTD or the document. An entity can be a string of characters, a symbol character (unavailable on a standard keyboard), a separate text file, or a separate graphic file. entity declaration A statement in the DTD or document that assigns an SGML name to an entity so you can reference it. FOSI (Formatting Output Specification Instance) A FOSI is used for formatting SGML documents for printing and other outputs. It is a separate file that contains formatting information for each element in a document. HTML (HyperText Markup Language) This is the format of files published on the &www;. HTML is an application of SGML; to author in HTML using SGML-based authoring software, you simply need the HTML DTD. IGES (Initial Graphics Exchange Specification) The IGES standard for engineering, product design, and manufacturing drawings is one of the CALS standard graphics formats. Internet The Internet is a worldwide communications network originally developed by the U.S. Department of Defense as a distributed system with no single point of failure. The Internet has seen an explosion in commercial use since the development of easy-to-use software for accessing the Internet. ISO (International Organization for Standardization) The ISO is an industry-supported organization that establishes worldwide standards for everything from data interchange formats to film speed specifications. markup Markup is anything added to the content of the document that describes the text. parser A parser is a specialized software program that recognizes SGML markup in a document. A parser that reads a DTD and checks and reports on markup errors is a validating SGML parser. A parser can be built into an SGML editor to prevent incorrect tagging and to check whether a document contains all the required elements. PDES/STEP (Product Data Exchange Standard/Standard for the Exchange of Product Model Data). PDES/STEP are standards under development for communicating a complete product model with sufficient information content that advanced CAD/CAM applications can interpret. PDES is under development as a national standard and STEP is under development as its international counterpart. tag In the world of SGML, a tag is a marker embedded in a document that indicates the purpose or function of the element. Each element has a beginning tag and an end tag. &www; Often referred to as WWW or the Web, this usually refers to information available on the Internet that can be easily accessed with software usually called a browser. Organizations publish their information on the Web in a format known as HTML; this information is usually referred to as their home page or web site. docbook2X-0.8.8/test/complete-manuals/dbtotexi.xml0000644000175000017500000007324510102574306017104 00000000000000 CVS"> DTD"> GNU"> GUI"> ISO"> JDK"> SGML"> XML"> XSL"> XSLT"> VM"> dbtotexi"> ]>
dbtotexi Dbtotexi V&version; Mark Burton 1999 Mark Burton DocBook to Texinfo convertor. Introduction This document describes &dbtotexi;, a simple utility for converting &XML; documents that conform to a subset of the DocBook &DTD; into &GNU; texinfo format. The &dbtotexi; program is implemented using the &XSL; Transformations language as described in the working document . A Java based &XSL; engine Currently, I am using James Clark's xt. carries out the actual transformation as determined by the style sheet dbtotexi.xsl. A small amount of additional Java code provides a few utility routines not provided by the &XSL; implementation. License This software is subject to the terms of the &GNU; General Public License. Please see the file COPYING for details. The license terms that apply to the supplied third party software contained in the files sax.jar, xp.jar and xt.jar are specified in the files sax-copying.txt, xp-copying.txt and xt-copying.txt respectively. Installation Once the tar archive has been unpacked You must have done that already to be reading this! , check the Makefile to see if the settings at the top are suitable for your site and then just type make and make install. By default, the dbtotexi bash shell script goes into /usr/local/bin and the support files into /usr/local/share/dbtotexi. A compiled version of the Java support code is supplied so that you do not need a Java compiler unless you change the Java code. The installation defaults to using Sun's jre &VM; but any &JDK; 1.1 compliant implementation (such as Kaffe http://www.kaffe.org/ ) should work. No &GUI; facilities or additional libraries are required. If you use a different &VM; then the shell script, dbtotexi.sh may need editing. Usage A DocBook source file, foo.xml, is converted to texinfo format very simply: dbtotexi foo.xml Will produce output in foo.texinfo. The name of the output file can be explicitly specified as a second argument. If the output file name is specified as -, the output is sent to stdout. A third argument will specify the name of the info file to produce, this defaults to the input file name modified to have a .info suffix. Any DocBook elements that are not recognised (due to either an error in the input document or because the translator does not yet support a translation for that element) are reported to stderr and shown in the output in bold. A document that conforms to the &SGML; DocBook &DTD; must first be converted to &XML; before it can be processed by &dbtotexi;. This can be done using the sx program that is part of James Clark's SP &SGML; toolset. Typical usage would be: sx -xlower foo.sgm > foo.xml Note The &XML; version of the DocBook &DTD; is not actually required by the conversion process (but see ). In fact, if the document to be converted doesn't contain a DOCTYPE declaration then the conversion process is somewhat quicker. Irrespective of whether the document contains a DOCTYPE declaration, it should be valid (i.e. it conforms to the DocBook &XML; &DTD;). Role Attributes This section describes how the translation of some the elements are influenced by the setting of the element's role attribute. indexterm The role attribute can be set to one of c, f, v, k, p and d to indicate which index the entry should be entered in. If the role attribute is not specified the entry will be entered into the concept index by default. index The role attribute can be set to one of c, f, v, k, p and d to indicate which index should be output. If the role attribute is not specified the concept index will be output by default. variablelist The role attribute can be set to one of bold or fixed to indicate that the list's terms should be displayed in bold or fixed-width font respectively. If the role attribute is not specified, the list's terms be displayed as is. The <literal>texinfo</literal> Processing Instruction The texinfo processing instruction can be used within a document to insert arbitrary markup into the output. The characters @, { and } are not escaped. This facility can be used to define entities that contain texinfo markup. For example, given that the following general entity declaration is placed in the DTD subset: <!ENTITY hellip "<?texinfo @dots{}?>"> One can write &hellip; and expect to get dots…! The <literal>dircategory</literal> & <literal>direntry</literal> Processing Instructions The dircategory and direntry processing instructions may be used to set the resulting info file's directory category and menu entry. These processing instructions are best positioned after the document type declaration but before the first element (book or article). Here's what this document uses: <?dircategory Texinfo documentation system?> <?direntry * Dbtotexi: (dbtotexi). DocBook to Texinfo convertor.?> Support for Unicode Characters A few Unicode characters are recognised in element content and converted into the equivalent texinfo command. Unrecognised Unicode characters are passed through unchanged. Norman Walsh's DocBook &XML; &DTD; defines the &ISO; entity set in terms of Unicode characters. lists the set of Unicode characters that are currently recognised. Caveats A couple of points should be born in mind: Only a small subset of the DocBook &DTD; has currently been implemented. Furthermore, of the elements that have been implemented, most of their attributes are ignored. As time goes by, the implementation will become more complete. However, some features of DocBook may never be implemented due to limitatations in the texinfo format and some features of DocBook may never be implemented because they are not considered useful enough. All contributions are welcome. Please send contributions and bug reports to markb@ordern.com. The &XSL; Transformations language has not yet been standardised and, therefore, applications that use it are subject to change. I envisage having to modify the &XSL; script to track the development of &XSL; and its implementations. It is possible that some existing &SGML; documents may require modification before they can be successfully converted to &XML; and hence into texinfo. Links More information can be found from these links: http://www.w3.org/TR/WD-xslt The latest version of the &XSL; Transformations (&XSLT;) Specification. http://www.jclark.com/ James Clark's website contains much useful stuff including the &XSLT; engine xt and the SP toolset. http://nwalsh.com/ Norman Walsh's website contains lots of DocBook and &XML;/&XSL; related stuff. http://www.kaffe.org/ Home of the Open Source Kaffe Java &VM;. Recognised Unicode Characters The following table lists the set of Unicode characters that are currently recognised. The name of the &XML; entity that yields each character is also listed. Unicode Character Rendered As Entity Name 00a0   nbsp 00a1 ¡ iexcl 00a3 £ pound 00a9 © copy 00bf ¿ iquest 00c6 Æ AElig 00df ß szlig 00e6 æ aelig 2022 bull 2026 hellip 0131 ı inodot 00a8 ¨ uml 00e4 ä auml 00c4 Ä Auml 00eb ë euml 00cb Ë Euml 00ef ï iuml 00cf Ï Iuml 00f6 ö ouml 00d6 Ö Ouml 00fc ü uuml 00dc Ü Uuml 00ff ÿ yuml 0178 Ÿ Yuml 00b4 ´ acute 00e1 á aacute 00c1 Á Aacute 00e9 é eacute 00c9 É Eacute 00ed í iacute 00cd Í Iacute 00f3 ó oacute 00d3 Ó Oacute 00fa ú uacute 00da Ú Uacute 00fd ý yacute 00dd Ý Yacute 0107 ć cacute 0106 Ć Cacute 01f5 ǵ gacute 013a ĺ lacute 0139 Ĺ Lacute 0144 ń nacute 0143 Ń Nacute 0155 ŕ racute 0154 Ŕ Racute 015b ś sacute 015a Ś Sacute 017a ź zacute 0179 Ź Zacute 00b8 ¸ cedil 00e7 ç ccedil 00c7 Ç Ccedil 0122 Ģ Gcedil 0137 ķ kcedil 0136 Ķ Kcedil 013c' ļ lcedil 013b Ļ Lcedil 0146 ņ ncedil 0145 Ņ Ncedil 0157 ŗ rcedil 0156 Ŗ Rcedil 015f ş scedil 015e Ş Scedil 0163 ţ tcedil 0162 Ţ Tcedil 00af ¯ macr 0101 ā amacr 0100 Ā Amacr 0113 ē emacr 0112 Ē Emacr 012a Ī Imacr 012b ī imacr 014c Ō Omacr 014d ō omacr 016b ū umacr 016a Ū Umacr 00e2 â acirc 00c2 Â Acirc 00ea ê ecirc 00cA Ê Ecirc 00ee î icirc 00ce Î Icirc 00f4 ô ocirc 00d4 Ô Ocirc 00db û ucirc 00fb Û Ucirc 0109 ĉ ccirc 0108 Ĉ Ccirc 011d ĝ gcirc 011c Ĝ Gcirc 0125 ĥ hcirc 0124 Ĥ Hcirc 0135 ĵ jcirc 0134 Ĵ Jcirc 015d ŝ scirc 015c Ŝ Scirc 0175 ŵ wcirc 0174 Ŵ Wcirc 0177 ŷ ycirc 0176 Ŷ Ycirc 00e0 à agrave 00c0 À Agrave 00e8 è egrave 00c8 È Egrave 00ec ì igrave 00cc Ì Igrave 00f2 ò ograve 00d2 Ò Ograve 00f9 ù ugrave 00d9 Ù Ugrave 00e3 ã atilde 00c3 Ã Atilde 00f1 ñ ntilde 00d1 Ñ Ntilde 00f5 õ otilde 00d5 Õ Otilde 0129 ĩ itilde 0128 Ĩ Itilde 0169 ũ utilde 0168 Ũ Utilde
docbook2X-0.8.8/test/docbook-testdocs/0000777000175000017500000000000010572276010014613 500000000000000docbook2X-0.8.8/test/docbook-testdocs/test.pl0000755000175000017500000000312510106736622016052 00000000000000#!/usr/bin/perl # This script tests docbook2X using the DocBook test document # suite from http://docbook.sourceforge.net/. # # Obtain the test suite, and copy all the *.xml files # from the tests/ directory of the tarball to this directory. # Then run this script. # use strict; use Getopt::Long; my $tag = ''; my $res = GetOptions ("tag|t=s" => \$tag); # tag for log filenames die if !$res; my @source_xml_files = @ARGV; if(@ARGV == 0) { @source_xml_files = glob("*.xml"); } open(TEXI_FAIL_LOG, ">>${tag}texi-fail.log") or die "can't open TEXI_FAIL_LOG: $!"; open(GOOD_LOG, ">>${tag}good.log") or die "can't open GOOD_LOG: $!"; open(STDERR, "| tee -a ${tag}errors.log"); foreach my $s (@source_xml_files) { my $b = $1 if $s =~ /([^\/]+)\.xml$/; my $i = "${b}.info"; if($b =~ /^set\./) { # Ignore tests with the "set" element with DocBook; # they generate multiple files which will confuse # our processing next; } print STDERR "<<<<<<<<<<< $s >>>>>>>>>>>>>>>\n"; if(system2("docbook2texi -g directory-description='nothing'" . " --info --to-stdout $s > $i") != 0) { print TEXI_FAIL_LOG "$s\n"; } print GOOD_LOG "$s\n"; } close(DOCLIFTER_FAIL_LOG); close(TEXI_FAIL_LOG); close(GOOD_LOG); sub system2 { system(@_); if ($? == -1) { die "failed to execute: $!\n"; } elsif ($? & 127) { printf "child died with signal %d, %s coredump\n", ($? & 127), ($? & 128) ? 'with' : 'without'; return -1; } else { return $? >> 8; } } docbook2X-0.8.8/test/Makefile.am0000644000175000017500000000044110422325246013314 00000000000000SUBDIRS = refentry complete-manuals utf8trans sgml EXTRA_DIST = mass/sep-man.xsl \ mass/sep-texi.xsl \ mass/collect-manpageset.sed \ mass/test.pl \ htest-man.pl \ doclifter/test.pl \ docbook-testdocs/test.pl docbook2X-0.8.8/test/Makefile.in0000644000175000017500000003416710572275764013360 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = test DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/utf8trans/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GROFF = @GROFF@ HAVE_GROFF_FALSE = @HAVE_GROFF_FALSE@ HAVE_GROFF_TRUE = @HAVE_GROFF_TRUE@ HAVE_HTML_XSL_FALSE = @HAVE_HTML_XSL_FALSE@ HAVE_HTML_XSL_TRUE = @HAVE_HTML_XSL_TRUE@ HAVE_TIDY_FALSE = @HAVE_TIDY_FALSE@ HAVE_TIDY_TRUE = @HAVE_TIDY_TRUE@ HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@ HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@ ICONV = @ICONV@ INSTALLED_CHARMAP_ROFF = @INSTALLED_CHARMAP_ROFF@ INSTALLED_CHARMAP_TEXI = @INSTALLED_CHARMAP_TEXI@ INSTALLED_DB2X_MANXML = @INSTALLED_DB2X_MANXML@ INSTALLED_DB2X_TEXIXML = @INSTALLED_DB2X_TEXIXML@ INSTALLED_DB2X_XSLTPROC = @INSTALLED_DB2X_XSLTPROC@ INSTALLED_SGML2XML_ISOENT = @INSTALLED_SGML2XML_ISOENT@ INSTALLED_STYLESHEETS_CATALOG = @INSTALLED_STYLESHEETS_CATALOG@ INSTALLED_UTF8TRANS = @INSTALLED_UTF8TRANS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA = @JAVA@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ OSX = @OSX@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RESOLVER_JARS = @RESOLVER_JARS@ SAXON_JARS = @SAXON_JARS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SX = @SX@ TIDY = @TIDY@ VERSION = @VERSION@ XALAN_JARS = @XALAN_JARS@ XMLLINT = @XMLLINT@ XSLTPROC = @XSLTPROC@ XSLT_PROCESSOR = @XSLT_PROCESSOR@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUBDIRS = refentry complete-manuals utf8trans sgml EXTRA_DIST = mass/sep-man.xsl \ mass/sep-texi.xsl \ mass/collect-manpageset.sed \ mass/test.pl \ htest-man.pl \ doclifter/test.pl \ docbook-testdocs/test.pl all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/docbook-testdocs $(distdir)/doclifter $(distdir)/mass @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ clean clean-generic clean-recursive ctags ctags-recursive \ distclean distclean-generic distclean-recursive distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: docbook2X-0.8.8/test/htest-man.pl0000755000175000017500000000424610422454056013531 00000000000000#!/usr/bin/perl # Heuristic tests (necessary conditions) for a man page to be good. # # This script checks for: # 1. the file ends in a newline # (detects some cases where a man-page got cut off from a processing error) # 2. no consecutive blank lines except in verbatim environments # 3. whitespace is collapsed except in verbatim environments # # Synopsis: # htest-man.pl [man-page files...] # # Potential errors in the given files will be logged to standard output. # The return status will be non-zero whenever they occur. use strict; unshift(@ARGV, '-') unless @ARGV; my $has_error = 0; foreach my $ARGV (@ARGV) { my $has_name = 0; my $has_description = 0; my $in_verbatim = 0; my $last_line_is_blank = 0; my $line_num = 0; my $newline_exists = 1; open(IN, $ARGV); while () { $line_num++; if(chomp == 0) { print STDERR "$0:$ARGV:${line_num}: no newline at end of file\n"; $has_error = 1; } $in_verbatim = 1 if /^.nf\s*$/; $in_verbatim = 0 if /^.fi\s*$/; # FIXME this doesn't work for non-English-language pages $has_name++ if /^.SH\s+NAME$/; $has_description++ if /^.SH\s+DESCRIPTION$/; unless($in_verbatim) { my $line_is_blank = ($_ =~ /^(.PP)?\s*$/); if($line_is_blank and $last_line_is_blank) { print STDERR "$0:$ARGV:${line_num}: duplicate blank line\n"; $has_error = 1; } $last_line_is_blank = $line_is_blank or ($_ =~ /^(.SH|.SS|.TP)(\s.*)?$/); } unless($in_verbatim) { if(/[ \t]{2,}/) { print STDERR "$0:$ARGV:${line_num}: non-collapsed whitespace\n"; $has_error = 1; } } } if($has_name == 0) { print STDERR "$0:$ARGV:${line_num}: no NAME section found\n"; $has_error = 1; } elsif($has_name > 1) { print STDERR "$0:$ARGV:${line_num}: too many NAME sections found\n"; $has_error = 1; } if($has_description == 0) { print STDERR "$0:$ARGV:${line_num}: no DESCRIPTION section found\n"; $has_error = 1; } elsif($has_description > 1) { print STDERR "$0:$ARGV:${line_num}: too many DESCRIPTION sections found\n"; $has_error = 1; } } exit $has_error; docbook2X-0.8.8/test/utf8trans/0000777000175000017500000000000010572276011013304 500000000000000docbook2X-0.8.8/test/utf8trans/basic.txt.out0000644000175000017500000000032210106705372015645 00000000000000\(en (en-dash) \(em (em-dash) \(lq (left double quote) \(rq (right double quote) \(oq (left single quote) \(cq (right single quote) \&... (ellipsis) \(tm (trademark) \(rg (registered symbol) \(hy (hyphen) docbook2X-0.8.8/test/utf8trans/basic.txt0000644000175000017500000000030610106703365015041 00000000000000– (en-dash) — (em-dash) “ (left double quote) ” (right double quote) ‘ (left single quote) ’ (right single quote) … (ellipsis) ™ (trademark) ® (registered symbol) ‐ (hyphen) docbook2X-0.8.8/test/utf8trans/long.txt.out0000644000175000017500000041736510106705373015547 00000000000000\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy \(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy \(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy \(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lq\(rq\(rq\(oq\(oq\(cq\(cq\&...\&...\(tm\(tm\(rg\(rg\(hy\(hy \(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em \(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy\(en\(en\(em\(em\(lq\(lqabc\(oq\(cq\(cq\&...\&...d\(tm\(rg\(rg\(hy\(hy Text with some \(lqembedded\(rq nulls in it and no newlinedocbook2X-0.8.8/test/utf8trans/UTF-8-test.txt0000644000175000017500000004744707510151306015556 00000000000000UTF-8 decoder capability and stress test | ---------------------------------------- | | Markus Kuhn - 2000-09-02 | | This test text examines, how UTF-8 decoders handle various types of | corrupted or otherwise interesting UTF-8 sequences. | | According to ISO 10646-1, sections R.7 and 2.3c, a device receiving | UTF-8 shall interpret a "malformed sequence in the same way that it | interprets a character that is outside the adopted subset". This means | usually that the malformed UTF-8 sequence is replaced by a replacement | character (U+FFFD), which looks a bit like an inverted question mark, | or a similar symbol. It might be a good idea to visually distinguish a | malformed UTF-8 sequence from a correctly encoded Unicode character | that is just not available in the current font but otherwise fully | legal. For both cases, a clearly recognisable symbol should be used. | Just ignoring malformed sequences or unavailable characters will make | debugging more difficult and can lead to user confusion. | | Test sequences: | | Check, whether a malformed UTF-8 sequence is (1) represented at all, | (2) represented by exactly one replacement character (or equivalent | signal), and (3) the following quotation mark after an illegal UTF-8 | sequence is correctly displayed, i.e. proper resynchronization takes | place. This file says "THE END" in the last line, so if you don't see | that, your decoder crashed somehow before, which is also not nice. | | All lines in this file are exactly 79 characters long (plus the line | feed). In addition, all lines end with "|", except for the two test | lines 2.1.1 and 2.2.1, which contain non-printable ASCII controls | U+0000 and U+007F. If you display this file with a fixed-width font, | these "|" characters should all line up in column 79 (right margin). | This allows you to test quickly, whether your UTF-8 decoder finds the | correct number of characters in every line. | | Here come the tests: | | 1 Some correct UTF-8 text | | You should see the Greek word 'kosme': "κόσμε" | | 2 Boundary condition test cases | | You should see a correctly encoded character each time (which is not | necessarily an existing character). | | 2.1 First possible sequence of a certain length | | 2.1.1 1 byte (U-00000000): "" 2.1.2 2 bytes (U-00000080): "€" | 2.1.3 3 bytes (U-00000800): "ࠀ" | 2.1.4 4 bytes (U-00010000): "𐀀" | 2.1.5 5 bytes (U-00200000): "" | 2.1.6 6 bytes (U-04000000): "" | | 2.2 Last possible sequence of a certain length | | 2.2.1 1 byte (U-0000007F): "" 2.2.2 2 bytes (U-000007FF): "߿" | 2.2.3 3 bytes (U-0000FFFF): "￿" | 2.2.4 4 bytes (U-001FFFFF): "" | 2.2.5 5 bytes (U-03FFFFFF): "" | 2.2.6 6 bytes (U-7FFFFFFF): "" | | 2.3 Other boundary conditions | | 2.3.1 U-0000D7FF = ed 9f bf = "퟿" | 2.3.2 U-0000E000 = ee 80 80 = "" | 2.3.3 U-0000FFFD = ef bf bd = "�" | 2.3.4 U-0010FFFF = f4 8f bf bf = "􏿿" | 2.3.5 U-00110000 = f4 90 80 80 = "" | | 3 Malformed sequences | | 3.1 Unexpected continuation bytes | | Each unexpected continuation byte should be separately signalled as a | malformed sequence of its own. | | 3.1.1 First continuation byte 0x80: "" | 3.1.2 Last continuation byte 0xbf: "" | | 3.1.3 2 continuation bytes: "" | 3.1.4 3 continuation bytes: "" | 3.1.5 4 continuation bytes: "" | 3.1.6 5 continuation bytes: "" | 3.1.7 6 continuation bytes: "" | 3.1.8 7 continuation bytes: "" | | 3.1.9 Sequence of all 64 possible continuation bytes (0x80-0xbf): | | " | | | " | | 3.2 Lonely start characters | | 3.2.1 All 32 first bytes of 2-byte sequences (0xc0-0xdf), | each followed by a space character: | | " | " | | 3.2.2 All 16 first bytes of 3-byte sequences (0xe0-0xef), | each followed by a space character: | | " " | | 3.2.3 All 8 first bytes of 4-byte sequences (0xf0-0xf7), | each followed by a space character: | | " " | | 3.2.4 All 4 first bytes of 5-byte sequences (0xf8-0xfb), | each followed by a space character: | | " " | | 3.2.5 All 2 first bytes of 6-byte sequences (0xfc-0xfd), | each followed by a space character: | | " " | | 3.3 Sequences with last continuation byte missing | | All bytes of an incomplete sequence should be signalled as a single | malformed sequence, i.e., you should see only a single replacement | characters in each of the next 10 tests. (Characters as in section 2) | | 3.3.1 2-byte sequence with last byte missing (U+0000): "" | 3.3.2 3-byte sequence with last byte missing (U+0000): "" | 3.3.3 4-byte sequence with last byte missing (U+0000): "" | 3.3.4 5-byte sequence with last byte missing (U+0000): "" | 3.3.5 6-byte sequence with last byte missing (U+0000): "" | 3.3.6 2-byte sequence with last byte missing (U-000007FF): "" | 3.3.7 3-byte sequence with last byte missing (U-0000FFFF): "" | 3.3.8 4-byte sequence with last byte missing (U-001FFFFF): "" | 3.3.9 5-byte sequence with last byte missing (U-03FFFFFF): "" | 3.3.10 6-byte sequence with last byte missing (U-7FFFFFFF): "" | | 3.4 Concatenation of incomplete sequences | | All the 10 sequences of 3.3 concatenated, you should see 10 malformed | sequences being signalled: | | "" | | 3.5 Impossible bytes | | The following two bytes cannot appear in a correct UTF-8 string | | 3.5.1 fe = "" | 3.5.2 ff = "" | 3.5.3 fe fe ff ff = "" | | 4 Overlong sequences | | The following sequences are not malformed according to the letter of | the Unicode 2.0 standard. However, they are longer then necessary and | a correct UTF-8 encoder is not allowed to produce them. A "safe UTF-8 | decoder" should reject them just like malformed sequences for two | reasons: (1) It helps to debug applications if overlong sequences are | not treated as valid representations of characters, because this helps | to spot problems more quickly. (2) Overlong sequences provide | alternative representations of characters, that could maliciously be | used to bypass filters that check only for ASCII characters. For | instance, a 2-byte encoded line feed (LF) would not be caught by a | line counter that counts only 0x0a bytes, but it would still be | processed as a line feed by an unsafe UTF-8 decoder later in the | pipeline. From a security point of view, ASCII compatibility of UTF-8 | sequences means also, that ASCII characters are *only* allowed to be | represented by ASCII bytes in the range 0x00-0x7f. To ensure this | aspect of ASCII compatibility, use only "safe UTF-8 decoders" that | reject overlong UTF-8 sequences for which a shorter encoding exists. | | 4.1 Examples of an overlong ASCII character | | With a safe UTF-8 decoder, all of the following five overlong | representations of the ASCII character slash ("/") should be rejected | like a malformed UTF-8 sequence, for instance by substituting it with | a replacement character. If you see a slash below, you do not have a | safe UTF-8 decoder! | | 4.1.1 U+002F = c0 af = "" | 4.1.2 U+002F = e0 80 af = "" | 4.1.3 U+002F = f0 80 80 af = "" | 4.1.4 U+002F = f8 80 80 80 af = "" | 4.1.5 U+002F = fc 80 80 80 80 af = "" | | 4.2 Maximum overlong sequences | | Below you see the highest Unicode value that is still resulting in an | overlong sequence if represented with the given number of bytes. This | is a boundary test for safe UTF-8 decoders. All five characters should | be rejected like malformed UTF-8 sequences. | | 4.2.1 U-0000007F = c1 bf = "" | 4.2.2 U-000007FF = e0 9f bf = "" | 4.2.3 U-0000FFFF = f0 8f bf bf = "" | 4.2.4 U-001FFFFF = f8 87 bf bf bf = "" | 4.2.5 U-03FFFFFF = fc 83 bf bf bf bf = "" | | 4.3 Overlong representation of the NUL character | | The following five sequences should also be rejected like malformed | UTF-8 sequences and should not be treated like the ASCII NUL | character. | | 4.3.1 U+0000 = c0 80 = "" | 4.3.2 U+0000 = e0 80 80 = "" | 4.3.3 U+0000 = f0 80 80 80 = "" | 4.3.4 U+0000 = f8 80 80 80 80 = "" | 4.3.5 U+0000 = fc 80 80 80 80 80 = "" | | 5 Illegal code positions | | The following UTF-8 sequences should be rejected like malformed | sequences, because they never represent valid ISO 10646 characters and | a UTF-8 decoder that accepts them might introduce security problems | comparable to overlong UTF-8 sequences. | | 5.1 Single UTF-16 surrogates | | 5.1.1 U+D800 = ed a0 80 = "" | 5.1.2 U+DB7F = ed ad bf = "" | 5.1.3 U+DB80 = ed ae 80 = "" | 5.1.4 U+DBFF = ed af bf = "" | 5.1.5 U+DC00 = ed b0 80 = "" | 5.1.6 U+DF80 = ed be 80 = "" | 5.1.7 U+DFFF = ed bf bf = "" | | 5.2 Paired UTF-16 surrogates | | 5.2.1 U+D800 U+DC00 = ed a0 80 ed b0 80 = "" | 5.2.2 U+D800 U+DFFF = ed a0 80 ed bf bf = "" | 5.2.3 U+DB7F U+DC00 = ed ad bf ed b0 80 = "" | 5.2.4 U+DB7F U+DFFF = ed ad bf ed bf bf = "" | 5.2.5 U+DB80 U+DC00 = ed ae 80 ed b0 80 = "" | 5.2.6 U+DB80 U+DFFF = ed ae 80 ed bf bf = "" | 5.2.7 U+DBFF U+DC00 = ed af bf ed b0 80 = "" | 5.2.8 U+DBFF U+DFFF = ed af bf ed bf bf = "" | | 5.3 Other illegal code positions | | 5.3.1 U+FFFE = ef bf be = "￾" | 5.3.2 U+FFFF = ef bf bf = "￿" | | THE END | docbook2X-0.8.8/test/utf8trans/Makefile.am0000644000175000017500000000102610570402427015253 00000000000000include $(top_srcdir)/docbuild.mk EXTRA_DIST = $(TEST_IN) $(TEST_OUT) TEST_IN = basic.txt UTF-8-test.txt long.txt TEST_OUT = basic.txt.out UTF-8-test.txt.out long.txt.out TEST_T = basic.txt.t UTF-8-test.txt.t long.txt.t CLEANFILES=$(TEST_T) .PHONY: check clean check: $(TEST_T) clean: rm -f $(TEST_T) approve: for f in $(TEST_IN) ; do \ $(utf8trans) $(top_srcdir)/charmaps/roff.charmap "$$f" > "$${f}.out"; \ done %.txt.t: %.txt $(utf8trans) $(top_srcdir)/charmaps/roff.charmap $< > $@ diff -u $(srcdir)/$*.txt.out $@ docbook2X-0.8.8/test/utf8trans/Makefile.in0000644000175000017500000002335110572275764015307 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # ---------------------------------------------------------------------- # # Common defines for building documentation # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/docbuild.mk subdir = test/utf8trans ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/utf8trans/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GROFF = @GROFF@ HAVE_GROFF_FALSE = @HAVE_GROFF_FALSE@ HAVE_GROFF_TRUE = @HAVE_GROFF_TRUE@ HAVE_HTML_XSL_FALSE = @HAVE_HTML_XSL_FALSE@ HAVE_HTML_XSL_TRUE = @HAVE_HTML_XSL_TRUE@ HAVE_TIDY_FALSE = @HAVE_TIDY_FALSE@ HAVE_TIDY_TRUE = @HAVE_TIDY_TRUE@ HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@ HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@ ICONV = @ICONV@ INSTALLED_CHARMAP_ROFF = @INSTALLED_CHARMAP_ROFF@ INSTALLED_CHARMAP_TEXI = @INSTALLED_CHARMAP_TEXI@ INSTALLED_DB2X_MANXML = @INSTALLED_DB2X_MANXML@ INSTALLED_DB2X_TEXIXML = @INSTALLED_DB2X_TEXIXML@ INSTALLED_DB2X_XSLTPROC = @INSTALLED_DB2X_XSLTPROC@ INSTALLED_SGML2XML_ISOENT = @INSTALLED_SGML2XML_ISOENT@ INSTALLED_STYLESHEETS_CATALOG = @INSTALLED_STYLESHEETS_CATALOG@ INSTALLED_UTF8TRANS = @INSTALLED_UTF8TRANS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA = @JAVA@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ OSX = @OSX@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RESOLVER_JARS = @RESOLVER_JARS@ SAXON_JARS = @SAXON_JARS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SX = @SX@ TIDY = @TIDY@ VERSION = @VERSION@ XALAN_JARS = @XALAN_JARS@ XMLLINT = @XMLLINT@ XSLTPROC = @XSLTPROC@ XSLT_PROCESSOR = @XSLT_PROCESSOR@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ db2x_perl = $(PERL) # Location of docbook2X programs stylesheets_catalog = $(top_srcdir)/xslt/catalog.xml utf8trans = $(top_builddir)/utf8trans/utf8trans db2x_texixml = $(db2x_perl) $(top_builddir)/perl/db2x_texixml --utf8trans-program=$(utf8trans) --utf8trans-map=$(top_srcdir)/charmaps/texi.charmap db2x_manxml = $(db2x_perl) $(top_builddir)/perl/db2x_manxml --utf8trans-program=$(utf8trans) --utf8trans-map=$(top_srcdir)/charmaps/roff.charmap db2x_xsltproc = $(top_builddir)/perl/db2x_xsltproc -C $(stylesheets_catalog) EXTRA_DIST = $(TEST_IN) $(TEST_OUT) TEST_IN = basic.txt UTF-8-test.txt long.txt TEST_OUT = basic.txt.out UTF-8-test.txt.out long.txt.out TEST_T = basic.txt.t UTF-8-test.txt.t long.txt.t CLEANFILES = $(TEST_T) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/docbuild.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/utf8trans/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu test/utf8trans/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../.. @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-info-am .PHONY: check clean check: $(TEST_T) clean: rm -f $(TEST_T) approve: for f in $(TEST_IN) ; do \ $(utf8trans) $(top_srcdir)/charmaps/roff.charmap "$$f" > "$${f}.out"; \ done %.txt.t: %.txt $(utf8trans) $(top_srcdir)/charmaps/roff.charmap $< > $@ diff -u $(srcdir)/$*.txt.out $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: docbook2X-0.8.8/test/utf8trans/long.txt0000644000175000017500000030015310106705343014720 00000000000000––——““””‘‘’’……™™®®‐‐ ––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐ ––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐ ––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐––——““””‘‘’’……™™®®‐‐ ––——““abc‘’’……d™®®‐‐––—— ““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐––——““abc‘’’……d™®®‐‐ Text with some “embedded” nulls in it and no newlinedocbook2X-0.8.8/test/utf8trans/UTF-8-test.txt.out0000644000175000017500000005005110106705373016351 00000000000000UTF-8 decoder capability and stress test | ---------------------------------------- | | Markus Kuhn - 2000-09-02 | | This test text examines, how UTF-8 decoders handle various types of | corrupted or otherwise interesting UTF-8 sequences. | | According to ISO 10646-1, sections R.7 and 2.3c, a device receiving | UTF-8 shall interpret a "malformed sequence in the same way that it | interprets a character that is outside the adopted subset". This means | usually that the malformed UTF-8 sequence is replaced by a replacement | character (U+FFFD), which looks a bit like an inverted question mark, | or a similar symbol. It might be a good idea to visually distinguish a | malformed UTF-8 sequence from a correctly encoded Unicode character | that is just not available in the current font but otherwise fully | legal. For both cases, a clearly recognisable symbol should be used. | Just ignoring malformed sequences or unavailable characters will make | debugging more difficult and can lead to user confusion. | | Test sequences: | | Check, whether a malformed UTF-8 sequence is (1) represented at all, | (2) represented by exactly one replacement character (or equivalent | signal), and (3) the following quotation mark after an illegal UTF-8 | sequence is correctly displayed, i.e. proper resynchronization takes | place. This file says "THE END" in the last line, so if you don't see | that, your decoder crashed somehow before, which is also not nice. | | All lines in this file are exactly 79 characters long (plus the line | feed). In addition, all lines end with "|", except for the two test | lines 2.1.1 and 2.2.1, which contain non-printable ASCII controls | U+0000 and U+007F. If you display this file with a fixed-width font, | these "|" characters should all line up in column 79 (right margin). | This allows you to test quickly, whether your UTF-8 decoder finds the | correct number of characters in every line. | | Here come the tests: | | 1 Some correct UTF-8 text | | You should see the Greek word 'kosme': "\(*kό\(*s\(*m\(*e" | | 2 Boundary condition test cases | | You should see a correctly encoded character each time (which is not | necessarily an existing character). | | 2.1 First possible sequence of a certain length | | 2.1.1 1 byte (U-00000000): "" 2.1.2 2 bytes (U-00000080): "€" | 2.1.3 3 bytes (U-00000800): "ࠀ" | 2.1.4 4 bytes (U-00010000): "𐀀" | 2.1.5 5 bytes (U-00200000): "" | 2.1.6 6 bytes (U-04000000): "" | | 2.2 Last possible sequence of a certain length | | 2.2.1 1 byte (U-0000007F): "" 2.2.2 2 bytes (U-000007FF): "߿" | 2.2.3 3 bytes (U-0000FFFF): "￿" | 2.2.4 4 bytes (U-001FFFFF): "" | 2.2.5 5 bytes (U-03FFFFFF): "" | 2.2.6 6 bytes (U-7FFFFFFF): "" | | 2.3 Other boundary conditions | | 2.3.1 U-0000D7FF = ed 9f bf = "퟿" | 2.3.2 U-0000E000 = ee 80 80 = "" | 2.3.3 U-0000FFFD = ef bf bd = "�" | 2.3.4 U-0010FFFF = f4 8f bf bf = "􏿿" | 2.3.5 U-00110000 = f4 90 80 80 = "" | | 3 Malformed sequences | | 3.1 Unexpected continuation bytes | | Each unexpected continuation byte should be separately signalled as a | malformed sequence of its own. | | 3.1.1 First continuation byte 0x80: "�" | 3.1.2 Last continuation byte 0xbf: "�" | | 3.1.3 2 continuation bytes: "��" | 3.1.4 3 continuation bytes: "���" | 3.1.5 4 continuation bytes: "����" | 3.1.6 5 continuation bytes: "�����" | 3.1.7 6 continuation bytes: "������" | 3.1.8 7 continuation bytes: "�������" | | 3.1.9 Sequence of all 64 possible continuation bytes (0x80-0xbf): | | "���������������� | ���������������� | ���������������� | ����������������" | | 3.2 Lonely start characters | | 3.2.1 All 32 first bytes of 2-byte sequences (0xc0-0xdf), | each followed by a space character: | | "���������������� | ����������������" | | 3.2.2 All 16 first bytes of 3-byte sequences (0xe0-0xef), | each followed by a space character: | | "����������������" | | 3.2.3 All 8 first bytes of 4-byte sequences (0xf0-0xf7), | each followed by a space character: | | "��������" | | 3.2.4 All 4 first bytes of 5-byte sequences (0xf8-0xfb), | each followed by a space character: | | "����" | | 3.2.5 All 2 first bytes of 6-byte sequences (0xfc-0xfd), | each followed by a space character: | | "��" | | 3.3 Sequences with last continuation byte missing | | All bytes of an incomplete sequence should be signalled as a single | malformed sequence, i.e., you should see only a single replacement | characters in each of the next 10 tests. (Characters as in section 2) | | 3.3.1 2-byte sequence with last byte missing (U+0000): "� | 3.3.2 3-byte sequence with last byte missing (U+0000): "� | 3.3.3 4-byte sequence with last byte missing (U+0000): "� | 3.3.4 5-byte sequence with last byte missing (U+0000): "� | 3.3.5 6-byte sequence with last byte missing (U+0000): "� | 3.3.6 2-byte sequence with last byte missing (U-000007FF): "� | 3.3.7 3-byte sequence with last byte missing (U-0000FFFF): "� | 3.3.8 4-byte sequence with last byte missing (U-001FFFFF): "� | 3.3.9 5-byte sequence with last byte missing (U-03FFFFFF): "� | 3.3.10 6-byte sequence with last byte missing (U-7FFFFFFF): "� | | 3.4 Concatenation of incomplete sequences | | All the 10 sequences of 3.3 concatenated, you should see 10 malformed | sequences being signalled: | | "���������������" | | 3.5 Impossible bytes | | The following two bytes cannot appear in a correct UTF-8 string | | 3.5.1 fe = "�" | 3.5.2 ff = "�" | 3.5.3 fe fe ff ff = "����" | | 4 Overlong sequences | | The following sequences are not malformed according to the letter of | the Unicode 2.0 standard. However, they are longer then necessary and | a correct UTF-8 encoder is not allowed to produce them. A "safe UTF-8 | decoder" should reject them just like malformed sequences for two | reasons: (1) It helps to debug applications if overlong sequences are | not treated as valid representations of characters, because this helps | to spot problems more quickly. (2) Overlong sequences provide | alternative representations of characters, that could maliciously be | used to bypass filters that check only for ASCII characters. For | instance, a 2-byte encoded line feed (LF) would not be caught by a | line counter that counts only 0x0a bytes, but it would still be | processed as a line feed by an unsafe UTF-8 decoder later in the | pipeline. From a security point of view, ASCII compatibility of UTF-8 | sequences means also, that ASCII characters are *only* allowed to be | represented by ASCII bytes in the range 0x00-0x7f. To ensure this | aspect of ASCII compatibility, use only "safe UTF-8 decoders" that | reject overlong UTF-8 sequences for which a shorter encoding exists. | | 4.1 Examples of an overlong ASCII character | | With a safe UTF-8 decoder, all of the following five overlong | representations of the ASCII character slash ("/") should be rejected | like a malformed UTF-8 sequence, for instance by substituting it with | a replacement character. If you see a slash below, you do not have a | safe UTF-8 decoder! | | 4.1.1 U+002F = c0 af = "�" | 4.1.2 U+002F = e0 80 af = "�" | 4.1.3 U+002F = f0 80 80 af = "�" | 4.1.4 U+002F = f8 80 80 80 af = "�" | 4.1.5 U+002F = fc 80 80 80 80 af = "�" | | 4.2 Maximum overlong sequences | | Below you see the highest Unicode value that is still resulting in an | overlong sequence if represented with the given number of bytes. This | is a boundary test for safe UTF-8 decoders. All five characters should | be rejected like malformed UTF-8 sequences. | | 4.2.1 U-0000007F = c1 bf = "�" | 4.2.2 U-000007FF = e0 9f bf = "�" | 4.2.3 U-0000FFFF = f0 8f bf bf = "�" | 4.2.4 U-001FFFFF = f8 87 bf bf bf = "�" | 4.2.5 U-03FFFFFF = fc 83 bf bf bf bf = "�" | | 4.3 Overlong representation of the NUL character | | The following five sequences should also be rejected like malformed | UTF-8 sequences and should not be treated like the ASCII NUL | character. | | 4.3.1 U+0000 = c0 80 = "�" | 4.3.2 U+0000 = e0 80 80 = "�" | 4.3.3 U+0000 = f0 80 80 80 = "�" | 4.3.4 U+0000 = f8 80 80 80 80 = "�" | 4.3.5 U+0000 = fc 80 80 80 80 80 = "�" | | 5 Illegal code positions | | The following UTF-8 sequences should be rejected like malformed | sequences, because they never represent valid ISO 10646 characters and | a UTF-8 decoder that accepts them might introduce security problems | comparable to overlong UTF-8 sequences. | | 5.1 Single UTF-16 surrogates | | 5.1.1 U+D800 = ed a0 80 = "" | 5.1.2 U+DB7F = ed ad bf = "" | 5.1.3 U+DB80 = ed ae 80 = "" | 5.1.4 U+DBFF = ed af bf = "" | 5.1.5 U+DC00 = ed b0 80 = "" | 5.1.6 U+DF80 = ed be 80 = "" | 5.1.7 U+DFFF = ed bf bf = "" | | 5.2 Paired UTF-16 surrogates | | 5.2.1 U+D800 U+DC00 = ed a0 80 ed b0 80 = "" | 5.2.2 U+D800 U+DFFF = ed a0 80 ed bf bf = "" | 5.2.3 U+DB7F U+DC00 = ed ad bf ed b0 80 = "" | 5.2.4 U+DB7F U+DFFF = ed ad bf ed bf bf = "" | 5.2.5 U+DB80 U+DC00 = ed ae 80 ed b0 80 = "" | 5.2.6 U+DB80 U+DFFF = ed ae 80 ed bf bf = "" | 5.2.7 U+DBFF U+DC00 = ed af bf ed b0 80 = "" | 5.2.8 U+DBFF U+DFFF = ed af bf ed bf bf = "" | | 5.3 Other illegal code positions | | 5.3.1 U+FFFE = ef bf be = "￾" | 5.3.2 U+FFFF = ef bf bf = "￿" | | THE END | docbook2X-0.8.8/test/refentry/0000777000175000017500000000000010572276010013203 500000000000000docbook2X-0.8.8/test/refentry/docbook2manxml.xml0000644000175000017500000002460007514077703016574 00000000000000 %textents; ]> &docbook2manxml; 1 &docbook2manxml; Convert DocBook to Man-XML docbook2manxml options xml-document Description &docbook2manxml; Man pages, converting to &docbook2manxml; is used to convert DocBook documents to man pages. Specifically, this program reads XML DocBook documents and generates Man-XML, which is an intermediate XML document type to be run through &db2x_manxml; to produce man pages. The document in the file xml-document is converted and written to standard output. &docbook2manxml; does event-based parsing and does not build a tree in memory; therefore it must be run two times on each source document to properly resolve cross references and links. Options Specifies that the input document is SGML DocBook, rather than XML DocBook. When parsing SGML, specifies that SDATA entities are to be translated to Unicode according to the given SDATA map. Cross-reference information generated in the normal course of operation is read from and written to the given file. If not specified, the file manpage.refs is used. Specifies the text of the third header of a man page, typically the date for the man page. If empty, the date content for the refentry is used. Specifies the text of the fourth header of a man page. If empty, the refmiscinfo content for the refentry is used. Specifies the text of the fifth header of a man page. If empty, the manual name, that is, the title of the book or reference container is used. The source document usually indicates the sections that each man page should belong to (with manvolnum in refmeta). In case the source document does not indicate man-page sections, this option specifies the default. If the source document does not indicate the human language it is written in (using the lang attribute), the specified language is used. If the document does not indicate its language and this option is not given, en (English) is assumed. Headings in man page content should be or should not be uppercased. The default is to uppercase. When citing other man pages, the man-page section is either given as is, or has the letters stripped from it, citing only the number of the section (e.g. section 3x becomes 3). This option specifies which style. The default is . Normally, a link element generates the cross reference in brackets after the link content. Use to suppress the cross-reference. is the default. Processing Expectations This section describes how &docbook2manxml; treats certain markup, in ways that are not specified in the DocBook documentation. If you follow these rules and the standard processing expectations judiciously, you should be able to create good man pages and other formats from one single source with a minimal amount of conditional processing. link In man pages, you should probably avoid using link, because man pages cannot render hypertext links. Instead, the cross reference is rendered in brackets after the link text, or suppressed, depending on the option. Rendering the cross reference can clutter the man page, while suppressing the cross reference and displaying only the link content may obviously be undesirable. xref is more suitable in some situations. citerefentry citerefentry may be used to refer to either a refentry in the same document or any other man page. (Pointing to any other man page is an extension of the standard processing expectations.) According to standard processing expectations, all display formats should use a man-page-style citation (without an implicit link or cross reference) for this element. Of course, in man pages the citation is the cross reference. Use this element when a man page should have an inline citation to another man page, while other display formats should not render a cross reference to that other man page or section (that might not be in the same document). If a cross reference should also be rendered in the other display formats, then use xref instead. refentry &docbook2manxml; only renders the refentrys in the document. Most man pages have to follow a strict style, and therefore converting non-refentry content is generally not appropriate. xref If the cross reference points to refentry, then a standard man page citation is made. Otherwise, the title of the section that is pointed to is displayed. xref should be used to refer to other sections of your document, particularly man page sections. &docbook2manxml; does not use the endterm attribute and always renders a man-page-style citation for this element. (Other display formats can generate the appropriate cross-reference text even if endterm is not given.) Many man pages have a See Also section that list any cross references, while other display formats would have them embedded inline only. &docbook2manxml; does not automatically generate the See Also section. Consider writing an equivalent refsect1 with the cross references listed as xrefs. Examples Converting DocBook source to man pages $ docbook2manxml --header-3=`date "+%d %B %Y"` \ --header-5="Jane Hacker's Amazing Manual" \ --refs-file=mydoc.refs \ mydoc.xml >mydoc.mxml $ db2x_manxml --solinks mydoc.mxml Or more succinctly, $ docbook2manxml mydoc.xml | db2x_manxml --solinks Environment XML_CATALOG_FILES Use specified XML Catalogs when parsing the document. If not specified, the system's default is assumed. When parsing SGML, XML catalogs are not used and this setting is ignored. When parsing XML, XML_CATALOG_FILES always takes precedence over SGML_CATALOG_FILES. SGML_CATALOG_FILES Use specified OASIS TR9041 catalogs when parsing the document. If not specified, the system's default is assumed. See Also &db2x_manxml; docbook2X-0.8.8/test/refentry/sgml2xml.xml0000644000175000017500000002656510101045266015417 00000000000000 nsgmls 1 "> ]> 05 July 1999 sgml2xml 1 SP sgml2xml convert SGML to XML An SGML System Conforming to International Standard ISO 8879 — Standard Generalized Markup Language sgml2xml sysid Description sgml2xml converts SGML to XML. sgml2xml parses and validates the SGML document contained in sysid... and writes an equivalent XML document to the standard output. sgml2xml will warn about SGML constructs which have no XML equivalent. Options Use encoding for output. The default is UTF-8. See &nsgmls1; for the possible encoding types. Use the catalog entry file file. The filename... arguments specify catalog files rather than the document entity. The document entity is specified by the first DOCUMENT entry in the catalog files. Search directory for files specified in system identifiers. Multiple options are allowed. See &nsgmls1; for more information about this option. Describe open entities in error messages. Redirect errors to file. This is useful only for shells that do not support redirection of stderr. Pretend that <!ENTITY % name "INCLUDE"> occurs at the start of the document type declaration subset in the SGML document entity. Since repeated definitions of an entity are ignored, this definition will take precedence over any other definitions of this entity in the document type declaration. Multiple options are allowed. If the SGML declaration replaces the reserved name INCLUDE then the new reserved name will be the replacement text of the entity. Typically the document type declaration will contain <!ENTITY % name "IGNORE"> and will use %name; in the status keyword specification of a marked section declaration. In this case the effect of the option will be to cause the marked section not to be ignored. Print the version number. Control warnings and errors according to type. See &nsgmls1; for the allowed values of type. Control the XML output, according to the value of xml_output_option as follows: no-nl-in-tag Don't use newlines inside start-tags. Usually sgml2xml uses newlines inside start-tags so as to reduce the probability of excessively long lines. id Output attribute declarations for ID attributes. notation Output declarations for notations. ndata Output declarations for external data entities. XML requires these to be NDATA. sgml2xml will warn about CDATA and SDATA external data entities and output them as NDATA entities. cdata Use XML CDATA sections for CDATA marked sections and for elements with a declared content of CDATA. comment Output comment declarations. Comment declarations in the DTD will not be output. lower Prefer lower case. Names that were subjected to upper-case substitution by SGML will be folded to lower case. This does not include reserved names; XML requires these to be in upper-case. pi-escape Escape &<> in the contents of processing instructions using the amp, lt and gt entities. This allows processing instructions to contain the string >?, but requires that applications handle the escapes. empty Use the <e/> syntax for element types e declared as EMPTY. attlist Output a ATTLIST declaration for every element specifying the type of all attributes. The default will always be #IMPLIED. Multiple options are allowed. Author James Clark jjc@jclark.com See Also &nsgmls1; /usr/share/doc/sp/sx.htm docbook2X-0.8.8/test/refentry/statgrab.xml0000644000175000017500000002142310420234201015436 00000000000000 $Date: 2006/04/15 18:16:33 $ $Id: statgrab.xml,v 1.1 2006/04/15 18:16:33 stevecheng Exp $ statgrab 3 i-scream statgrab get system statistics #include <statgrab.h> int sg_init int sg_drop_privileges sg_error sg_get_error const char *sg_get_error_arg intsg_get_error_errno const char *sg_str_error sg_error code sg_cpu_stats *sg_get_cpu_stats sg_cpu_stats *sg_get_cpu_stats_diff sg_cpu_percents *sg_get_cpu_percents sg_disk_io_stats *sg_get_disk_io_stats int *entries sg_disk_io_stats *sg_get_disk_io_stats_diff int *entries sg_fs_stats *sg_get_fs_stats sg_host_info *sg_get_host_info sg_load_stats *sg_get_load_stats sg_mem_stats *sg_get_mem_stats sg_swap_stats *sg_get_swap_stats sg_network_io_stats *sg_get_network_io_stats int *entries sg_network_io_stats *sg_get_network_io_stats_diff int *entries sg_network_iface_stats *sg_get_network_iface_stats int *entries sg_page_stats *sg_get_page_stats sg_page_stats *sg_get_page_stats_diff sg_process_count *sg_get_process_stats sg_user_stats *sg_get_user_stats Description The statgrab library provides a cross-platform interface to getting system statistics. Each of the function calls returns a structure containing statistics. See the manual page for each individual function for more details on usage. sg_init must be the first function you call before you start to use libstatgrab; it performs all the one-time initialisation operations that need setuid/setgid privileges. For instance, on *BSD it opens a descriptor to be able to read kernel structures later on, and on Solaris it reads the device mappings that in some cases are only accessible by root (machines with a /dev/osa). Once this has run, the other libstatgrab functions no longer need elevated privileges. It is therefore a good idea to call sg_drop_privileges, which discards setuid and setgid privileges, immediately after you call sg_init, unless your application has another reason for needing setuid or setgid privileges. sg_init and sg_drop_privileges return 0 on success, and non-zero on failure. There are three functions relating to error reporting in libstatgrab. The first, sg_get_error returns an sg_error code which relates to the last error generated by libstatgrab. This can be converted to a string by calling sg_str_error giving the sg_error code as an argument. An optional argument may be set when the error was generated. This can be accessed by calling sg_get_error_arg; NULL will be returned if no argument has been set. Some errors will also record the value of the system errno variable when the error occurred; this can be retrieved by calling sg_get_error_errno, which will return 0 if no valid errno has been recorded. It is the intended practice that whenever a libstatgrab function is called and subsequently fails that an appropriate error will be set. The library was originally written to support the i-scream central monitoring system, but has since become a standalone package. It has been ported to work on Linux, NetBSD, FreeBSD, OpenBSD, DragonFly BSD, Solaris and Cygwin. See Also sg_get_cpu_percents 3 sg_get_disk_io_stats 3 sg_get_fs_stats 3 sg_get_host_info 3 sg_get_load_stats 3 sg_get_mem_stats 3 sg_get_network_io_stats 3 sg_get_network_iface_stats 3 sg_get_page_stats 3 sg_get_process_stats 3 sg_get_user_stats 3 Website http://www.i-scream.org/libstatgrab/ docbook2X-0.8.8/test/refentry/vermeulen.xml0000644000175000017500000000244110422455161015644 00000000000000 vermeulen 3 vermeulen variablelist/formalpara problems? Description Nothing Errors Error codes LIBSSH2_ERROR_SOCKET_NONE The socket is invalid. xxx error text Errors LIBSSH2_ERROR_ALLOCLIBSSH2_ERROR_SOCKET_SENDLIBSSH2_ERROR_SOCKET_TIMEOUTLIBSSH2_ERROR_SFTP_PROTOCOL docbook2X-0.8.8/test/refentry/sg_init.xml0000644000175000017500000000131710122350175015273 00000000000000 sg_init 2 sg_init some Solaris function int sg_init Description Test. docbook2X-0.8.8/test/refentry/leidert-example.xml0000644000175000017500000003033110570337467016736 00000000000000 ]> &dhtitle; &dhpackage; &dhrelease; &dhdate; Jens Schweikhardt Wrote this example manpage for the "Linux Man Page Howto", available at or .
schweikh@schweikhardt.net
&dhfirstname; &dhsurname; Rewrote and extended the example manpage in DocBook XML for the Debian distribution.
&dhemail;
1995 1996 1997 1998 1999 2000 2001 2002 2003 Jens Schweikhardt 2006 &dhusername; The Howto containing this example, was offered under the following conditions: Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
&dhucpackage; &dhsection; &dhpackage; frobnicate the bar library &dhpackage; this this that file(s) &dhpackage; DESCRIPTION &dhpackage; frobnicates the bar library by tweaking internal symbol tables. By default it parses all baz segments and rearranges them in reverse order by time for the xyzzy1 linker to find them. The symdef entry is then compressed using the WBG (Whiz-Bang-Gizmo) algorithm. All files are processed in the order specified. OPTIONS Do not write busy to stdout while processing. Use the alternate system wide config-file instead of the /etc/foo.conf. This overrides any FOOCONF environment variable. In addition to the baz segments, also parse the blurfl3 headers. Recursive mode. Operates as fast as lightning at the expense of a megabyte of virtual memory. FILES /etc/foo.conf The system-wide configuration file. See foo.conf5 for further details. ${HOME}/.foo.conf The per-user configuration file. See foo.conf5 for further details. ENVIONMENT FOOCONF The full pathname for an alternate system wide configuration file foo.conf5 (see also ). Overridden by the option. DIAGNOSTICS The following diagnostics may be issued on stderr: Bad magic number. The input file does not look like an archive file. Old style baz segments. &dhpackage; can only handle new style baz segments. COBOL object libraries are not supported in this version. The following return codes can be used in scripts: Errorcode Errortext Diagnostic 0 Program exited normally. No error. Program ran successfully. 1 Bad magic number. The input file does not look like an archive file. 2 Old style baz segments. &dhpackage; can only handle new style baz segments. COBOL object libraries are not supported in this version. BUGS The command name should have been chosen more carefully to reflect its purpose. The upstreams BTS can be found at . SEE ALSO bar 1 , foo 1 , foo.conf 5 , xyzzy 1 The programs are documented fully by The Rise and Fall of a Fooish Bar available via the Info system.
docbook2X-0.8.8/test/refentry/Makefile.am0000644000175000017500000000316710570376632015173 00000000000000# ---------------------------------------------------------------------- # $Id: Makefile.am,v 1.11 2007/02/25 21:20:26 stevecheng Exp $ # include $(top_srcdir)/docbuild.mk XML_FILES = sgml2xml.xml sgmlnorm.xml docbook2manxml.xml VCR.xml \ statgrab.xml vermeulen.xml sg_init.xml leidert-example.xml MXML_FILES = sgml2xml.mxml sgmlnorm.mxml docbook2manxml.mxml VCR.mxml \ statgrab.mxml vermeulen.mxml sg_init.mxml leidert-example.mxml MAN_FILES = sgml2xml.1 sgmlnorm.1 docbook2manxml.1 VCR.7 \ statgrab.3 vermeulen.3 sg_init.2 leidert-example.1 # ---------------------------------------------------------------------- # # User targets # .PHONY: check man check: man man: $(MAN_FILES) # ---------------------------------------------------------------------- # # Man page conversion # %.mxml: %.xml $(db2x_xsltproc) -s man -o $@ $< %.1: %.mxml $(db2x_manxml) $< if HAVE_GROFF $(GROFF) -man -Tutf8 -z -w all $@ 2>&1 | grep "warning: " ; test $$? -eq 1 endif $(db2x_perl) $(srcdir)/../htest-man.pl $@ %.2: %.mxml $(db2x_manxml) $< if HAVE_GROFF $(GROFF) -man -Tutf8 -z -w all $@ 2>&1 | grep "warning: " ; test $$? -eq 1 endif $(db2x_perl) $(srcdir)/../htest-man.pl $@ %.3: %.mxml $(db2x_manxml) $< if HAVE_GROFF $(GROFF) -man -Tutf8 -z -w all $@ 2>&1 | grep "warning: " ; test $$? -eq 1 endif $(db2x_perl) $(srcdir)/../htest-man.pl $@ %.7: %.mxml $(db2x_manxml) $< if HAVE_GROFF $(GROFF) -man -Tutf8 -z -w all $@ 2>&1 | grep "warning: " ; test $$? -eq 1 endif $(db2x_perl) $(srcdir)/../htest-man.pl $@ EXTRA_DIST = $(XML_FILES) CLEANFILES = $(MXML_FILES) $(MAN_FILES) .DELETE_ON_ERROR: docbook2X-0.8.8/test/refentry/Makefile.in0000644000175000017500000002551110572275764015207 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # ---------------------------------------------------------------------- # $Id: Makefile.am,v 1.11 2007/02/25 21:20:26 stevecheng Exp $ # # ---------------------------------------------------------------------- # # Common defines for building documentation # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/docbuild.mk subdir = test/refentry ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/utf8trans/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GROFF = @GROFF@ HAVE_GROFF_FALSE = @HAVE_GROFF_FALSE@ HAVE_GROFF_TRUE = @HAVE_GROFF_TRUE@ HAVE_HTML_XSL_FALSE = @HAVE_HTML_XSL_FALSE@ HAVE_HTML_XSL_TRUE = @HAVE_HTML_XSL_TRUE@ HAVE_TIDY_FALSE = @HAVE_TIDY_FALSE@ HAVE_TIDY_TRUE = @HAVE_TIDY_TRUE@ HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@ HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@ ICONV = @ICONV@ INSTALLED_CHARMAP_ROFF = @INSTALLED_CHARMAP_ROFF@ INSTALLED_CHARMAP_TEXI = @INSTALLED_CHARMAP_TEXI@ INSTALLED_DB2X_MANXML = @INSTALLED_DB2X_MANXML@ INSTALLED_DB2X_TEXIXML = @INSTALLED_DB2X_TEXIXML@ INSTALLED_DB2X_XSLTPROC = @INSTALLED_DB2X_XSLTPROC@ INSTALLED_SGML2XML_ISOENT = @INSTALLED_SGML2XML_ISOENT@ INSTALLED_STYLESHEETS_CATALOG = @INSTALLED_STYLESHEETS_CATALOG@ INSTALLED_UTF8TRANS = @INSTALLED_UTF8TRANS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA = @JAVA@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ OSX = @OSX@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RESOLVER_JARS = @RESOLVER_JARS@ SAXON_JARS = @SAXON_JARS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SX = @SX@ TIDY = @TIDY@ VERSION = @VERSION@ XALAN_JARS = @XALAN_JARS@ XMLLINT = @XMLLINT@ XSLTPROC = @XSLTPROC@ XSLT_PROCESSOR = @XSLT_PROCESSOR@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ db2x_perl = $(PERL) # Location of docbook2X programs stylesheets_catalog = $(top_srcdir)/xslt/catalog.xml utf8trans = $(top_builddir)/utf8trans/utf8trans db2x_texixml = $(db2x_perl) $(top_builddir)/perl/db2x_texixml --utf8trans-program=$(utf8trans) --utf8trans-map=$(top_srcdir)/charmaps/texi.charmap db2x_manxml = $(db2x_perl) $(top_builddir)/perl/db2x_manxml --utf8trans-program=$(utf8trans) --utf8trans-map=$(top_srcdir)/charmaps/roff.charmap db2x_xsltproc = $(top_builddir)/perl/db2x_xsltproc -C $(stylesheets_catalog) XML_FILES = sgml2xml.xml sgmlnorm.xml docbook2manxml.xml VCR.xml \ statgrab.xml vermeulen.xml sg_init.xml leidert-example.xml MXML_FILES = sgml2xml.mxml sgmlnorm.mxml docbook2manxml.mxml VCR.mxml \ statgrab.mxml vermeulen.mxml sg_init.mxml leidert-example.mxml MAN_FILES = sgml2xml.1 sgmlnorm.1 docbook2manxml.1 VCR.7 \ statgrab.3 vermeulen.3 sg_init.2 leidert-example.1 EXTRA_DIST = $(XML_FILES) CLEANFILES = $(MXML_FILES) $(MAN_FILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/docbuild.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/refentry/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu test/refentry/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../.. @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-info-am # ---------------------------------------------------------------------- # # User targets # .PHONY: check man check: man man: $(MAN_FILES) # ---------------------------------------------------------------------- # # Man page conversion # %.mxml: %.xml $(db2x_xsltproc) -s man -o $@ $< %.1: %.mxml $(db2x_manxml) $< @HAVE_GROFF_TRUE@ $(GROFF) -man -Tutf8 -z -w all $@ 2>&1 | grep "warning: " ; test $$? -eq 1 $(db2x_perl) $(srcdir)/../htest-man.pl $@ %.2: %.mxml $(db2x_manxml) $< @HAVE_GROFF_TRUE@ $(GROFF) -man -Tutf8 -z -w all $@ 2>&1 | grep "warning: " ; test $$? -eq 1 $(db2x_perl) $(srcdir)/../htest-man.pl $@ %.3: %.mxml $(db2x_manxml) $< @HAVE_GROFF_TRUE@ $(GROFF) -man -Tutf8 -z -w all $@ 2>&1 | grep "warning: " ; test $$? -eq 1 $(db2x_perl) $(srcdir)/../htest-man.pl $@ %.7: %.mxml $(db2x_manxml) $< @HAVE_GROFF_TRUE@ $(GROFF) -man -Tutf8 -z -w all $@ 2>&1 | grep "warning: " ; test $$? -eq 1 $(db2x_perl) $(srcdir)/../htest-man.pl $@ .DELETE_ON_ERROR: # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: docbook2X-0.8.8/test/refentry/VCR.xml0000644000175000017500000001510510422455034014274 00000000000000 15 June 2003 VCR 7 VCR Record video signal to VHS tapes Description A VCR is old technology used to record a NTSC or PAL analogue television signal to VHS-form magnetic tapes. The reproduction quality is generally poor — worse than the original signal. Troubleshooting The following conditions do not always denote trouble. Therefore, perform the checks described below before calling for service. Problems commonly encountered by lusers and their solutions Problem Suggested solution No power. OPERATE indicator does not light. Cassette cannot be ejected. Make sure the power cord is plugged in. Check outlet, fuse or circuit breaker Turn on power. Press the TIMER ON/OFF button and disengage the timer. VCR does not operate. OPERATE indicator is lit. Dew inside. Wait for about a half hour until the DEW indicator goes out. Press the EJECT button several times. Safety device in VCR is functioning. Unplug VCR and plug in again after about one minute. VCR does not record. Cassette erasure protection hole is uncovered. Use a different cassette or tape over the hole. Check if a cassette is loaded. Casstte is automatically ejected when pressing REC, TIMER RECORD, or TIMER ON/OFF. Erasure protection tab has been removed. Use a different cassette or adhesive tape over the tab opening. No colour or poor TV picture on normal viewing. Make sure all the cables are connected properly. Plug in VCR power cord. No tape movement. Make sure the VCR is not in PAUSE/STILL mode. Make sure tape has not reached the end or beginning. Snowy picture appears on TV during playback. Adjust the TRACKING control or try a different cassette. The heads may be dirty from condensed moisture or the magnetic coating of the video tape. (If this is the case, the heads need to be cleaned. Ask the retailer or Sharp approved service centre.) No picture appears during playback. Make sure the TV is set to the same channel as the VCR RF Converter Output Channel adjuster. Check all connecting cables. Cassette cannot be loaded. Make sure there is no other cassette inside. Make sure the cassette is properly positioned and reinsert. Picture does not change even though CHANNEL (−) or (+) button is pressed. Make sure the Band Selector is in the NORMAL position. The multi-function display does not operate properly. Press ALL CLEAR button and set the clock again. Set the timer again if necessary. No operation when any button is pressed. Make sure that the C-LOCK is not engaged.
docbook2X-0.8.8/test/refentry/sgmlnorm.xml0000644000175000017500000002201010101045227015462 00000000000000 nsgmls 1 "> ]> 25 July 2004 sgmlnorm 1 SP sgmlnorm normalize SGML documents An SGML System Conforming to International Standard ISO 8879 — Standard Generalized Markup Language sgmlnorm sysid Description sgmlnorm prints on the standard output a normalized document instance for the SGML document contained in the concatenation of the entities with system identifiers sysid... When the normalized instance is prefixed with the original SGML declaration and prolog, it will have the same ESIS as the original SGML document, with the following exceptions: The output of sgmlnorm does not protect against the recognition of short reference delimiters, so any USEMAP declarations must be removed from the DTD. The normalized instance will use the reference delimiters, even if the original instance did not. If marked sections are included in the output using the option, the reference reserved names will be used for the status keywords even if the original instance did not. Any ESIS information relating to the SGML LINK feature will be lost. The normalized instance will not use any markup minimization features except that: Any attributes that were not specified in the original instance will not be included in the normalized instance. (Current attributes will be included.) If the declared value of an attribute was a name token group, and a value was specified that was the same as the name of the attribute, then the attribute name and value indicator will be omitted. For example, with HTML sgmlnorm would output <DL COMPACT> rather than <DL COMPACT="COMPACT">. Options bctf Use the BCTF name bctf for output. See &nsgmls1; for more information about this option. file Use the catalog entry file file. The filename... arguments specify catalog files rather than the document entity. The document entity is specified by the first DOCUMENT entry in the catalog files. Output a document type declaration with the same external identifier as the input document, and with no internal declaration subset. No check is performed that the document instance is valid with respect to this DTD. directory Search directory for files specified in system identifiers. Multiple options are allowed. See &nsgmls1; for more information about this option. Describe open entities in error messages. name Pretend that <!ENTITY % name "INCLUDE"> occurs at the start of the document type declaration subset in the SGML document entity. Since repeated definitions of an entity are ignored, this definition will take precedence over any other definitions of this entity in the document type declaration. Multiple options are allowed. If the SGML declaration replaces the reserved name INCLUDE then the new reserved name will be the replacement text of the entity. Typically the document type declaration will contain <!ENTITY % name "IGNORE"> and will use %name; in the status keyword specification of a marked section declaration. In this case the effect of the option will be to cause the marked section not to be ignored. Output any marked sections that were in the input document instance. Output any comments that were in the input document instance. Raw output. Don't perform any conversion on RSs and REs when printing the entity. The entity would typically have the storage manager attribute records=asis. Print the version number. type Control warnings and errors according to type. See &nsgmls1; for the allowed values of type. Author James Clark jjc@jclark.com See Also &nsgmls1; /usr/share/doc/sp/sgmlnorm.htm docbook2X-0.8.8/xslt/0000777000175000017500000000000010572276007011366 500000000000000docbook2X-0.8.8/xslt/man/0000777000175000017500000000000010572276005012137 500000000000000docbook2X-0.8.8/xslt/man/sectioning.xsl0000644000175000017500000000326610112221054014734 00000000000000 Mapping of DocBook sections into man-page sections docbook2X-0.8.8/xslt/man/verbatim.xsl0000644000175000017500000000434210421517740014414 00000000000000 Verbatim environments Process content where line breaks and whitespace are to be preserved Under this mode, line breaks and whitespace are to be preserved. Also some elements under this mode may be processed differently than normal. For example, hyperlinks may be forced to be displayed in the footnote style, to avoid cluttering a verbatim display. docbook2X-0.8.8/xslt/man/refentry.xsl0000644000175000017500000002126610422042773014445 00000000000000 <sgmltag class="element">refentry</sgmltag> markup ( ) : docbook2X-0.8.8/xslt/man/keywords.xsl0000644000175000017500000000246410112221054014440 00000000000000 Keyword and subject meta-data docbook2X-0.8.8/xslt/man/xref.xsl0000644000175000017500000001477310417772510013563 00000000000000 Handle cross references and links Test if two nodes refer to the same man-page More precisely, test if the target is inside a refentry, and that refentry is the same as the current refentry. Give cross-reference markup Processing an element with this mode returns the markup/text that should be used for referring to it in cross-references. ( ) docbook2X-0.8.8/xslt/man/manpage.xsl0000644000175000017500000000423710421710223014205 00000000000000 Man page chunk t docbook2X-0.8.8/xslt/man/glossary.xsl0000644000175000017500000000676610112221054014445 00000000000000 Glossaries docbook2X-0.8.8/xslt/man/admon.xsl0000644000175000017500000000354410407344533013706 00000000000000 Admonitions docbook2X-0.8.8/xslt/man/toc.xsl0000644000175000017500000000275710112221054013363 00000000000000 User-defined table of contents (<sgmltag class="element">toc</sgmltag> markup) docbook2X-0.8.8/xslt/man/Makefile.am0000644000175000017500000000101207673163653014115 00000000000000# $Id: Makefile.am,v 1.4 2003/06/15 21:39:55 stevecheng Exp $ # # This Makefile installs the Man page XSLT stylesheets. # XSL_FILES = admon.xsl beginpage.xsl block.xsl caption.xsl \ docbook.xsl formal.xsl glossary.xsl index.xsl \ info.xsl inline.xsl keywords.xsl lists.xsl \ param.xsl pi.xsl manpage.xsl \ refentry.xsl sectioning.xsl \ sections.xsl synop.xsl table.xsl toc.xsl verbatim.xsl \ xref.xsl xsltdir = $(pkgdatadir)/xslt xsltmandir = $(xsltdir)/man xsltman_DATA = $(XSL_FILES) EXTRA_DIST = $(XSL_FILES) docbook2X-0.8.8/xslt/man/Makefile.in0000644000175000017500000002415710572275767014147 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am,v 1.4 2003/06/15 21:39:55 stevecheng Exp $ # # This Makefile installs the Man page XSLT stylesheets. # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = xslt/man DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/utf8trans/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(xsltmandir)" xsltmanDATA_INSTALL = $(INSTALL_DATA) DATA = $(xsltman_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GROFF = @GROFF@ HAVE_GROFF_FALSE = @HAVE_GROFF_FALSE@ HAVE_GROFF_TRUE = @HAVE_GROFF_TRUE@ HAVE_HTML_XSL_FALSE = @HAVE_HTML_XSL_FALSE@ HAVE_HTML_XSL_TRUE = @HAVE_HTML_XSL_TRUE@ HAVE_TIDY_FALSE = @HAVE_TIDY_FALSE@ HAVE_TIDY_TRUE = @HAVE_TIDY_TRUE@ HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@ HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@ ICONV = @ICONV@ INSTALLED_CHARMAP_ROFF = @INSTALLED_CHARMAP_ROFF@ INSTALLED_CHARMAP_TEXI = @INSTALLED_CHARMAP_TEXI@ INSTALLED_DB2X_MANXML = @INSTALLED_DB2X_MANXML@ INSTALLED_DB2X_TEXIXML = @INSTALLED_DB2X_TEXIXML@ INSTALLED_DB2X_XSLTPROC = @INSTALLED_DB2X_XSLTPROC@ INSTALLED_SGML2XML_ISOENT = @INSTALLED_SGML2XML_ISOENT@ INSTALLED_STYLESHEETS_CATALOG = @INSTALLED_STYLESHEETS_CATALOG@ INSTALLED_UTF8TRANS = @INSTALLED_UTF8TRANS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA = @JAVA@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ OSX = @OSX@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RESOLVER_JARS = @RESOLVER_JARS@ SAXON_JARS = @SAXON_JARS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SX = @SX@ TIDY = @TIDY@ VERSION = @VERSION@ XALAN_JARS = @XALAN_JARS@ XMLLINT = @XMLLINT@ XSLTPROC = @XSLTPROC@ XSLT_PROCESSOR = @XSLT_PROCESSOR@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ XSL_FILES = admon.xsl beginpage.xsl block.xsl caption.xsl \ docbook.xsl formal.xsl glossary.xsl index.xsl \ info.xsl inline.xsl keywords.xsl lists.xsl \ param.xsl pi.xsl manpage.xsl \ refentry.xsl sectioning.xsl \ sections.xsl synop.xsl table.xsl toc.xsl verbatim.xsl \ xref.xsl xsltdir = $(pkgdatadir)/xslt xsltmandir = $(xsltdir)/man xsltman_DATA = $(XSL_FILES) EXTRA_DIST = $(XSL_FILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu xslt/man/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu xslt/man/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh uninstall-info-am: install-xsltmanDATA: $(xsltman_DATA) @$(NORMAL_INSTALL) test -z "$(xsltmandir)" || $(mkdir_p) "$(DESTDIR)$(xsltmandir)" @list='$(xsltman_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(xsltmanDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(xsltmandir)/$$f'"; \ $(xsltmanDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(xsltmandir)/$$f"; \ done uninstall-xsltmanDATA: @$(NORMAL_UNINSTALL) @list='$(xsltman_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(xsltmandir)/$$f'"; \ rm -f "$(DESTDIR)$(xsltmandir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(xsltmandir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-xsltmanDATA install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-xsltmanDATA .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip install-xsltmanDATA installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ uninstall-am uninstall-info-am uninstall-xsltmanDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: docbook2X-0.8.8/xslt/man/formal.xsl0000644000175000017500000000444010112221054014045 00000000000000 DocBook formal objects docbook2X-0.8.8/xslt/man/sections.xsl0000644000175000017500000000264610112221054014422 00000000000000 DocBook sectioning elements docbook2X-0.8.8/xslt/man/index.xsl0000644000175000017500000000320610112221054013673 00000000000000 Indices docbook2X-0.8.8/xslt/man/synop.xsl0000644000175000017500000002042510421517122013745 00000000000000 Synopses
( ) ( ) ( ) ; void , ... , ( )
docbook2X-0.8.8/xslt/man/pi.xsl0000644000175000017500000000227510112221054013201 00000000000000 Handle processing instructions docbook2X-0.8.8/xslt/man/inline.xsl0000644000175000017500000004751610570376502014077 00000000000000 Inline markup These are the templates for character inline-level markup. ^ _ ( ) element </ > & ; &# ; % ; <? > <? ?> < > < /> <!-- --> < > ( ) -> + [ ] docbook2X-0.8.8/xslt/man/lists.xsl0000644000175000017500000001122110570375723013743 00000000000000 All sorts of lists .

docbook2X-0.8.8/xslt/man/docbook.xsl0000644000175000017500000000723410416776303014234 00000000000000 element not matched by any template docbook2X-0.8.8/xslt/man/info.xsl0000644000175000017500000000502110112221054013514 00000000000000 The <sgmltag class="element"><replaceable>*</replaceable>info</sgmltag> wrappers docbook2X-0.8.8/xslt/man/param.xsl0000644000175000017500000002341710421517027013705 00000000000000 Stylesheet parameters Stylesheet parameters influence various aspects of the rendering. They can be set from the command line (the exact syntax depends on the XSLT processor), or in a custom stylesheet. To set them in a custom stylesheet, simply copy the definition here and change the select attribute to something else. If a parameter for what you want to change does not exist, you can write templates in the custom stylesheet instead. Make man-page file names lowercase? Whenever a man-page title is all uppercase and this option is set, then the name of the file that contains that man-page should be changed to lowercase. If the man-page title is mixed-case, the file name will be unchanged. This option is intended for the situation where the title of the man-page is an identifier in some language (e.g. SQL) that is case-insensitive, but the official version of the identifier is in uppercase. The user would probably prefer that the man-page should not be filed as all uppercase, even though the title displayed on the man-page should be upper-case. Make headings uppercase? Headings in man page content should be or should not be uppercased. Man page section citation should use only the number When citing other man pages, the man-page section is either given as is, or has the letters stripped from it, citing only the number of the section (e.g. section 3x becomes 3). This option specifies which style. Display quotes on literal elements? If true, render literal elements with quotes around them. Display comment elements? If true, comments will be displayed, otherwise they are suppressed. Comments here refers to the comment element, which will be renamed remark in DocBook V4.0, not XML comments (<-- like this -->) which are unavailable. Generate parentheses after a function? If true, the formatting of a function element will include generated parenthesis. Should link generate a cross-reference? Man pages cannot render the hypertext links created by link. If this option is set, then the stylesheet renders a cross reference to the target of the link. (This may reduce clutter). Otherwise, only the content of the link is rendered and the actual link itself is ignored. Third header text Specifies the text of the third header of a man page, typically the date for the man page. If empty, the date content for the refentry is used. Fourth header text Specifies the text of the fourth header of a man page. If empty, the refmiscinfo content for the refentry is used. Fifth header text Specifies the text of the fifth header of a man page. If empty, the manual name, that is, the title of the book or reference container is used. Default man page section The source document usually indicates the sections that each man page should belong to (with manvolnum in refmeta). In case the source document does not indicate man-page sections, this option specifies the default. URI of XML document containing custom localization data This parameter specifies the URI of a XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. The text translations pointed to by this parameter always override the default text translations (from the internal parameter localization-file). If a particular translation is not present here, the corresponding default translation is used as a fallback. This parameter is primarily for changing certain punctuation characters used in formatting the source document. The settings for punctuation characters are often specific to the source document, but can also be dependent on the locale. To not use custom text translations, leave this parameter as the empty string. XML document containing custom localization data This parameter specifies the XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. This parameter is internal to the stylesheet. To point to an external XML document with a URI or a file name, you should use the custom-localization-file parameter instead. However, inside a custom stylesheet (not on the command-line) this paramter can be set to the XPath expression document(''), which will cause the custom translations directly embedded inside the custom stylesheet to be read. Is othername in author a middle name? If true, the othername of an author appears between the firstname and surname. Otherwise, othername is suppressed. docbook2X-0.8.8/xslt/man/beginpage.xsl0000644000175000017500000000211210112221054014500 00000000000000 <sgmltag class="element">beginpage</sgmltag> element docbook2X-0.8.8/xslt/man/table.xsl0000644000175000017500000000714710417537704013707 00000000000000 Table support
docbook2X-0.8.8/xslt/man/block.xsl0000644000175000017500000001516010570375674013712 00000000000000 Block-level objects : , docbook2X-0.8.8/xslt/man/caption.xsl0000644000175000017500000000411410112221054014220 00000000000000 ]> Captions (really headings) Render as a ‘caption’ This template renders content (usually titles in certain block objects) as a ‘caption’. content The result tree fragment to render. If not specified, defaults to applying for-title mode to the context node. docbook2X-0.8.8/xslt/texi/0000777000175000017500000000000010572276005012335 500000000000000docbook2X-0.8.8/xslt/texi/division.xsl0000644000175000017500000000355310112221057014616 00000000000000 DocBook divisions majorheading docbook2X-0.8.8/xslt/texi/footnote.xsl0000644000175000017500000000254610112221057014630 00000000000000 Footnotes Footnote references not supported docbook2X-0.8.8/xslt/texi/jrefentry.xsl0000644000175000017500000001232510112221057014777 00000000000000 <sgmltag class="element">jrefentry</sgmltag> support The templates in this file are not included by default, as jrefentry is not standard DocBook. To use these, you must import this file explicitly along with docbook.xsl in your stylesheet. Description Author Version Parameters Return value Exceptions thrown See also Since Serial Deprecated docbook2X-0.8.8/xslt/texi/chunk.xsl0000644000175000017500000000464610112221056014105 00000000000000 Output the preamble Process a top-level chunk This mode is supposed to output all the Texi-XML markup required for the beginning of the Texinfo file, e.g. settitle, Texinfo directories, etc. After that, it goes onto normal processing. docbook2X-0.8.8/xslt/texi/menudescrip.xsl0000644000175000017500000001550010112221057015303 00000000000000 Texinfo menu descriptions Make descriptions for Texinfo menu entries, if available.
Menu descriptions: processing expectations If an abstract with a role of texinfo-node is found, that is rendered as the menu description for the node. Descriptions should be one sentence or phrase long, since space is limited in a Texinfo menu. For the same reason, only the first paragraph of such an abstract is rendered. Menu descriptions also appear for the Info directory entry for an Info file; these descriptions are handled just the same as normal menus, with the abstract apparatus. On the other hand, the Info directory category is specified using a subjectset with a scheme of texinfo-directory. Menu descriptions in the source document wget The non-interactive network downloader. Network Applications ]]> … article content goes here … </article> You may prefer to put the Texinfo descriptions outside of the source document. This is possible with a custom stylesheet: Specifying Texinfo directory entries in a stylesheet General Commands Make hard links between files. Command-line options Restrictions on linking imposed by the OS ]]> … more entries …
Return description for Texinfo node Processing an element using menu-description-mode returns a result tree fragment that is the description for its menu entry. Return Info directory category Processing an element (normally the root element, but also books) using menu-description-mode returns a result tree fragment that is the Info categorization for the Texinfo file.
docbook2X-0.8.8/xslt/texi/sectioning.xsl0000644000175000017500000002652410112221057015137 00000000000000 Mapping of DocBook sections into Texinfo sections Give Texinfo structuring command for given section level This template returns the name of the Texinfo command that is mapped to the given DocBook element. This implementation internally uses numbers that reflect the DocBook hierarchy, like Norm's section.level template. However, section.level only maps the DocBook sectioning elements (sectn and section). This simplistic mapping of numbers to Texinfo commands sometimes yield results that do not make a lot of sense; e.g. if the document element is section, then the first section is mapped to @top, but the next nested section would be a Texinfo chapter. I have thought about letting each template specify their own structuring element, but from my testing, jumping around the hierarchy breaks at least the TeX portion of Texinfo. Besides, this neccessitated writing a xsl:chooses with non-trivial cases in many templates. The only thing I can say is that if you use 'weird' document elements, you can't reasonably transform to Texinfo (whose top level is semantically similar to book). docbook2texixml takes the same approach. I also have a suspicion that calling this template will be slow, but there's nothing we can do about it :-( node The node to get the Texinfo structuring command mapping for. Default is the context node. heading-class The class of heading commands to use: chapter unnumbered appendix chapheading See the chart in the Texinfo manual for the meanings of each class. The default is chapter top chapter section subsection subsubsection subsubheading section is too deep top unnumbered unnumberedsec unnumberedsubsec unnumberedsubsubsec subsubheading section is too deep top appendix appendixsec appendixsubsec appendixsubsubsec subsubheading section is too deep majorheading chapheading heading subheading subsubheading subsubheading section is too deep Make Texinfo section This template outputs the corresponding Texinfo sectioning command for the DocBook sectioning elements. Logically speaking, this template might better be called make-texinfo-heading, as it only output the Texinfo sectioning command, but not the actual content of the section. level The name of the Texinfo structuring command. If not specified, automatically uses get-texinfo-section-level. title The title to use for the section. The default is found by applying title mode templates to the context node. Standard template for section structures For the given element, it creates a node for it if is.node=1, otherwise an anchor, and calls make-texinfo-section for the actual sectioning command. Finally templates are applied for the child elements. With this, the user can easily decide what elements are to be converted to nodes with a simple change to texinode.xsl. The arguments are the same as the ones for make-texinfo-section, plus content. content The result tree fragment of the section. Defaults to applying templates. docbook2X-0.8.8/xslt/texi/verbatim.xsl0000644000175000017500000000441510112221057014601 00000000000000 Verbatim environments These templates transform DocBook verbatim environments to their Texinfo equivalents.
Verbatim environments: processing expectations The verbatim environments in the printed output (TeX) are not very wide, and TeX will choke on lines that ordinarily fit comfortably on the screen in Info and HTML output (an overfull @hbox). So if you want Texinfo printed output, trim down the offending lines in the verbatim environments. The stylesheets cannot do that for you.
docbook2X-0.8.8/xslt/texi/autotoc.xsl0000644000175000017500000001506010112221056014443 00000000000000 Texinfo menus and directory entries Generate Texinfo menus for each node. Also optionally generate directory entries used by install-info. The user generally does not modify these templates. Menus are created by the first child sectioning element, so that the @menu comes just after the text content of the parent sectioning element, where Texinfo expects them to be. This approach may not be the most elegant, but it works, and its operation is hidden by make-texinfo-node. Make Texinfo menus Any DocBook element that generates a Texinfo node can be processed with this mode to generate a menu for it. If the element that is processed happens to be the Top node, the @detailmenu is generated also. --- The Detailed Node Listing --- Make a Texinfo directory entry Output commands so that install-info can automatically add a directory entry when installing the document. no description for directory entry [missing text] docbook2X-0.8.8/xslt/texi/force-inline.xsl0000644000175000017500000000635010112221057015342 00000000000000 Process only inline content Process only inline content A few elements in DocBook, namely entry and footnote, have content models that allow block-level content (as well as inline-level content), but the mapping to Texinfo does not allow block-level content. This mode selects only the inline content and loudly complains to the user if block-level elements are found. Additionally, simple paragraphs are converted to inline content. non-inline content not supported non-inline content not supported docbook2X-0.8.8/xslt/texi/refentry.xsl0000644000175000017500000001002510112221057014620 00000000000000 <sgmltag class="element">refentry</sgmltag> markup ( ) ( ) : docbook2X-0.8.8/xslt/texi/keywords.xsl0000644000175000017500000000234710112221057014641 00000000000000 Keyword and subject meta-data docbook2X-0.8.8/xslt/texi/texinode-base.xsl0000644000175000017500000001451610112221057015522 00000000000000 Low-level Texinfo node handling Output node element This named template creates a node element in the result tree, which corresponds to the Texinfo @node command. make-texinfo-node called for non-node docbook2X-0.8.8/xslt/texi/xref.xsl0000644000175000017500000001324310112221057013733 00000000000000 Handle cross references and links reference to non-existent ID reference to non-existent ID "" ( ) Give cross-reference markup Processing an element with this mode returns the markup/text that should be used for referring to it in cross-references. Since Texinfo already handles cross references to nodes, this mode does mostly nothing. FIXME: However we need something for anchors... docbook2X-0.8.8/xslt/texi/glossary.xsl0000644000175000017500000001035510112221057014633 00000000000000 Glossaries docbook2X-0.8.8/xslt/texi/biblio.xsl0000644000175000017500000005142010417612756014250 00000000000000 Bibliographies Bibliographies are probably broken right now. They may still work for you, but the entire system really needs an overhaul. [ ] docbook2X-0.8.8/xslt/texi/texinode.xsl0000644000175000017500000003162210112221057014607 00000000000000 Nodal elements and their node names These templates determine which elements get transformed into Texinfo nodes, and how to derive a Texinfo node name for these nodes.
Texinfo node names: processing expectations The templates try to derive a Texinfo node name of a nodal section from the content of the following, in order of preference: titleabbrev with role="texinfo-node" in the *info wrapper. The xreflabel The titleabbrev The title
Determine if given element is a Texinfo node This mode defines which elements are to be transformed into Texinfo node. Elements that generate anchors are not considered nodes by this mode. The set of nodal elements can be changed, but only sectioning elements can be nodes and the stylesheets do not support any fancy interleaving of nodal sections and non-nodal sections. Return empty string for an element that is not a node, and the string 1 if it is. Return a suggested nodename Processing an element using for-texinfo-node-name returns a suggested nodename (or anchor name) for that element. Function index Variables index Keystroke index Program index Data type index Concept index
docbook2X-0.8.8/xslt/texi/math.xsl0000644000175000017500000000242610112221057013721 00000000000000 Equations Currently we do not support the use of TeX for mathematics. docbook2X-0.8.8/xslt/texi/admon.xsl0000644000175000017500000000326410112221056014066 00000000000000 Admonitions docbook2X-0.8.8/xslt/texi/toc.xsl0000644000175000017500000000276010112221057013556 00000000000000 User-defined table of contents (<sgmltag class="element">toc</sgmltag> markup) docbook2X-0.8.8/xslt/texi/component.xsl0000644000175000017500000000503210112221057014766 00000000000000 docbook2X-0.8.8/xslt/texi/Makefile.am0000644000175000017500000000133410105021372014271 00000000000000# $Id: Makefile.am,v 1.12 2004/08/07 00:31:54 stevecheng Exp $ # # This Makefile installs the Texinfo XSLT stylesheets. # XSL_FILES = admon.xsl autotoc.xsl beginpage.xsl biblio.xsl block.xsl \ callout.xsl caption.xsl component.xsl division.xsl \ docbook.xsl footnote.xsl \ force-inline.xsl formal.xsl glossary.xsl graphics.xsl \ index.xsl info.xsl inline.xsl keywords.xsl lists.xsl math.xsl \ menudescrip.xsl param.xsl pi.xsl qandaset.xsl refentry.xsl \ sectioning.xsl sections.xsl synop.xsl table.xsl \ texifile.xsl texinode-base.xsl texinode.xsl chunk.xsl \ toc.xsl verbatim.xsl xref.xsl \ jrefentry.xsl xsltdir = $(pkgdatadir)/xslt xslttexidir = $(xsltdir)/texi xslttexi_DATA = $(XSL_FILES) EXTRA_DIST = $(XSL_FILES) docbook2X-0.8.8/xslt/texi/Makefile.in0000644000175000017500000002453410572275767014344 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am,v 1.12 2004/08/07 00:31:54 stevecheng Exp $ # # This Makefile installs the Texinfo XSLT stylesheets. # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = xslt/texi DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/utf8trans/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(xslttexidir)" xslttexiDATA_INSTALL = $(INSTALL_DATA) DATA = $(xslttexi_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GROFF = @GROFF@ HAVE_GROFF_FALSE = @HAVE_GROFF_FALSE@ HAVE_GROFF_TRUE = @HAVE_GROFF_TRUE@ HAVE_HTML_XSL_FALSE = @HAVE_HTML_XSL_FALSE@ HAVE_HTML_XSL_TRUE = @HAVE_HTML_XSL_TRUE@ HAVE_TIDY_FALSE = @HAVE_TIDY_FALSE@ HAVE_TIDY_TRUE = @HAVE_TIDY_TRUE@ HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@ HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@ ICONV = @ICONV@ INSTALLED_CHARMAP_ROFF = @INSTALLED_CHARMAP_ROFF@ INSTALLED_CHARMAP_TEXI = @INSTALLED_CHARMAP_TEXI@ INSTALLED_DB2X_MANXML = @INSTALLED_DB2X_MANXML@ INSTALLED_DB2X_TEXIXML = @INSTALLED_DB2X_TEXIXML@ INSTALLED_DB2X_XSLTPROC = @INSTALLED_DB2X_XSLTPROC@ INSTALLED_SGML2XML_ISOENT = @INSTALLED_SGML2XML_ISOENT@ INSTALLED_STYLESHEETS_CATALOG = @INSTALLED_STYLESHEETS_CATALOG@ INSTALLED_UTF8TRANS = @INSTALLED_UTF8TRANS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA = @JAVA@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ OSX = @OSX@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RESOLVER_JARS = @RESOLVER_JARS@ SAXON_JARS = @SAXON_JARS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SX = @SX@ TIDY = @TIDY@ VERSION = @VERSION@ XALAN_JARS = @XALAN_JARS@ XMLLINT = @XMLLINT@ XSLTPROC = @XSLTPROC@ XSLT_PROCESSOR = @XSLT_PROCESSOR@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ XSL_FILES = admon.xsl autotoc.xsl beginpage.xsl biblio.xsl block.xsl \ callout.xsl caption.xsl component.xsl division.xsl \ docbook.xsl footnote.xsl \ force-inline.xsl formal.xsl glossary.xsl graphics.xsl \ index.xsl info.xsl inline.xsl keywords.xsl lists.xsl math.xsl \ menudescrip.xsl param.xsl pi.xsl qandaset.xsl refentry.xsl \ sectioning.xsl sections.xsl synop.xsl table.xsl \ texifile.xsl texinode-base.xsl texinode.xsl chunk.xsl \ toc.xsl verbatim.xsl xref.xsl \ jrefentry.xsl xsltdir = $(pkgdatadir)/xslt xslttexidir = $(xsltdir)/texi xslttexi_DATA = $(XSL_FILES) EXTRA_DIST = $(XSL_FILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu xslt/texi/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu xslt/texi/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh uninstall-info-am: install-xslttexiDATA: $(xslttexi_DATA) @$(NORMAL_INSTALL) test -z "$(xslttexidir)" || $(mkdir_p) "$(DESTDIR)$(xslttexidir)" @list='$(xslttexi_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(xslttexiDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(xslttexidir)/$$f'"; \ $(xslttexiDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(xslttexidir)/$$f"; \ done uninstall-xslttexiDATA: @$(NORMAL_UNINSTALL) @list='$(xslttexi_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(xslttexidir)/$$f'"; \ rm -f "$(DESTDIR)$(xslttexidir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(xslttexidir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-xslttexiDATA install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-xslttexiDATA .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip install-xslttexiDATA installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-info-am \ uninstall-xslttexiDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: docbook2X-0.8.8/xslt/texi/formal.xsl0000644000175000017500000000472610112221057014255 00000000000000 DocBook formal objects docbook2X-0.8.8/xslt/texi/sections.xsl0000644000175000017500000000415210112221057014615 00000000000000 DocBook sectioning elements unnumberedsec unnumberedsubsec unnumberedsubsubsec unnumberedsubsubsec docbook2X-0.8.8/xslt/texi/index.xsl0000644000175000017500000000720010112221057014072 00000000000000 Texinfo Indices docbook2X-0.8.8/xslt/texi/synop.xsl0000644000175000017500000001765710112221057014154 00000000000000 Synopses Plain text synopses Info uses decorations to represent semantic markup, which is undesirable in a verbatim synopsis. So we use verbatim to not use Texinfo's semantic markup. However, we lose the ability to make links :( ( ) ; void , ... , ( ) docbook2X-0.8.8/xslt/texi/pi.xsl0000644000175000017500000000227610112221057013403 00000000000000 Handle processing instructions docbook2X-0.8.8/xslt/texi/qandaset.xsl0000644000175000017500000000514410112221057014570 00000000000000 Question-and-answer markup    docbook2X-0.8.8/xslt/texi/inline.xsl0000644000175000017500000005314410570376456014277 00000000000000 Inline markup These are the templates for character inline-level markup. ^ _ ( ) element </ > & ; &# ; % ; <? > <? ?> < > < /> <!-- --> + , ( ) -> + [ ] docbook2X-0.8.8/xslt/texi/callout.xsl0000644000175000017500000001476710112221056014445 00000000000000 Call-outs Out-of-line call-outs (i.e. those specified with arearef) are not supported properly (currently only the coordinates are printed, with no bug placed in the specified location). ( ) reference to non-existent ID reference to non-existent ID "" linkend points to an incorrect element linkend points to an incorrect element [missing text] docbook2X-0.8.8/xslt/texi/lists.xsl0000644000175000017500000002267010112221057014131 00000000000000 All sorts of lists 1 1 1 1 1 1 1 1 1 1 1 1 1 1 docbook2X-0.8.8/xslt/texi/docbook.xsl0000644000175000017500000001215510407340541014417 00000000000000 element not matched by any template Texinfo XSLT stylesheets driver This file is the basic driver of the Texinfo XSLT stylesheets. It includes all the other stylesheet files. You can use this stylesheet directly, or create your own custom stylesheet that imports this one (or one of the other driver files): Importing stylesheets <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:import href="http://docbook2x.sf.net/latest/xslt/texi/docbook.xsl" /> … your own stylesheet code goes here … </xsl:stylesheet> Importing the stylesheet allows you to specify stylesheet options and customize the stylesheets without changing the standard stylesheets. docbook2X-0.8.8/xslt/texi/info.xsl0000644000175000017500000000575010112221057013726 00000000000000 The <sgmltag class="element"><replaceable>*</replaceable>info</sgmltag> wrappers docbook2X-0.8.8/xslt/texi/graphics.xsl0000644000175000017500000000763010112221057014572 00000000000000 Graphics and media objects Image data must be specified with entityref or fileref attribute broken-graphic docbook2X-0.8.8/xslt/texi/param.xsl0000644000175000017500000003766510420204655014114 00000000000000 Stylesheet parameters Stylesheet parameters influence various aspects of the rendering. They can be set from the command line (the exact syntax depends on the XSLT processor), or in a custom stylesheet. To set them in a custom stylesheet, simply copy the definition here and change the select attribute to something else. If a parameter for what you want to change does not exist, you can write templates in the custom stylesheet instead. Use heading markup for minor captions? If true, title content in some (formal) objects are rendered with the Texinfo @heading commands. If false, captions are rendered as an emphasized paragraph. Translate link using @pxref If true, link is translated with the hypertext followed by the cross reference in parentheses. Otherwise, the hypertext content serves as the cross-reference name marked up using @ref. Typically info displays this contruct badly. Insist on manually constructed Texinfo node names Elements in the source document can influence the Texinfo node name generation specifying either a xreflabel, or for the sectioning elements, a title with role='texinfo-node' in the *info container. However, for the majority of source documents, explicit Texinfo node names are not available, and the stylesheet tries to generate a reasonable one instead, e.g. from the normal title of an element. The generated name may not be optimal. If this option is set and the stylesheet needs to generate a name, a warning is emitted and generate-id is always used for the name. When the hashtable extension is not available, the stylesheet cannot check for node name collisions, and in this case, setting this option and using explicit node names are recommended. This option is not set (i.e. false) by default. The absolute fallback for generating node names is using the XSLT function generate-id, and the stylesheet always emits a warning in this case regardless of the setting of explicit-node-names. Display comment elements? If true, comments will be displayed, otherwise they are suppressed. Comments here refers to the comment element, which will be renamed remark in DocBook V4.0, not XML comments (<-- like this -->) which are unavailable. Decorate elements of a FuncSynopsis? If true, elements of the FuncSynopsis will be decorated (e.g. bold or italic). The decoration is controlled by functions that can be redefined in a customization layer. Generate parentheses after a function? If true, the formatting of a function element will include generated parenthesis. Output NAME header before 'RefName'(s)? If true, a "NAME" section title is output before the list of 'RefName's. Output manvolnum as part of refentry cross-reference? if true, the manvolnum is used when cross-referencing refentrys, either with xref or citerefentry. Prefer textobject over imageobject? If true, the textobject in a mediaobject is preferred over any imageobject. (Of course, for output formats other than Texinfo, you usually want to prefer the imageobject, but Info is a text-only format.) In addition to the values true and false, this parameter may be set to 2 to indicate that both the text and the images should be output. You may want to do this because some Texinfo viewers can read images. Note that the Texinfo @image command has its own mechanism for switching between text and image output — but we do not use this here. The default is true. Use Texinfo semantic inline markup? If true, the semantic inline markup of DocBook is translated into (the closest) Texinfo equivalent. This is the default. However, because the Info format is limited to plain text, the semantic inline markup is often distinguished by using explicit quotes, which may not look good. You can set this option to false to suppress these. (For finer control over the inline formatting, you can use your own stylesheet.) URI of XML document containing custom localization data This parameter specifies the URI of a XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. The text translations pointed to by this parameter always override the default text translations (from the internal parameter localization-file). If a particular translation is not present here, the corresponding default translation is used as a fallback. This parameter is primarily for changing certain punctuation characters used in formatting the source document. The settings for punctuation characters are often specific to the source document, but can also be dependent on the locale. To not use custom text translations, leave this parameter as the empty string. XML document containing custom localization data This parameter specifies the XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. This parameter is internal to the stylesheet. To point to an external XML document with a URI or a file name, you should use the custom-localization-file parameter instead. However, inside a custom stylesheet (not on the command-line) this paramter can be set to the XPath expression document(''), which will cause the custom translations directly embedded inside the custom stylesheet to be read. Is othername in author a middle name? If true, the othername of an author appears between the firstname and surname. Otherwise, othername is suppressed. Name of the Info file Texinfo metadata This parameter specifies the name of the final Info file, overriding the setting in the document itself and the automatic selection in the stylesheet. If the document is a set, this parameter has no effect. Do not include the .info extension in the name. (Note that this parameter has nothing to do with the name of the Texi-XML output by the XSLT processor you are running this stylesheet from.) The categorization of the document in the Info directory Texinfo metadata This is set to the category that the document should go under in the Info directory of installed Info files. For example, General Commands. Categories may also be set directly in the source document. But if this parameter is not empty, then it always overrides the setting in the source document. The description of the document in the Info directory Texinfo metadata This is a short description of the document that appears in the Info directory of installed Info files. For example, An Interactive Plotting Program. Menu descriptions may also be set directly in the source document. But if this parameter is not empty, then it always overrides the setting in the source document. The Texinfo index to use The Texinfo index for indexterm and index is specified using the role attribute. If the above elements do not have a role, then the default specified by this parameter is used. The predefined indices are: c cp Concept index f fn Function index v vr Variable index k ky Keystroke index p pg Program index d tp Data type index User-defined indices are not yet supported. number Sets the default for defaultlabel on QandASet. If no defaultlabel attribute is specified on a QandASet, this value is used. It must be one of the legal values for the defaultlabel attribute. 1 Is a Table of Contents created for QandASets? If true, a ToC is constructed for QandASets. docbook2X-0.8.8/xslt/texi/beginpage.xsl0000644000175000017500000000232510112221056014706 00000000000000 <sgmltag class="element">beginpage</sgmltag> element docbook2X-0.8.8/xslt/texi/table.xsl0000644000175000017500000001375110112221057014062 00000000000000 Table support Get the proportional width as specified in the given colspec In CALS tables, the colspec has the attribute colwidth which can specify either absolute column widths, relative column widths, or a mixture of both measures. Texinfo only supports relative column widths. This template coerces all absolute column widths into relative ones, as follows: No width is specified Then the column is assumed to have a relative column width of one. Absolute widths These are simply translated to a relative column width of one. Mixture These are of the form P*+M, where P is the relative column width, and M is an absolute column width. The sign may also be minus instead of plus, with the obvious meaning. This template drops the M part and its sign. colspec A node-set that is the colspec element to determine widths for. absolute table column widths not supported absolute table column widths not supported docbook2X-0.8.8/xslt/texi/texifile.xsl0000644000175000017500000001564710421577227014632 00000000000000 Handle multiple files in Texinfo These templates are used when making cross references between the multiple Texinfo files that are generated from a single DocBook set. You probably do not need to modify anything here. Cannot generate Texinfo filename book Find the file that contains the result Returns the Texinfo file that contains the result when transforming the context node. In this implementation, every document element starts a new file, unless the document element is set, in which case each child book starts a new file. node The node to find information for. Default is the context node. docbook2X-0.8.8/xslt/texi/block.xsl0000644000175000017500000001626110112221056014063 00000000000000 Block-level objects , docbook2X-0.8.8/xslt/texi/caption.xsl0000644000175000017500000000533010112221056014421 00000000000000 ]> Captions (really headings) Render as a ‘caption’ This template renders content (usually titles in certain block objects) as a ‘caption’. What this exactly means depends on the value of the captions-display-as-headings parameter. content The result tree fragment to render. If not specified, defaults to applying for-title mode to the context node. docbook2X-0.8.8/xslt/catalog.xml0000644000175000017500000000126310107727102013427 00000000000000 docbook2X-0.8.8/xslt/common/0000777000175000017500000000000010572276004012653 500000000000000docbook2X-0.8.8/xslt/common/l10n.xsl0000644000175000017500000002052310417042527014072 00000000000000 (URI of) XML document containing localization data This parameter specifies the URI of the localization-set document. This document, written in XML, describes all the text translations (and other locale-specific information) used by the stylesheet. You do not need to change this parameter unless you want to use custom localization data. XML element node containing localization-data This is just document($localization-file)/l:localization-set. There is no need to change this. Assumed language of the input document when it is not specified in the source If the source document does not specify what language it is written in using the lang or xml:lang attribute. then it is assumed to be in the language this parameter is set to. If these attributes are present (and in effect, whenever the stylesheet needs language information), the language specified in this parameter is ignored. You rarely need to change this parameter; it is better to change the source document instead, adding the lang or the xml:lang attribute. The format of the value of this parameter is the usual language_code-country_code. For example, zh-TW. The hyphen (-) may also be an underscore (_). Determine the language to translate to Given a language code lang (usually obtained from l10n-xml-language), match it with a language code in the localization data file. The new language code may in fact be the same language code, or it could be the language code with the country-code part stripped. If the localization data file does not contain the language lang, then some default language that does exist is returned. lang The original language code. No localization exists for language “ Determine the language of the given XML fragment Returns the language of the XML content at the given node, as determined by the lang or xml:lang attribute. The result is always given in a normalized form: language_code-country_code, with the language_code and country_code always in lower case. The -country_code may be missing. No checking is done to make sure the language code is valid. target The (element) node to find out the language for. Defaults to the context node. Output localized text, substituting parameters if necessary A piece of the translated text is processed with this mode to perform any substitutions of parameters like chapter numbers, etc. Text nodes are echoed through in this mode. docbook2X-0.8.8/xslt/common/text/0000777000175000017500000000000010572276004013637 500000000000000docbook2X-0.8.8/xslt/common/text/l10n-set.xml0000644000175000017500000000303307663737216015655 00000000000000 ]> ⁡ &bg; &ca; &cs; &da; &de; ⪙ &en; &es; &et; &eu; &fi; &fr; &he; &hu; &id; ⁢ &ja; &ko; < &nl; &nn; &no; &pl; &pt; &pt-br; &ro; &ru; &sk; &sl; &sr; &sv; &th; &tr; &uk; &vi; &xh; &zh-cn; &zh-tw; docbook2X-0.8.8/xslt/common/text/pt-br.xml0000644000175000017500000001077507663737216015351 00000000000000 Portuguese (Brazil) Resumo R: apêndice Artigo Bibliografia Livro Cuidado capítulo Considerações finais Copyright Dedicatória Edição Equação Exemplo Figura Glossário Importante ISBN Nota Legal Audiência Nível Origem Nota Parte Prefácio Procedimento Data de Publicação P: Referência Nome Sinopse Histórico de Revisões Revisão Section Section Section Section Section seção Ver Ver Também Conjunto Índice do Conjunto quadro lateral passo Tabela Dica Atenção , , Notas Notas Lista de Equações Lista de Exemplos Lista de Figuras Lista de Tabelas Lista de ??? abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Ver Ver Também Audiência: Nível: Origem: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/af.xml0000644000175000017500000001116507663737216014705 00000000000000 Afrikaans samevatting antwoord: aanhangsel artikel bibliografie boek pas op hoofdstuk kolifon kopie reg opgedra aan uitgawe vergelyking voorbeeld figuur woordlys belangrik isbn regskennisgewing teikengroep vlak herkoms opmerking deel voorwoord prosedure vraag: verwysingslemma verwysing verwysingsnaam verwysingsparagraaf verwysingsamevatting hersiening geskiedenis hersiening Paragraaf Paragraaf Paragraaf Paragraaf Paragraaf paragraaf sien sien ook versameling versamelingindeks kantbalk stap tabel leidraad waarskuwing , , Notas tabelopmerking lys van vergelykings lys van voorbeelde lys van figure lys van tabelle lys van onbekende tipes abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ WoordelysSien WoordelysSienOok Teikengroep: Vlak: Herkoms: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/bg.xml0000644000175000017500000001163007663737216014704 00000000000000 Bulgarian Анотация О: приложение Статия Литература Книга Внимание глава Colophon Copyright Посвещение Издание Формула Пример Фигура Терминологичен речник Важно ISBN Авторски права Audience Ниво Източник Забележка Част Предговор Процедура В: Справочник Название Синтаксис Промени Издание Раздел Раздел Раздел Раздел Раздел Раздел вж. вж. също Указател Указател разделител Стъпка Таблица Поздсказка Внимание , , Забележки Забележки Списък на формулите Списък на примерите Списък на фигурите Списък на таблиците Неопределен списък абвгдежзийклмнопрстуфхцчшщъыьэюя АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ вж. вж. също Audience: Ниво: Източник: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/ca.xml0000644000175000017500000001067207663737216014704 00000000000000 Catalan Resum Answer apèndex Article Bibliografia Llibre Atenció capítol Colophon Dret de reproducció Dedicatòria Edició Equació Exemple Figura Glossari Important ISBN Audiència Nivell Origen Nota Part Prefaci Procediment Data de publicació Question Referència Nom Synopsis Historial de revisions Revisió Secció Secció Secció Secció Secció secció Veure Veure tambié Conjunt Índex del conjunt glossa pas Taula Suggeriment Avís , , Notes Notes Índex d'equacions Índex d'exemples Índex de figures Índex de taules Índex de desconegut ? abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Veure Veure també Audiència: Nivell: Origen: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/da.xml0000644000175000017500000001075107663737216014703 00000000000000 Danish resumé svar appendiks artikel litteraturliste bog pas på kapitel kolofon ophavsret tilegnet udgave ligning eksempel figur ordliste vigtigt ISBN retslig note målgruppe niveau grundlag bemærk del forord procedure spørgsmål punkt henvisning navn afsnit synopsis revisionshistorie revision Afsnit Afsnit Afsnit Afsnit Afsnit afsnit se se også sæt sæt indeks sidebjælke trin tabel vink advarsel og , slutbemærkning: noter: ligningsliste eksempelliste figurliste tabelliste liste over ukendte abcdefghijklmnopqrstuvwxyzæøå ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ Se Se også Målgruppe: Niveau: Grundlag: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/de.xml0000644000175000017500000001071607663737216014710 00000000000000 German Zusammenfassung A: Anhang Artikel Literaturverzeichnis Buch Achtung Kapitel Kolophon Copyright Widmung Ausgabe Gleichung Beispiel Abbildung Glossar Wichtig ISBN Rechtlicher Hinweis Zielgruppe Dringlichkeit Ursprung Anmerkung Teil Vorwort Prozedur F: Verweis Name Abschnitt Synopsis Versionsgeschichte Version Abschnitt Abschnitt Abschnitt Abschnitt Abschnitt Abschnitt Siehe Siehe auch Satz Stichwortverzeichnis randnotiz Schritt Tabelle Tipp Warnung , Fußnoten Bemerkungen Gleichungen Beispiele Abbildungsverzeichnis Tabellenverzeichnis ???-Verzeichnis abcdefghijklmnopqrstuvwxyzäöüß ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜß Siehe Siehe auch Zielgruppe: Dringlichkeit: Ursprung: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/cs.xml0000644000175000017500000001063707663737216014727 00000000000000 Czech Abstrakt Odpověď: Příloha Článek Bibliografie Kniha Výstraha Kapitola Tiráž Copyright Věnování Vydání Rovnice Příklad Obrázek Slovník Důležité ISBN Právní doložka Publikum Úroveň Původ Poznámka Část Předmluva Postup Otázka: Odkaz Jméno Přehled Přehled revizí Revize Oddíl Oddíl Oddíl Oddíl Oddíl Oddíl Viz Viz též Sada Rejstřík sady Marginálie krok Tabulka Tip Varování , Poznámky Poznámky Seznam rovnic Seznam příkladů Seznam obrázků Seznam tabulek Seznam neznámého aábcčdďeéěfghiíjklmnoópqrřsštťuúůvwxyýzž AÁBCČDĎEÉĚFGHIÍJKLMNOÓPQRŘSŠTŤUÚŮVWXYÝZŽ Viz Viz též Publikum: Úroveň: Původ: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/el.xml0000644000175000017500000001173607663737216014723 00000000000000 Greek Ðåñßëçøç Á: ðáñÜñôçìá ¶ñèñï Âéâëéïãñáößá Âéâëßï Ðñïóï÷Þ êåöÜëáéï Êïñùíßäá ÐíåõìáôéêÜ Äéêáéþìáôá ÁöéÝñùóç ¸êäïóç Åîßóùóç ÐáñÜäåéãìá Ó÷Þìá ÃëùóóÜñéï Óçìáíôéêü ISBN ÍïìéêÞ Óçìåßùóç ÁêñïáôÞñéï Åðßðåäï ÐçãÞ Óçìåßùóç ÌÝñïò ÅéóáãùãÞ Äéáäéêáóßá Å: ÁíáöïñÜ ¼íïìá Óýíïøç Éóôïñéêü ÁíáèåùñÞóåùí Áíáèåþñçóç Section Section Section Section Section ôìÞìá Äåßôå Äåßôå Åðßóçò Óýíïëï ÅõñåôÞñéï Óõíüëùí åðåîçãçìáôéêü ðëåõñéêü áñèñßäéï öÜóç Ðßíáêáò Õðüäåéîç Ðñïåéäïðïßçóç , , Óçìåéþóåéò Ðßíáêáò Óçìåéþóåùí ÊáôÜëïãïò Åîéóþóåùí ÊáôÜëïãïò ÐáñáäåéãìÜôùí ÊáôÜëïãïò Ó÷çìÜôùí ÊáôÜëïãïò ÐéíÜêùí ÊáôÜëïãïò Áãíþóôùí abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Äåßôå Äåßôå Åðßóçò ÁêñïáôÞñéï: Åðßðåäï: ÐçãÞ: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/en.xml0000644000175000017500000001432310417770047014706 00000000000000 English English Caution Important Note Tip Warning Article Book Part Set Abstract Appendix Bibliography Chapter Colophon Dedication Glossary Preface Reference Sidebar Section Section Section Section Section Section Equation Example Procedure step Table Copyright Edition Figure Index ISBN Legal Notice Published Reference entry Name Section Synopsis Revision History Revision Set Index A: Q: Audience: Level: Origin: See See also see see also [Remark: ] [Cross reference to non-existant ID “”] [Unrecognized XML element “” in source document] ” [not available as a man page] [] , : . . ,  [undisplayable block object] [MISSING TEXT] [ ] { } [ ] | | Concept index Function index Variables index Keystroke index Program index Data type index ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz — The Detailed Node Listing — reference to non-existent ID “ docbook2X-0.8.8/xslt/common/text/es.xml0000644000175000017500000001124607663737216014726 00000000000000 Spanish resumen r: apéndice artículo bibliografía libro atención capítulo colofón copyright dedicatoria edición ecuación ejemplo figura glosario importante isbn aviso legal audiencia nivel origen nota parte prefacio procedimiento fecha de publicación p: entrada de referencia referencia nombre de referencia sección de referencia sinopsis Historial de revisiones revisión Sección Sección Sección Sección Sección sección ver ver también conjunto índice del conjunto barra lateral paso tabla sugerencia aviso , , notas notas de tabla lista de ecuaciones lista de ejemplos lista de figuras lista de tablas lista de desconocido abcdefghijklmnopqrstuvwxyzáéíóúñ ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑ Ver Ver también Audiencia: Nivel: Origen: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/fi.xml0000644000175000017500000001037007663737216014712 00000000000000 Finnish Lyhennelmä A: liite Artikkeli Lähteet Kirja Varo luku Colophon Copyright Omistus Edition Kaava Esimerkki Kuva Sanasto Tärkeää ISBN Yleisö Taso Alkuperä Huomaa Osa Esipuhe Aliohjelma Q: Lähdeluettelo Nimi Synopsis Versiohistoria Versio Section Section Section Section Section kohta Katso Katso myös Kokoelma Kokoelman indeksi sivupalkki step Taulu Vihje Varoitus , , Luettelo esimerkeistä Luettelo esimerkeistä Luettelo kuvista Luettelo tauluista Luettelo tuntemattomista abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Katso Katso myös Yleisö: Taso: Alkuperä: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/et.xml0000644000175000017500000001072707663737216014732 00000000000000 Estonian Ülevaade V: lisa Artikkel Bibliograafia Raamat Ettevaatust peatükk Lõpumärgis Autoriõigus Pühendus Väljaanne Valem Näide Joonis Sõnastik Oluline ISBN Autoriõiguse märge Auditoorium Tase Algallikas Märkus Osa Eessõna Protseduur K: Viide Nimi Lõik Sünopsis Vigade paranduste ajalugu Vigade parandus Section Section Section Section Section lõik Vt. Vt. ka Sea Sea indeks külgriba samm Tabel Vihje Hoiatus , , Märkused Märkused Valemite nimekiri Näidete nimekiri Jooniste nimekiri Tabelite nimekiri Tundmatute nimekiri abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Vt. Vt. ka Auditoorium: Tase: Algallikas: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/eu.xml0000644000175000017500000001105307663737216014724 00000000000000 Basque Laburpena E: eranskina Artikulua Bibliografia Liburua Kontuz atala Azken ohar Copyright Eskaintza Edizioa Ekuazioa Adibidea Irudia Glosarioa Garrantzitsua ISBN Legezko abisua Audientzia Maila Jatorria Oharra Zatia Hitzaurrea Prozedura galdera Sarrera Erreferentzia Izena sekzioa Laburpena Berrikuspenaren historia Berrikuspena Atala Atala Atala Atala Atala Atala Ikus Ikus baita ere Konfiguratu Konfiguratu indizea alboko barra urratsa Taula Iradokizuna Abisua , , Oharrak Oharrak Ekuazioen zerrenda Adibideen zerrenda Irudien zerrenda Taulen zerrenda Ezazagunen zerrenda abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Ikus Ikus baita ere Audientzia: Maila: Jatorria: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/fr.xml0000644000175000017500000001073107663737216014724 00000000000000 French Résumé R : annexe Article Bibliographie Livre Attention chapitre Colophon Copyright Dédicace Édition Équation Exemple Figure Glossaire Important ISBN Note légale Public visé Niveau Origine NOTE Partie Préface Procédure Q : Référence Nom Synopsis Historique des versions Version Section Section Section Section Section section Voir Voir Aussi Ensemble Index étape Tableau ASTUCE AVERTISSEMENT , , Notes Remarques Liste des équations Liste des exemples Liste des illustrations Liste des tableaux Liste des inconnues abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ « » « » Voir Voir aussi Public visé: Niveau: Origine: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/he.xml0000644000175000017500000001123307663737216014707 00000000000000 Hebrew סיכום ת: נספח מאמר ביבליוגרפיה ספר אזהרה פרק קולופון זכויות יוצרים הקדשה מהדורה משוואה דוגמה איור מילון מונחים חשוב מספר ספר סטנדרטי בינלאומי הודעה משפטית קהל יעד רמה מקור שים לב חלק מבוא הליך ש: מראה מקום שם תמצית היסטוריית גירסאות גירסה סעיף סעיף סעיף סעיף סעיף סעיף ראה ראה גם סידרה אינקדקס סדרות פס צדדי צעד טבלה עצה אזהרה , , הערות הערות רשימת משוואות רשימת דוגמאות רשימת איורים רשימת טבלאות רשימה של מרכיבים לא ידועים abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ ראה ראה גם קהל יעד: רמה: מקור: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/Makefile.am0000644000175000017500000000107407666463031015621 00000000000000# $Id: Makefile.am,v 1.2 2003/06/01 20:46:17 stevecheng Exp $ # L10N_FILES = af.xml bg.xml ca.xml cs.xml da.xml de.xml el.xml \ en.xml es.xml et.xml eu.xml fi.xml fr.xml he.xml \ hu.xml id.xml it.xml ja.xml ko.xml lt.xml \ nl.xml nn.xml no.xml pl.xml pt.xml pt-br.xml ro.xml \ ru.xml sk.xml sl.xml sr.xml sv.xml th.xml tr.xml \ uk.xml vi.xml xh.xml zh-cn.xml zh-tw.xml \ l10n-set.xml xsltdir = $(pkgdatadir)/xslt xsltcommonl10ndir = $(xsltdir)/common/text xsltcommonl10n_DATA = $(L10N_FILES) EXTRA_DIST = $(L10N_FILES) docbook2X-0.8.8/xslt/common/text/Makefile.in0000644000175000017500000002452210572275766015643 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am,v 1.2 2003/06/01 20:46:17 stevecheng Exp $ # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = xslt/common/text DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/utf8trans/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(xsltcommonl10ndir)" xsltcommonl10nDATA_INSTALL = $(INSTALL_DATA) DATA = $(xsltcommonl10n_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GROFF = @GROFF@ HAVE_GROFF_FALSE = @HAVE_GROFF_FALSE@ HAVE_GROFF_TRUE = @HAVE_GROFF_TRUE@ HAVE_HTML_XSL_FALSE = @HAVE_HTML_XSL_FALSE@ HAVE_HTML_XSL_TRUE = @HAVE_HTML_XSL_TRUE@ HAVE_TIDY_FALSE = @HAVE_TIDY_FALSE@ HAVE_TIDY_TRUE = @HAVE_TIDY_TRUE@ HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@ HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@ ICONV = @ICONV@ INSTALLED_CHARMAP_ROFF = @INSTALLED_CHARMAP_ROFF@ INSTALLED_CHARMAP_TEXI = @INSTALLED_CHARMAP_TEXI@ INSTALLED_DB2X_MANXML = @INSTALLED_DB2X_MANXML@ INSTALLED_DB2X_TEXIXML = @INSTALLED_DB2X_TEXIXML@ INSTALLED_DB2X_XSLTPROC = @INSTALLED_DB2X_XSLTPROC@ INSTALLED_SGML2XML_ISOENT = @INSTALLED_SGML2XML_ISOENT@ INSTALLED_STYLESHEETS_CATALOG = @INSTALLED_STYLESHEETS_CATALOG@ INSTALLED_UTF8TRANS = @INSTALLED_UTF8TRANS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA = @JAVA@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ OSX = @OSX@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RESOLVER_JARS = @RESOLVER_JARS@ SAXON_JARS = @SAXON_JARS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SX = @SX@ TIDY = @TIDY@ VERSION = @VERSION@ XALAN_JARS = @XALAN_JARS@ XMLLINT = @XMLLINT@ XSLTPROC = @XSLTPROC@ XSLT_PROCESSOR = @XSLT_PROCESSOR@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ L10N_FILES = af.xml bg.xml ca.xml cs.xml da.xml de.xml el.xml \ en.xml es.xml et.xml eu.xml fi.xml fr.xml he.xml \ hu.xml id.xml it.xml ja.xml ko.xml lt.xml \ nl.xml nn.xml no.xml pl.xml pt.xml pt-br.xml ro.xml \ ru.xml sk.xml sl.xml sr.xml sv.xml th.xml tr.xml \ uk.xml vi.xml xh.xml zh-cn.xml zh-tw.xml \ l10n-set.xml xsltdir = $(pkgdatadir)/xslt xsltcommonl10ndir = $(xsltdir)/common/text xsltcommonl10n_DATA = $(L10N_FILES) EXTRA_DIST = $(L10N_FILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu xslt/common/text/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu xslt/common/text/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh uninstall-info-am: install-xsltcommonl10nDATA: $(xsltcommonl10n_DATA) @$(NORMAL_INSTALL) test -z "$(xsltcommonl10ndir)" || $(mkdir_p) "$(DESTDIR)$(xsltcommonl10ndir)" @list='$(xsltcommonl10n_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(xsltcommonl10nDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(xsltcommonl10ndir)/$$f'"; \ $(xsltcommonl10nDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(xsltcommonl10ndir)/$$f"; \ done uninstall-xsltcommonl10nDATA: @$(NORMAL_UNINSTALL) @list='$(xsltcommonl10n_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(xsltcommonl10ndir)/$$f'"; \ rm -f "$(DESTDIR)$(xsltcommonl10ndir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(xsltcommonl10ndir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-xsltcommonl10nDATA install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-xsltcommonl10nDATA .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip install-xsltcommonl10nDATA installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-info-am \ uninstall-xsltcommonl10nDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: docbook2X-0.8.8/xslt/common/text/id.xml0000644000175000017500000001055507663737216014715 00000000000000 Indonesian Abstrak Jawab: lampiran Artikel Bibliografi Buku Perhatian bab Kolofon Hak Cipta Dedikasi Edisi Persamaan Teladan Gambar Daftar Istilah Penting ISBN Aspek Hukum Pemirsa Tingkatan Asal Catatan Bagian Kata Pengantar Prosedur Tanya: Referensi Nama Sinopsis Catatan Revisi Revisi Bagian Bagian Bagian Bagian Bagian bagian Lihat Lihat Juga Set Indeks Set sidebar tahap Tabel Tip Awas , , Catatan Catatan Daftar Persamaan Daftar Teladan Daftar Gambar Daftar Tabel Daftar Gaib abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Lihat Lihat Juga Pemirsa: Tingkatan: Asal: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/hu.xml0000644000175000017500000001114307663737216014727 00000000000000 Hungarian kivonat v: függelék cikk irodalomjegyzék könyv figyelem fejezet végszó copyright ajánlás kiadás egyenlet példa ábra szójegyzék fontos isbn jogi közlemény célközönség szint eredet megjegyzés rész előszó eljárás k: bejegyzés referencia név szakasz áttekintés verziótörténet verzió Szakasz Szakasz Szakasz Szakasz Szakasz szakasz lásd lásd még csoport csoportmutató széljegyzet lépés táblázat tipp figyelem , , megjegyzések megjegyzések az egyenletek listája a példák listája az ábrák listája a táblázatok listája az egyéb elemek listája aábcdeéfghiíjklmnoóöőpqrstuúü«vwxyz AÁBCDEÉFGHIÍJKLMNOÓÖŐPQRSTUÚÜŰVWXYZ » « Lásd Lásd még Célközönség: Szint: Eredet: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/ja.xml0000644000175000017500000001034107663737216014704 00000000000000 Japanese 概要 答: 付録 項目 参考文献 ブック 注意 奥付 製作著作 謝辞 編集 用語集 重要項目 ISBN 対象者 レベル 発信元 注意 パート 序文 手順 問: 参照 名前 概要 改訂履歴 改訂 参照 参照 設定 目次設定 サイドバー ステップ ティップ 警告 , , 注意 注意 式目次 例目次 図目次 表目次 不明目次 参照 参照 対象者: レベル: 発信元: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/it.xml0000644000175000017500000001066707663737216014741 00000000000000 Italian Estratto R: appendice Articolo Bibliografia Libro Attenzione capitolo Colophon Copyright Dedica Edizione Equazione Esempio Figura Glossario Importante ISBN Note Legali Pubblico Livello Origine Nota Parte Prefazione Procedura D: Riferimento Nome Sinossi Diario delle Revisioni Revisione Sezione Sezione Sezione Sezione Sezione Sezione Vd. Vd. Anche Raccolta Indice Raccolta nota a margine passo Tabella Suggerimento avvertimento , , Note Note Lista delle Equazioni Lista degli Esempi Lista delle Figure Lista delle Tabelle Lista degli Sconosciuti abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Vedi Vedi Anche Pubblico: Livello: Origine: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/ko.xml0000644000175000017500000001042707663737216014730 00000000000000 Korean 초록 답변 부록 문서 서지사항 경고 판권 저작권 바치는 글 엮음 수식 그림 용어해설 중요 ISBN 법적 공지 받는 이 중요도 보내는 이 참고 서문 절차 질문 참고문헌 제목 요약 고친 과정 고침 Section Section Section Section Section 살펴볼 내용 [살펴볼 다른 내용] 전집 전집 색인 덧붙임 단계 작은 정보 주의 , , 주석 참고 수식 목록 예 목록 그림 목록 표 목록 기타 목록 살펴볼 내용 다른 살펴볼 내용 받는 이: 중요도: 보내는 이: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/lt.xml0000644000175000017500000001077207663737216014741 00000000000000 Lithuanian Santrauka Ats: priedas Straipsnis Bibliografija Knyga Atsargiai skyrius Įžanga į knygŐ Autorinės teisės Dedikacija Leidimas Lygtis Pavyzdys Pav. Terminų žodynėlis Svarbu ISBN Teisinė pastaba Auditorija Lygmuo Kilmė Pastaba Dalis Įžanga Procedūra Klausimas: Nuoroda Pavadinimas Trumpa apžvalga Pataisymų istorija Pataisytas leidimas Skyrius Skyrius Skyrius Skyrius Skyrius Skyrius žr. žr. Set Set Index sidebar žingsnis Lentelė Patarimas Įspėjimas , , Pastabos Lentelės pastabos Lygčių sąrašas Pavyzdžių sąrašas Pav. sąrašas Lentelių sąrašas Nežinomas sąrašas abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Terminą žr. Taip pat žr. Auditorija: Lygmuo: Kilmė: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/nl.xml0000644000175000017500000001112707663737216014726 00000000000000 Dutch Samenvatting Antwoord: aanhangsel Artikel Literatuurlijst Boek Let op hoofdstuk Colofon Copyright Opdracht Uitgave Vergelijking Voorbeeld Figuur Woordenlijst Belangrijk ISBN Bericht Doelgroep Niveau Herkomst Opmerking Deel Voorwoord Procedure Vraag: Referentielemma Referentie Referentienaam Referentieparagraaf Referentiesamenvatting Wijzigingen Herziening Paragraaf Paragraaf Paragraaf Paragraaf Paragraaf paragraaf Zie Zie ook Verzameling Hoofdregister excursie stap Tabel Tip Waarschuwing , , Noten Opmerkingen Lijst van vergelijkingen Lijst van voorbeelden Lijst van figuren Lijst van tabellen Lijst van ??? abcdefghijklmnopqrstuvwxyzëïé ABCDEFGHIJKLMNOPQRSTUVWXYZËÏÉ Zie Zie ook Doelgroep: Niveau: Herkomst: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/nn.xml0000644000175000017500000001120307663737216014723 00000000000000 Nynorsk Samandrag svar tillegg artikkel bibliografi bok OBS Obs kapittel kolofon opphavsrett dedikasjon utgåve formel døme figur ordliste viktig viktig ISBN publikum nivå Opphav NOTAT Notat del forord prosedyre spørsmål referanse namn del oversyn revisjonshistorie revisjon Section Section Section Section Section del sjå sjå òg set Indeks sidestolpe steg tabell tips tips åtvaring åtvaring sjå òg , , merknader merknader tabelloversikt dømeoversikt figuroversikt formeloversikt ???-oversikt abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Sjå Sjå òg Nivå: Opphav: Publikum: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/no.xml0000644000175000017500000001007207663737216014727 00000000000000 Norwegian Abstract A: Tillegg Bibliografi Obs Kapittel Colophon Copyright Dedikasjon Formel Eksempel Figur Ordliste Viktig ISBN Publikum Nivå Opphav Notat Del Forord Prosedyre Q: Referanse Navn Synopsis Revisjonshistorie Revisjon Section Section Section Section Section seksjon Se Se Også Indeks steg Tabell Tips Advarsel , , Sluttnotater Notater Formeloversikt Eksempeloversikt Figuroversikt Tabelloversikt ???-oversikt abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Se Se Også Publikum: Nivå: Opphav: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/pl.xml0000644000175000017500000001044007663737216014725 00000000000000 Polish Abstrakt Odp: dodatek Artykuł Bibliografia Książka Uwaga! rozdział; Colophon Copyright Dedykacja Wydanie Równanie Przykład Rysunek Glossary WAŻNE ISBN Odbiorcy Poziom Nadawca Notatka Część Przedmowa Procedura Pyt: Materiały źródłowe Nazwa Synopsis Historia zmian Zmiana Section Section Section Section Section sekcja Patrz Patrz też Set Indeks krok Tabela Podpowiedź Ostrzeżenie , , Przypisy Przypisy Spis równań Spis przykładów Spis rysunków Spis tabel Spis ??? abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ « » ߦ Patrz Patrz też Odbiorcy: Poziom: Nadawca: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/pt.xml0000644000175000017500000001060607663737216014741 00000000000000 Portuguese Resumo R: apêndice Artigo Bibliografia Livro Cautela capítulo Colophon Copyright Dedicatória Edição Equação Exemplo Figura Glossario Importante ISBN Audiência Nível Origem Nota Parte Prefácio Procedimento Editado P: Referência Nome Synopsis Hitorial de Revisões Revisão Section Section Section Section Section secção Ver Ver Também Set Set Index sidebar passo Tabela Dica Atenção , , Notas Notas Lista de Equações Lista de Exemplos Lista de Figuras Lista de Tabelas List of ??? abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Ver Ver Também Audiência: Nível: Origem: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/ro.xml0000644000175000017500000001041707663737216014736 00000000000000 Romanian Rezumat A: anexa Articol Bibliografie Carte Atenþie cap. Colophon Copyright Dedicaþie Ediþie ecuaþia Exemplu Fig. Glosar Important ISBN Nivel Origine Notã Parte Prefaþã Procedurã Q: Referinþã Nume Rezumat Istoricul versiunilor Versiune Section Section Section Section Section sec. Vezi Vezi şi Set Index sidebar operaþiune Tabel Indicaþie Avertisment , , Note Remarci Listã de ecuaþii Listã de exemple Listã de figuri Listã de tabele Listã de necunoscute abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Vezi Vezi şi : Nivel: Origine: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/ru.xml0000644000175000017500000001316207663737216014744 00000000000000 Russian Аннотация О: приложение Прил. Статья Аудитория Литература Книга Предостережение глава Гл. Colophon Copyright Посвящение Редакция Формула Ф. Пример Прим. Рисунок Рис. Глоссарий Важно ISBN Авторские права Уровень Audience Level Origin Имя Замечание Источник Часть Ч. Предисловие Процедура Проц. В: Ссылка Название Синтаксис История переиздания Издание Раздел Раздел Раздел Раздел Раздел раздел Разд. См. См. также Подборка Индекс подборки выделение шаг Таблица Табл. Подсказка Внимание , , Примечания Примечания Список формул Список примеров Список иллюстраций Список таблиц Неопределенный список След. абвгдеёжзийклмнопрстуфхцчшщъыьэюя АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ См. См. также Audience: Level: Origin: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/sk.xml0000644000175000017500000001063407663737216014734 00000000000000 Slovak Obsah A: dodatok Článok Bibliografia Kniha Výstraha kapitola Tiráž Copyright Venovanie Vydanie Rovnice Príklad Obrázok Slovník Dôležité ISBN Právna poznámka Publikum Úroveň Pôvod Poznámka Časť Úvod Postup Q: Odkaz Meno Prehľad Prehľad revízií Revízia Section Section Section Section Section oddiel Pozri Pozri tiež Nastaviť Nastaviť index boční lišta krok Tabuľka Tip Varovanie , , Poznámky Poznámky Zoznam rovníc Zoznam príkladov Zoznam obrázkov Zoznam tabuliek Zoznam neznámeho abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Pozri Pozri tiež Publikum: Úroveň: Pôvod: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/sl.xml0000644000175000017500000001063007663737216014731 00000000000000 Slovenian Povzetek O: dodatek Članek Literatura Knjiga Opozorilo poglavje Kolofon Pravna zaščita Posvetilo Izdaja Enačba Primer Slika Slovarček Pomembno ISBN Pravno sporočilo Občinstvo Raven Izvor Opomba Del Predgovor Postopek V: Sklic Ime Sinopsis Zgodovina različic Različica Razdelek Razdelek Razdelek Razdelek Razdelek razdelek glej glej tudi Postavi Postavi stvarno kazalo sidebar korak Tabela Namig Pozor , , Notes Notes Seznam enačb Seznam primerov Seznam slik Seznam tabel Seznam neznanih stvari abcčdefghijklmnopqrsštuvwxyzž ABCČDEFGHIJKLMNOPQRSŠTUVWXYZŽ glej glej tudi Občinstvo: Raven: Izvor: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/sr.xml0000644000175000017500000001057707663737216014751 00000000000000 Serbian Pregled O: dodatak Članak Literatura Knjiga Upozorenje poglavlje Kolofon Pravna zaštita Posveta Izdanje Jednačina Primer Slika Rečnik Važno ISBN Pravno obaveštenje MsgAud Nivo Izvor Primedba Deo Predgovor Postupak P: Referenca Ime Sinopsis Istorija revizija Revizija Section Section Section Section Section sekcija vidi vidi takođe Postavi Postavi indeks sidebar korak Tabela Savet Upozorenje , , Notes Notes Spisak jednačina Spisak primera Spisak slika Spisak tabela Spisak nepoznanica abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Vidi Vidi takođe MsgAud: Nivo: Izvor: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/th.xml0000644000175000017500000001223407663737216014730 00000000000000 Thai บทคัดย่อ ตอบ: ภาคผนวก บทความ บรรณานุกรม หนังสือ คำเตือน บทที่ เบื้องหลัง สงวนสิขสิทธิ์ คำอุทิศ ฉบับ สมการ ตัวอย่าง รูป อภิทานศัพท์ ข้อควรจำ ISBN ข้อผูกพันตามกฎหมาย ผู้อ่าน ระดับ ที่มา หมายเหตุ ภาค คำนำ ระเบียบการ ถาม: หนังสืออ้างอิง ชื่อ สาระสำคัญ บันทึกรุ่น รุ่นที่ ตอนที่ ตอนที่ ตอนที่ ตอนที่ ตอนที่ ตอนที่ ดู ดูเพิ่มเติม ชุด สารบัญชุด sidebar ลำดับ ตาราง คำแนะนำ โปรดระวัง , , หมายเหตุ หมายเหตุ สารบัญสมการ สารบัญตัวอย่าง สารบัญรูป สารบัญตาราง สารบัญอื่น ๆ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ ดู ดูเพิ่มเติม ผู้อ่าน: ระดับ: ที่มา: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/sv.xml0000644000175000017500000001066707663737216014755 00000000000000 Swedish Sammanfattning A: appendix Artikel Bibliografi Bok Observera kapitel Colophon Copyright Dedikation Utgåva Ekvation Exempel Figur Gloslista Viktigt ISBN Legal Notice Målgrupp Nivå Ursprung Not Del Företal Procedur Fråga: Referens Namn Synopsis Revisions Historik; Revision Section Section Section Section Section avsnitt Se Se Även Set Set Index sidebar steg Tabell Tips Varning kallas , , Noter Noter Ekvationsförteckning Exempelförteckning Figurförteckning Tabellförteckning Förteckning av okända abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Se Se Även Målgrupp: Nivå: Ursprung: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/tr.xml0000644000175000017500000001056707663737216014751 00000000000000 Turkish Özet Cevap: ek Makale Kaynakça Kitap Dikkat bölüm Kitap hakkında Telif Hakkı İthaf Baskı Denklem Örnek Şekil Sözlük Önemli ISBN Yasal Uyarı Hedef Okuyucu Düzey Kaynak Not Kısım Önsöz Yönerge Soru: Referans Referans Adı Synopsis Baskı Tarihçesi Baskı Kısım Kısım Kısım Kısım Kısım Kısım Bkz. Bkz. Takım Takım Dizini adım Tablo İpucu Uyarı , , Notlar Notlar Denklemler Örnekler Şekiller Tablolar Yönergeler Bilinmeyenler abcçdefgğhıijklmnoöprsştuüvyz ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ Bkz. Bkz. Hedef Okuyucu: Level: Düzey: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/uk.xml0000644000175000017500000001310107663737216014726 00000000000000 Ukranian Анотація в: додаток дод. стаття Аудиторія литература книга застереження розділ розд. Colophon авторське право присвячення видання Формула Ф. приклад прикл. Рисунок Рис. глосарій важливо ISBN правова примітка рівень аудиторія рівень джерело ім';я примітка джерело частина Ч. передмова Процедура Проц. п посилання Name короткий огляд опис zcy;мін перегляд Section Section Section Section Section параграф пар. див. сив. tcy;акож вибірка индекс вибірки выділення крок таблиця табл. підказка застереження . , примітки примітки список формул список прикладів Список ілюстрацій список таблиць невизначений список далі abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Див. Див. також Аудиторія: Рівень: Джерело: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/zh-cn.xml0000644000175000017500000001025207663737216015332 00000000000000 Chinese (Continental) 摘要 答: 附录 文章 参考书目 书目 注意 Colophon 版权 奉献 方程 例子 图形 术语表 重要 ISBN 法律布告 读者 难度 出处 部分 前言 过程 问: 参考 名字 大纲 修订历史 修订 Section Section Section Section Section 另见 Set Set Index sidebar 步骤 表格 提示 警告 , , 方程式列表 示例列表 图形列表 表格列表 其他内容列表 " " ' ' 另见 读者: 难度: 出处: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/vi.xml0000644000175000017500000001072307663737216014734 00000000000000 Vietnamese Tổng quan Đ: phụ lục Bài viết Thư mục Sách Cẩn thận chương Colophon Bản quyền Tặng Edition Phương trình Ví dụ Hình Thuật ngữ Quan trọng ISBN Legal Notice Đọc giả Cấp Gốc Ghi chú Phần Mở đầu Thủ tục H: Tham khảo Tên Tóm tắt Revision History Bản hiệu chỉnh Phần Phần Phần Phần Phần Phần xem xem thêm Đặt Đặt chỉ mục thanh bên bước Bảng Mẹo Cảnh báo , , Ghi chú Ghi chú Danh sách Phương trình Danh sách Ví dụ Danh sách Hình Danh sách Bảng Danh sách Lạ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Xem Xem thêm Đọc giả: Cấp: Gốc: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/xh.xml0000644000175000017500000001103307663737216014730 00000000000000 Xhosa Isiqalo I: isivalo Umba Ezobunzululwazi Incwadi Isilumkiso isiqendu Ikolophon Ushicilelo olusemthethweni Ulwaziso Uhlelo Ulinganiselo Umzekelo Ulungu Inkcazelo yamagama Ibalulekile iISBN Isaziso Esesimthethweni Ababhali Umphakamo Uqobo Qaphela Inxenye Isihloko Inkqubo U: Uthelekiso Igama lothelekiso Isinopsisi Imbali yophindo Iphindo Icandelo Icandelo Icandelo Icandelo Icandelo Icandelo Bona Bona Kwakhona Cwangcisa Cwangcisa Isalathiso ibar esecaleni inqwanqwa Indlela Yokwenza Imigca Incam Isilumkiso , , Iziqaphelo Iziqaphelo Uluhlu Lemilinganiselo Uluhlu Lemizekelo Uluhlu Lamalungu Uluhlu Lendlela Yokwenza Imigca Uluhlu Lokungaziwayo abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Bona Bona Kwakhona Ababhali: Umphakamo: Uqobo: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/text/zh-tw.xml0000644000175000017500000001037207663737216015367 00000000000000 Chinese (Traditional) 摘要 答: 附錄 文章 參考文獻 書目 注意 版本記錄 版權 奉獻 方程式 範例 圖形 小辭彙 重要 ISBN 法律聲明 讀者 程度 出處 序言 過程 問: 參照項目 參考 參考名 參照章節 大綱 修訂記錄 修訂 Section Section Section Section Section 另見 Set Set Index 步驟 表格 提示 警告 注釋 , , 公式目錄 範例目錄 附圖目錄 附表目錄 其它內容目錄 " " ' ' 參見 另參見 讀者: 程度: 出處: [ ] { } [ ] | docbook2X-0.8.8/xslt/common/whitespace.xsl0000644000175000017500000000513407404422546015462 00000000000000 docbook2X-0.8.8/xslt/common/cmdsynopsis.xsl0000644000175000017500000000661510105561132015671 00000000000000 docbook2X-0.8.8/xslt/common/gentext.xsl0000644000175000017500000001550510421444513014776 00000000000000 docbook2X-0.8.8/xslt/common/version.xsl0000644000175000017500000000204010407340717015000 00000000000000 ]> &db2x_version; docbook2X-0.8.8/xslt/common/string.xsl0000644000175000017500000000416710110663233014625 00000000000000 docbook2X-0.8.8/xslt/common/labels.xsl0000644000175000017500000000516210075561632014567 00000000000000 Provides access to element labels Processing an element in the for-label mode produces the element label. Erroneous request for the label of this element docbook2X-0.8.8/xslt/common/Makefile.am0000644000175000017500000000057410407340611014622 00000000000000# $Id: Makefile.am,v 1.12 2006/03/19 20:39:37 stevecheng Exp $ # SUBDIRS = text XSL_FILES = check-idref.xsl cmdsynopsis.xsl gentext.xsl l10n.xsl \ lists.xsl labels.xsl messages.xsl person.xsl titles.xsl \ ucase.xsl whitespace.xsl string.xsl version.xsl xsltdir = $(pkgdatadir)/xslt xsltcommondir = $(xsltdir)/common xsltcommon_DATA = $(XSL_FILES) EXTRA_DIST = $(XSL_FILES) docbook2X-0.8.8/xslt/common/Makefile.in0000644000175000017500000003652710572275766014667 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am,v 1.12 2006/03/19 20:39:37 stevecheng Exp $ # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = xslt/common DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/utf8trans/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(xsltcommondir)" xsltcommonDATA_INSTALL = $(INSTALL_DATA) DATA = $(xsltcommon_DATA) ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GROFF = @GROFF@ HAVE_GROFF_FALSE = @HAVE_GROFF_FALSE@ HAVE_GROFF_TRUE = @HAVE_GROFF_TRUE@ HAVE_HTML_XSL_FALSE = @HAVE_HTML_XSL_FALSE@ HAVE_HTML_XSL_TRUE = @HAVE_HTML_XSL_TRUE@ HAVE_TIDY_FALSE = @HAVE_TIDY_FALSE@ HAVE_TIDY_TRUE = @HAVE_TIDY_TRUE@ HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@ HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@ ICONV = @ICONV@ INSTALLED_CHARMAP_ROFF = @INSTALLED_CHARMAP_ROFF@ INSTALLED_CHARMAP_TEXI = @INSTALLED_CHARMAP_TEXI@ INSTALLED_DB2X_MANXML = @INSTALLED_DB2X_MANXML@ INSTALLED_DB2X_TEXIXML = @INSTALLED_DB2X_TEXIXML@ INSTALLED_DB2X_XSLTPROC = @INSTALLED_DB2X_XSLTPROC@ INSTALLED_SGML2XML_ISOENT = @INSTALLED_SGML2XML_ISOENT@ INSTALLED_STYLESHEETS_CATALOG = @INSTALLED_STYLESHEETS_CATALOG@ INSTALLED_UTF8TRANS = @INSTALLED_UTF8TRANS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA = @JAVA@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ OSX = @OSX@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RESOLVER_JARS = @RESOLVER_JARS@ SAXON_JARS = @SAXON_JARS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SX = @SX@ TIDY = @TIDY@ VERSION = @VERSION@ XALAN_JARS = @XALAN_JARS@ XMLLINT = @XMLLINT@ XSLTPROC = @XSLTPROC@ XSLT_PROCESSOR = @XSLT_PROCESSOR@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUBDIRS = text XSL_FILES = check-idref.xsl cmdsynopsis.xsl gentext.xsl l10n.xsl \ lists.xsl labels.xsl messages.xsl person.xsl titles.xsl \ ucase.xsl whitespace.xsl string.xsl version.xsl xsltdir = $(pkgdatadir)/xslt xsltcommondir = $(xsltdir)/common xsltcommon_DATA = $(XSL_FILES) EXTRA_DIST = $(XSL_FILES) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu xslt/common/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu xslt/common/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh uninstall-info-am: install-xsltcommonDATA: $(xsltcommon_DATA) @$(NORMAL_INSTALL) test -z "$(xsltcommondir)" || $(mkdir_p) "$(DESTDIR)$(xsltcommondir)" @list='$(xsltcommon_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(xsltcommonDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(xsltcommondir)/$$f'"; \ $(xsltcommonDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(xsltcommondir)/$$f"; \ done uninstall-xsltcommonDATA: @$(NORMAL_UNINSTALL) @list='$(xsltcommon_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(xsltcommondir)/$$f'"; \ rm -f "$(DESTDIR)$(xsltcommondir)/$$f"; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(xsltcommondir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-xsltcommonDATA install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-xsltcommonDATA uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ clean clean-generic clean-recursive ctags ctags-recursive \ distclean distclean-generic distclean-recursive distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip install-xsltcommonDATA installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive \ mostlyclean mostlyclean-generic mostlyclean-recursive pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-info-am uninstall-xsltcommonDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: docbook2X-0.8.8/xslt/common/person.xsl0000644000175000017500000000774510075641175014645 00000000000000 . , , and docbook2X-0.8.8/xslt/common/ucase.xsl0000644000175000017500000000362510076071115014420 00000000000000 docbook2X-0.8.8/xslt/common/lists.xsl0000644000175000017500000000326207404422546014464 00000000000000 1 1 docbook2X-0.8.8/xslt/common/check-idref.xsl0000644000175000017500000000410310104715231015450 00000000000000 reference to non-existent ID reference to non-existent ID "" docbook2X-0.8.8/xslt/common/titles.xsl0000644000175000017500000003046010104042164014613 00000000000000 Provides access to element titles Processing an element in the title mode produces the title of the element. This does not include the label. Erroneous request for title for this element [missing text] refentry has no title No title docbook2X-0.8.8/xslt/common/messages.xsl0000644000175000017500000002442510110663233015125 00000000000000 Emit a user message This template is used in place of xsl:message. It traces the path of the given node to help in debugging and allows messages to be localized. node The node to get to trace the path to. Default is the context node. arg Additional string argument to message, if any. key The standard message text. If a localization/customization exists, it is keyed under this text and displayed instead of the standard message text. : Display file name and line number of a node This template displays the file name and the line number in that file that contains the given node. In addition the name of the given node is shown in parentheses (usually the element name). The output is suitable for diagnostics to the user. (“filename” means the “filename” part of the URI of the containing entity.) node The node to get to print the information for. Default is the context node. : ( ) Display the path of a node This template displays the address of the given node in XPath notation, in a compact yet unambiguous form suitable for diagnostics to the user. It assumes that ID attributes are named id, and if an element has an ID defined, then the element will be addressed using that ID, instead of a long XPath starting from the root. node The node to get to trace the path to. Default is the context node. docbook2X-0.8.8/xslt/documentation/0000777000175000017500000000000010572276006014236 500000000000000docbook2X-0.8.8/xslt/documentation/ss-texi.xsl0000644000175000017500000000071510112216315016264 00000000000000 docbook2X-0.8.8/xslt/documentation/extract-jrefentry2.xsl0000644000175000017500000001061110105212714020427 00000000000000 Document Preparation . <xsl:copy-of select="$title" /> Guide to the stylesheet reference For the most part, this reference assumes knowledge of XSLT. But if you are not familiar with XSLT, you can still look at the page of stylesheet parameters; they are the commonly used options to the stylesheets that may be directly set from the command line. Also take a look at the introductory text to each XSL file, which gives some general advice to tweaking the output of the stylesheets. In the lists of stylesheet items, the following symbols are prefixed before each item to indicate their type: [P] A global parameter. The synopsis for the parameter shows its default value. [V] A global variable. [M] A template mode. [T] A named template. [t mode] A template with a match attribute, for the given mode. If mode is omitted, that means the default mode. These usually have no description; they are just listed so that you know the template exists. docbook2X-0.8.8/xslt/documentation/extract-params.xsl0000644000175000017500000000763010420064055017632 00000000000000 Brief Default setting 1 (boolean true) 0 (boolean false) (blank) docbook2X-0.8.8/xslt/documentation/quote-xml.xsl0000644000175000017500000000310007666460775016651 00000000000000 < > </ > /> =" " <-- --> <? ?> docbook2X-0.8.8/xslt/documentation/docbook2man-xslt.info0000644000175000017500000044225610572276006020232 00000000000000This is docbook2man-xslt.info, produced by makeinfo version 4.8 from docbook2man-xslt.texi. INFO-DIR-SECTION Document Preparation START-INFO-DIR-ENTRY * docbook2X Man-pages Stylesheets Reference: (docbook2man-xslt). . END-INFO-DIR-ENTRY  File: docbook2man-xslt.info, Node: Top, Next: Guide to the stylesheet reference, Up: (dir) docbook2X Man-pages Stylesheets Reference ***************************************** * Menu: * docbook2X Man-pages Stylesheets Reference: Guide to the stylesheet reference. * common/l10n:: * common/messages:: * common/titles:: * param:: Stylesheet parameters * manpage:: Man page chunk * refentry:: refentry markup * sectioning:: Mapping of DocBook sections into man-page sections * sections:: DocBook sectioning elements * admon:: Admonitions * block:: Block-level objects * caption:: Captions (really headings) * formal:: DocBook formal objects * synop:: Synopses * table:: Table support * verbatim:: Verbatim environments * inline:: Inline markup * xref:: Handle cross references and links * glossary:: Glossaries * lists:: All sorts of lists * index:: Indices * info:: The *info wrappers * keywords:: Keyword and subject meta-data * toc:: User-defined table of contents (toc markup) * beginpage:: beginpage element * pi:: Handle processing instructions --- The Detailed Node Listing --- common/l10n * [P] localization-file:: (URI of) XML document containing localization data * [V] l10n-data:: XML element node containing localization-data * [P] default-document-language:: Assumed language of the input document when it is not specified in the source * [T] l10n-match-language:: Determine the language to translate to * [T] l10n-xml-language:: Determine the language of the given XML fragment * [T] l10n-xml-actual-language:: Undocumented * [M] l10n-substitution:: Output localized text, substituting parameters if necessary * [t l10n-substitution] text(): [t l10n-substitution] text[]. common/messages * [P] message-language:: Undocumented * [T] l10n-message-choose-language:: Undocumented * [t l10n-substitution] l;a1:: * [t l10n-substitution] l;a2:: * [t l10n-substitution] l;a3:: * [t l10n-substitution] l;a4:: * [t l10n-substitution] l;a5:: * [T] user-message:: Emit a user message * [T] print-node-line-number:: Display file name and line number of a node * [T] print-node-xpath:: Display the path of a node * [t print-node-xpath] text(): [t print-node-xpath] text[]. * [t print-node-xpath] @*:: * [t print-node-xpath] *[@id != '']:: * [t print-node-xpath] *:: * [t print-node-xpath] /:: common/titles * [M] for-title:: Provides access to element titles * [t title] title:: * [t title] *:: * [t title] text(): [t title] text[]. * [t for-title] set:: * [t for-title] *:: * [t for-title] book:: * [t for-title] part:: * [t for-title] preface|chapter|appendix:: * [t for-title] partintro:: * [t for-title] dedication:: * [t for-title] colophon:: * [t for-title] article:: * [t for-title] reference:: * [t for-title] refentry:: * [t for-title] refsynopsisdiv:: * [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect:: * [t for-title] bibliography:: * [t for-title] glossary:: * [t for-title] index:: * [t for-title] figure|table|example|equation:: * [t for-title] qandaset|qandadiv:: * [t for-title] abstract:: * [t for-title] caution|tip|warning|important|note:: * [t no-anchors] *:: * [t no-anchors] footnote:: * [t no-anchors] anchor:: * [t no-anchors] ulink:: * [t no-anchors] link:: * [t no-anchors] olink:: * [t no-anchors] indexterm:: * [t no-anchors] xref:: param * [P] user-message-prefix:: Undocumented * [P] uppercase-headings:: Make headings uppercase? * [P] manvolnum-cite-numeral-only:: Man page section citation should use only the number * [P] quotes-on-literals:: Display quotes on literal elements? * [P] show-comments:: Display comment elements? * [P] function-parens:: Generate parentheses after a function? * [P] xref-on-link:: Should link generate a cross-reference? * [P] header-3:: Third header text * [P] header-4:: Fourth header text * [P] header-5:: Fifth header text * [P] default-manpage-section:: Default man page section * [P] custom-localization-file:: URI of XML document containing custom localization data * [P] custom-l10n-data:: XML document containing custom localization data * [P] author-othername-in-middle:: Is othername in author a middle name? manpage * [T] manpage:: Undocumented refentry * [t] reference:: * [t] refentry:: * [t header-text] *:: * [t header-text] text(): [t header-text] text[]. * [t] refmeta:: * [t] refentrytitle:: * [t] manvolnum:: * [t] refmiscinfo:: * [t] refnamediv:: * [t] refname:: * [t] refpurpose:: * [t] refdescriptor:: * [t] refclass:: * [t] refsynopsisdiv:: * [t] refsection:: * [t] refsect1:: * [t] refsect2:: * [T] uppercase-title:: Undocumented sectioning * [T] SS-section:: Undocumented * [T] SH-section:: Undocumented sections * [t] sect1|sect2|sect3|sect4|sect5|simplesect|section:: * [t] title:: * [t] titleabbrev:: * [t] subtitle:: admon * [T] admonition-title:: Undocumented * [t] note|important|warning|caution|tip:: block * [T] block-object:: Undocumented * [T] indented.block-object: [T] indented_block-object. Undocumented * [t] para|simpara:: * [t] formalpara:: * [t] formalpara/title:: * [t] formalpara/para:: * [t] blockquote:: * [t] blockquote/title:: * [t] attribution:: * [t blockquote-attribution] attribution:: * [t] epigraph:: * [t] sidebar:: * [t] abstract:: * [t] msgset:: * [t] msgentry:: * [t] simplemsgentry:: * [t] msg:: * [t] msgmain:: * [t] msgmain/title:: * [t] msgsub:: * [t] msgsub/title:: * [t] msgrel:: * [t] msgrel/title:: * [t] msgtext:: * [t] msginfo:: * [t] msglevel|msgorig|msgaud:: * [t] msgexplan:: * [t] msgexplan/title:: * [t] revhistory:: * [t] revhistory/revision:: * [t] revision/revnumber:: * [t] revision/date:: * [t] revision/authorinitials:: * [t] revision/authorinitials[1]:: * [t] revision/revremark:: * [t] revision/revdescription:: * [t] ackno:: caption * [T] make-caption:: Render as a `caption' formal * [T] formal-object:: Undocumented * [T] formal-object-title:: Undocumented * [T] informal-object:: Undocumented * [T] semiformal-object:: Undocumented * [t] figure|example:: * [t] equation:: * [t] informalfigure:: * [t] informalexample:: * [t] informalequation:: synop * [t] synopsis:: * [t] cmdsynopsis:: * [t cmdsynopsis] *:: * [t cmdsynopsis] sbr:: * [t cmdsynopsis] synopfragmentref:: * [t synopfragment.number] synopfragment: [t synopfragment_number] synopfragment. * [t cmdsynopsis] synopfragment:: * [t cmdsynopsis] command|option:: * [t cmdsynopsis] replaceable:: * [t cmdsynopsis] group|arg:: * [t cmdsynopsis] group/*:: * [t cmdsynopsis] group/group:: * [t cmdsynopsis] group/option:: * [t cmdsynopsis] group/arg:: * [t] funcsynopsis:: * [t funcsynopsis] *:: * [t funcsynopsis] funcsynopsisinfo:: * [T] funcprototype:: Undocumented * [t funcsynopsis] modifier:: * [t funcsynopsis] funcdef:: * [t funcsynopsis] function:: * [t funcsynopsis] void:: * [t funcsynopsis] varargs:: * [t funcsynopsis] paramdef:: * [t funcsynopsis] paramdef/parameter:: * [t funcsynopsis] funcparams:: table * [t] table:: * [t] informaltable:: * [t] tgroup:: * [t] colspec|spanspec:: * [t] thead|tbody|tfoot:: * [t] row|entry:: * [t] entrytbl[@cols='2']:: * [t entrytbl] thead:: * [t entrytbl] tbody:: * [t entrytbl] tfoot:: * [t entrytbl-head] row:: * [t entrytbl-body] row:: * [T] copy-through:: Undocumented * [t copy] @*:: verbatim * [t] literallayout:: * [t] programlisting|screen:: * [t] address:: inline * [T] inline-plain:: Undocumented * [T] inline-monospace:: Undocumented * [T] inline-bold-monospace:: Undocumented * [T] inline-italic-monospace:: Undocumented * [T] inline-bold:: Undocumented * [T] inline-italic:: Undocumented * [T] inline-roman:: Undocumented * [T] inline-superscript:: Undocumented * [T] inline-subscript:: Undocumented * [t] author:: * [t] editor:: * [t] othercredit:: * [t] authorinitials:: * [t] accel:: * [t] action:: * [t] application:: * [t] classname:: * [t] exceptionname:: * [t] interfacename:: * [t] methodname:: * [t] command:: * [t] computeroutput:: * [t] constant:: * [t] database:: * [t] errorcode:: * [t] errorname:: * [t] errortype:: * [t] errortext:: * [t] envar:: * [t] filename:: * [t] refentrytitle/function:: * [t] function:: * [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu:: * [t] hardware:: * [t] interface:: * [t] interfacedefinition:: * [t] keycap:: * [t] keycode:: * [t] keysym:: * [T] inline-quoted:: Undocumented * [T] inline-quoted-monospace:: Undocumented * [t] literal:: * [t] medialabel:: * [t] shortcut:: * [t] mousebutton:: * [t] option:: * [t] parameter:: * [t] property:: * [t] prompt:: * [t] replaceable:: * [t] returnvalue:: * [t] structfield:: * [t] structname:: * [t] symbol:: * [t] systemitem:: * [t] token:: * [t] type:: * [t] userinput:: * [t] abbrev:: * [t] acronym:: * [t] citerefentry:: * [t] citetitle:: * [t] emphasis[@role='strong' or @role='bold' or parent;;emphasis]:: * [t] emphasis:: * [t] foreignphrase:: * [t] markup:: * [t] phrase:: * [t] quote:: * [t] varname:: * [t] wordasword:: * [t] lineannotation:: * [t] superscript:: * [t] subscript:: * [t] trademark:: * [t] firstterm:: * [t] glossterm:: * [t] sgmltag:: * [T] format-sgmltag:: Undocumented * [t] email:: * [t] keycombo:: * [t] menuchoice:: * [T] format-menuchoice:: Undocumented * [t] optional:: * [t] citation:: * [t] comment|remark:: * [t] productname|productnumber:: * [t] pob|street|city|state|postcode|country|phone|fax|otheraddr:: * [t] firstname|surname|lineage|othername|honorific:: xref * [t] anchor:: * [t] xref:: * [t] link:: * [t] ulink:: * [M] xref-to:: Give cross-reference markup * [t xref-to] *:: glossary * [t] glossary[glossentry[1]/preceding-sibling;;*]:: * [t] glossary:: * [t] glosslist:: * [t] glossdiv:: * [t] glossentry:: * [t] glossentry/glossterm:: * [t] glossentry/acronym:: * [t] glossentry/abbrev:: * [t] glossentry/revhistory:: * [t] glossentry/glossdef:: * [t] glossentry/glosssee|glossseealso:: * [t glosssee.xref] glossentry: [t glosssee_xref] glossentry. * [t glosssee.xref] glossentry/glossterm[1]: [t glosssee_xref] glossentry/glossterm[1]. * [t glosssee.xref] *: [t glosssee_xref] *. lists * [T] list.block: [T] list_block. Undocumented * [t] itemizedlist:: * [t] itemizedlist/listitem:: * [t] orderedlist:: * [t] orderedlist/listitem:: * [t] variablelist:: * [t] varlistentry:: * [t] term[1]:: * [t] term:: * [t] varlistentry/listitem:: * [t] simplelist:: * [t] member:: * [t] member[1]:: * [t] simplelist[@type='inline']:: * [t] simplelist[@type='inline']/member:: * [t] simplelist[@type='inline']/member[1]:: index * [t] index:: * [t] indexdiv:: * [t] indexterm:: * [t] primary:: * [t] secondary|tertiary:: * [t] see|seealso:: * [t] indexentry:: * [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie:: info * [t] corpauthor:: * [t] jobtitle:: * [t] orgname:: * [t] orgdiv:: * [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo:: * [t] bookinfo|setinfo|seriesinfo:: * [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo:: * [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo:: * [t] objectinfo:: keywords * [t] keywordset:: * [t] subjectset:: toc * [t toc] *:: * [t] toc:: * [t] tocpart|tocchap|tocfront|tocback|tocentry:: * [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5:: * [t] lot|lotentry:: pi * [t] processing-instruction(): [t] processing-instruction[].  File: docbook2man-xslt.info, Node: Guide to the stylesheet reference, Next: common/l10n, Prev: Top, Up: Top 1 docbook2X Man-pages Stylesheets Reference ******************************************* For the most part, this reference assumes knowledge of XSLT. But if you are not familiar with XSLT, you can still look at the page of stylesheet parameters; they are the commonly used options to the stylesheets that may be directly set from the command line. Also take a look at the introductory text to each XSL file, which gives some general advice to tweaking the output of the stylesheets. In the lists of stylesheet items, the following symbols are prefixed before each item to indicate their type: [P] A global parameter. The synopsis for the parameter shows its default value. [V] A global variable. [M] A template mode. [T] A named template. [t MODE] A template with a `match' attribute, for the given mode. If MODE is omitted, that means the default mode. These usually have no description; they are just listed so that you know the template exists.  File: docbook2man-xslt.info, Node: common/l10n, Next: common/messages, Prev: Guide to the stylesheet reference, Up: Top 2 common/l10n ************* * Menu: * [P] localization-file:: (URI of) XML document containing localization data * [V] l10n-data:: XML element node containing localization-data * [P] default-document-language:: Assumed language of the input document when it is not specified in the source * [T] l10n-match-language:: Determine the language to translate to * [T] l10n-xml-language:: Determine the language of the given XML fragment * [T] l10n-xml-actual-language:: Undocumented * [M] l10n-substitution:: Output localized text, substituting parameters if necessary * [t l10n-substitution] text(): [t l10n-substitution] text[].  File: docbook2man-xslt.info, Node: [P] localization-file, Next: [V] l10n-data, Up: common/l10n 2.1 [P] localization-file ========================= Name ---- [P] localization-file -- (URI of) XML document containing localization data Synopsis -------- Description ----------- This parameter specifies the URI of the localization-set document. This document, written in XML, describes all the text translations (and other locale-specific information) used by the stylesheet. You do not need to change this parameter unless you want to use custom localization data.  File: docbook2man-xslt.info, Node: [V] l10n-data, Next: [P] default-document-language, Prev: [P] localization-file, Up: common/l10n 2.2 [V] l10n-data ================= Name ---- [V] l10n-data -- XML element node containing localization-data Synopsis -------- Description ----------- This is just `document($localization-file)/l:localization-set'. There is no need to change this.  File: docbook2man-xslt.info, Node: [P] default-document-language, Next: [T] l10n-match-language, Prev: [V] l10n-data, Up: common/l10n 2.3 [P] default-document-language ================================= Name ---- [P] default-document-language -- Assumed language of the input document when it is not specified in the source Synopsis -------- Description ----------- If the source document does not specify what language it is written in using the `lang' or `xml:lang' attribute. then it is assumed to be in the language this parameter is set to. If these attributes are present (and in effect, whenever the stylesheet needs language information), the language specified in this parameter is ignored. You rarely need to change this parameter; it is better to change the source document instead, adding the `lang' or the `xml:lang' attribute. The format of the value of this parameter is the usual `LANGUAGE_CODE-COUNTRY_CODE'. For example, `zh-TW'. The hyphen (`-') may also be an underscore (`_').  File: docbook2man-xslt.info, Node: [T] l10n-match-language, Next: [T] l10n-xml-language, Prev: [P] default-document-language, Up: common/l10n 2.4 [T] l10n-match-language =========================== Name ---- [T] l10n-match-language -- Determine the language to translate to Synopsis -------- Description ----------- Given a language code `lang' (usually obtained from `l10n-xml-language'), match it with a language code in the localization data file. The new language code may in fact be the same language code, or it could be the language code with the country-code part stripped. If the localization data file does not contain the language `lang', then some default language that does exist is returned. Parameters ---------- `lang' The original language code.  File: docbook2man-xslt.info, Node: [T] l10n-xml-language, Next: [T] l10n-xml-actual-language, Prev: [T] l10n-match-language, Up: common/l10n 2.5 [T] l10n-xml-language ========================= Name ---- [T] l10n-xml-language -- Determine the language of the given XML fragment Synopsis -------- Description ----------- Returns the language of the XML content at the given node, as determined by the `lang' or `xml:lang' attribute. The result is always given in a normalized form: `LANGUAGE_CODE-COUNTRY_CODE', with the LANGUAGE_CODE and COUNTRY_CODE always in lower case. The `-COUNTRY_CODE' may be missing. No checking is done to make sure the language code is valid. Parameters ---------- `target' The (element) node to find out the language for. Defaults to the context node.  File: docbook2man-xslt.info, Node: [T] l10n-xml-actual-language, Next: [M] l10n-substitution, Prev: [T] l10n-xml-language, Up: common/l10n 2.6 [T] l10n-xml-actual-language ================================ Name ---- [T] l10n-xml-actual-language -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [M] l10n-substitution, Next: [t l10n-substitution] text[], Prev: [T] l10n-xml-actual-language, Up: common/l10n 2.7 [M] l10n-substitution ========================= Name ---- [M] l10n-substitution -- Output localized text, substituting parameters if necessary Description ----------- A piece of the translated text is processed with this mode to perform any substitutions of parameters like chapter numbers, etc. Text nodes are echoed through in this mode.  File: docbook2man-xslt.info, Node: [t l10n-substitution] text[], Prev: [M] l10n-substitution, Up: common/l10n 2.8 [t l10n-substitution] text() ================================ Name ---- [t l10n-substitution] text() Synopsis --------  File: docbook2man-xslt.info, Node: common/messages, Next: common/titles, Prev: common/l10n, Up: Top 3 common/messages ***************** * Menu: * [P] message-language:: Undocumented * [T] l10n-message-choose-language:: Undocumented * [t l10n-substitution] l;a1:: * [t l10n-substitution] l;a2:: * [t l10n-substitution] l;a3:: * [t l10n-substitution] l;a4:: * [t l10n-substitution] l;a5:: * [T] user-message:: Emit a user message * [T] print-node-line-number:: Display file name and line number of a node * [T] print-node-xpath:: Display the path of a node * [t print-node-xpath] text(): [t print-node-xpath] text[]. * [t print-node-xpath] @*:: * [t print-node-xpath] *[@id != '']:: * [t print-node-xpath] *:: * [t print-node-xpath] /::  File: docbook2man-xslt.info, Node: [P] message-language, Next: [T] l10n-message-choose-language, Up: common/messages 3.1 [P] message-language ======================== Name ---- [P] message-language -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [T] l10n-message-choose-language, Next: [t l10n-substitution] l;a1, Prev: [P] message-language, Up: common/messages 3.2 [T] l10n-message-choose-language ==================================== Name ---- [T] l10n-message-choose-language -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [t l10n-substitution] l;a1, Next: [t l10n-substitution] l;a2, Prev: [T] l10n-message-choose-language, Up: common/messages 3.3 [t l10n-substitution] l:a1 ============================== Name ---- [t l10n-substitution] l:a1 Synopsis --------  File: docbook2man-xslt.info, Node: [t l10n-substitution] l;a2, Next: [t l10n-substitution] l;a3, Prev: [t l10n-substitution] l;a1, Up: common/messages 3.4 [t l10n-substitution] l:a2 ============================== Name ---- [t l10n-substitution] l:a2 Synopsis --------  File: docbook2man-xslt.info, Node: [t l10n-substitution] l;a3, Next: [t l10n-substitution] l;a4, Prev: [t l10n-substitution] l;a2, Up: common/messages 3.5 [t l10n-substitution] l:a3 ============================== Name ---- [t l10n-substitution] l:a3 Synopsis --------  File: docbook2man-xslt.info, Node: [t l10n-substitution] l;a4, Next: [t l10n-substitution] l;a5, Prev: [t l10n-substitution] l;a3, Up: common/messages 3.6 [t l10n-substitution] l:a4 ============================== Name ---- [t l10n-substitution] l:a4 Synopsis --------  File: docbook2man-xslt.info, Node: [t l10n-substitution] l;a5, Next: [T] user-message, Prev: [t l10n-substitution] l;a4, Up: common/messages 3.7 [t l10n-substitution] l:a5 ============================== Name ---- [t l10n-substitution] l:a5 Synopsis --------  File: docbook2man-xslt.info, Node: [T] user-message, Next: [T] print-node-line-number, Prev: [t l10n-substitution] l;a5, Up: common/messages 3.8 [T] user-message ==================== Name ---- [T] user-message -- Emit a user message Synopsis -------- Description ----------- This template is used in place of `xsl:message'. It traces the path of the given node to help in debugging and allows messages to be localized. Parameters ---------- `node' The node to get to trace the path to. Default is the context node. `arg' Additional string argument to message, if any. `key' The standard message text. If a localization/customization exists, it is keyed under this text and displayed instead of the standard message text.  File: docbook2man-xslt.info, Node: [T] print-node-line-number, Next: [T] print-node-xpath, Prev: [T] user-message, Up: common/messages 3.9 [T] print-node-line-number ============================== Name ---- [T] print-node-line-number -- Display file name and line number of a node Synopsis -------- Description ----------- This template displays the file name and the line number in that file that contains the given node. In addition the name of the given node is shown in parentheses (usually the element name). The output is suitable for diagnostics to the user. ("filename" means the "filename" part of the URI of the containing entity.) Parameters ---------- `node' The node to get to print the information for. Default is the context node.  File: docbook2man-xslt.info, Node: [T] print-node-xpath, Next: [t print-node-xpath] text[], Prev: [T] print-node-line-number, Up: common/messages 3.10 [T] print-node-xpath ========================= Name ---- [T] print-node-xpath -- Display the path of a node Synopsis -------- Description ----------- This template displays the address of the given node in XPath notation, in a compact yet unambiguous form suitable for diagnostics to the user. It assumes that ID attributes are named `id', and if an element has an ID defined, then the element will be addressed using that ID, instead of a long XPath starting from the root. Parameters ---------- `node' The node to get to trace the path to. Default is the context node.  File: docbook2man-xslt.info, Node: [t print-node-xpath] text[], Next: [t print-node-xpath] @*, Prev: [T] print-node-xpath, Up: common/messages 3.11 [t print-node-xpath] text() ================================ Name ---- [t print-node-xpath] text() Synopsis --------  File: docbook2man-xslt.info, Node: [t print-node-xpath] @*, Next: [t print-node-xpath] *[@id != ''], Prev: [t print-node-xpath] text[], Up: common/messages 3.12 [t print-node-xpath] @* ============================ Name ---- [t print-node-xpath] @* Synopsis --------  File: docbook2man-xslt.info, Node: [t print-node-xpath] *[@id != ''], Next: [t print-node-xpath] *, Prev: [t print-node-xpath] @*, Up: common/messages 3.13 [t print-node-xpath] *[@id != "] ===================================== Name ---- [t print-node-xpath] *[@id != "] Synopsis --------  File: docbook2man-xslt.info, Node: [t print-node-xpath] *, Next: [t print-node-xpath] /, Prev: [t print-node-xpath] *[@id != ''], Up: common/messages 3.14 [t print-node-xpath] * =========================== Name ---- [t print-node-xpath] * Synopsis --------  File: docbook2man-xslt.info, Node: [t print-node-xpath] /, Prev: [t print-node-xpath] *, Up: common/messages 3.15 [t print-node-xpath] / =========================== Name ---- [t print-node-xpath] / Synopsis --------  File: docbook2man-xslt.info, Node: common/titles, Next: param, Prev: common/messages, Up: Top 4 common/titles *************** * Menu: * [M] for-title:: Provides access to element titles * [t title] title:: * [t title] *:: * [t title] text(): [t title] text[]. * [t for-title] set:: * [t for-title] *:: * [t for-title] book:: * [t for-title] part:: * [t for-title] preface|chapter|appendix:: * [t for-title] partintro:: * [t for-title] dedication:: * [t for-title] colophon:: * [t for-title] article:: * [t for-title] reference:: * [t for-title] refentry:: * [t for-title] refsynopsisdiv:: * [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect:: * [t for-title] bibliography:: * [t for-title] glossary:: * [t for-title] index:: * [t for-title] figure|table|example|equation:: * [t for-title] qandaset|qandadiv:: * [t for-title] abstract:: * [t for-title] caution|tip|warning|important|note:: * [t no-anchors] *:: * [t no-anchors] footnote:: * [t no-anchors] anchor:: * [t no-anchors] ulink:: * [t no-anchors] link:: * [t no-anchors] olink:: * [t no-anchors] indexterm:: * [t no-anchors] xref::  File: docbook2man-xslt.info, Node: [M] for-title, Next: [t title] title, Up: common/titles 4.1 [M] for-title ================= Name ---- [M] for-title -- Provides access to element titles Description ----------- Processing an element in the `title' mode produces the title of the element. This does not include the label.  File: docbook2man-xslt.info, Node: [t title] title, Next: [t title] *, Prev: [M] for-title, Up: common/titles 4.2 [t title] title =================== Name ---- [t title] title Synopsis --------  File: docbook2man-xslt.info, Node: [t title] *, Next: [t title] text[], Prev: [t title] title, Up: common/titles 4.3 [t title] * =============== Name ---- [t title] * Synopsis --------  File: docbook2man-xslt.info, Node: [t title] text[], Next: [t for-title] set, Prev: [t title] *, Up: common/titles 4.4 [t title] text() ==================== Name ---- [t title] text() Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] set, Next: [t for-title] *, Prev: [t title] text[], Up: common/titles 4.5 [t for-title] set ===================== Name ---- [t for-title] set Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] *, Next: [t for-title] book, Prev: [t for-title] set, Up: common/titles 4.6 [t for-title] * =================== Name ---- [t for-title] * Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] book, Next: [t for-title] part, Prev: [t for-title] *, Up: common/titles 4.7 [t for-title] book ====================== Name ---- [t for-title] book Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] part, Next: [t for-title] preface|chapter|appendix, Prev: [t for-title] book, Up: common/titles 4.8 [t for-title] part ====================== Name ---- [t for-title] part Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] preface|chapter|appendix, Next: [t for-title] partintro, Prev: [t for-title] part, Up: common/titles 4.9 [t for-title] preface|chapter|appendix ========================================== Name ---- [t for-title] preface|chapter|appendix Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] partintro, Next: [t for-title] dedication, Prev: [t for-title] preface|chapter|appendix, Up: common/titles 4.10 [t for-title] partintro ============================ Name ---- [t for-title] partintro Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] dedication, Next: [t for-title] colophon, Prev: [t for-title] partintro, Up: common/titles 4.11 [t for-title] dedication ============================= Name ---- [t for-title] dedication Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] colophon, Next: [t for-title] article, Prev: [t for-title] dedication, Up: common/titles 4.12 [t for-title] colophon =========================== Name ---- [t for-title] colophon Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] article, Next: [t for-title] reference, Prev: [t for-title] colophon, Up: common/titles 4.13 [t for-title] article ========================== Name ---- [t for-title] article Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] reference, Next: [t for-title] refentry, Prev: [t for-title] article, Up: common/titles 4.14 [t for-title] reference ============================ Name ---- [t for-title] reference Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] refentry, Next: [t for-title] refsynopsisdiv, Prev: [t for-title] reference, Up: common/titles 4.15 [t for-title] refentry =========================== Name ---- [t for-title] refentry Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] refsynopsisdiv, Next: [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect, Prev: [t for-title] refentry, Up: common/titles 4.16 [t for-title] refsynopsisdiv ================================= Name ---- [t for-title] refsynopsisdiv Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect, Next: [t for-title] bibliography, Prev: [t for-title] refsynopsisdiv, Up: common/titles 4.17 [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect ================================================================================================= Name ---- [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] bibliography, Next: [t for-title] glossary, Prev: [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect, Up: common/titles 4.18 [t for-title] bibliography =============================== Name ---- [t for-title] bibliography Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] glossary, Next: [t for-title] index, Prev: [t for-title] bibliography, Up: common/titles 4.19 [t for-title] glossary =========================== Name ---- [t for-title] glossary Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] index, Next: [t for-title] figure|table|example|equation, Prev: [t for-title] glossary, Up: common/titles 4.20 [t for-title] index ======================== Name ---- [t for-title] index Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] figure|table|example|equation, Next: [t for-title] qandaset|qandadiv, Prev: [t for-title] index, Up: common/titles 4.21 [t for-title] figure|table|example|equation ================================================ Name ---- [t for-title] figure|table|example|equation Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] qandaset|qandadiv, Next: [t for-title] abstract, Prev: [t for-title] figure|table|example|equation, Up: common/titles 4.22 [t for-title] qandaset|qandadiv ==================================== Name ---- [t for-title] qandaset|qandadiv Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] abstract, Next: [t for-title] caution|tip|warning|important|note, Prev: [t for-title] qandaset|qandadiv, Up: common/titles 4.23 [t for-title] abstract =========================== Name ---- [t for-title] abstract Synopsis --------  File: docbook2man-xslt.info, Node: [t for-title] caution|tip|warning|important|note, Next: [t no-anchors] *, Prev: [t for-title] abstract, Up: common/titles 4.24 [t for-title] caution|tip|warning|important|note ===================================================== Name ---- [t for-title] caution|tip|warning|important|note Synopsis --------  File: docbook2man-xslt.info, Node: [t no-anchors] *, Next: [t no-anchors] footnote, Prev: [t for-title] caution|tip|warning|important|note, Up: common/titles 4.25 [t no-anchors] * ===================== Name ---- [t no-anchors] * Synopsis --------  File: docbook2man-xslt.info, Node: [t no-anchors] footnote, Next: [t no-anchors] anchor, Prev: [t no-anchors] *, Up: common/titles 4.26 [t no-anchors] footnote ============================ Name ---- [t no-anchors] footnote Synopsis --------  File: docbook2man-xslt.info, Node: [t no-anchors] anchor, Next: [t no-anchors] ulink, Prev: [t no-anchors] footnote, Up: common/titles 4.27 [t no-anchors] anchor ========================== Name ---- [t no-anchors] anchor Synopsis --------  File: docbook2man-xslt.info, Node: [t no-anchors] ulink, Next: [t no-anchors] link, Prev: [t no-anchors] anchor, Up: common/titles 4.28 [t no-anchors] ulink ========================= Name ---- [t no-anchors] ulink Synopsis --------  File: docbook2man-xslt.info, Node: [t no-anchors] link, Next: [t no-anchors] olink, Prev: [t no-anchors] ulink, Up: common/titles 4.29 [t no-anchors] link ======================== Name ---- [t no-anchors] link Synopsis --------  File: docbook2man-xslt.info, Node: [t no-anchors] olink, Next: [t no-anchors] indexterm, Prev: [t no-anchors] link, Up: common/titles 4.30 [t no-anchors] olink ========================= Name ---- [t no-anchors] olink Synopsis --------  File: docbook2man-xslt.info, Node: [t no-anchors] indexterm, Next: [t no-anchors] xref, Prev: [t no-anchors] olink, Up: common/titles 4.31 [t no-anchors] indexterm ============================= Name ---- [t no-anchors] indexterm Synopsis --------  File: docbook2man-xslt.info, Node: [t no-anchors] xref, Prev: [t no-anchors] indexterm, Up: common/titles 4.32 [t no-anchors] xref ======================== Name ---- [t no-anchors] xref Synopsis --------  File: docbook2man-xslt.info, Node: param, Next: manpage, Prev: common/titles, Up: Top 5 param ******* * Menu: * [P] user-message-prefix:: Undocumented * [P] uppercase-headings:: Make headings uppercase? * [P] manvolnum-cite-numeral-only:: Man page section citation should use only the number * [P] quotes-on-literals:: Display quotes on literal elements? * [P] show-comments:: Display comment elements? * [P] function-parens:: Generate parentheses after a function? * [P] xref-on-link:: Should link generate a cross-reference? * [P] header-3:: Third header text * [P] header-4:: Fourth header text * [P] header-5:: Fifth header text * [P] default-manpage-section:: Default man page section * [P] custom-localization-file:: URI of XML document containing custom localization data * [P] custom-l10n-data:: XML document containing custom localization data * [P] author-othername-in-middle:: Is othername in author a middle name?  File: docbook2man-xslt.info, Node: [P] user-message-prefix, Next: [P] uppercase-headings, Up: param 5.1 [P] user-message-prefix =========================== Name ---- [P] user-message-prefix -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [P] uppercase-headings, Next: [P] manvolnum-cite-numeral-only, Prev: [P] user-message-prefix, Up: param 5.2 [P] uppercase-headings ========================== Name ---- [P] uppercase-headings -- Make headings uppercase? Synopsis -------- Description ----------- Headings in man page content should be or should not be uppercased.  File: docbook2man-xslt.info, Node: [P] manvolnum-cite-numeral-only, Next: [P] quotes-on-literals, Prev: [P] uppercase-headings, Up: param 5.3 [P] manvolnum-cite-numeral-only =================================== Name ---- [P] manvolnum-cite-numeral-only -- Man page section citation should use only the number Synopsis -------- Description ----------- When citing other man pages, the man-page section is either given as is, or has the letters stripped from it, citing only the number of the section (e.g. section `3x' becomes `3'). This option specifies which style.  File: docbook2man-xslt.info, Node: [P] quotes-on-literals, Next: [P] show-comments, Prev: [P] manvolnum-cite-numeral-only, Up: param 5.4 [P] quotes-on-literals ========================== Name ---- [P] quotes-on-literals -- Display quotes on `literal' elements? Synopsis -------- Description ----------- If true, render `literal' elements with quotes around them.  File: docbook2man-xslt.info, Node: [P] show-comments, Next: [P] function-parens, Prev: [P] quotes-on-literals, Up: param 5.5 [P] show-comments ===================== Name ---- [P] show-comments -- Display `comment' elements? Synopsis -------- Description ----------- If true, comments will be displayed, otherwise they are suppressed. Comments here refers to the `comment' element, which will be renamed `remark' in DocBook V4.0, not XML comments (<- like this ->) which are unavailable.  File: docbook2man-xslt.info, Node: [P] function-parens, Next: [P] xref-on-link, Prev: [P] show-comments, Up: param 5.6 [P] function-parens ======================= Name ---- [P] function-parens -- Generate parentheses after a function? Synopsis -------- Description ----------- If true, the formatting of a `' element will include generated parenthesis.  File: docbook2man-xslt.info, Node: [P] xref-on-link, Next: [P] header-3, Prev: [P] function-parens, Up: param 5.7 [P] xref-on-link ==================== Name ---- [P] xref-on-link -- Should `link' generate a cross-reference? Synopsis -------- Description ----------- Man pages cannot render the hypertext links created by `link'. If this option is set, then the stylesheet renders a cross reference to the target of the link. (This may reduce clutter). Otherwise, only the content of the `link' is rendered and the actual link itself is ignored.  File: docbook2man-xslt.info, Node: [P] header-3, Next: [P] header-4, Prev: [P] xref-on-link, Up: param 5.8 [P] header-3 ================ Name ---- [P] header-3 -- Third header text Synopsis -------- Description ----------- Specifies the text of the third header of a man page, typically the date for the man page. If empty, the `date' content for the `refentry' is used.  File: docbook2man-xslt.info, Node: [P] header-4, Next: [P] header-5, Prev: [P] header-3, Up: param 5.9 [P] header-4 ================ Name ---- [P] header-4 -- Fourth header text Synopsis -------- Description ----------- Specifies the text of the fourth header of a man page. If empty, the `refmiscinfo' content for the `refentry' is used.  File: docbook2man-xslt.info, Node: [P] header-5, Next: [P] default-manpage-section, Prev: [P] header-4, Up: param 5.10 [P] header-5 ================= Name ---- [P] header-5 -- Fifth header text Synopsis -------- Description ----------- Specifies the text of the fifth header of a man page. If empty, the `manual name', that is, the title of the `book' or `reference' container is used.  File: docbook2man-xslt.info, Node: [P] default-manpage-section, Next: [P] custom-localization-file, Prev: [P] header-5, Up: param 5.11 [P] default-manpage-section ================================ Name ---- [P] default-manpage-section -- Default man page section Synopsis -------- Description ----------- The source document usually indicates the sections that each man page should belong to (with `manvolnum' in `refmeta'). In case the source document does not indicate man-page sections, this option specifies the default.  File: docbook2man-xslt.info, Node: [P] custom-localization-file, Next: [P] custom-l10n-data, Prev: [P] default-manpage-section, Up: param 5.12 [P] custom-localization-file ================================= Name ---- [P] custom-localization-file -- URI of XML document containing custom localization data Synopsis -------- Description ----------- This parameter specifies the URI of a XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. The text translations pointed to by this parameter always override the default text translations (from the internal parameter `localization-file'). If a particular translation is not present here, the corresponding default translation is used as a fallback. This parameter is primarily for changing certain punctuation characters used in formatting the source document. The settings for punctuation characters are often specific to the source document, but can also be dependent on the locale. To not use custom text translations, leave this parameter as the empty string.  File: docbook2man-xslt.info, Node: [P] custom-l10n-data, Next: [P] author-othername-in-middle, Prev: [P] custom-localization-file, Up: param 5.13 [P] custom-l10n-data ========================= Name ---- [P] custom-l10n-data -- XML document containing custom localization data Synopsis -------- Description ----------- This parameter specifies the XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. This parameter is internal to the stylesheet. To point to an external XML document with a URI or a file name, you should use the `custom-localization-file' parameter instead. However, inside a custom stylesheet (_not on the command-line_) this paramter can be set to the XPath expression `document('')', which will cause the custom translations directly embedded inside the custom stylesheet to be read.  File: docbook2man-xslt.info, Node: [P] author-othername-in-middle, Prev: [P] custom-l10n-data, Up: param 5.14 [P] author-othername-in-middle =================================== Name ---- [P] author-othername-in-middle -- Is `othername' in `author' a middle name? Synopsis -------- Description ----------- If true, the `othername' of an `author' appears between the `firstname' and `surname'. Otherwise, `othername' is suppressed.  File: docbook2man-xslt.info, Node: manpage, Next: refentry, Prev: param, Up: Top 6 manpage ********* * Menu: * [T] manpage:: Undocumented  File: docbook2man-xslt.info, Node: [T] manpage, Up: manpage 6.1 [T] manpage =============== Name ---- [T] manpage -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: refentry, Next: sectioning, Prev: manpage, Up: Top 7 refentry ********** * Menu: * [t] reference:: * [t] refentry:: * [t header-text] *:: * [t header-text] text(): [t header-text] text[]. * [t] refmeta:: * [t] refentrytitle:: * [t] manvolnum:: * [t] refmiscinfo:: * [t] refnamediv:: * [t] refname:: * [t] refpurpose:: * [t] refdescriptor:: * [t] refclass:: * [t] refsynopsisdiv:: * [t] refsection:: * [t] refsect1:: * [t] refsect2:: * [T] uppercase-title:: Undocumented  File: docbook2man-xslt.info, Node: [t] reference, Next: [t] refentry, Up: refentry 7.1 [t] reference ================= Name ---- [t] reference Synopsis --------  File: docbook2man-xslt.info, Node: [t] refentry, Next: [t header-text] *, Prev: [t] reference, Up: refentry 7.2 [t] refentry ================ Name ---- [t] refentry Synopsis --------  File: docbook2man-xslt.info, Node: [t header-text] *, Next: [t header-text] text[], Prev: [t] refentry, Up: refentry 7.3 [t header-text] * ===================== Name ---- [t header-text] * Synopsis --------  File: docbook2man-xslt.info, Node: [t header-text] text[], Next: [t] refmeta, Prev: [t header-text] *, Up: refentry 7.4 [t header-text] text() ========================== Name ---- [t header-text] text() Synopsis --------  File: docbook2man-xslt.info, Node: [t] refmeta, Next: [t] refentrytitle, Prev: [t header-text] text[], Up: refentry 7.5 [t] refmeta =============== Name ---- [t] refmeta Synopsis --------  File: docbook2man-xslt.info, Node: [t] refentrytitle, Next: [t] manvolnum, Prev: [t] refmeta, Up: refentry 7.6 [t] refentrytitle ===================== Name ---- [t] refentrytitle Synopsis --------  File: docbook2man-xslt.info, Node: [t] manvolnum, Next: [t] refmiscinfo, Prev: [t] refentrytitle, Up: refentry 7.7 [t] manvolnum ================= Name ---- [t] manvolnum Synopsis --------  File: docbook2man-xslt.info, Node: [t] refmiscinfo, Next: [t] refnamediv, Prev: [t] manvolnum, Up: refentry 7.8 [t] refmiscinfo =================== Name ---- [t] refmiscinfo Synopsis --------  File: docbook2man-xslt.info, Node: [t] refnamediv, Next: [t] refname, Prev: [t] refmiscinfo, Up: refentry 7.9 [t] refnamediv ================== Name ---- [t] refnamediv Synopsis --------  File: docbook2man-xslt.info, Node: [t] refname, Next: [t] refpurpose, Prev: [t] refnamediv, Up: refentry 7.10 [t] refname ================ Name ---- [t] refname Synopsis --------  File: docbook2man-xslt.info, Node: [t] refpurpose, Next: [t] refdescriptor, Prev: [t] refname, Up: refentry 7.11 [t] refpurpose =================== Name ---- [t] refpurpose Synopsis --------  File: docbook2man-xslt.info, Node: [t] refdescriptor, Next: [t] refclass, Prev: [t] refpurpose, Up: refentry 7.12 [t] refdescriptor ====================== Name ---- [t] refdescriptor Synopsis --------  File: docbook2man-xslt.info, Node: [t] refclass, Next: [t] refsynopsisdiv, Prev: [t] refdescriptor, Up: refentry 7.13 [t] refclass ================= Name ---- [t] refclass Synopsis --------  File: docbook2man-xslt.info, Node: [t] refsynopsisdiv, Next: [t] refsection, Prev: [t] refclass, Up: refentry 7.14 [t] refsynopsisdiv ======================= Name ---- [t] refsynopsisdiv Synopsis --------  File: docbook2man-xslt.info, Node: [t] refsection, Next: [t] refsect1, Prev: [t] refsynopsisdiv, Up: refentry 7.15 [t] refsection =================== Name ---- [t] refsection Synopsis --------  File: docbook2man-xslt.info, Node: [t] refsect1, Next: [t] refsect2, Prev: [t] refsection, Up: refentry 7.16 [t] refsect1 ================= Name ---- [t] refsect1 Synopsis --------  File: docbook2man-xslt.info, Node: [t] refsect2, Next: [T] uppercase-title, Prev: [t] refsect1, Up: refentry 7.17 [t] refsect2 ================= Name ---- [t] refsect2 Synopsis --------  File: docbook2man-xslt.info, Node: [T] uppercase-title, Prev: [t] refsect2, Up: refentry 7.18 [T] uppercase-title ======================== Name ---- [T] uppercase-title -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: sectioning, Next: sections, Prev: refentry, Up: Top 8 sectioning ************ * Menu: * [T] SS-section:: Undocumented * [T] SH-section:: Undocumented  File: docbook2man-xslt.info, Node: [T] SS-section, Next: [T] SH-section, Up: sectioning 8.1 [T] SS-section ================== Name ---- [T] SS-section -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [T] SH-section, Prev: [T] SS-section, Up: sectioning 8.2 [T] SH-section ================== Name ---- [T] SH-section -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: sections, Next: admon, Prev: sectioning, Up: Top 9 sections ********** * Menu: * [t] sect1|sect2|sect3|sect4|sect5|simplesect|section:: * [t] title:: * [t] titleabbrev:: * [t] subtitle::  File: docbook2man-xslt.info, Node: [t] sect1|sect2|sect3|sect4|sect5|simplesect|section, Next: [t] title, Up: sections 9.1 [t] sect1|sect2|sect3|sect4|sect5|simplesect|section ======================================================== Name ---- [t] sect1|sect2|sect3|sect4|sect5|simplesect|section Synopsis --------  File: docbook2man-xslt.info, Node: [t] title, Next: [t] titleabbrev, Prev: [t] sect1|sect2|sect3|sect4|sect5|simplesect|section, Up: sections 9.2 [t] title ============= Name ---- [t] title Synopsis --------  File: docbook2man-xslt.info, Node: [t] titleabbrev, Next: [t] subtitle, Prev: [t] title, Up: sections 9.3 [t] titleabbrev =================== Name ---- [t] titleabbrev Synopsis --------  File: docbook2man-xslt.info, Node: [t] subtitle, Prev: [t] titleabbrev, Up: sections 9.4 [t] subtitle ================ Name ---- [t] subtitle Synopsis --------  File: docbook2man-xslt.info, Node: admon, Next: block, Prev: sections, Up: Top 10 admon ******** * Menu: * [T] admonition-title:: Undocumented * [t] note|important|warning|caution|tip::  File: docbook2man-xslt.info, Node: [T] admonition-title, Next: [t] note|important|warning|caution|tip, Up: admon 10.1 [T] admonition-title ========================= Name ---- [T] admonition-title -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [t] note|important|warning|caution|tip, Prev: [T] admonition-title, Up: admon 10.2 [t] note|important|warning|caution|tip =========================================== Name ---- [t] note|important|warning|caution|tip Synopsis --------  File: docbook2man-xslt.info, Node: block, Next: caption, Prev: admon, Up: Top 11 block ******** * Menu: * [T] block-object:: Undocumented * [T] indented.block-object: [T] indented_block-object. Undocumented * [t] para|simpara:: * [t] formalpara:: * [t] formalpara/title:: * [t] formalpara/para:: * [t] blockquote:: * [t] blockquote/title:: * [t] attribution:: * [t blockquote-attribution] attribution:: * [t] epigraph:: * [t] sidebar:: * [t] abstract:: * [t] msgset:: * [t] msgentry:: * [t] simplemsgentry:: * [t] msg:: * [t] msgmain:: * [t] msgmain/title:: * [t] msgsub:: * [t] msgsub/title:: * [t] msgrel:: * [t] msgrel/title:: * [t] msgtext:: * [t] msginfo:: * [t] msglevel|msgorig|msgaud:: * [t] msgexplan:: * [t] msgexplan/title:: * [t] revhistory:: * [t] revhistory/revision:: * [t] revision/revnumber:: * [t] revision/date:: * [t] revision/authorinitials:: * [t] revision/authorinitials[1]:: * [t] revision/revremark:: * [t] revision/revdescription:: * [t] ackno::  File: docbook2man-xslt.info, Node: [T] block-object, Next: [T] indented_block-object, Up: block 11.1 [T] block-object ===================== Name ---- [T] block-object -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [T] indented_block-object, Next: [t] para|simpara, Prev: [T] block-object, Up: block 11.2 [T] indented.block-object ============================== Name ---- [T] indented.block-object -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [t] para|simpara, Next: [t] formalpara, Prev: [T] indented_block-object, Up: block 11.3 [t] para|simpara ===================== Name ---- [t] para|simpara Synopsis --------  File: docbook2man-xslt.info, Node: [t] formalpara, Next: [t] formalpara/title, Prev: [t] para|simpara, Up: block 11.4 [t] formalpara =================== Name ---- [t] formalpara Synopsis --------  File: docbook2man-xslt.info, Node: [t] formalpara/title, Next: [t] formalpara/para, Prev: [t] formalpara, Up: block 11.5 [t] formalpara/title ========================= Name ---- [t] formalpara/title Synopsis --------  File: docbook2man-xslt.info, Node: [t] formalpara/para, Next: [t] blockquote, Prev: [t] formalpara/title, Up: block 11.6 [t] formalpara/para ======================== Name ---- [t] formalpara/para Synopsis --------  File: docbook2man-xslt.info, Node: [t] blockquote, Next: [t] blockquote/title, Prev: [t] formalpara/para, Up: block 11.7 [t] blockquote =================== Name ---- [t] blockquote Synopsis --------  File: docbook2man-xslt.info, Node: [t] blockquote/title, Next: [t] attribution, Prev: [t] blockquote, Up: block 11.8 [t] blockquote/title ========================= Name ---- [t] blockquote/title Synopsis --------  File: docbook2man-xslt.info, Node: [t] attribution, Next: [t blockquote-attribution] attribution, Prev: [t] blockquote/title, Up: block 11.9 [t] attribution ==================== Name ---- [t] attribution Synopsis --------  File: docbook2man-xslt.info, Node: [t blockquote-attribution] attribution, Next: [t] epigraph, Prev: [t] attribution, Up: block 11.10 [t blockquote-attribution] attribution ============================================ Name ---- [t blockquote-attribution] attribution Synopsis --------  File: docbook2man-xslt.info, Node: [t] epigraph, Next: [t] sidebar, Prev: [t blockquote-attribution] attribution, Up: block 11.11 [t] epigraph ================== Name ---- [t] epigraph Synopsis --------  File: docbook2man-xslt.info, Node: [t] sidebar, Next: [t] abstract, Prev: [t] epigraph, Up: block 11.12 [t] sidebar ================= Name ---- [t] sidebar Synopsis --------  File: docbook2man-xslt.info, Node: [t] abstract, Next: [t] msgset, Prev: [t] sidebar, Up: block 11.13 [t] abstract ================== Name ---- [t] abstract Synopsis --------  File: docbook2man-xslt.info, Node: [t] msgset, Next: [t] msgentry, Prev: [t] abstract, Up: block 11.14 [t] msgset ================ Name ---- [t] msgset Synopsis --------  File: docbook2man-xslt.info, Node: [t] msgentry, Next: [t] simplemsgentry, Prev: [t] msgset, Up: block 11.15 [t] msgentry ================== Name ---- [t] msgentry Synopsis --------  File: docbook2man-xslt.info, Node: [t] simplemsgentry, Next: [t] msg, Prev: [t] msgentry, Up: block 11.16 [t] simplemsgentry ======================== Name ---- [t] simplemsgentry Synopsis --------  File: docbook2man-xslt.info, Node: [t] msg, Next: [t] msgmain, Prev: [t] simplemsgentry, Up: block 11.17 [t] msg ============= Name ---- [t] msg Synopsis --------  File: docbook2man-xslt.info, Node: [t] msgmain, Next: [t] msgmain/title, Prev: [t] msg, Up: block 11.18 [t] msgmain ================= Name ---- [t] msgmain Synopsis --------  File: docbook2man-xslt.info, Node: [t] msgmain/title, Next: [t] msgsub, Prev: [t] msgmain, Up: block 11.19 [t] msgmain/title ======================= Name ---- [t] msgmain/title Synopsis --------  File: docbook2man-xslt.info, Node: [t] msgsub, Next: [t] msgsub/title, Prev: [t] msgmain/title, Up: block 11.20 [t] msgsub ================ Name ---- [t] msgsub Synopsis --------  File: docbook2man-xslt.info, Node: [t] msgsub/title, Next: [t] msgrel, Prev: [t] msgsub, Up: block 11.21 [t] msgsub/title ====================== Name ---- [t] msgsub/title Synopsis --------  File: docbook2man-xslt.info, Node: [t] msgrel, Next: [t] msgrel/title, Prev: [t] msgsub/title, Up: block 11.22 [t] msgrel ================ Name ---- [t] msgrel Synopsis --------  File: docbook2man-xslt.info, Node: [t] msgrel/title, Next: [t] msgtext, Prev: [t] msgrel, Up: block 11.23 [t] msgrel/title ====================== Name ---- [t] msgrel/title Synopsis --------  File: docbook2man-xslt.info, Node: [t] msgtext, Next: [t] msginfo, Prev: [t] msgrel/title, Up: block 11.24 [t] msgtext ================= Name ---- [t] msgtext Synopsis --------  File: docbook2man-xslt.info, Node: [t] msginfo, Next: [t] msglevel|msgorig|msgaud, Prev: [t] msgtext, Up: block 11.25 [t] msginfo ================= Name ---- [t] msginfo Synopsis --------  File: docbook2man-xslt.info, Node: [t] msglevel|msgorig|msgaud, Next: [t] msgexplan, Prev: [t] msginfo, Up: block 11.26 [t] msglevel|msgorig|msgaud ================================= Name ---- [t] msglevel|msgorig|msgaud Synopsis --------  File: docbook2man-xslt.info, Node: [t] msgexplan, Next: [t] msgexplan/title, Prev: [t] msglevel|msgorig|msgaud, Up: block 11.27 [t] msgexplan =================== Name ---- [t] msgexplan Synopsis --------  File: docbook2man-xslt.info, Node: [t] msgexplan/title, Next: [t] revhistory, Prev: [t] msgexplan, Up: block 11.28 [t] msgexplan/title ========================= Name ---- [t] msgexplan/title Synopsis --------  File: docbook2man-xslt.info, Node: [t] revhistory, Next: [t] revhistory/revision, Prev: [t] msgexplan/title, Up: block 11.29 [t] revhistory ==================== Name ---- [t] revhistory Synopsis --------  File: docbook2man-xslt.info, Node: [t] revhistory/revision, Next: [t] revision/revnumber, Prev: [t] revhistory, Up: block 11.30 [t] revhistory/revision ============================= Name ---- [t] revhistory/revision Synopsis --------  File: docbook2man-xslt.info, Node: [t] revision/revnumber, Next: [t] revision/date, Prev: [t] revhistory/revision, Up: block 11.31 [t] revision/revnumber ============================ Name ---- [t] revision/revnumber Synopsis --------  File: docbook2man-xslt.info, Node: [t] revision/date, Next: [t] revision/authorinitials, Prev: [t] revision/revnumber, Up: block 11.32 [t] revision/date ======================= Name ---- [t] revision/date Synopsis --------  File: docbook2man-xslt.info, Node: [t] revision/authorinitials, Next: [t] revision/authorinitials[1], Prev: [t] revision/date, Up: block 11.33 [t] revision/authorinitials ================================= Name ---- [t] revision/authorinitials Synopsis --------  File: docbook2man-xslt.info, Node: [t] revision/authorinitials[1], Next: [t] revision/revremark, Prev: [t] revision/authorinitials, Up: block 11.34 [t] revision/authorinitials[1] ==================================== Name ---- [t] revision/authorinitials[1] Synopsis --------  File: docbook2man-xslt.info, Node: [t] revision/revremark, Next: [t] revision/revdescription, Prev: [t] revision/authorinitials[1], Up: block 11.35 [t] revision/revremark ============================ Name ---- [t] revision/revremark Synopsis --------  File: docbook2man-xslt.info, Node: [t] revision/revdescription, Next: [t] ackno, Prev: [t] revision/revremark, Up: block 11.36 [t] revision/revdescription ================================= Name ---- [t] revision/revdescription Synopsis --------  File: docbook2man-xslt.info, Node: [t] ackno, Prev: [t] revision/revdescription, Up: block 11.37 [t] ackno =============== Name ---- [t] ackno Synopsis --------  File: docbook2man-xslt.info, Node: caption, Next: formal, Prev: block, Up: Top 12 caption ********** * Menu: * [T] make-caption:: Render as a `caption'  File: docbook2man-xslt.info, Node: [T] make-caption, Up: caption 12.1 [T] make-caption ===================== Name ---- [T] make-caption -- Render as a `caption' Synopsis -------- Description ----------- This template renders content (usually titles in certain block objects) as a `caption'. Parameters ---------- `content' The result tree fragment to render. If not specified, defaults to applying `for-title' mode to the _context_ node.  File: docbook2man-xslt.info, Node: formal, Next: synop, Prev: caption, Up: Top 13 formal ********* * Menu: * [T] formal-object:: Undocumented * [T] formal-object-title:: Undocumented * [T] informal-object:: Undocumented * [T] semiformal-object:: Undocumented * [t] figure|example:: * [t] equation:: * [t] informalfigure:: * [t] informalexample:: * [t] informalequation::  File: docbook2man-xslt.info, Node: [T] formal-object, Next: [T] formal-object-title, Up: formal 13.1 [T] formal-object ====================== Name ---- [T] formal-object -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [T] formal-object-title, Next: [T] informal-object, Prev: [T] formal-object, Up: formal 13.2 [T] formal-object-title ============================ Name ---- [T] formal-object-title -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [T] informal-object, Next: [T] semiformal-object, Prev: [T] formal-object-title, Up: formal 13.3 [T] informal-object ======================== Name ---- [T] informal-object -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [T] semiformal-object, Next: [t] figure|example, Prev: [T] informal-object, Up: formal 13.4 [T] semiformal-object ========================== Name ---- [T] semiformal-object -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [t] figure|example, Next: [t] equation, Prev: [T] semiformal-object, Up: formal 13.5 [t] figure|example ======================= Name ---- [t] figure|example Synopsis --------  File: docbook2man-xslt.info, Node: [t] equation, Next: [t] informalfigure, Prev: [t] figure|example, Up: formal 13.6 [t] equation ================= Name ---- [t] equation Synopsis --------  File: docbook2man-xslt.info, Node: [t] informalfigure, Next: [t] informalexample, Prev: [t] equation, Up: formal 13.7 [t] informalfigure ======================= Name ---- [t] informalfigure Synopsis --------  File: docbook2man-xslt.info, Node: [t] informalexample, Next: [t] informalequation, Prev: [t] informalfigure, Up: formal 13.8 [t] informalexample ======================== Name ---- [t] informalexample Synopsis --------  File: docbook2man-xslt.info, Node: [t] informalequation, Prev: [t] informalexample, Up: formal 13.9 [t] informalequation ========================= Name ---- [t] informalequation Synopsis --------  File: docbook2man-xslt.info, Node: synop, Next: table, Prev: formal, Up: Top 14 synop ******** * Menu: * [t] synopsis:: * [t] cmdsynopsis:: * [t cmdsynopsis] *:: * [t cmdsynopsis] sbr:: * [t cmdsynopsis] synopfragmentref:: * [t synopfragment.number] synopfragment: [t synopfragment_number] synopfragment. * [t cmdsynopsis] synopfragment:: * [t cmdsynopsis] command|option:: * [t cmdsynopsis] replaceable:: * [t cmdsynopsis] group|arg:: * [t cmdsynopsis] group/*:: * [t cmdsynopsis] group/group:: * [t cmdsynopsis] group/option:: * [t cmdsynopsis] group/arg:: * [t] funcsynopsis:: * [t funcsynopsis] *:: * [t funcsynopsis] funcsynopsisinfo:: * [T] funcprototype:: Undocumented * [t funcsynopsis] modifier:: * [t funcsynopsis] funcdef:: * [t funcsynopsis] function:: * [t funcsynopsis] void:: * [t funcsynopsis] varargs:: * [t funcsynopsis] paramdef:: * [t funcsynopsis] paramdef/parameter:: * [t funcsynopsis] funcparams::  File: docbook2man-xslt.info, Node: [t] synopsis, Next: [t] cmdsynopsis, Up: synop 14.1 [t] synopsis ================= Name ---- [t] synopsis Synopsis --------  File: docbook2man-xslt.info, Node: [t] cmdsynopsis, Next: [t cmdsynopsis] *, Prev: [t] synopsis, Up: synop 14.2 [t] cmdsynopsis ==================== Name ---- [t] cmdsynopsis Synopsis --------  File: docbook2man-xslt.info, Node: [t cmdsynopsis] *, Next: [t cmdsynopsis] sbr, Prev: [t] cmdsynopsis, Up: synop 14.3 [t cmdsynopsis] * ====================== Name ---- [t cmdsynopsis] * Synopsis --------  File: docbook2man-xslt.info, Node: [t cmdsynopsis] sbr, Next: [t cmdsynopsis] synopfragmentref, Prev: [t cmdsynopsis] *, Up: synop 14.4 [t cmdsynopsis] sbr ======================== Name ---- [t cmdsynopsis] sbr Synopsis --------  File: docbook2man-xslt.info, Node: [t cmdsynopsis] synopfragmentref, Next: [t synopfragment_number] synopfragment, Prev: [t cmdsynopsis] sbr, Up: synop 14.5 [t cmdsynopsis] synopfragmentref ===================================== Name ---- [t cmdsynopsis] synopfragmentref Synopsis --------  File: docbook2man-xslt.info, Node: [t synopfragment_number] synopfragment, Next: [t cmdsynopsis] synopfragment, Prev: [t cmdsynopsis] synopfragmentref, Up: synop 14.6 [t synopfragment.number] synopfragment =========================================== Name ---- [t synopfragment.number] synopfragment Synopsis --------  File: docbook2man-xslt.info, Node: [t cmdsynopsis] synopfragment, Next: [t cmdsynopsis] command|option, Prev: [t synopfragment_number] synopfragment, Up: synop 14.7 [t cmdsynopsis] synopfragment ================================== Name ---- [t cmdsynopsis] synopfragment Synopsis --------  File: docbook2man-xslt.info, Node: [t cmdsynopsis] command|option, Next: [t cmdsynopsis] replaceable, Prev: [t cmdsynopsis] synopfragment, Up: synop 14.8 [t cmdsynopsis] command|option =================================== Name ---- [t cmdsynopsis] command|option Synopsis --------  File: docbook2man-xslt.info, Node: [t cmdsynopsis] replaceable, Next: [t cmdsynopsis] group|arg, Prev: [t cmdsynopsis] command|option, Up: synop 14.9 [t cmdsynopsis] replaceable ================================ Name ---- [t cmdsynopsis] replaceable Synopsis --------  File: docbook2man-xslt.info, Node: [t cmdsynopsis] group|arg, Next: [t cmdsynopsis] group/*, Prev: [t cmdsynopsis] replaceable, Up: synop 14.10 [t cmdsynopsis] group|arg =============================== Name ---- [t cmdsynopsis] group|arg Synopsis --------  File: docbook2man-xslt.info, Node: [t cmdsynopsis] group/*, Next: [t cmdsynopsis] group/group, Prev: [t cmdsynopsis] group|arg, Up: synop 14.11 [t cmdsynopsis] group/* ============================= Name ---- [t cmdsynopsis] group/* Synopsis --------  File: docbook2man-xslt.info, Node: [t cmdsynopsis] group/group, Next: [t cmdsynopsis] group/option, Prev: [t cmdsynopsis] group/*, Up: synop 14.12 [t cmdsynopsis] group/group ================================= Name ---- [t cmdsynopsis] group/group Synopsis --------  File: docbook2man-xslt.info, Node: [t cmdsynopsis] group/option, Next: [t cmdsynopsis] group/arg, Prev: [t cmdsynopsis] group/group, Up: synop 14.13 [t cmdsynopsis] group/option ================================== Name ---- [t cmdsynopsis] group/option Synopsis --------  File: docbook2man-xslt.info, Node: [t cmdsynopsis] group/arg, Next: [t] funcsynopsis, Prev: [t cmdsynopsis] group/option, Up: synop 14.14 [t cmdsynopsis] group/arg =============================== Name ---- [t cmdsynopsis] group/arg Synopsis --------  File: docbook2man-xslt.info, Node: [t] funcsynopsis, Next: [t funcsynopsis] *, Prev: [t cmdsynopsis] group/arg, Up: synop 14.15 [t] funcsynopsis ====================== Name ---- [t] funcsynopsis Synopsis --------  File: docbook2man-xslt.info, Node: [t funcsynopsis] *, Next: [t funcsynopsis] funcsynopsisinfo, Prev: [t] funcsynopsis, Up: synop 14.16 [t funcsynopsis] * ======================== Name ---- [t funcsynopsis] * Synopsis --------  File: docbook2man-xslt.info, Node: [t funcsynopsis] funcsynopsisinfo, Next: [T] funcprototype, Prev: [t funcsynopsis] *, Up: synop 14.17 [t funcsynopsis] funcsynopsisinfo ======================================= Name ---- [t funcsynopsis] funcsynopsisinfo Synopsis --------  File: docbook2man-xslt.info, Node: [T] funcprototype, Next: [t funcsynopsis] modifier, Prev: [t funcsynopsis] funcsynopsisinfo, Up: synop 14.18 [T] funcprototype ======================= Name ---- [T] funcprototype -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [t funcsynopsis] modifier, Next: [t funcsynopsis] funcdef, Prev: [T] funcprototype, Up: synop 14.19 [t funcsynopsis] modifier =============================== Name ---- [t funcsynopsis] modifier Synopsis --------  File: docbook2man-xslt.info, Node: [t funcsynopsis] funcdef, Next: [t funcsynopsis] function, Prev: [t funcsynopsis] modifier, Up: synop 14.20 [t funcsynopsis] funcdef ============================== Name ---- [t funcsynopsis] funcdef Synopsis --------  File: docbook2man-xslt.info, Node: [t funcsynopsis] function, Next: [t funcsynopsis] void, Prev: [t funcsynopsis] funcdef, Up: synop 14.21 [t funcsynopsis] function =============================== Name ---- [t funcsynopsis] function Synopsis --------  File: docbook2man-xslt.info, Node: [t funcsynopsis] void, Next: [t funcsynopsis] varargs, Prev: [t funcsynopsis] function, Up: synop 14.22 [t funcsynopsis] void =========================== Name ---- [t funcsynopsis] void Synopsis --------  File: docbook2man-xslt.info, Node: [t funcsynopsis] varargs, Next: [t funcsynopsis] paramdef, Prev: [t funcsynopsis] void, Up: synop 14.23 [t funcsynopsis] varargs ============================== Name ---- [t funcsynopsis] varargs Synopsis --------  File: docbook2man-xslt.info, Node: [t funcsynopsis] paramdef, Next: [t funcsynopsis] paramdef/parameter, Prev: [t funcsynopsis] varargs, Up: synop 14.24 [t funcsynopsis] paramdef =============================== Name ---- [t funcsynopsis] paramdef Synopsis --------  File: docbook2man-xslt.info, Node: [t funcsynopsis] paramdef/parameter, Next: [t funcsynopsis] funcparams, Prev: [t funcsynopsis] paramdef, Up: synop 14.25 [t funcsynopsis] paramdef/parameter ========================================= Name ---- [t funcsynopsis] paramdef/parameter Synopsis --------  File: docbook2man-xslt.info, Node: [t funcsynopsis] funcparams, Prev: [t funcsynopsis] paramdef/parameter, Up: synop 14.26 [t funcsynopsis] funcparams ================================= Name ---- [t funcsynopsis] funcparams Synopsis --------  File: docbook2man-xslt.info, Node: table, Next: verbatim, Prev: synop, Up: Top 15 table ******** * Menu: * [t] table:: * [t] informaltable:: * [t] tgroup:: * [t] colspec|spanspec:: * [t] thead|tbody|tfoot:: * [t] row|entry:: * [t] entrytbl[@cols='2']:: * [t entrytbl] thead:: * [t entrytbl] tbody:: * [t entrytbl] tfoot:: * [t entrytbl-head] row:: * [t entrytbl-body] row:: * [T] copy-through:: Undocumented * [t copy] @*::  File: docbook2man-xslt.info, Node: [t] table, Next: [t] informaltable, Up: table 15.1 [t] table ============== Name ---- [t] table Synopsis --------  File: docbook2man-xslt.info, Node: [t] informaltable, Next: [t] tgroup, Prev: [t] table, Up: table 15.2 [t] informaltable ====================== Name ---- [t] informaltable Synopsis --------  File: docbook2man-xslt.info, Node: [t] tgroup, Next: [t] colspec|spanspec, Prev: [t] informaltable, Up: table 15.3 [t] tgroup =============== Name ---- [t] tgroup Synopsis --------  File: docbook2man-xslt.info, Node: [t] colspec|spanspec, Next: [t] thead|tbody|tfoot, Prev: [t] tgroup, Up: table 15.4 [t] colspec|spanspec ========================= Name ---- [t] colspec|spanspec Synopsis --------  File: docbook2man-xslt.info, Node: [t] thead|tbody|tfoot, Next: [t] row|entry, Prev: [t] colspec|spanspec, Up: table 15.5 [t] thead|tbody|tfoot ========================== Name ---- [t] thead|tbody|tfoot Synopsis --------  File: docbook2man-xslt.info, Node: [t] row|entry, Next: [t] entrytbl[@cols='2'], Prev: [t] thead|tbody|tfoot, Up: table 15.6 [t] row|entry ================== Name ---- [t] row|entry Synopsis --------  File: docbook2man-xslt.info, Node: [t] entrytbl[@cols='2'], Next: [t entrytbl] thead, Prev: [t] row|entry, Up: table 15.7 [t] entrytbl[@cols='2'] ============================ Name ---- [t] entrytbl[@cols='2'] Synopsis --------  File: docbook2man-xslt.info, Node: [t entrytbl] thead, Next: [t entrytbl] tbody, Prev: [t] entrytbl[@cols='2'], Up: table 15.8 [t entrytbl] thead ======================= Name ---- [t entrytbl] thead Synopsis --------  File: docbook2man-xslt.info, Node: [t entrytbl] tbody, Next: [t entrytbl] tfoot, Prev: [t entrytbl] thead, Up: table 15.9 [t entrytbl] tbody ======================= Name ---- [t entrytbl] tbody Synopsis --------  File: docbook2man-xslt.info, Node: [t entrytbl] tfoot, Next: [t entrytbl-head] row, Prev: [t entrytbl] tbody, Up: table 15.10 [t entrytbl] tfoot ======================== Name ---- [t entrytbl] tfoot Synopsis --------  File: docbook2man-xslt.info, Node: [t entrytbl-head] row, Next: [t entrytbl-body] row, Prev: [t entrytbl] tfoot, Up: table 15.11 [t entrytbl-head] row =========================== Name ---- [t entrytbl-head] row Synopsis --------  File: docbook2man-xslt.info, Node: [t entrytbl-body] row, Next: [T] copy-through, Prev: [t entrytbl-head] row, Up: table 15.12 [t entrytbl-body] row =========================== Name ---- [t entrytbl-body] row Synopsis --------  File: docbook2man-xslt.info, Node: [T] copy-through, Next: [t copy] @*, Prev: [t entrytbl-body] row, Up: table 15.13 [T] copy-through ====================== Name ---- [T] copy-through -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [t copy] @*, Prev: [T] copy-through, Up: table 15.14 [t copy] @* ================= Name ---- [t copy] @* Synopsis --------  File: docbook2man-xslt.info, Node: verbatim, Next: inline, Prev: table, Up: Top 16 verbatim *********** * Menu: * [t] literallayout:: * [t] programlisting|screen:: * [t] address::  File: docbook2man-xslt.info, Node: [t] literallayout, Next: [t] programlisting|screen, Up: verbatim 16.1 [t] literallayout ====================== Name ---- [t] literallayout Synopsis --------  File: docbook2man-xslt.info, Node: [t] programlisting|screen, Next: [t] address, Prev: [t] literallayout, Up: verbatim 16.2 [t] programlisting|screen ============================== Name ---- [t] programlisting|screen Synopsis --------  File: docbook2man-xslt.info, Node: [t] address, Prev: [t] programlisting|screen, Up: verbatim 16.3 [t] address ================ Name ---- [t] address Synopsis --------  File: docbook2man-xslt.info, Node: inline, Next: xref, Prev: verbatim, Up: Top 17 inline ********* * Menu: * [T] inline-plain:: Undocumented * [T] inline-monospace:: Undocumented * [T] inline-bold-monospace:: Undocumented * [T] inline-italic-monospace:: Undocumented * [T] inline-bold:: Undocumented * [T] inline-italic:: Undocumented * [T] inline-roman:: Undocumented * [T] inline-superscript:: Undocumented * [T] inline-subscript:: Undocumented * [t] author:: * [t] editor:: * [t] othercredit:: * [t] authorinitials:: * [t] accel:: * [t] action:: * [t] application:: * [t] classname:: * [t] exceptionname:: * [t] interfacename:: * [t] methodname:: * [t] command:: * [t] computeroutput:: * [t] constant:: * [t] database:: * [t] errorcode:: * [t] errorname:: * [t] errortype:: * [t] errortext:: * [t] envar:: * [t] filename:: * [t] refentrytitle/function:: * [t] function:: * [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu:: * [t] hardware:: * [t] interface:: * [t] interfacedefinition:: * [t] keycap:: * [t] keycode:: * [t] keysym:: * [T] inline-quoted:: Undocumented * [T] inline-quoted-monospace:: Undocumented * [t] literal:: * [t] medialabel:: * [t] shortcut:: * [t] mousebutton:: * [t] option:: * [t] parameter:: * [t] property:: * [t] prompt:: * [t] replaceable:: * [t] returnvalue:: * [t] structfield:: * [t] structname:: * [t] symbol:: * [t] systemitem:: * [t] token:: * [t] type:: * [t] userinput:: * [t] abbrev:: * [t] acronym:: * [t] citerefentry:: * [t] citetitle:: * [t] emphasis[@role='strong' or @role='bold' or parent;;emphasis]:: * [t] emphasis:: * [t] foreignphrase:: * [t] markup:: * [t] phrase:: * [t] quote:: * [t] varname:: * [t] wordasword:: * [t] lineannotation:: * [t] superscript:: * [t] subscript:: * [t] trademark:: * [t] firstterm:: * [t] glossterm:: * [t] sgmltag:: * [T] format-sgmltag:: Undocumented * [t] email:: * [t] keycombo:: * [t] menuchoice:: * [T] format-menuchoice:: Undocumented * [t] optional:: * [t] citation:: * [t] comment|remark:: * [t] productname|productnumber:: * [t] pob|street|city|state|postcode|country|phone|fax|otheraddr:: * [t] firstname|surname|lineage|othername|honorific::  File: docbook2man-xslt.info, Node: [T] inline-plain, Next: [T] inline-monospace, Up: inline 17.1 [T] inline-plain ===================== Name ---- [T] inline-plain -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [T] inline-monospace, Next: [T] inline-bold-monospace, Prev: [T] inline-plain, Up: inline 17.2 [T] inline-monospace ========================= Name ---- [T] inline-monospace -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [T] inline-bold-monospace, Next: [T] inline-italic-monospace, Prev: [T] inline-monospace, Up: inline 17.3 [T] inline-bold-monospace ============================== Name ---- [T] inline-bold-monospace -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [T] inline-italic-monospace, Next: [T] inline-bold, Prev: [T] inline-bold-monospace, Up: inline 17.4 [T] inline-italic-monospace ================================ Name ---- [T] inline-italic-monospace -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [T] inline-bold, Next: [T] inline-italic, Prev: [T] inline-italic-monospace, Up: inline 17.5 [T] inline-bold ==================== Name ---- [T] inline-bold -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [T] inline-italic, Next: [T] inline-roman, Prev: [T] inline-bold, Up: inline 17.6 [T] inline-italic ====================== Name ---- [T] inline-italic -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [T] inline-roman, Next: [T] inline-superscript, Prev: [T] inline-italic, Up: inline 17.7 [T] inline-roman ===================== Name ---- [T] inline-roman -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [T] inline-superscript, Next: [T] inline-subscript, Prev: [T] inline-roman, Up: inline 17.8 [T] inline-superscript =========================== Name ---- [T] inline-superscript -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [T] inline-subscript, Next: [t] author, Prev: [T] inline-superscript, Up: inline 17.9 [T] inline-subscript ========================= Name ---- [T] inline-subscript -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [t] author, Next: [t] editor, Prev: [T] inline-subscript, Up: inline 17.10 [t] author ================ Name ---- [t] author Synopsis --------  File: docbook2man-xslt.info, Node: [t] editor, Next: [t] othercredit, Prev: [t] author, Up: inline 17.11 [t] editor ================ Name ---- [t] editor Synopsis --------  File: docbook2man-xslt.info, Node: [t] othercredit, Next: [t] authorinitials, Prev: [t] editor, Up: inline 17.12 [t] othercredit ===================== Name ---- [t] othercredit Synopsis --------  File: docbook2man-xslt.info, Node: [t] authorinitials, Next: [t] accel, Prev: [t] othercredit, Up: inline 17.13 [t] authorinitials ======================== Name ---- [t] authorinitials Synopsis --------  File: docbook2man-xslt.info, Node: [t] accel, Next: [t] action, Prev: [t] authorinitials, Up: inline 17.14 [t] accel =============== Name ---- [t] accel Synopsis --------  File: docbook2man-xslt.info, Node: [t] action, Next: [t] application, Prev: [t] accel, Up: inline 17.15 [t] action ================ Name ---- [t] action Synopsis --------  File: docbook2man-xslt.info, Node: [t] application, Next: [t] classname, Prev: [t] action, Up: inline 17.16 [t] application ===================== Name ---- [t] application Synopsis --------  File: docbook2man-xslt.info, Node: [t] classname, Next: [t] exceptionname, Prev: [t] application, Up: inline 17.17 [t] classname =================== Name ---- [t] classname Synopsis --------  File: docbook2man-xslt.info, Node: [t] exceptionname, Next: [t] interfacename, Prev: [t] classname, Up: inline 17.18 [t] exceptionname ======================= Name ---- [t] exceptionname Synopsis --------  File: docbook2man-xslt.info, Node: [t] interfacename, Next: [t] methodname, Prev: [t] exceptionname, Up: inline 17.19 [t] interfacename ======================= Name ---- [t] interfacename Synopsis --------  File: docbook2man-xslt.info, Node: [t] methodname, Next: [t] command, Prev: [t] interfacename, Up: inline 17.20 [t] methodname ==================== Name ---- [t] methodname Synopsis --------  File: docbook2man-xslt.info, Node: [t] command, Next: [t] computeroutput, Prev: [t] methodname, Up: inline 17.21 [t] command ================= Name ---- [t] command Synopsis --------  File: docbook2man-xslt.info, Node: [t] computeroutput, Next: [t] constant, Prev: [t] command, Up: inline 17.22 [t] computeroutput ======================== Name ---- [t] computeroutput Synopsis --------  File: docbook2man-xslt.info, Node: [t] constant, Next: [t] database, Prev: [t] computeroutput, Up: inline 17.23 [t] constant ================== Name ---- [t] constant Synopsis --------  File: docbook2man-xslt.info, Node: [t] database, Next: [t] errorcode, Prev: [t] constant, Up: inline 17.24 [t] database ================== Name ---- [t] database Synopsis --------  File: docbook2man-xslt.info, Node: [t] errorcode, Next: [t] errorname, Prev: [t] database, Up: inline 17.25 [t] errorcode =================== Name ---- [t] errorcode Synopsis --------  File: docbook2man-xslt.info, Node: [t] errorname, Next: [t] errortype, Prev: [t] errorcode, Up: inline 17.26 [t] errorname =================== Name ---- [t] errorname Synopsis --------  File: docbook2man-xslt.info, Node: [t] errortype, Next: [t] errortext, Prev: [t] errorname, Up: inline 17.27 [t] errortype =================== Name ---- [t] errortype Synopsis --------  File: docbook2man-xslt.info, Node: [t] errortext, Next: [t] envar, Prev: [t] errortype, Up: inline 17.28 [t] errortext =================== Name ---- [t] errortext Synopsis --------  File: docbook2man-xslt.info, Node: [t] envar, Next: [t] filename, Prev: [t] errortext, Up: inline 17.29 [t] envar =============== Name ---- [t] envar Synopsis --------  File: docbook2man-xslt.info, Node: [t] filename, Next: [t] refentrytitle/function, Prev: [t] envar, Up: inline 17.30 [t] filename ================== Name ---- [t] filename Synopsis --------  File: docbook2man-xslt.info, Node: [t] refentrytitle/function, Next: [t] function, Prev: [t] filename, Up: inline 17.31 [t] refentrytitle/function ================================ Name ---- [t] refentrytitle/function Synopsis --------  File: docbook2man-xslt.info, Node: [t] function, Next: [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu, Prev: [t] refentrytitle/function, Up: inline 17.32 [t] function ================== Name ---- [t] function Synopsis --------  File: docbook2man-xslt.info, Node: [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu, Next: [t] hardware, Prev: [t] function, Up: inline 17.33 [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu =================================================================== Name ---- [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu Synopsis --------  File: docbook2man-xslt.info, Node: [t] hardware, Next: [t] interface, Prev: [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu, Up: inline 17.34 [t] hardware ================== Name ---- [t] hardware Synopsis --------  File: docbook2man-xslt.info, Node: [t] interface, Next: [t] interfacedefinition, Prev: [t] hardware, Up: inline 17.35 [t] interface =================== Name ---- [t] interface Synopsis --------  File: docbook2man-xslt.info, Node: [t] interfacedefinition, Next: [t] keycap, Prev: [t] interface, Up: inline 17.36 [t] interfacedefinition ============================= Name ---- [t] interfacedefinition Synopsis --------  File: docbook2man-xslt.info, Node: [t] keycap, Next: [t] keycode, Prev: [t] interfacedefinition, Up: inline 17.37 [t] keycap ================ Name ---- [t] keycap Synopsis --------  File: docbook2man-xslt.info, Node: [t] keycode, Next: [t] keysym, Prev: [t] keycap, Up: inline 17.38 [t] keycode ================= Name ---- [t] keycode Synopsis --------  File: docbook2man-xslt.info, Node: [t] keysym, Next: [T] inline-quoted, Prev: [t] keycode, Up: inline 17.39 [t] keysym ================ Name ---- [t] keysym Synopsis --------  File: docbook2man-xslt.info, Node: [T] inline-quoted, Next: [T] inline-quoted-monospace, Prev: [t] keysym, Up: inline 17.40 [T] inline-quoted ======================= Name ---- [T] inline-quoted -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [T] inline-quoted-monospace, Next: [t] literal, Prev: [T] inline-quoted, Up: inline 17.41 [T] inline-quoted-monospace ================================= Name ---- [T] inline-quoted-monospace -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [t] literal, Next: [t] medialabel, Prev: [T] inline-quoted-monospace, Up: inline 17.42 [t] literal ================= Name ---- [t] literal Synopsis --------  File: docbook2man-xslt.info, Node: [t] medialabel, Next: [t] shortcut, Prev: [t] literal, Up: inline 17.43 [t] medialabel ==================== Name ---- [t] medialabel Synopsis --------  File: docbook2man-xslt.info, Node: [t] shortcut, Next: [t] mousebutton, Prev: [t] medialabel, Up: inline 17.44 [t] shortcut ================== Name ---- [t] shortcut Synopsis --------  File: docbook2man-xslt.info, Node: [t] mousebutton, Next: [t] option, Prev: [t] shortcut, Up: inline 17.45 [t] mousebutton ===================== Name ---- [t] mousebutton Synopsis --------  File: docbook2man-xslt.info, Node: [t] option, Next: [t] parameter, Prev: [t] mousebutton, Up: inline 17.46 [t] option ================ Name ---- [t] option Synopsis --------  File: docbook2man-xslt.info, Node: [t] parameter, Next: [t] property, Prev: [t] option, Up: inline 17.47 [t] parameter =================== Name ---- [t] parameter Synopsis --------  File: docbook2man-xslt.info, Node: [t] property, Next: [t] prompt, Prev: [t] parameter, Up: inline 17.48 [t] property ================== Name ---- [t] property Synopsis --------  File: docbook2man-xslt.info, Node: [t] prompt, Next: [t] replaceable, Prev: [t] property, Up: inline 17.49 [t] prompt ================ Name ---- [t] prompt Synopsis --------  File: docbook2man-xslt.info, Node: [t] replaceable, Next: [t] returnvalue, Prev: [t] prompt, Up: inline 17.50 [t] replaceable ===================== Name ---- [t] replaceable Synopsis --------  File: docbook2man-xslt.info, Node: [t] returnvalue, Next: [t] structfield, Prev: [t] replaceable, Up: inline 17.51 [t] returnvalue ===================== Name ---- [t] returnvalue Synopsis --------  File: docbook2man-xslt.info, Node: [t] structfield, Next: [t] structname, Prev: [t] returnvalue, Up: inline 17.52 [t] structfield ===================== Name ---- [t] structfield Synopsis --------  File: docbook2man-xslt.info, Node: [t] structname, Next: [t] symbol, Prev: [t] structfield, Up: inline 17.53 [t] structname ==================== Name ---- [t] structname Synopsis --------  File: docbook2man-xslt.info, Node: [t] symbol, Next: [t] systemitem, Prev: [t] structname, Up: inline 17.54 [t] symbol ================ Name ---- [t] symbol Synopsis --------  File: docbook2man-xslt.info, Node: [t] systemitem, Next: [t] token, Prev: [t] symbol, Up: inline 17.55 [t] systemitem ==================== Name ---- [t] systemitem Synopsis --------  File: docbook2man-xslt.info, Node: [t] token, Next: [t] type, Prev: [t] systemitem, Up: inline 17.56 [t] token =============== Name ---- [t] token Synopsis --------  File: docbook2man-xslt.info, Node: [t] type, Next: [t] userinput, Prev: [t] token, Up: inline 17.57 [t] type ============== Name ---- [t] type Synopsis --------  File: docbook2man-xslt.info, Node: [t] userinput, Next: [t] abbrev, Prev: [t] type, Up: inline 17.58 [t] userinput =================== Name ---- [t] userinput Synopsis --------  File: docbook2man-xslt.info, Node: [t] abbrev, Next: [t] acronym, Prev: [t] userinput, Up: inline 17.59 [t] abbrev ================ Name ---- [t] abbrev Synopsis --------  File: docbook2man-xslt.info, Node: [t] acronym, Next: [t] citerefentry, Prev: [t] abbrev, Up: inline 17.60 [t] acronym ================= Name ---- [t] acronym Synopsis --------  File: docbook2man-xslt.info, Node: [t] citerefentry, Next: [t] citetitle, Prev: [t] acronym, Up: inline 17.61 [t] citerefentry ====================== Name ---- [t] citerefentry Synopsis --------  File: docbook2man-xslt.info, Node: [t] citetitle, Next: [t] emphasis[@role='strong' or @role='bold' or parent;;emphasis], Prev: [t] citerefentry, Up: inline 17.62 [t] citetitle =================== Name ---- [t] citetitle Synopsis --------  File: docbook2man-xslt.info, Node: [t] emphasis[@role='strong' or @role='bold' or parent;;emphasis], Next: [t] emphasis, Prev: [t] citetitle, Up: inline 17.63 [t] emphasis[@role='strong' or @role='bold' or parent::emphasis] ====================================================================== Name ---- [t] emphasis[@role='strong' or @role='bold' or parent::emphasis] Synopsis --------  File: docbook2man-xslt.info, Node: [t] emphasis, Next: [t] foreignphrase, Prev: [t] emphasis[@role='strong' or @role='bold' or parent;;emphasis], Up: inline 17.64 [t] emphasis ================== Name ---- [t] emphasis Synopsis --------  File: docbook2man-xslt.info, Node: [t] foreignphrase, Next: [t] markup, Prev: [t] emphasis, Up: inline 17.65 [t] foreignphrase ======================= Name ---- [t] foreignphrase Synopsis --------  File: docbook2man-xslt.info, Node: [t] markup, Next: [t] phrase, Prev: [t] foreignphrase, Up: inline 17.66 [t] markup ================ Name ---- [t] markup Synopsis --------  File: docbook2man-xslt.info, Node: [t] phrase, Next: [t] quote, Prev: [t] markup, Up: inline 17.67 [t] phrase ================ Name ---- [t] phrase Synopsis --------  File: docbook2man-xslt.info, Node: [t] quote, Next: [t] varname, Prev: [t] phrase, Up: inline 17.68 [t] quote =============== Name ---- [t] quote Synopsis --------  File: docbook2man-xslt.info, Node: [t] varname, Next: [t] wordasword, Prev: [t] quote, Up: inline 17.69 [t] varname ================= Name ---- [t] varname Synopsis --------  File: docbook2man-xslt.info, Node: [t] wordasword, Next: [t] lineannotation, Prev: [t] varname, Up: inline 17.70 [t] wordasword ==================== Name ---- [t] wordasword Synopsis --------  File: docbook2man-xslt.info, Node: [t] lineannotation, Next: [t] superscript, Prev: [t] wordasword, Up: inline 17.71 [t] lineannotation ======================== Name ---- [t] lineannotation Synopsis --------  File: docbook2man-xslt.info, Node: [t] superscript, Next: [t] subscript, Prev: [t] lineannotation, Up: inline 17.72 [t] superscript ===================== Name ---- [t] superscript Synopsis --------  File: docbook2man-xslt.info, Node: [t] subscript, Next: [t] trademark, Prev: [t] superscript, Up: inline 17.73 [t] subscript =================== Name ---- [t] subscript Synopsis --------  File: docbook2man-xslt.info, Node: [t] trademark, Next: [t] firstterm, Prev: [t] subscript, Up: inline 17.74 [t] trademark =================== Name ---- [t] trademark Synopsis --------  File: docbook2man-xslt.info, Node: [t] firstterm, Next: [t] glossterm, Prev: [t] trademark, Up: inline 17.75 [t] firstterm =================== Name ---- [t] firstterm Synopsis --------  File: docbook2man-xslt.info, Node: [t] glossterm, Next: [t] sgmltag, Prev: [t] firstterm, Up: inline 17.76 [t] glossterm =================== Name ---- [t] glossterm Synopsis --------  File: docbook2man-xslt.info, Node: [t] sgmltag, Next: [T] format-sgmltag, Prev: [t] glossterm, Up: inline 17.77 [t] sgmltag ================= Name ---- [t] sgmltag Synopsis --------  File: docbook2man-xslt.info, Node: [T] format-sgmltag, Next: [t] email, Prev: [t] sgmltag, Up: inline 17.78 [T] format-sgmltag ======================== Name ---- [T] format-sgmltag -- Undocumented Synopsis -------- element  File: docbook2man-xslt.info, Node: [t] email, Next: [t] keycombo, Prev: [T] format-sgmltag, Up: inline 17.79 [t] email =============== Name ---- [t] email Synopsis --------  File: docbook2man-xslt.info, Node: [t] keycombo, Next: [t] menuchoice, Prev: [t] email, Up: inline 17.80 [t] keycombo ================== Name ---- [t] keycombo Synopsis --------  File: docbook2man-xslt.info, Node: [t] menuchoice, Next: [T] format-menuchoice, Prev: [t] keycombo, Up: inline 17.81 [t] menuchoice ==================== Name ---- [t] menuchoice Synopsis --------  File: docbook2man-xslt.info, Node: [T] format-menuchoice, Next: [t] optional, Prev: [t] menuchoice, Up: inline 17.82 [T] format-menuchoice =========================== Name ---- [T] format-menuchoice -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [t] optional, Next: [t] citation, Prev: [T] format-menuchoice, Up: inline 17.83 [t] optional ================== Name ---- [t] optional Synopsis --------  File: docbook2man-xslt.info, Node: [t] citation, Next: [t] comment|remark, Prev: [t] optional, Up: inline 17.84 [t] citation ================== Name ---- [t] citation Synopsis --------  File: docbook2man-xslt.info, Node: [t] comment|remark, Next: [t] productname|productnumber, Prev: [t] citation, Up: inline 17.85 [t] comment|remark ======================== Name ---- [t] comment|remark Synopsis --------  File: docbook2man-xslt.info, Node: [t] productname|productnumber, Next: [t] pob|street|city|state|postcode|country|phone|fax|otheraddr, Prev: [t] comment|remark, Up: inline 17.86 [t] productname|productnumber =================================== Name ---- [t] productname|productnumber Synopsis --------  File: docbook2man-xslt.info, Node: [t] pob|street|city|state|postcode|country|phone|fax|otheraddr, Next: [t] firstname|surname|lineage|othername|honorific, Prev: [t] productname|productnumber, Up: inline 17.87 [t] pob|street|city|state|postcode|country|phone|fax|otheraddr ==================================================================== Name ---- [t] pob|street|city|state|postcode|country|phone|fax|otheraddr Synopsis --------  File: docbook2man-xslt.info, Node: [t] firstname|surname|lineage|othername|honorific, Prev: [t] pob|street|city|state|postcode|country|phone|fax|otheraddr, Up: inline 17.88 [t] firstname|surname|lineage|othername|honorific ======================================================= Name ---- [t] firstname|surname|lineage|othername|honorific Synopsis --------  File: docbook2man-xslt.info, Node: xref, Next: glossary, Prev: inline, Up: Top 18 xref ******* * Menu: * [t] anchor:: * [t] xref:: * [t] link:: * [t] ulink:: * [M] xref-to:: Give cross-reference markup * [t xref-to] *::  File: docbook2man-xslt.info, Node: [t] anchor, Next: [t] xref, Up: xref 18.1 [t] anchor =============== Name ---- [t] anchor Synopsis --------  File: docbook2man-xslt.info, Node: [t] xref, Next: [t] link, Prev: [t] anchor, Up: xref 18.2 [t] xref ============= Name ---- [t] xref Synopsis --------  File: docbook2man-xslt.info, Node: [t] link, Next: [t] ulink, Prev: [t] xref, Up: xref 18.3 [t] link ============= Name ---- [t] link Synopsis --------  File: docbook2man-xslt.info, Node: [t] ulink, Next: [M] xref-to, Prev: [t] link, Up: xref 18.4 [t] ulink ============== Name ---- [t] ulink Synopsis --------  File: docbook2man-xslt.info, Node: [M] xref-to, Next: [t xref-to] *, Prev: [t] ulink, Up: xref 18.5 [M] xref-to ================ Name ---- [M] xref-to -- Give cross-reference markup Description ----------- Processing an element with this mode returns the markup/text that should be used for referring to it in cross-references.  File: docbook2man-xslt.info, Node: [t xref-to] *, Prev: [M] xref-to, Up: xref 18.6 [t xref-to] * ================== Name ---- [t xref-to] * Synopsis --------  File: docbook2man-xslt.info, Node: glossary, Next: lists, Prev: xref, Up: Top 19 glossary *********** * Menu: * [t] glossary[glossentry[1]/preceding-sibling;;*]:: * [t] glossary:: * [t] glosslist:: * [t] glossdiv:: * [t] glossentry:: * [t] glossentry/glossterm:: * [t] glossentry/acronym:: * [t] glossentry/abbrev:: * [t] glossentry/revhistory:: * [t] glossentry/glossdef:: * [t] glossentry/glosssee|glossseealso:: * [t glosssee.xref] glossentry: [t glosssee_xref] glossentry. * [t glosssee.xref] glossentry/glossterm[1]: [t glosssee_xref] glossentry/glossterm[1]. * [t glosssee.xref] *: [t glosssee_xref] *.  File: docbook2man-xslt.info, Node: [t] glossary[glossentry[1]/preceding-sibling;;*], Next: [t] glossary, Up: glossary 19.1 [t] glossary[glossentry[1]/preceding-sibling::*] ===================================================== Name ---- [t] glossary[glossentry[1]/preceding-sibling::*] Synopsis --------  File: docbook2man-xslt.info, Node: [t] glossary, Next: [t] glosslist, Prev: [t] glossary[glossentry[1]/preceding-sibling;;*], Up: glossary 19.2 [t] glossary ================= Name ---- [t] glossary Synopsis --------  File: docbook2man-xslt.info, Node: [t] glosslist, Next: [t] glossdiv, Prev: [t] glossary, Up: glossary 19.3 [t] glosslist ================== Name ---- [t] glosslist Synopsis --------  File: docbook2man-xslt.info, Node: [t] glossdiv, Next: [t] glossentry, Prev: [t] glosslist, Up: glossary 19.4 [t] glossdiv ================= Name ---- [t] glossdiv Synopsis --------  File: docbook2man-xslt.info, Node: [t] glossentry, Next: [t] glossentry/glossterm, Prev: [t] glossdiv, Up: glossary 19.5 [t] glossentry =================== Name ---- [t] glossentry Synopsis --------  File: docbook2man-xslt.info, Node: [t] glossentry/glossterm, Next: [t] glossentry/acronym, Prev: [t] glossentry, Up: glossary 19.6 [t] glossentry/glossterm ============================= Name ---- [t] glossentry/glossterm Synopsis --------  File: docbook2man-xslt.info, Node: [t] glossentry/acronym, Next: [t] glossentry/abbrev, Prev: [t] glossentry/glossterm, Up: glossary 19.7 [t] glossentry/acronym =========================== Name ---- [t] glossentry/acronym Synopsis --------  File: docbook2man-xslt.info, Node: [t] glossentry/abbrev, Next: [t] glossentry/revhistory, Prev: [t] glossentry/acronym, Up: glossary 19.8 [t] glossentry/abbrev ========================== Name ---- [t] glossentry/abbrev Synopsis --------  File: docbook2man-xslt.info, Node: [t] glossentry/revhistory, Next: [t] glossentry/glossdef, Prev: [t] glossentry/abbrev, Up: glossary 19.9 [t] glossentry/revhistory ============================== Name ---- [t] glossentry/revhistory Synopsis --------  File: docbook2man-xslt.info, Node: [t] glossentry/glossdef, Next: [t] glossentry/glosssee|glossseealso, Prev: [t] glossentry/revhistory, Up: glossary 19.10 [t] glossentry/glossdef ============================= Name ---- [t] glossentry/glossdef Synopsis --------  File: docbook2man-xslt.info, Node: [t] glossentry/glosssee|glossseealso, Next: [t glosssee_xref] glossentry, Prev: [t] glossentry/glossdef, Up: glossary 19.11 [t] glossentry/glosssee|glossseealso ========================================== Name ---- [t] glossentry/glosssee|glossseealso Synopsis --------  File: docbook2man-xslt.info, Node: [t glosssee_xref] glossentry, Next: [t glosssee_xref] glossentry/glossterm[1], Prev: [t] glossentry/glosssee|glossseealso, Up: glossary 19.12 [t glosssee.xref] glossentry ================================== Name ---- [t glosssee.xref] glossentry Synopsis --------  File: docbook2man-xslt.info, Node: [t glosssee_xref] glossentry/glossterm[1], Next: [t glosssee_xref] *, Prev: [t glosssee_xref] glossentry, Up: glossary 19.13 [t glosssee.xref] glossentry/glossterm[1] =============================================== Name ---- [t glosssee.xref] glossentry/glossterm[1] Synopsis --------  File: docbook2man-xslt.info, Node: [t glosssee_xref] *, Prev: [t glosssee_xref] glossentry/glossterm[1], Up: glossary 19.14 [t glosssee.xref] * ========================= Name ---- [t glosssee.xref] * Synopsis --------  File: docbook2man-xslt.info, Node: lists, Next: index, Prev: glossary, Up: Top 20 lists ******** * Menu: * [T] list.block: [T] list_block. Undocumented * [t] itemizedlist:: * [t] itemizedlist/listitem:: * [t] orderedlist:: * [t] orderedlist/listitem:: * [t] variablelist:: * [t] varlistentry:: * [t] term[1]:: * [t] term:: * [t] varlistentry/listitem:: * [t] simplelist:: * [t] member:: * [t] member[1]:: * [t] simplelist[@type='inline']:: * [t] simplelist[@type='inline']/member:: * [t] simplelist[@type='inline']/member[1]::  File: docbook2man-xslt.info, Node: [T] list_block, Next: [t] itemizedlist, Up: lists 20.1 [T] list.block =================== Name ---- [T] list.block -- Undocumented Synopsis --------  File: docbook2man-xslt.info, Node: [t] itemizedlist, Next: [t] itemizedlist/listitem, Prev: [T] list_block, Up: lists 20.2 [t] itemizedlist ===================== Name ---- [t] itemizedlist Synopsis --------  File: docbook2man-xslt.info, Node: [t] itemizedlist/listitem, Next: [t] orderedlist, Prev: [t] itemizedlist, Up: lists 20.3 [t] itemizedlist/listitem ============================== Name ---- [t] itemizedlist/listitem Synopsis --------  File: docbook2man-xslt.info, Node: [t] orderedlist, Next: [t] orderedlist/listitem, Prev: [t] itemizedlist/listitem, Up: lists 20.4 [t] orderedlist ==================== Name ---- [t] orderedlist Synopsis --------  File: docbook2man-xslt.info, Node: [t] orderedlist/listitem, Next: [t] variablelist, Prev: [t] orderedlist, Up: lists 20.5 [t] orderedlist/listitem ============================= Name ---- [t] orderedlist/listitem Synopsis --------  File: docbook2man-xslt.info, Node: [t] variablelist, Next: [t] varlistentry, Prev: [t] orderedlist/listitem, Up: lists 20.6 [t] variablelist ===================== Name ---- [t] variablelist Synopsis --------  File: docbook2man-xslt.info, Node: [t] varlistentry, Next: [t] term[1], Prev: [t] variablelist, Up: lists 20.7 [t] varlistentry ===================== Name ---- [t] varlistentry Synopsis --------  File: docbook2man-xslt.info, Node: [t] term[1], Next: [t] term, Prev: [t] varlistentry, Up: lists 20.8 [t] term[1] ================ Name ---- [t] term[1] Synopsis --------  File: docbook2man-xslt.info, Node: [t] term, Next: [t] varlistentry/listitem, Prev: [t] term[1], Up: lists 20.9 [t] term ============= Name ---- [t] term Synopsis --------  File: docbook2man-xslt.info, Node: [t] varlistentry/listitem, Next: [t] simplelist, Prev: [t] term, Up: lists 20.10 [t] varlistentry/listitem =============================== Name ---- [t] varlistentry/listitem Synopsis --------  File: docbook2man-xslt.info, Node: [t] simplelist, Next: [t] member, Prev: [t] varlistentry/listitem, Up: lists 20.11 [t] simplelist ==================== Name ---- [t] simplelist Synopsis --------  File: docbook2man-xslt.info, Node: [t] member, Next: [t] member[1], Prev: [t] simplelist, Up: lists 20.12 [t] member ================ Name ---- [t] member Synopsis --------  File: docbook2man-xslt.info, Node: [t] member[1], Next: [t] simplelist[@type='inline'], Prev: [t] member, Up: lists 20.13 [t] member[1] =================== Name ---- [t] member[1] Synopsis --------  File: docbook2man-xslt.info, Node: [t] simplelist[@type='inline'], Next: [t] simplelist[@type='inline']/member, Prev: [t] member[1], Up: lists 20.14 [t] simplelist[@type='inline'] ==================================== Name ---- [t] simplelist[@type='inline'] Synopsis --------  File: docbook2man-xslt.info, Node: [t] simplelist[@type='inline']/member, Next: [t] simplelist[@type='inline']/member[1], Prev: [t] simplelist[@type='inline'], Up: lists 20.15 [t] simplelist[@type='inline']/member =========================================== Name ---- [t] simplelist[@type='inline']/member Synopsis --------  File: docbook2man-xslt.info, Node: [t] simplelist[@type='inline']/member[1], Prev: [t] simplelist[@type='inline']/member, Up: lists 20.16 [t] simplelist[@type='inline']/member[1] ============================================== Name ---- [t] simplelist[@type='inline']/member[1] Synopsis --------  File: docbook2man-xslt.info, Node: index, Next: info, Prev: lists, Up: Top 21 index ******** * Menu: * [t] index:: * [t] indexdiv:: * [t] indexterm:: * [t] primary:: * [t] secondary|tertiary:: * [t] see|seealso:: * [t] indexentry:: * [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie::  File: docbook2man-xslt.info, Node: [t] index, Next: [t] indexdiv, Up: index 21.1 [t] index ============== Name ---- [t] index Synopsis --------  File: docbook2man-xslt.info, Node: [t] indexdiv, Next: [t] indexterm, Prev: [t] index, Up: index 21.2 [t] indexdiv ================= Name ---- [t] indexdiv Synopsis --------  File: docbook2man-xslt.info, Node: [t] indexterm, Next: [t] primary, Prev: [t] indexdiv, Up: index 21.3 [t] indexterm ================== Name ---- [t] indexterm Synopsis --------  File: docbook2man-xslt.info, Node: [t] primary, Next: [t] secondary|tertiary, Prev: [t] indexterm, Up: index 21.4 [t] primary ================ Name ---- [t] primary Synopsis --------  File: docbook2man-xslt.info, Node: [t] secondary|tertiary, Next: [t] see|seealso, Prev: [t] primary, Up: index 21.5 [t] secondary|tertiary =========================== Name ---- [t] secondary|tertiary Synopsis --------  File: docbook2man-xslt.info, Node: [t] see|seealso, Next: [t] indexentry, Prev: [t] secondary|tertiary, Up: index 21.6 [t] see|seealso ==================== Name ---- [t] see|seealso Synopsis --------  File: docbook2man-xslt.info, Node: [t] indexentry, Next: [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie, Prev: [t] see|seealso, Up: index 21.7 [t] indexentry =================== Name ---- [t] indexentry Synopsis --------  File: docbook2man-xslt.info, Node: [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie, Prev: [t] indexentry, Up: index 21.8 [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie ========================================================= Name ---- [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie Synopsis --------  File: docbook2man-xslt.info, Node: info, Next: keywords, Prev: index, Up: Top 22 info ******* * Menu: * [t] corpauthor:: * [t] jobtitle:: * [t] orgname:: * [t] orgdiv:: * [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo:: * [t] bookinfo|setinfo|seriesinfo:: * [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo:: * [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo:: * [t] objectinfo::  File: docbook2man-xslt.info, Node: [t] corpauthor, Next: [t] jobtitle, Up: info 22.1 [t] corpauthor =================== Name ---- [t] corpauthor Synopsis --------  File: docbook2man-xslt.info, Node: [t] jobtitle, Next: [t] orgname, Prev: [t] corpauthor, Up: info 22.2 [t] jobtitle ================= Name ---- [t] jobtitle Synopsis --------  File: docbook2man-xslt.info, Node: [t] orgname, Next: [t] orgdiv, Prev: [t] jobtitle, Up: info 22.3 [t] orgname ================ Name ---- [t] orgname Synopsis --------  File: docbook2man-xslt.info, Node: [t] orgdiv, Next: [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo, Prev: [t] orgname, Up: info 22.4 [t] orgdiv =============== Name ---- [t] orgdiv Synopsis --------  File: docbook2man-xslt.info, Node: [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo, Next: [t] bookinfo|setinfo|seriesinfo, Prev: [t] orgdiv, Up: info 22.5 [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo ======================================================================================== Name ---- [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo Synopsis --------  File: docbook2man-xslt.info, Node: [t] bookinfo|setinfo|seriesinfo, Next: [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo, Prev: [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo, Up: info 22.6 [t] bookinfo|setinfo|seriesinfo ==================================== Name ---- [t] bookinfo|setinfo|seriesinfo Synopsis --------  File: docbook2man-xslt.info, Node: [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo, Next: [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo, Prev: [t] bookinfo|setinfo|seriesinfo, Up: info 22.7 [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo ============================================================================================= Name ---- [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo Synopsis --------  File: docbook2man-xslt.info, Node: [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo, Next: [t] objectinfo, Prev: [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo, Up: info 22.8 [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo ====================================================================== Name ---- [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo Synopsis --------  File: docbook2man-xslt.info, Node: [t] objectinfo, Prev: [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo, Up: info 22.9 [t] objectinfo =================== Name ---- [t] objectinfo Synopsis --------  File: docbook2man-xslt.info, Node: keywords, Next: toc, Prev: info, Up: Top 23 keywords *********** * Menu: * [t] keywordset:: * [t] subjectset::  File: docbook2man-xslt.info, Node: [t] keywordset, Next: [t] subjectset, Up: keywords 23.1 [t] keywordset =================== Name ---- [t] keywordset Synopsis --------  File: docbook2man-xslt.info, Node: [t] subjectset, Prev: [t] keywordset, Up: keywords 23.2 [t] subjectset =================== Name ---- [t] subjectset Synopsis --------  File: docbook2man-xslt.info, Node: toc, Next: beginpage, Prev: keywords, Up: Top 24 toc ****** * Menu: * [t toc] *:: * [t] toc:: * [t] tocpart|tocchap|tocfront|tocback|tocentry:: * [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5:: * [t] lot|lotentry::  File: docbook2man-xslt.info, Node: [t toc] *, Next: [t] toc, Up: toc 24.1 [t toc] * ============== Name ---- [t toc] * Synopsis --------  File: docbook2man-xslt.info, Node: [t] toc, Next: [t] tocpart|tocchap|tocfront|tocback|tocentry, Prev: [t toc] *, Up: toc 24.2 [t] toc ============ Name ---- [t] toc Synopsis --------  File: docbook2man-xslt.info, Node: [t] tocpart|tocchap|tocfront|tocback|tocentry, Next: [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5, Prev: [t] toc, Up: toc 24.3 [t] tocpart|tocchap|tocfront|tocback|tocentry ================================================== Name ---- [t] tocpart|tocchap|tocfront|tocback|tocentry Synopsis --------  File: docbook2man-xslt.info, Node: [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5, Next: [t] lot|lotentry, Prev: [t] tocpart|tocchap|tocfront|tocback|tocentry, Up: toc 24.4 [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5 ========================================================== Name ---- [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5 Synopsis --------  File: docbook2man-xslt.info, Node: [t] lot|lotentry, Prev: [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5, Up: toc 24.5 [t] lot|lotentry ===================== Name ---- [t] lot|lotentry Synopsis --------  File: docbook2man-xslt.info, Node: beginpage, Next: pi, Prev: toc, Up: Top 25 beginpage ************  File: docbook2man-xslt.info, Node: pi, Prev: beginpage, Up: Top 26 pi ***** * Menu: * [t] processing-instruction(): [t] processing-instruction[].  File: docbook2man-xslt.info, Node: [t] processing-instruction[], Up: pi 26.1 [t] processing-instruction() ================================= Name ---- [t] processing-instruction() Synopsis --------  Tag Table: Node: Top289 Node: Guide to the stylesheet reference12808 Node: common/l10n13931 Node: [P] localization-file14900 Node: [V] l10n-data15553 Node: [P] default-document-language16044 Node: [T] l10n-match-language17133 Node: [T] l10n-xml-language18013 Node: [T] l10n-xml-actual-language18934 Node: [M] l10n-substitution19337 Node: [t l10n-substitution] text[]19840 Node: common/messages20146 Node: [P] message-language20919 Node: [T] l10n-message-choose-language21219 Node: [t l10n-substitution] l;a121701 Node: [t l10n-substitution] l;a222094 Node: [t l10n-substitution] l;a322481 Node: [t l10n-substitution] l;a422868 Node: [t l10n-substitution] l;a523255 Node: [T] user-message23632 Node: [T] print-node-line-number24791 Node: [T] print-node-xpath25679 Node: [t print-node-xpath] text[]26530 Node: [t print-node-xpath] @*26868 Node: [t print-node-xpath] *[@id != '']27203 Node: [t print-node-xpath] *27570 Node: [t print-node-xpath] /27895 Node: common/titles28178 Node: [M] for-title29336 Node: [t title] title29669 Node: [t title] *29924 Node: [t title] text[]30238 Node: [t for-title] set30502 Node: [t for-title] *30846 Node: [t for-title] book31244 Node: [t for-title] part31595 Node: [t for-title] preface|chapter|appendix31969 Node: [t for-title] partintro32428 Node: [t for-title] dedication32835 Node: [t for-title] colophon33230 Node: [t for-title] article33615 Node: [t for-title] reference33995 Node: [t for-title] refentry34383 Node: [t for-title] refsynopsisdiv34774 Node: [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect35258 Node: [t for-title] bibliography36086 Node: [t for-title] glossary36560 Node: [t for-title] index36945 Node: [t for-title] figure|table|example|equation37335 Node: [t for-title] qandaset|qandadiv37830 Node: [t for-title] abstract38280 Node: [t for-title] caution|tip|warning|important|note38699 Node: [t no-anchors] *39207 Node: [t no-anchors] footnote39516 Node: [t no-anchors] anchor39826 Node: [t no-anchors] ulink40132 Node: [t no-anchors] link40430 Node: [t no-anchors] olink40723 Node: [t no-anchors] indexterm41024 Node: [t no-anchors] xref41341 Node: param41609 Node: [P] user-message-prefix42757 Node: [P] uppercase-headings43062 Node: [P] manvolnum-cite-numeral-only43501 Node: [P] quotes-on-literals44152 Node: [P] show-comments44591 Node: [P] function-parens45148 Node: [P] xref-on-link45584 Node: [P] header-346201 Node: [P] header-446634 Node: [P] header-547035 Node: [P] default-manpage-section47483 Node: [P] custom-localization-file48085 Node: [P] custom-l10n-data49285 Node: [P] author-othername-in-middle50299 Node: manpage50807 Node: [T] manpage50971 Node: refentry51618 Node: [t] reference52141 Node: [t] refentry52353 Node: [t header-text] *52587 Node: [t header-text] text[]52857 Node: [t] refmeta53146 Node: [t] refentrytitle53384 Node: [t] manvolnum53637 Node: [t] refmiscinfo53878 Node: [t] refnamediv54124 Node: [t] refname54364 Node: [t] refpurpose54593 Node: [t] refdescriptor54837 Node: [t] refclass55094 Node: [t] refsynopsisdiv55335 Node: [t] refsection55597 Node: [t] refsect155843 Node: [t] refsect256075 Node: [T] uppercase-title56312 Node: sectioning56699 Node: [T] SS-section56920 Node: [T] SH-section57370 Node: sections57820 Node: [t] sect1|sect2|sect3|sect4|sect5|simplesect|section58052 Node: [t] title58456 Node: [t] titleabbrev58712 Node: [t] subtitle58952 Node: admon59162 Node: [T] admonition-title59365 Node: [t] note|important|warning|caution|tip59652 Node: block59996 Node: [T] block-object61039 Node: [T] indented_block-object61293 Node: [t] para|simpara61608 Node: [t] formalpara61870 Node: [t] formalpara/title62119 Node: [t] formalpara/para62395 Node: [t] blockquote62667 Node: [t] blockquote/title62919 Node: [t] attribution63191 Node: [t blockquote-attribution] attribution63467 Node: [t] epigraph63836 Node: [t] sidebar64090 Node: [t] abstract64314 Node: [t] msgset64540 Node: [t] msgentry64759 Node: [t] simplemsgentry64992 Node: [t] msg65246 Node: [t] msgmain65455 Node: [t] msgmain/title65679 Node: [t] msgsub65930 Node: [t] msgsub/title66158 Node: [t] msgrel66403 Node: [t] msgrel/title66630 Node: [t] msgtext66876 Node: [t] msginfo67103 Node: [t] msglevel|msgorig|msgaud67341 Node: [t] msgexplan67645 Node: [t] msgexplan/title67901 Node: [t] revhistory68168 Node: [t] revhistory/revision68425 Node: [t] revision/revnumber68721 Node: [t] revision/date69016 Node: [t] revision/authorinitials69295 Node: [t] revision/authorinitials[1]69622 Node: [t] revision/revremark69966 Node: [t] revision/revdescription70278 Node: [t] ackno70589 Node: caption70797 Node: [T] make-caption70970 Node: formal71603 Node: [T] formal-object72012 Node: [T] formal-object-title72270 Node: [T] informal-object72580 Node: [T] semiformal-object72878 Node: [t] figure|example73179 Node: [t] equation73446 Node: [t] informalfigure73686 Node: [t] informalexample73951 Node: [t] informalequation74228 Node: synop74482 Node: [t] synopsis75424 Node: [t] cmdsynopsis75633 Node: [t cmdsynopsis] *75880 Node: [t cmdsynopsis] sbr76149 Node: [t cmdsynopsis] synopfragmentref76443 Node: [t synopfragment_number] synopfragment76825 Node: [t cmdsynopsis] synopfragment77226 Node: [t cmdsynopsis] command|option77589 Node: [t cmdsynopsis] replaceable78014 Node: [t cmdsynopsis] group|arg78354 Node: [t cmdsynopsis] group/*78681 Node: [t cmdsynopsis] group/group79015 Node: [t cmdsynopsis] group/option79368 Node: [t cmdsynopsis] group/arg79727 Node: [t] funcsynopsis80063 Node: [t funcsynopsis] *80331 Node: [t funcsynopsis] funcsynopsisinfo80622 Node: [T] funcprototype80974 Node: [t funcsynopsis] modifier81319 Node: [t funcsynopsis] funcdef81637 Node: [t funcsynopsis] function81959 Node: [t funcsynopsis] void82281 Node: [t funcsynopsis] varargs82587 Node: [t funcsynopsis] paramdef82905 Node: [t funcsynopsis] paramdef/parameter83241 Node: [t funcsynopsis] funcparams83620 Node: table83933 Node: [t] table84378 Node: [t] informaltable84574 Node: [t] tgroup84821 Node: [t] colspec|spanspec85051 Node: [t] thead|tbody|tfoot85325 Node: [t] row|entry85606 Node: [t] entrytbl[@cols='2']85858 Node: [t entrytbl] thead86147 Node: [t entrytbl] tbody86428 Node: [t entrytbl] tfoot86704 Node: [t entrytbl-head] row86985 Node: [t entrytbl-body] row87281 Node: [T] copy-through87575 Node: [t copy] @*87847 Node: verbatim88061 Node: [t] literallayout88251 Node: [t] programlisting|screen88498 Node: [t] address88797 Node: inline89014 Node: [T] inline-plain91263 Node: [T] inline-monospace91613 Node: [T] inline-bold-monospace92013 Node: [T] inline-italic-monospace92444 Node: [T] inline-bold92878 Node: [T] inline-italic93256 Node: [T] inline-roman93631 Node: [T] inline-superscript94009 Node: [T] inline-subscript94414 Node: [t] author94805 Node: [t] editor95031 Node: [t] othercredit95252 Node: [t] authorinitials95501 Node: [t] accel95761 Node: [t] action95980 Node: [t] application96200 Node: [t] classname96444 Node: [t] exceptionname96687 Node: [t] interfacename96948 Node: [t] methodname97210 Node: [t] command97454 Node: [t] computeroutput97687 Node: [t] constant97946 Node: [t] database98182 Node: [t] errorcode98413 Node: [t] errorname98649 Node: [t] errortype98886 Node: [t] errortext99123 Node: [t] envar99356 Node: [t] filename99572 Node: [t] refentrytitle/function99813 Node: [t] function100113 Node: [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu100406 Node: [t] hardware100881 Node: [t] interface101161 Node: [t] interfacedefinition101407 Node: [t] keycap101691 Node: [t] keycode101921 Node: [t] keysym102142 Node: [T] inline-quoted102366 Node: [T] inline-quoted-monospace102808 Node: [t] literal103291 Node: [t] medialabel103533 Node: [t] shortcut103772 Node: [t] mousebutton104007 Node: [t] option104250 Node: [t] parameter104474 Node: [t] property104707 Node: [t] prompt104936 Node: [t] replaceable105159 Node: [t] returnvalue105405 Node: [t] structfield105656 Node: [t] structname105906 Node: [t] symbol106147 Node: [t] systemitem106371 Node: [t] token106606 Node: [t] type106819 Node: [t] userinput107027 Node: [t] abbrev107256 Node: [t] acronym107476 Node: [t] citerefentry107703 Node: [t] citetitle107953 Node: [t] emphasis[@role='strong' or @role='bold' or parent;;emphasis]108244 Node: [t] emphasis108735 Node: [t] foreignphrase109022 Node: [t] markup109275 Node: [t] phrase109498 Node: [t] quote109713 Node: [t] varname109925 Node: [t] wordasword110149 Node: [t] lineannotation110394 Node: [t] superscript110659 Node: [t] subscript110911 Node: [t] trademark111150 Node: [t] firstterm111387 Node: [t] glossterm111624 Node: [t] sgmltag111859 Node: [T] format-sgmltag112091 Node: [t] email112627 Node: [t] keycombo112848 Node: [t] menuchoice113077 Node: [T] format-menuchoice113326 Node: [t] optional113790 Node: [t] citation114029 Node: [t] comment|remark114265 Node: [t] productname|productnumber114542 Node: [t] pob|street|city|state|postcode|country|phone|fax|otheraddr114913 Node: [t] firstname|surname|lineage|othername|honorific115447 Node: xref115891 Node: [t] anchor116137 Node: [t] xref116328 Node: [t] link116528 Node: [t] ulink116727 Node: [M] xref-to116933 Node: [t xref-to] *117273 Node: glossary117489 Node: [t] glossary[glossentry[1]/preceding-sibling;;*]118108 Node: [t] glossary118497 Node: [t] glosslist118764 Node: [t] glossdiv118999 Node: [t] glossentry119232 Node: [t] glossentry/glossterm119484 Node: [t] glossentry/acronym119786 Node: [t] glossentry/abbrev120087 Node: [t] glossentry/revhistory120385 Node: [t] glossentry/glossdef120700 Node: [t] glossentry/glosssee|glossseealso121024 Node: [t glosssee_xref] glossentry121403 Node: [t glosssee_xref] glossentry/glossterm[1]121775 Node: [t glosssee_xref] *122182 Node: lists122464 Node: [T] list_block123003 Node: [t] itemizedlist123338 Node: [t] itemizedlist/listitem123600 Node: [t] orderedlist123899 Node: [t] orderedlist/listitem124166 Node: [t] variablelist124460 Node: [t] varlistentry124723 Node: [t] term[1]124973 Node: [t] term125195 Node: [t] varlistentry/listitem125414 Node: [t] simplelist125706 Node: [t] member125956 Node: [t] member[1]126178 Node: [t] simplelist[@type='inline']126441 Node: [t] simplelist[@type='inline']/member126786 Node: [t] simplelist[@type='inline']/member[1]127186 Node: index127572 Node: [t] index127871 Node: [t] indexdiv128062 Node: [t] indexterm128287 Node: [t] primary128518 Node: [t] secondary|tertiary128751 Node: [t] see|seealso129030 Node: [t] indexentry129284 Node: [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie129564 Node: info129972 Node: [t] corpauthor130457 Node: [t] jobtitle130672 Node: [t] orgname130899 Node: [t] orgdiv131118 Node: [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo131404 Node: [t] bookinfo|setinfo|seriesinfo132002 Node: [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo132470 Node: [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo133148 Node: [t] objectinfo133717 Node: keywords133985 Node: [t] keywordset134141 Node: [t] subjectset134362 Node: toc134583 Node: [t toc] *134851 Node: [t] toc135042 Node: [t] tocpart|tocchap|tocfront|tocback|tocentry135272 Node: [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5135698 Node: [t] lot|lotentry136165 Node: beginpage136430 Node: pi136539 Node: [t] processing-instruction[]136694  End Tag Table docbook2X-0.8.8/xslt/documentation/docbook2man-xslt.texi0000644000175000017500000035131510572276006020243 00000000000000\input texinfo @setfilename docbook2man-xslt.info @documentencoding us-ascii @settitle docbook2X Man-pages Stylesheets Reference @dircategory Document Preparation @direntry * docbook2X Man-pages Stylesheets Reference: (docbook2man-xslt). . @end direntry @node Top, Guide to the stylesheet reference, , (dir) @top docbook2X Man-pages Stylesheets Reference @menu * docbook2X Man-pages Stylesheets Reference: Guide to the stylesheet reference. * common/l10n:: * common/messages:: * common/titles:: * param:: Stylesheet parameters * manpage:: Man page chunk * refentry:: refentry markup * sectioning:: Mapping of DocBook sections into man-page sections * sections:: DocBook sectioning elements * admon:: Admonitions * block:: Block-level objects * caption:: Captions (really headings) * formal:: DocBook formal objects * synop:: Synopses * table:: Table support * verbatim:: Verbatim environments * inline:: Inline markup * xref:: Handle cross references and links * glossary:: Glossaries * lists:: All sorts of lists * index:: Indices * info:: The *info wrappers * keywords:: Keyword and subject meta-data * toc:: User-defined table of contents (toc markup) * beginpage:: beginpage element * pi:: Handle processing instructions @detailmenu --- The Detailed Node Listing --- common/l10n * [P] localization-file:: (URI of) XML document containing localization data * [V] l10n-data:: XML element node containing localization-data * [P] default-document-language:: Assumed language of the input document when it is not specified in the source * [T] l10n-match-language:: Determine the language to translate to * [T] l10n-xml-language:: Determine the language of the given XML fragment * [T] l10n-xml-actual-language:: Undocumented * [M] l10n-substitution:: Output localized text, substituting parameters if necessary * [t l10n-substitution] text(): [t l10n-substitution] text[]. common/messages * [P] message-language:: Undocumented * [T] l10n-message-choose-language:: Undocumented * [t l10n-substitution] l;a1:: * [t l10n-substitution] l;a2:: * [t l10n-substitution] l;a3:: * [t l10n-substitution] l;a4:: * [t l10n-substitution] l;a5:: * [T] user-message:: Emit a user message * [T] print-node-line-number:: Display file name and line number of a node * [T] print-node-xpath:: Display the path of a node * [t print-node-xpath] text(): [t print-node-xpath] text[]. * [t print-node-xpath] @@*:: * [t print-node-xpath] *[@@id != '']:: * [t print-node-xpath] *:: * [t print-node-xpath] /:: common/titles * [M] for-title:: Provides access to element titles * [t title] title:: * [t title] *:: * [t title] text(): [t title] text[]. * [t for-title] set:: * [t for-title] *:: * [t for-title] book:: * [t for-title] part:: * [t for-title] preface|chapter|appendix:: * [t for-title] partintro:: * [t for-title] dedication:: * [t for-title] colophon:: * [t for-title] article:: * [t for-title] reference:: * [t for-title] refentry:: * [t for-title] refsynopsisdiv:: * [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect:: * [t for-title] bibliography:: * [t for-title] glossary:: * [t for-title] index:: * [t for-title] figure|table|example|equation:: * [t for-title] qandaset|qandadiv:: * [t for-title] abstract:: * [t for-title] caution|tip|warning|important|note:: * [t no-anchors] *:: * [t no-anchors] footnote:: * [t no-anchors] anchor:: * [t no-anchors] ulink:: * [t no-anchors] link:: * [t no-anchors] olink:: * [t no-anchors] indexterm:: * [t no-anchors] xref:: param * [P] user-message-prefix:: Undocumented * [P] uppercase-headings:: Make headings uppercase? * [P] manvolnum-cite-numeral-only:: Man page section citation should use only the number * [P] quotes-on-literals:: Display quotes on literal elements? * [P] show-comments:: Display comment elements? * [P] function-parens:: Generate parentheses after a function? * [P] xref-on-link:: Should link generate a cross-reference? * [P] header-3:: Third header text * [P] header-4:: Fourth header text * [P] header-5:: Fifth header text * [P] default-manpage-section:: Default man page section * [P] custom-localization-file:: URI of XML document containing custom localization data * [P] custom-l10n-data:: XML document containing custom localization data * [P] author-othername-in-middle:: Is othername in author a middle name? manpage * [T] manpage:: Undocumented refentry * [t] reference:: * [t] refentry:: * [t header-text] *:: * [t header-text] text(): [t header-text] text[]. * [t] refmeta:: * [t] refentrytitle:: * [t] manvolnum:: * [t] refmiscinfo:: * [t] refnamediv:: * [t] refname:: * [t] refpurpose:: * [t] refdescriptor:: * [t] refclass:: * [t] refsynopsisdiv:: * [t] refsection:: * [t] refsect1:: * [t] refsect2:: * [T] uppercase-title:: Undocumented sectioning * [T] SS-section:: Undocumented * [T] SH-section:: Undocumented sections * [t] sect1|sect2|sect3|sect4|sect5|simplesect|section:: * [t] title:: * [t] titleabbrev:: * [t] subtitle:: admon * [T] admonition-title:: Undocumented * [t] note|important|warning|caution|tip:: block * [T] block-object:: Undocumented * [T] indented.block-object: [T] indented_block-object. Undocumented * [t] para|simpara:: * [t] formalpara:: * [t] formalpara/title:: * [t] formalpara/para:: * [t] blockquote:: * [t] blockquote/title:: * [t] attribution:: * [t blockquote-attribution] attribution:: * [t] epigraph:: * [t] sidebar:: * [t] abstract:: * [t] msgset:: * [t] msgentry:: * [t] simplemsgentry:: * [t] msg:: * [t] msgmain:: * [t] msgmain/title:: * [t] msgsub:: * [t] msgsub/title:: * [t] msgrel:: * [t] msgrel/title:: * [t] msgtext:: * [t] msginfo:: * [t] msglevel|msgorig|msgaud:: * [t] msgexplan:: * [t] msgexplan/title:: * [t] revhistory:: * [t] revhistory/revision:: * [t] revision/revnumber:: * [t] revision/date:: * [t] revision/authorinitials:: * [t] revision/authorinitials[1]:: * [t] revision/revremark:: * [t] revision/revdescription:: * [t] ackno:: caption * [T] make-caption:: Render as a `caption' formal * [T] formal-object:: Undocumented * [T] formal-object-title:: Undocumented * [T] informal-object:: Undocumented * [T] semiformal-object:: Undocumented * [t] figure|example:: * [t] equation:: * [t] informalfigure:: * [t] informalexample:: * [t] informalequation:: synop * [t] synopsis:: * [t] cmdsynopsis:: * [t cmdsynopsis] *:: * [t cmdsynopsis] sbr:: * [t cmdsynopsis] synopfragmentref:: * [t synopfragment.number] synopfragment: [t synopfragment_number] synopfragment. * [t cmdsynopsis] synopfragment:: * [t cmdsynopsis] command|option:: * [t cmdsynopsis] replaceable:: * [t cmdsynopsis] group|arg:: * [t cmdsynopsis] group/*:: * [t cmdsynopsis] group/group:: * [t cmdsynopsis] group/option:: * [t cmdsynopsis] group/arg:: * [t] funcsynopsis:: * [t funcsynopsis] *:: * [t funcsynopsis] funcsynopsisinfo:: * [T] funcprototype:: Undocumented * [t funcsynopsis] modifier:: * [t funcsynopsis] funcdef:: * [t funcsynopsis] function:: * [t funcsynopsis] void:: * [t funcsynopsis] varargs:: * [t funcsynopsis] paramdef:: * [t funcsynopsis] paramdef/parameter:: * [t funcsynopsis] funcparams:: table * [t] table:: * [t] informaltable:: * [t] tgroup:: * [t] colspec|spanspec:: * [t] thead|tbody|tfoot:: * [t] row|entry:: * [t] entrytbl[@@cols='2']:: * [t entrytbl] thead:: * [t entrytbl] tbody:: * [t entrytbl] tfoot:: * [t entrytbl-head] row:: * [t entrytbl-body] row:: * [T] copy-through:: Undocumented * [t copy] @@*:: verbatim * [t] literallayout:: * [t] programlisting|screen:: * [t] address:: inline * [T] inline-plain:: Undocumented * [T] inline-monospace:: Undocumented * [T] inline-bold-monospace:: Undocumented * [T] inline-italic-monospace:: Undocumented * [T] inline-bold:: Undocumented * [T] inline-italic:: Undocumented * [T] inline-roman:: Undocumented * [T] inline-superscript:: Undocumented * [T] inline-subscript:: Undocumented * [t] author:: * [t] editor:: * [t] othercredit:: * [t] authorinitials:: * [t] accel:: * [t] action:: * [t] application:: * [t] classname:: * [t] exceptionname:: * [t] interfacename:: * [t] methodname:: * [t] command:: * [t] computeroutput:: * [t] constant:: * [t] database:: * [t] errorcode:: * [t] errorname:: * [t] errortype:: * [t] errortext:: * [t] envar:: * [t] filename:: * [t] refentrytitle/function:: * [t] function:: * [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu:: * [t] hardware:: * [t] interface:: * [t] interfacedefinition:: * [t] keycap:: * [t] keycode:: * [t] keysym:: * [T] inline-quoted:: Undocumented * [T] inline-quoted-monospace:: Undocumented * [t] literal:: * [t] medialabel:: * [t] shortcut:: * [t] mousebutton:: * [t] option:: * [t] parameter:: * [t] property:: * [t] prompt:: * [t] replaceable:: * [t] returnvalue:: * [t] structfield:: * [t] structname:: * [t] symbol:: * [t] systemitem:: * [t] token:: * [t] type:: * [t] userinput:: * [t] abbrev:: * [t] acronym:: * [t] citerefentry:: * [t] citetitle:: * [t] emphasis[@@role='strong' or @@role='bold' or parent;;emphasis]:: * [t] emphasis:: * [t] foreignphrase:: * [t] markup:: * [t] phrase:: * [t] quote:: * [t] varname:: * [t] wordasword:: * [t] lineannotation:: * [t] superscript:: * [t] subscript:: * [t] trademark:: * [t] firstterm:: * [t] glossterm:: * [t] sgmltag:: * [T] format-sgmltag:: Undocumented * [t] email:: * [t] keycombo:: * [t] menuchoice:: * [T] format-menuchoice:: Undocumented * [t] optional:: * [t] citation:: * [t] comment|remark:: * [t] productname|productnumber:: * [t] pob|street|city|state|postcode|country|phone|fax|otheraddr:: * [t] firstname|surname|lineage|othername|honorific:: xref * [t] anchor:: * [t] xref:: * [t] link:: * [t] ulink:: * [M] xref-to:: Give cross-reference markup * [t xref-to] *:: glossary * [t] glossary[glossentry[1]/preceding-sibling;;*]:: * [t] glossary:: * [t] glosslist:: * [t] glossdiv:: * [t] glossentry:: * [t] glossentry/glossterm:: * [t] glossentry/acronym:: * [t] glossentry/abbrev:: * [t] glossentry/revhistory:: * [t] glossentry/glossdef:: * [t] glossentry/glosssee|glossseealso:: * [t glosssee.xref] glossentry: [t glosssee_xref] glossentry. * [t glosssee.xref] glossentry/glossterm[1]: [t glosssee_xref] glossentry/glossterm[1]. * [t glosssee.xref] *: [t glosssee_xref] *. lists * [T] list.block: [T] list_block. Undocumented * [t] itemizedlist:: * [t] itemizedlist/listitem:: * [t] orderedlist:: * [t] orderedlist/listitem:: * [t] variablelist:: * [t] varlistentry:: * [t] term[1]:: * [t] term:: * [t] varlistentry/listitem:: * [t] simplelist:: * [t] member:: * [t] member[1]:: * [t] simplelist[@@type='inline']:: * [t] simplelist[@@type='inline']/member:: * [t] simplelist[@@type='inline']/member[1]:: index * [t] index:: * [t] indexdiv:: * [t] indexterm:: * [t] primary:: * [t] secondary|tertiary:: * [t] see|seealso:: * [t] indexentry:: * [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie:: info * [t] corpauthor:: * [t] jobtitle:: * [t] orgname:: * [t] orgdiv:: * [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo:: * [t] bookinfo|setinfo|seriesinfo:: * [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo:: * [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo:: * [t] objectinfo:: keywords * [t] keywordset:: * [t] subjectset:: toc * [t toc] *:: * [t] toc:: * [t] tocpart|tocchap|tocfront|tocback|tocentry:: * [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5:: * [t] lot|lotentry:: pi * [t] processing-instruction(): [t] processing-instruction[]. @end detailmenu @end menu @node Guide to the stylesheet reference, common/l10n, Top, Top @chapter docbook2X Man-pages Stylesheets Reference For the most part, this reference assumes knowledge of XSLT. But if you are not familiar with XSLT, you can still look at the page of stylesheet parameters; they are the commonly used options to the stylesheets that may be directly set from the command line. Also take a look at the introductory text to each XSL file, which gives some general advice to tweaking the output of the stylesheets. In the lists of stylesheet items, the following symbols are prefixed before each item to indicate their type: @table @asis @item [P] A global parameter. The synopsis for the parameter shows its default value. @item [V] A global variable. @item [M] A template mode. @item [T] A named template. @item [t @var{mode}] A template with a @code{match} attribute, for the given mode. If @var{mode} is omitted, that means the default mode. These usually have no description; they are just listed so that you know the template exists. @end table @node common/l10n, common/messages, Guide to the stylesheet reference, Top @chapter common/l10n @menu * [P] localization-file:: (URI of) XML document containing localization data * [V] l10n-data:: XML element node containing localization-data * [P] default-document-language:: Assumed language of the input document when it is not specified in the source * [T] l10n-match-language:: Determine the language to translate to * [T] l10n-xml-language:: Determine the language of the given XML fragment * [T] l10n-xml-actual-language:: Undocumented * [M] l10n-substitution:: Output localized text, substituting parameters if necessary * [t l10n-substitution] text(): [t l10n-substitution] text[]. @end menu @node [P] localization-file, [V] l10n-data, , common/l10n @section [P] localization-file @subheading Name [P] localization-file --- (URI of) XML document containing localization data @subheading Synopsis @example @end example @subheading Description This parameter specifies the URI of the localization-set document. This document, written in XML, describes all the text translations (and other locale-specific information) used by the stylesheet. You do not need to change this parameter unless you want to use custom localization data. @node [V] l10n-data, [P] default-document-language, [P] localization-file, common/l10n @section [V] l10n-data @subheading Name [V] l10n-data --- XML element node containing localization-data @subheading Synopsis @example @end example @subheading Description This is just @samp{document($localization-file)/l:localization-set}. There is no need to change this. @node [P] default-document-language, [T] l10n-match-language, [V] l10n-data, common/l10n @section [P] default-document-language @subheading Name [P] default-document-language --- Assumed language of the input document when it is not specified in the source @subheading Synopsis @example @end example @subheading Description If the source document does not specify what language it is written in using the @code{lang} or @code{xml:lang} attribute. then it is assumed to be in the language this parameter is set to. If these attributes are present (and in effect, whenever the stylesheet needs language information), the language specified in this parameter is ignored. You rarely need to change this parameter; it is better to change the source document instead, adding the @code{lang} or the @code{xml:lang} attribute. The format of the value of this parameter is the usual @samp{@var{language_code}-@var{country_code}}. For example, @samp{zh-TW}. The hyphen (@samp{-}) may also be an underscore (@samp{_}). @node [T] l10n-match-language, [T] l10n-xml-language, [P] default-document-language, common/l10n @section [T] l10n-match-language @subheading Name [T] l10n-match-language --- Determine the language to translate to @subheading Synopsis @example @end example @subheading Description Given a language code @code{lang} (usually obtained from @code{l10n-xml-language}), match it with a language code in the localization data file. The new language code may in fact be the same language code, or it could be the language code with the country-code part stripped. If the localization data file does not contain the language @code{lang}, then some default language that does exist is returned. @subheading Parameters @table @asis @item @code{lang} The original language code. @end table @node [T] l10n-xml-language, [T] l10n-xml-actual-language, [T] l10n-match-language, common/l10n @section [T] l10n-xml-language @subheading Name [T] l10n-xml-language --- Determine the language of the given XML fragment @subheading Synopsis @example @end example @subheading Description Returns the language of the XML content at the given node, as determined by the @code{lang} or @code{xml:lang} attribute. The result is always given in a normalized form: @samp{@var{language_code}-@var{country_code}}, with the @var{language_code} and @var{country_code} always in lower case. The @samp{-@var{country_code}} may be missing. No checking is done to make sure the language code is valid. @subheading Parameters @table @asis @item @code{target} The (element) node to find out the language for. Defaults to the context node. @end table @node [T] l10n-xml-actual-language, [M] l10n-substitution, [T] l10n-xml-language, common/l10n @section [T] l10n-xml-actual-language @subheading Name [T] l10n-xml-actual-language --- Undocumented @subheading Synopsis @example @end example @node [M] l10n-substitution, [t l10n-substitution] text[], [T] l10n-xml-actual-language, common/l10n @section [M] l10n-substitution @subheading Name [M] l10n-substitution --- Output localized text, substituting parameters if necessary @subheading Description A piece of the translated text is processed with this mode to perform any substitutions of parameters like chapter numbers, etc. Text nodes are echoed through in this mode. @node [t l10n-substitution] text[], , [M] l10n-substitution, common/l10n @section [t l10n-substitution] text() @subheading Name [t l10n-substitution] text() @subheading Synopsis @example @end example @node common/messages, common/titles, common/l10n, Top @chapter common/messages @menu * [P] message-language:: Undocumented * [T] l10n-message-choose-language:: Undocumented * [t l10n-substitution] l;a1:: * [t l10n-substitution] l;a2:: * [t l10n-substitution] l;a3:: * [t l10n-substitution] l;a4:: * [t l10n-substitution] l;a5:: * [T] user-message:: Emit a user message * [T] print-node-line-number:: Display file name and line number of a node * [T] print-node-xpath:: Display the path of a node * [t print-node-xpath] text(): [t print-node-xpath] text[]. * [t print-node-xpath] @@*:: * [t print-node-xpath] *[@@id != '']:: * [t print-node-xpath] *:: * [t print-node-xpath] /:: @end menu @node [P] message-language, [T] l10n-message-choose-language, , common/messages @section [P] message-language @subheading Name [P] message-language --- Undocumented @subheading Synopsis @example @end example @node [T] l10n-message-choose-language, [t l10n-substitution] l;a1, [P] message-language, common/messages @section [T] l10n-message-choose-language @subheading Name [T] l10n-message-choose-language --- Undocumented @subheading Synopsis @example @end example @node [t l10n-substitution] l;a1, [t l10n-substitution] l;a2, [T] l10n-message-choose-language, common/messages @section [t l10n-substitution] l:a1 @subheading Name [t l10n-substitution] l:a1 @subheading Synopsis @example @end example @node [t l10n-substitution] l;a2, [t l10n-substitution] l;a3, [t l10n-substitution] l;a1, common/messages @section [t l10n-substitution] l:a2 @subheading Name [t l10n-substitution] l:a2 @subheading Synopsis @example @end example @node [t l10n-substitution] l;a3, [t l10n-substitution] l;a4, [t l10n-substitution] l;a2, common/messages @section [t l10n-substitution] l:a3 @subheading Name [t l10n-substitution] l:a3 @subheading Synopsis @example @end example @node [t l10n-substitution] l;a4, [t l10n-substitution] l;a5, [t l10n-substitution] l;a3, common/messages @section [t l10n-substitution] l:a4 @subheading Name [t l10n-substitution] l:a4 @subheading Synopsis @example @end example @node [t l10n-substitution] l;a5, [T] user-message, [t l10n-substitution] l;a4, common/messages @section [t l10n-substitution] l:a5 @subheading Name [t l10n-substitution] l:a5 @subheading Synopsis @example @end example @node [T] user-message, [T] print-node-line-number, [t l10n-substitution] l;a5, common/messages @section [T] user-message @subheading Name [T] user-message --- Emit a user message @subheading Synopsis @example @end example @subheading Description This template is used in place of @code{xsl:message}. It traces the path of the given node to help in debugging and allows messages to be localized. @subheading Parameters @table @asis @item @code{node} The node to get to trace the path to. Default is the context node. @item @code{arg} Additional string argument to message, if any. @item @code{key} The standard message text. If a localization/customization exists, it is keyed under this text and displayed instead of the standard message text. @end table @node [T] print-node-line-number, [T] print-node-xpath, [T] user-message, common/messages @section [T] print-node-line-number @subheading Name [T] print-node-line-number --- Display file name and line number of a node @subheading Synopsis @example @end example @subheading Description This template displays the file name and the line number in that file that contains the given node. In addition the name of the given node is shown in parentheses (usually the element name). The output is suitable for diagnostics to the user. (``filename'' means the ``filename'' part of the URI of the containing entity.) @subheading Parameters @table @asis @item @code{node} The node to get to print the information for. Default is the context node. @end table @node [T] print-node-xpath, [t print-node-xpath] text[], [T] print-node-line-number, common/messages @section [T] print-node-xpath @subheading Name [T] print-node-xpath --- Display the path of a node @subheading Synopsis @example @end example @subheading Description This template displays the address of the given node in XPath notation, in a compact yet unambiguous form suitable for diagnostics to the user. It assumes that ID attributes are named @code{id}, and if an element has an ID defined, then the element will be addressed using that ID, instead of a long XPath starting from the root. @subheading Parameters @table @asis @item @code{node} The node to get to trace the path to. Default is the context node. @end table @node [t print-node-xpath] text[], [t print-node-xpath] @@*, [T] print-node-xpath, common/messages @section [t print-node-xpath] text() @subheading Name [t print-node-xpath] text() @subheading Synopsis @example @end example @node [t print-node-xpath] @@*, [t print-node-xpath] *[@@id != ''], [t print-node-xpath] text[], common/messages @section [t print-node-xpath] @@* @subheading Name [t print-node-xpath] @@* @subheading Synopsis @example @end example @node [t print-node-xpath] *[@@id != ''], [t print-node-xpath] *, [t print-node-xpath] @@*, common/messages @section [t print-node-xpath] *[@@id != ''] @subheading Name [t print-node-xpath] *[@@id != ''] @subheading Synopsis @example @end example @node [t print-node-xpath] *, [t print-node-xpath] /, [t print-node-xpath] *[@@id != ''], common/messages @section [t print-node-xpath] * @subheading Name [t print-node-xpath] * @subheading Synopsis @example @end example @node [t print-node-xpath] /, , [t print-node-xpath] *, common/messages @section [t print-node-xpath] / @subheading Name [t print-node-xpath] / @subheading Synopsis @example @end example @node common/titles, param, common/messages, Top @chapter common/titles @menu * [M] for-title:: Provides access to element titles * [t title] title:: * [t title] *:: * [t title] text(): [t title] text[]. * [t for-title] set:: * [t for-title] *:: * [t for-title] book:: * [t for-title] part:: * [t for-title] preface|chapter|appendix:: * [t for-title] partintro:: * [t for-title] dedication:: * [t for-title] colophon:: * [t for-title] article:: * [t for-title] reference:: * [t for-title] refentry:: * [t for-title] refsynopsisdiv:: * [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect:: * [t for-title] bibliography:: * [t for-title] glossary:: * [t for-title] index:: * [t for-title] figure|table|example|equation:: * [t for-title] qandaset|qandadiv:: * [t for-title] abstract:: * [t for-title] caution|tip|warning|important|note:: * [t no-anchors] *:: * [t no-anchors] footnote:: * [t no-anchors] anchor:: * [t no-anchors] ulink:: * [t no-anchors] link:: * [t no-anchors] olink:: * [t no-anchors] indexterm:: * [t no-anchors] xref:: @end menu @node [M] for-title, [t title] title, , common/titles @section [M] for-title @subheading Name [M] for-title --- Provides access to element titles @subheading Description Processing an element in the @samp{title} mode produces the title of the element. This does not include the label. @node [t title] title, [t title] *, [M] for-title, common/titles @section [t title] title @subheading Name [t title] title @subheading Synopsis @example @end example @node [t title] *, [t title] text[], [t title] title, common/titles @section [t title] * @subheading Name [t title] * @subheading Synopsis @example @end example @node [t title] text[], [t for-title] set, [t title] *, common/titles @section [t title] text() @subheading Name [t title] text() @subheading Synopsis @example @end example @node [t for-title] set, [t for-title] *, [t title] text[], common/titles @section [t for-title] set @subheading Name [t for-title] set @subheading Synopsis @example @end example @node [t for-title] *, [t for-title] book, [t for-title] set, common/titles @section [t for-title] * @subheading Name [t for-title] * @subheading Synopsis @example @end example @node [t for-title] book, [t for-title] part, [t for-title] *, common/titles @section [t for-title] book @subheading Name [t for-title] book @subheading Synopsis @example @end example @node [t for-title] part, [t for-title] preface|chapter|appendix, [t for-title] book, common/titles @section [t for-title] part @subheading Name [t for-title] part @subheading Synopsis @example @end example @node [t for-title] preface|chapter|appendix, [t for-title] partintro, [t for-title] part, common/titles @section [t for-title] preface|chapter|appendix @subheading Name [t for-title] preface|chapter|appendix @subheading Synopsis @example @end example @node [t for-title] partintro, [t for-title] dedication, [t for-title] preface|chapter|appendix, common/titles @section [t for-title] partintro @subheading Name [t for-title] partintro @subheading Synopsis @example @end example @node [t for-title] dedication, [t for-title] colophon, [t for-title] partintro, common/titles @section [t for-title] dedication @subheading Name [t for-title] dedication @subheading Synopsis @example @end example @node [t for-title] colophon, [t for-title] article, [t for-title] dedication, common/titles @section [t for-title] colophon @subheading Name [t for-title] colophon @subheading Synopsis @example @end example @node [t for-title] article, [t for-title] reference, [t for-title] colophon, common/titles @section [t for-title] article @subheading Name [t for-title] article @subheading Synopsis @example @end example @node [t for-title] reference, [t for-title] refentry, [t for-title] article, common/titles @section [t for-title] reference @subheading Name [t for-title] reference @subheading Synopsis @example @end example @node [t for-title] refentry, [t for-title] refsynopsisdiv, [t for-title] reference, common/titles @section [t for-title] refentry @subheading Name [t for-title] refentry @subheading Synopsis @example @end example @node [t for-title] refsynopsisdiv, [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect, [t for-title] refentry, common/titles @section [t for-title] refsynopsisdiv @subheading Name [t for-title] refsynopsisdiv @subheading Synopsis @example @end example @node [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect, [t for-title] bibliography, [t for-title] refsynopsisdiv, common/titles @section [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect @subheading Name [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect @subheading Synopsis @example @end example @node [t for-title] bibliography, [t for-title] glossary, [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect, common/titles @section [t for-title] bibliography @subheading Name [t for-title] bibliography @subheading Synopsis @example @end example @node [t for-title] glossary, [t for-title] index, [t for-title] bibliography, common/titles @section [t for-title] glossary @subheading Name [t for-title] glossary @subheading Synopsis @example @end example @node [t for-title] index, [t for-title] figure|table|example|equation, [t for-title] glossary, common/titles @section [t for-title] index @subheading Name [t for-title] index @subheading Synopsis @example @end example @node [t for-title] figure|table|example|equation, [t for-title] qandaset|qandadiv, [t for-title] index, common/titles @section [t for-title] figure|table|example|equation @subheading Name [t for-title] figure|table|example|equation @subheading Synopsis @example @end example @node [t for-title] qandaset|qandadiv, [t for-title] abstract, [t for-title] figure|table|example|equation, common/titles @section [t for-title] qandaset|qandadiv @subheading Name [t for-title] qandaset|qandadiv @subheading Synopsis @example @end example @node [t for-title] abstract, [t for-title] caution|tip|warning|important|note, [t for-title] qandaset|qandadiv, common/titles @section [t for-title] abstract @subheading Name [t for-title] abstract @subheading Synopsis @example @end example @node [t for-title] caution|tip|warning|important|note, [t no-anchors] *, [t for-title] abstract, common/titles @section [t for-title] caution|tip|warning|important|note @subheading Name [t for-title] caution|tip|warning|important|note @subheading Synopsis @example @end example @node [t no-anchors] *, [t no-anchors] footnote, [t for-title] caution|tip|warning|important|note, common/titles @section [t no-anchors] * @subheading Name [t no-anchors] * @subheading Synopsis @example @end example @node [t no-anchors] footnote, [t no-anchors] anchor, [t no-anchors] *, common/titles @section [t no-anchors] footnote @subheading Name [t no-anchors] footnote @subheading Synopsis @example @end example @node [t no-anchors] anchor, [t no-anchors] ulink, [t no-anchors] footnote, common/titles @section [t no-anchors] anchor @subheading Name [t no-anchors] anchor @subheading Synopsis @example @end example @node [t no-anchors] ulink, [t no-anchors] link, [t no-anchors] anchor, common/titles @section [t no-anchors] ulink @subheading Name [t no-anchors] ulink @subheading Synopsis @example @end example @node [t no-anchors] link, [t no-anchors] olink, [t no-anchors] ulink, common/titles @section [t no-anchors] link @subheading Name [t no-anchors] link @subheading Synopsis @example @end example @node [t no-anchors] olink, [t no-anchors] indexterm, [t no-anchors] link, common/titles @section [t no-anchors] olink @subheading Name [t no-anchors] olink @subheading Synopsis @example @end example @node [t no-anchors] indexterm, [t no-anchors] xref, [t no-anchors] olink, common/titles @section [t no-anchors] indexterm @subheading Name [t no-anchors] indexterm @subheading Synopsis @example @end example @node [t no-anchors] xref, , [t no-anchors] indexterm, common/titles @section [t no-anchors] xref @subheading Name [t no-anchors] xref @subheading Synopsis @example @end example @node param, manpage, common/titles, Top @chapter param @menu * [P] user-message-prefix:: Undocumented * [P] uppercase-headings:: Make headings uppercase? * [P] manvolnum-cite-numeral-only:: Man page section citation should use only the number * [P] quotes-on-literals:: Display quotes on literal elements? * [P] show-comments:: Display comment elements? * [P] function-parens:: Generate parentheses after a function? * [P] xref-on-link:: Should link generate a cross-reference? * [P] header-3:: Third header text * [P] header-4:: Fourth header text * [P] header-5:: Fifth header text * [P] default-manpage-section:: Default man page section * [P] custom-localization-file:: URI of XML document containing custom localization data * [P] custom-l10n-data:: XML document containing custom localization data * [P] author-othername-in-middle:: Is othername in author a middle name? @end menu @node [P] user-message-prefix, [P] uppercase-headings, , param @section [P] user-message-prefix @subheading Name [P] user-message-prefix --- Undocumented @subheading Synopsis @example @end example @node [P] uppercase-headings, [P] manvolnum-cite-numeral-only, [P] user-message-prefix, param @section [P] uppercase-headings @subheading Name [P] uppercase-headings --- Make headings uppercase? @subheading Synopsis @example @end example @subheading Description Headings in man page content should be or should not be uppercased. @node [P] manvolnum-cite-numeral-only, [P] quotes-on-literals, [P] uppercase-headings, param @section [P] manvolnum-cite-numeral-only @subheading Name [P] manvolnum-cite-numeral-only --- Man page section citation should use only the number @subheading Synopsis @example @end example @subheading Description When citing other man pages, the man-page section is either given as is, or has the letters stripped from it, citing only the number of the section (e.g. section @samp{3x} becomes @samp{3}). This option specifies which style. @node [P] quotes-on-literals, [P] show-comments, [P] manvolnum-cite-numeral-only, param @section [P] quotes-on-literals @subheading Name [P] quotes-on-literals --- Display quotes on @code{literal} elements? @subheading Synopsis @example @end example @subheading Description If true, render @code{literal} elements with quotes around them. @node [P] show-comments, [P] function-parens, [P] quotes-on-literals, param @section [P] show-comments @subheading Name [P] show-comments --- Display @code{comment} elements? @subheading Synopsis @example @end example @subheading Description If true, comments will be displayed, otherwise they are suppressed. Comments here refers to the @code{comment} element, which will be renamed @code{remark} in DocBook V4.0, not XML comments (<-- like this -->) which are unavailable. @node [P] function-parens, [P] xref-on-link, [P] show-comments, param @section [P] function-parens @subheading Name [P] function-parens --- Generate parentheses after a function? @subheading Synopsis @example @end example @subheading Description If true, the formatting of a @code{} element will include generated parenthesis. @node [P] xref-on-link, [P] header-3, [P] function-parens, param @section [P] xref-on-link @subheading Name [P] xref-on-link --- Should @code{link} generate a cross-reference? @subheading Synopsis @example @end example @subheading Description Man pages cannot render the hypertext links created by @code{link}. If this option is set, then the stylesheet renders a cross reference to the target of the link. (This may reduce clutter). Otherwise, only the content of the @code{link} is rendered and the actual link itself is ignored. @node [P] header-3, [P] header-4, [P] xref-on-link, param @section [P] header-3 @subheading Name [P] header-3 --- Third header text @subheading Synopsis @example @end example @subheading Description Specifies the text of the third header of a man page, typically the date for the man page. If empty, the @code{date} content for the @code{refentry} is used. @node [P] header-4, [P] header-5, [P] header-3, param @section [P] header-4 @subheading Name [P] header-4 --- Fourth header text @subheading Synopsis @example @end example @subheading Description Specifies the text of the fourth header of a man page. If empty, the @code{refmiscinfo} content for the @code{refentry} is used. @node [P] header-5, [P] default-manpage-section, [P] header-4, param @section [P] header-5 @subheading Name [P] header-5 --- Fifth header text @subheading Synopsis @example @end example @subheading Description Specifies the text of the fifth header of a man page. If empty, the `manual name', that is, the title of the @code{book} or @code{reference} container is used. @node [P] default-manpage-section, [P] custom-localization-file, [P] header-5, param @section [P] default-manpage-section @subheading Name [P] default-manpage-section --- Default man page section @subheading Synopsis @example @end example @subheading Description The source document usually indicates the sections that each man page should belong to (with @code{manvolnum} in @code{refmeta}). In case the source document does not indicate man-page sections, this option specifies the default. @node [P] custom-localization-file, [P] custom-l10n-data, [P] default-manpage-section, param @section [P] custom-localization-file @subheading Name [P] custom-localization-file --- URI of XML document containing custom localization data @subheading Synopsis @example @end example @subheading Description This parameter specifies the URI of a XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. The text translations pointed to by this parameter always override the default text translations (from the internal parameter @code{localization-file}). If a particular translation is not present here, the corresponding default translation is used as a fallback. This parameter is primarily for changing certain punctuation characters used in formatting the source document. The settings for punctuation characters are often specific to the source document, but can also be dependent on the locale. To not use custom text translations, leave this parameter as the empty string. @node [P] custom-l10n-data, [P] author-othername-in-middle, [P] custom-localization-file, param @section [P] custom-l10n-data @subheading Name [P] custom-l10n-data --- XML document containing custom localization data @subheading Synopsis @example @end example @subheading Description This parameter specifies the XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. This parameter is internal to the stylesheet. To point to an external XML document with a URI or a file name, you should use the @code{custom-localization-file} parameter instead. However, inside a custom stylesheet (@emph{not on the command-line}) this paramter can be set to the XPath expression @samp{document('')}, which will cause the custom translations directly embedded inside the custom stylesheet to be read. @node [P] author-othername-in-middle, , [P] custom-l10n-data, param @section [P] author-othername-in-middle @subheading Name [P] author-othername-in-middle --- Is @code{othername} in @code{author} a middle name? @subheading Synopsis @example @end example @subheading Description If true, the @code{othername} of an @code{author} appears between the @code{firstname} and @code{surname}. Otherwise, @code{othername} is suppressed. @node manpage, refentry, param, Top @chapter manpage @menu * [T] manpage:: Undocumented @end menu @node [T] manpage, , , manpage @section [T] manpage @subheading Name [T] manpage --- Undocumented @subheading Synopsis @example @end example @node refentry, sectioning, manpage, Top @chapter refentry @menu * [t] reference:: * [t] refentry:: * [t header-text] *:: * [t header-text] text(): [t header-text] text[]. * [t] refmeta:: * [t] refentrytitle:: * [t] manvolnum:: * [t] refmiscinfo:: * [t] refnamediv:: * [t] refname:: * [t] refpurpose:: * [t] refdescriptor:: * [t] refclass:: * [t] refsynopsisdiv:: * [t] refsection:: * [t] refsect1:: * [t] refsect2:: * [T] uppercase-title:: Undocumented @end menu @node [t] reference, [t] refentry, , refentry @section [t] reference @subheading Name [t] reference @subheading Synopsis @example @end example @node [t] refentry, [t header-text] *, [t] reference, refentry @section [t] refentry @subheading Name [t] refentry @subheading Synopsis @example @end example @node [t header-text] *, [t header-text] text[], [t] refentry, refentry @section [t header-text] * @subheading Name [t header-text] * @subheading Synopsis @example @end example @node [t header-text] text[], [t] refmeta, [t header-text] *, refentry @section [t header-text] text() @subheading Name [t header-text] text() @subheading Synopsis @example @end example @node [t] refmeta, [t] refentrytitle, [t header-text] text[], refentry @section [t] refmeta @subheading Name [t] refmeta @subheading Synopsis @example @end example @node [t] refentrytitle, [t] manvolnum, [t] refmeta, refentry @section [t] refentrytitle @subheading Name [t] refentrytitle @subheading Synopsis @example @end example @node [t] manvolnum, [t] refmiscinfo, [t] refentrytitle, refentry @section [t] manvolnum @subheading Name [t] manvolnum @subheading Synopsis @example @end example @node [t] refmiscinfo, [t] refnamediv, [t] manvolnum, refentry @section [t] refmiscinfo @subheading Name [t] refmiscinfo @subheading Synopsis @example @end example @node [t] refnamediv, [t] refname, [t] refmiscinfo, refentry @section [t] refnamediv @subheading Name [t] refnamediv @subheading Synopsis @example @end example @node [t] refname, [t] refpurpose, [t] refnamediv, refentry @section [t] refname @subheading Name [t] refname @subheading Synopsis @example @end example @node [t] refpurpose, [t] refdescriptor, [t] refname, refentry @section [t] refpurpose @subheading Name [t] refpurpose @subheading Synopsis @example @end example @node [t] refdescriptor, [t] refclass, [t] refpurpose, refentry @section [t] refdescriptor @subheading Name [t] refdescriptor @subheading Synopsis @example @end example @node [t] refclass, [t] refsynopsisdiv, [t] refdescriptor, refentry @section [t] refclass @subheading Name [t] refclass @subheading Synopsis @example @end example @node [t] refsynopsisdiv, [t] refsection, [t] refclass, refentry @section [t] refsynopsisdiv @subheading Name [t] refsynopsisdiv @subheading Synopsis @example @end example @node [t] refsection, [t] refsect1, [t] refsynopsisdiv, refentry @section [t] refsection @subheading Name [t] refsection @subheading Synopsis @example @end example @node [t] refsect1, [t] refsect2, [t] refsection, refentry @section [t] refsect1 @subheading Name [t] refsect1 @subheading Synopsis @example @end example @node [t] refsect2, [T] uppercase-title, [t] refsect1, refentry @section [t] refsect2 @subheading Name [t] refsect2 @subheading Synopsis @example @end example @node [T] uppercase-title, , [t] refsect2, refentry @section [T] uppercase-title @subheading Name [T] uppercase-title --- Undocumented @subheading Synopsis @example @end example @node sectioning, sections, refentry, Top @chapter sectioning @menu * [T] SS-section:: Undocumented * [T] SH-section:: Undocumented @end menu @node [T] SS-section, [T] SH-section, , sectioning @section [T] SS-section @subheading Name [T] SS-section --- Undocumented @subheading Synopsis @example @end example @node [T] SH-section, , [T] SS-section, sectioning @section [T] SH-section @subheading Name [T] SH-section --- Undocumented @subheading Synopsis @example @end example @node sections, admon, sectioning, Top @chapter sections @menu * [t] sect1|sect2|sect3|sect4|sect5|simplesect|section:: * [t] title:: * [t] titleabbrev:: * [t] subtitle:: @end menu @node [t] sect1|sect2|sect3|sect4|sect5|simplesect|section, [t] title, , sections @section [t] sect1|sect2|sect3|sect4|sect5|simplesect|section @subheading Name [t] sect1|sect2|sect3|sect4|sect5|simplesect|section @subheading Synopsis @example @end example @node [t] title, [t] titleabbrev, [t] sect1|sect2|sect3|sect4|sect5|simplesect|section, sections @section [t] title @subheading Name [t] title @subheading Synopsis @example @end example @node [t] titleabbrev, [t] subtitle, [t] title, sections @section [t] titleabbrev @subheading Name [t] titleabbrev @subheading Synopsis @example @end example @node [t] subtitle, , [t] titleabbrev, sections @section [t] subtitle @subheading Name [t] subtitle @subheading Synopsis @example @end example @node admon, block, sections, Top @chapter admon @menu * [T] admonition-title:: Undocumented * [t] note|important|warning|caution|tip:: @end menu @node [T] admonition-title, [t] note|important|warning|caution|tip, , admon @section [T] admonition-title @subheading Name [T] admonition-title --- Undocumented @subheading Synopsis @example @end example @node [t] note|important|warning|caution|tip, , [T] admonition-title, admon @section [t] note|important|warning|caution|tip @subheading Name [t] note|important|warning|caution|tip @subheading Synopsis @example @end example @node block, caption, admon, Top @chapter block @menu * [T] block-object:: Undocumented * [T] indented.block-object: [T] indented_block-object. Undocumented * [t] para|simpara:: * [t] formalpara:: * [t] formalpara/title:: * [t] formalpara/para:: * [t] blockquote:: * [t] blockquote/title:: * [t] attribution:: * [t blockquote-attribution] attribution:: * [t] epigraph:: * [t] sidebar:: * [t] abstract:: * [t] msgset:: * [t] msgentry:: * [t] simplemsgentry:: * [t] msg:: * [t] msgmain:: * [t] msgmain/title:: * [t] msgsub:: * [t] msgsub/title:: * [t] msgrel:: * [t] msgrel/title:: * [t] msgtext:: * [t] msginfo:: * [t] msglevel|msgorig|msgaud:: * [t] msgexplan:: * [t] msgexplan/title:: * [t] revhistory:: * [t] revhistory/revision:: * [t] revision/revnumber:: * [t] revision/date:: * [t] revision/authorinitials:: * [t] revision/authorinitials[1]:: * [t] revision/revremark:: * [t] revision/revdescription:: * [t] ackno:: @end menu @node [T] block-object, [T] indented_block-object, , block @section [T] block-object @subheading Name [T] block-object --- Undocumented @subheading Synopsis @example @end example @node [T] indented_block-object, [t] para|simpara, [T] block-object, block @section [T] indented.block-object @subheading Name [T] indented.block-object --- Undocumented @subheading Synopsis @example @end example @node [t] para|simpara, [t] formalpara, [T] indented_block-object, block @section [t] para|simpara @subheading Name [t] para|simpara @subheading Synopsis @example @end example @node [t] formalpara, [t] formalpara/title, [t] para|simpara, block @section [t] formalpara @subheading Name [t] formalpara @subheading Synopsis @example @end example @node [t] formalpara/title, [t] formalpara/para, [t] formalpara, block @section [t] formalpara/title @subheading Name [t] formalpara/title @subheading Synopsis @example @end example @node [t] formalpara/para, [t] blockquote, [t] formalpara/title, block @section [t] formalpara/para @subheading Name [t] formalpara/para @subheading Synopsis @example @end example @node [t] blockquote, [t] blockquote/title, [t] formalpara/para, block @section [t] blockquote @subheading Name [t] blockquote @subheading Synopsis @example @end example @node [t] blockquote/title, [t] attribution, [t] blockquote, block @section [t] blockquote/title @subheading Name [t] blockquote/title @subheading Synopsis @example @end example @node [t] attribution, [t blockquote-attribution] attribution, [t] blockquote/title, block @section [t] attribution @subheading Name [t] attribution @subheading Synopsis @example @end example @node [t blockquote-attribution] attribution, [t] epigraph, [t] attribution, block @section [t blockquote-attribution] attribution @subheading Name [t blockquote-attribution] attribution @subheading Synopsis @example @end example @node [t] epigraph, [t] sidebar, [t blockquote-attribution] attribution, block @section [t] epigraph @subheading Name [t] epigraph @subheading Synopsis @example @end example @node [t] sidebar, [t] abstract, [t] epigraph, block @section [t] sidebar @subheading Name [t] sidebar @subheading Synopsis @example @end example @node [t] abstract, [t] msgset, [t] sidebar, block @section [t] abstract @subheading Name [t] abstract @subheading Synopsis @example @end example @node [t] msgset, [t] msgentry, [t] abstract, block @section [t] msgset @subheading Name [t] msgset @subheading Synopsis @example @end example @node [t] msgentry, [t] simplemsgentry, [t] msgset, block @section [t] msgentry @subheading Name [t] msgentry @subheading Synopsis @example @end example @node [t] simplemsgentry, [t] msg, [t] msgentry, block @section [t] simplemsgentry @subheading Name [t] simplemsgentry @subheading Synopsis @example @end example @node [t] msg, [t] msgmain, [t] simplemsgentry, block @section [t] msg @subheading Name [t] msg @subheading Synopsis @example @end example @node [t] msgmain, [t] msgmain/title, [t] msg, block @section [t] msgmain @subheading Name [t] msgmain @subheading Synopsis @example @end example @node [t] msgmain/title, [t] msgsub, [t] msgmain, block @section [t] msgmain/title @subheading Name [t] msgmain/title @subheading Synopsis @example @end example @node [t] msgsub, [t] msgsub/title, [t] msgmain/title, block @section [t] msgsub @subheading Name [t] msgsub @subheading Synopsis @example @end example @node [t] msgsub/title, [t] msgrel, [t] msgsub, block @section [t] msgsub/title @subheading Name [t] msgsub/title @subheading Synopsis @example @end example @node [t] msgrel, [t] msgrel/title, [t] msgsub/title, block @section [t] msgrel @subheading Name [t] msgrel @subheading Synopsis @example @end example @node [t] msgrel/title, [t] msgtext, [t] msgrel, block @section [t] msgrel/title @subheading Name [t] msgrel/title @subheading Synopsis @example @end example @node [t] msgtext, [t] msginfo, [t] msgrel/title, block @section [t] msgtext @subheading Name [t] msgtext @subheading Synopsis @example @end example @node [t] msginfo, [t] msglevel|msgorig|msgaud, [t] msgtext, block @section [t] msginfo @subheading Name [t] msginfo @subheading Synopsis @example @end example @node [t] msglevel|msgorig|msgaud, [t] msgexplan, [t] msginfo, block @section [t] msglevel|msgorig|msgaud @subheading Name [t] msglevel|msgorig|msgaud @subheading Synopsis @example @end example @node [t] msgexplan, [t] msgexplan/title, [t] msglevel|msgorig|msgaud, block @section [t] msgexplan @subheading Name [t] msgexplan @subheading Synopsis @example @end example @node [t] msgexplan/title, [t] revhistory, [t] msgexplan, block @section [t] msgexplan/title @subheading Name [t] msgexplan/title @subheading Synopsis @example @end example @node [t] revhistory, [t] revhistory/revision, [t] msgexplan/title, block @section [t] revhistory @subheading Name [t] revhistory @subheading Synopsis @example @end example @node [t] revhistory/revision, [t] revision/revnumber, [t] revhistory, block @section [t] revhistory/revision @subheading Name [t] revhistory/revision @subheading Synopsis @example @end example @node [t] revision/revnumber, [t] revision/date, [t] revhistory/revision, block @section [t] revision/revnumber @subheading Name [t] revision/revnumber @subheading Synopsis @example @end example @node [t] revision/date, [t] revision/authorinitials, [t] revision/revnumber, block @section [t] revision/date @subheading Name [t] revision/date @subheading Synopsis @example @end example @node [t] revision/authorinitials, [t] revision/authorinitials[1], [t] revision/date, block @section [t] revision/authorinitials @subheading Name [t] revision/authorinitials @subheading Synopsis @example @end example @node [t] revision/authorinitials[1], [t] revision/revremark, [t] revision/authorinitials, block @section [t] revision/authorinitials[1] @subheading Name [t] revision/authorinitials[1] @subheading Synopsis @example @end example @node [t] revision/revremark, [t] revision/revdescription, [t] revision/authorinitials[1], block @section [t] revision/revremark @subheading Name [t] revision/revremark @subheading Synopsis @example @end example @node [t] revision/revdescription, [t] ackno, [t] revision/revremark, block @section [t] revision/revdescription @subheading Name [t] revision/revdescription @subheading Synopsis @example @end example @node [t] ackno, , [t] revision/revdescription, block @section [t] ackno @subheading Name [t] ackno @subheading Synopsis @example @end example @node caption, formal, block, Top @chapter caption @menu * [T] make-caption:: Render as a `caption' @end menu @node [T] make-caption, , , caption @section [T] make-caption @subheading Name [T] make-caption --- Render as a `caption' @subheading Synopsis @example @end example @subheading Description This template renders content (usually titles in certain block objects) as a `caption'. @subheading Parameters @table @asis @item @code{content} The result tree fragment to render. If not specified, defaults to applying @code{for-title} mode to the @emph{context} node. @end table @node formal, synop, caption, Top @chapter formal @menu * [T] formal-object:: Undocumented * [T] formal-object-title:: Undocumented * [T] informal-object:: Undocumented * [T] semiformal-object:: Undocumented * [t] figure|example:: * [t] equation:: * [t] informalfigure:: * [t] informalexample:: * [t] informalequation:: @end menu @node [T] formal-object, [T] formal-object-title, , formal @section [T] formal-object @subheading Name [T] formal-object --- Undocumented @subheading Synopsis @example @end example @node [T] formal-object-title, [T] informal-object, [T] formal-object, formal @section [T] formal-object-title @subheading Name [T] formal-object-title --- Undocumented @subheading Synopsis @example @end example @node [T] informal-object, [T] semiformal-object, [T] formal-object-title, formal @section [T] informal-object @subheading Name [T] informal-object --- Undocumented @subheading Synopsis @example @end example @node [T] semiformal-object, [t] figure|example, [T] informal-object, formal @section [T] semiformal-object @subheading Name [T] semiformal-object --- Undocumented @subheading Synopsis @example @end example @node [t] figure|example, [t] equation, [T] semiformal-object, formal @section [t] figure|example @subheading Name [t] figure|example @subheading Synopsis @example @end example @node [t] equation, [t] informalfigure, [t] figure|example, formal @section [t] equation @subheading Name [t] equation @subheading Synopsis @example @end example @node [t] informalfigure, [t] informalexample, [t] equation, formal @section [t] informalfigure @subheading Name [t] informalfigure @subheading Synopsis @example @end example @node [t] informalexample, [t] informalequation, [t] informalfigure, formal @section [t] informalexample @subheading Name [t] informalexample @subheading Synopsis @example @end example @node [t] informalequation, , [t] informalexample, formal @section [t] informalequation @subheading Name [t] informalequation @subheading Synopsis @example @end example @node synop, table, formal, Top @chapter synop @menu * [t] synopsis:: * [t] cmdsynopsis:: * [t cmdsynopsis] *:: * [t cmdsynopsis] sbr:: * [t cmdsynopsis] synopfragmentref:: * [t synopfragment.number] synopfragment: [t synopfragment_number] synopfragment. * [t cmdsynopsis] synopfragment:: * [t cmdsynopsis] command|option:: * [t cmdsynopsis] replaceable:: * [t cmdsynopsis] group|arg:: * [t cmdsynopsis] group/*:: * [t cmdsynopsis] group/group:: * [t cmdsynopsis] group/option:: * [t cmdsynopsis] group/arg:: * [t] funcsynopsis:: * [t funcsynopsis] *:: * [t funcsynopsis] funcsynopsisinfo:: * [T] funcprototype:: Undocumented * [t funcsynopsis] modifier:: * [t funcsynopsis] funcdef:: * [t funcsynopsis] function:: * [t funcsynopsis] void:: * [t funcsynopsis] varargs:: * [t funcsynopsis] paramdef:: * [t funcsynopsis] paramdef/parameter:: * [t funcsynopsis] funcparams:: @end menu @node [t] synopsis, [t] cmdsynopsis, , synop @section [t] synopsis @subheading Name [t] synopsis @subheading Synopsis @example @end example @node [t] cmdsynopsis, [t cmdsynopsis] *, [t] synopsis, synop @section [t] cmdsynopsis @subheading Name [t] cmdsynopsis @subheading Synopsis @example @end example @node [t cmdsynopsis] *, [t cmdsynopsis] sbr, [t] cmdsynopsis, synop @section [t cmdsynopsis] * @subheading Name [t cmdsynopsis] * @subheading Synopsis @example @end example @node [t cmdsynopsis] sbr, [t cmdsynopsis] synopfragmentref, [t cmdsynopsis] *, synop @section [t cmdsynopsis] sbr @subheading Name [t cmdsynopsis] sbr @subheading Synopsis @example @end example @node [t cmdsynopsis] synopfragmentref, [t synopfragment_number] synopfragment, [t cmdsynopsis] sbr, synop @section [t cmdsynopsis] synopfragmentref @subheading Name [t cmdsynopsis] synopfragmentref @subheading Synopsis @example @end example @node [t synopfragment_number] synopfragment, [t cmdsynopsis] synopfragment, [t cmdsynopsis] synopfragmentref, synop @section [t synopfragment.number] synopfragment @subheading Name [t synopfragment.number] synopfragment @subheading Synopsis @example @end example @node [t cmdsynopsis] synopfragment, [t cmdsynopsis] command|option, [t synopfragment_number] synopfragment, synop @section [t cmdsynopsis] synopfragment @subheading Name [t cmdsynopsis] synopfragment @subheading Synopsis @example @end example @node [t cmdsynopsis] command|option, [t cmdsynopsis] replaceable, [t cmdsynopsis] synopfragment, synop @section [t cmdsynopsis] command|option @subheading Name [t cmdsynopsis] command|option @subheading Synopsis @example @end example @node [t cmdsynopsis] replaceable, [t cmdsynopsis] group|arg, [t cmdsynopsis] command|option, synop @section [t cmdsynopsis] replaceable @subheading Name [t cmdsynopsis] replaceable @subheading Synopsis @example @end example @node [t cmdsynopsis] group|arg, [t cmdsynopsis] group/*, [t cmdsynopsis] replaceable, synop @section [t cmdsynopsis] group|arg @subheading Name [t cmdsynopsis] group|arg @subheading Synopsis @example @end example @node [t cmdsynopsis] group/*, [t cmdsynopsis] group/group, [t cmdsynopsis] group|arg, synop @section [t cmdsynopsis] group/* @subheading Name [t cmdsynopsis] group/* @subheading Synopsis @example @end example @node [t cmdsynopsis] group/group, [t cmdsynopsis] group/option, [t cmdsynopsis] group/*, synop @section [t cmdsynopsis] group/group @subheading Name [t cmdsynopsis] group/group @subheading Synopsis @example @end example @node [t cmdsynopsis] group/option, [t cmdsynopsis] group/arg, [t cmdsynopsis] group/group, synop @section [t cmdsynopsis] group/option @subheading Name [t cmdsynopsis] group/option @subheading Synopsis @example @end example @node [t cmdsynopsis] group/arg, [t] funcsynopsis, [t cmdsynopsis] group/option, synop @section [t cmdsynopsis] group/arg @subheading Name [t cmdsynopsis] group/arg @subheading Synopsis @example @end example @node [t] funcsynopsis, [t funcsynopsis] *, [t cmdsynopsis] group/arg, synop @section [t] funcsynopsis @subheading Name [t] funcsynopsis @subheading Synopsis @example @end example @node [t funcsynopsis] *, [t funcsynopsis] funcsynopsisinfo, [t] funcsynopsis, synop @section [t funcsynopsis] * @subheading Name [t funcsynopsis] * @subheading Synopsis @example @end example @node [t funcsynopsis] funcsynopsisinfo, [T] funcprototype, [t funcsynopsis] *, synop @section [t funcsynopsis] funcsynopsisinfo @subheading Name [t funcsynopsis] funcsynopsisinfo @subheading Synopsis @example @end example @node [T] funcprototype, [t funcsynopsis] modifier, [t funcsynopsis] funcsynopsisinfo, synop @section [T] funcprototype @subheading Name [T] funcprototype --- Undocumented @subheading Synopsis @example @end example @node [t funcsynopsis] modifier, [t funcsynopsis] funcdef, [T] funcprototype, synop @section [t funcsynopsis] modifier @subheading Name [t funcsynopsis] modifier @subheading Synopsis @example @end example @node [t funcsynopsis] funcdef, [t funcsynopsis] function, [t funcsynopsis] modifier, synop @section [t funcsynopsis] funcdef @subheading Name [t funcsynopsis] funcdef @subheading Synopsis @example @end example @node [t funcsynopsis] function, [t funcsynopsis] void, [t funcsynopsis] funcdef, synop @section [t funcsynopsis] function @subheading Name [t funcsynopsis] function @subheading Synopsis @example @end example @node [t funcsynopsis] void, [t funcsynopsis] varargs, [t funcsynopsis] function, synop @section [t funcsynopsis] void @subheading Name [t funcsynopsis] void @subheading Synopsis @example @end example @node [t funcsynopsis] varargs, [t funcsynopsis] paramdef, [t funcsynopsis] void, synop @section [t funcsynopsis] varargs @subheading Name [t funcsynopsis] varargs @subheading Synopsis @example @end example @node [t funcsynopsis] paramdef, [t funcsynopsis] paramdef/parameter, [t funcsynopsis] varargs, synop @section [t funcsynopsis] paramdef @subheading Name [t funcsynopsis] paramdef @subheading Synopsis @example @end example @node [t funcsynopsis] paramdef/parameter, [t funcsynopsis] funcparams, [t funcsynopsis] paramdef, synop @section [t funcsynopsis] paramdef/parameter @subheading Name [t funcsynopsis] paramdef/parameter @subheading Synopsis @example @end example @node [t funcsynopsis] funcparams, , [t funcsynopsis] paramdef/parameter, synop @section [t funcsynopsis] funcparams @subheading Name [t funcsynopsis] funcparams @subheading Synopsis @example @end example @node table, verbatim, synop, Top @chapter table @menu * [t] table:: * [t] informaltable:: * [t] tgroup:: * [t] colspec|spanspec:: * [t] thead|tbody|tfoot:: * [t] row|entry:: * [t] entrytbl[@@cols='2']:: * [t entrytbl] thead:: * [t entrytbl] tbody:: * [t entrytbl] tfoot:: * [t entrytbl-head] row:: * [t entrytbl-body] row:: * [T] copy-through:: Undocumented * [t copy] @@*:: @end menu @node [t] table, [t] informaltable, , table @section [t] table @subheading Name [t] table @subheading Synopsis @example @end example @node [t] informaltable, [t] tgroup, [t] table, table @section [t] informaltable @subheading Name [t] informaltable @subheading Synopsis @example @end example @node [t] tgroup, [t] colspec|spanspec, [t] informaltable, table @section [t] tgroup @subheading Name [t] tgroup @subheading Synopsis @example @end example @node [t] colspec|spanspec, [t] thead|tbody|tfoot, [t] tgroup, table @section [t] colspec|spanspec @subheading Name [t] colspec|spanspec @subheading Synopsis @example @end example @node [t] thead|tbody|tfoot, [t] row|entry, [t] colspec|spanspec, table @section [t] thead|tbody|tfoot @subheading Name [t] thead|tbody|tfoot @subheading Synopsis @example @end example @node [t] row|entry, [t] entrytbl[@@cols='2'], [t] thead|tbody|tfoot, table @section [t] row|entry @subheading Name [t] row|entry @subheading Synopsis @example @end example @node [t] entrytbl[@@cols='2'], [t entrytbl] thead, [t] row|entry, table @section [t] entrytbl[@@cols='2'] @subheading Name [t] entrytbl[@@cols='2'] @subheading Synopsis @example @end example @node [t entrytbl] thead, [t entrytbl] tbody, [t] entrytbl[@@cols='2'], table @section [t entrytbl] thead @subheading Name [t entrytbl] thead @subheading Synopsis @example @end example @node [t entrytbl] tbody, [t entrytbl] tfoot, [t entrytbl] thead, table @section [t entrytbl] tbody @subheading Name [t entrytbl] tbody @subheading Synopsis @example @end example @node [t entrytbl] tfoot, [t entrytbl-head] row, [t entrytbl] tbody, table @section [t entrytbl] tfoot @subheading Name [t entrytbl] tfoot @subheading Synopsis @example @end example @node [t entrytbl-head] row, [t entrytbl-body] row, [t entrytbl] tfoot, table @section [t entrytbl-head] row @subheading Name [t entrytbl-head] row @subheading Synopsis @example @end example @node [t entrytbl-body] row, [T] copy-through, [t entrytbl-head] row, table @section [t entrytbl-body] row @subheading Name [t entrytbl-body] row @subheading Synopsis @example @end example @node [T] copy-through, [t copy] @@*, [t entrytbl-body] row, table @section [T] copy-through @subheading Name [T] copy-through --- Undocumented @subheading Synopsis @example @end example @node [t copy] @@*, , [T] copy-through, table @section [t copy] @@* @subheading Name [t copy] @@* @subheading Synopsis @example @end example @node verbatim, inline, table, Top @chapter verbatim @menu * [t] literallayout:: * [t] programlisting|screen:: * [t] address:: @end menu @node [t] literallayout, [t] programlisting|screen, , verbatim @section [t] literallayout @subheading Name [t] literallayout @subheading Synopsis @example @end example @node [t] programlisting|screen, [t] address, [t] literallayout, verbatim @section [t] programlisting|screen @subheading Name [t] programlisting|screen @subheading Synopsis @example @end example @node [t] address, , [t] programlisting|screen, verbatim @section [t] address @subheading Name [t] address @subheading Synopsis @example @end example @node inline, xref, verbatim, Top @chapter inline @menu * [T] inline-plain:: Undocumented * [T] inline-monospace:: Undocumented * [T] inline-bold-monospace:: Undocumented * [T] inline-italic-monospace:: Undocumented * [T] inline-bold:: Undocumented * [T] inline-italic:: Undocumented * [T] inline-roman:: Undocumented * [T] inline-superscript:: Undocumented * [T] inline-subscript:: Undocumented * [t] author:: * [t] editor:: * [t] othercredit:: * [t] authorinitials:: * [t] accel:: * [t] action:: * [t] application:: * [t] classname:: * [t] exceptionname:: * [t] interfacename:: * [t] methodname:: * [t] command:: * [t] computeroutput:: * [t] constant:: * [t] database:: * [t] errorcode:: * [t] errorname:: * [t] errortype:: * [t] errortext:: * [t] envar:: * [t] filename:: * [t] refentrytitle/function:: * [t] function:: * [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu:: * [t] hardware:: * [t] interface:: * [t] interfacedefinition:: * [t] keycap:: * [t] keycode:: * [t] keysym:: * [T] inline-quoted:: Undocumented * [T] inline-quoted-monospace:: Undocumented * [t] literal:: * [t] medialabel:: * [t] shortcut:: * [t] mousebutton:: * [t] option:: * [t] parameter:: * [t] property:: * [t] prompt:: * [t] replaceable:: * [t] returnvalue:: * [t] structfield:: * [t] structname:: * [t] symbol:: * [t] systemitem:: * [t] token:: * [t] type:: * [t] userinput:: * [t] abbrev:: * [t] acronym:: * [t] citerefentry:: * [t] citetitle:: * [t] emphasis[@@role='strong' or @@role='bold' or parent;;emphasis]:: * [t] emphasis:: * [t] foreignphrase:: * [t] markup:: * [t] phrase:: * [t] quote:: * [t] varname:: * [t] wordasword:: * [t] lineannotation:: * [t] superscript:: * [t] subscript:: * [t] trademark:: * [t] firstterm:: * [t] glossterm:: * [t] sgmltag:: * [T] format-sgmltag:: Undocumented * [t] email:: * [t] keycombo:: * [t] menuchoice:: * [T] format-menuchoice:: Undocumented * [t] optional:: * [t] citation:: * [t] comment|remark:: * [t] productname|productnumber:: * [t] pob|street|city|state|postcode|country|phone|fax|otheraddr:: * [t] firstname|surname|lineage|othername|honorific:: @end menu @node [T] inline-plain, [T] inline-monospace, , inline @section [T] inline-plain @subheading Name [T] inline-plain --- Undocumented @subheading Synopsis @example @end example @node [T] inline-monospace, [T] inline-bold-monospace, [T] inline-plain, inline @section [T] inline-monospace @subheading Name [T] inline-monospace --- Undocumented @subheading Synopsis @example @end example @node [T] inline-bold-monospace, [T] inline-italic-monospace, [T] inline-monospace, inline @section [T] inline-bold-monospace @subheading Name [T] inline-bold-monospace --- Undocumented @subheading Synopsis @example @end example @node [T] inline-italic-monospace, [T] inline-bold, [T] inline-bold-monospace, inline @section [T] inline-italic-monospace @subheading Name [T] inline-italic-monospace --- Undocumented @subheading Synopsis @example @end example @node [T] inline-bold, [T] inline-italic, [T] inline-italic-monospace, inline @section [T] inline-bold @subheading Name [T] inline-bold --- Undocumented @subheading Synopsis @example @end example @node [T] inline-italic, [T] inline-roman, [T] inline-bold, inline @section [T] inline-italic @subheading Name [T] inline-italic --- Undocumented @subheading Synopsis @example @end example @node [T] inline-roman, [T] inline-superscript, [T] inline-italic, inline @section [T] inline-roman @subheading Name [T] inline-roman --- Undocumented @subheading Synopsis @example @end example @node [T] inline-superscript, [T] inline-subscript, [T] inline-roman, inline @section [T] inline-superscript @subheading Name [T] inline-superscript --- Undocumented @subheading Synopsis @example @end example @node [T] inline-subscript, [t] author, [T] inline-superscript, inline @section [T] inline-subscript @subheading Name [T] inline-subscript --- Undocumented @subheading Synopsis @example @end example @node [t] author, [t] editor, [T] inline-subscript, inline @section [t] author @subheading Name [t] author @subheading Synopsis @example @end example @node [t] editor, [t] othercredit, [t] author, inline @section [t] editor @subheading Name [t] editor @subheading Synopsis @example @end example @node [t] othercredit, [t] authorinitials, [t] editor, inline @section [t] othercredit @subheading Name [t] othercredit @subheading Synopsis @example @end example @node [t] authorinitials, [t] accel, [t] othercredit, inline @section [t] authorinitials @subheading Name [t] authorinitials @subheading Synopsis @example @end example @node [t] accel, [t] action, [t] authorinitials, inline @section [t] accel @subheading Name [t] accel @subheading Synopsis @example @end example @node [t] action, [t] application, [t] accel, inline @section [t] action @subheading Name [t] action @subheading Synopsis @example @end example @node [t] application, [t] classname, [t] action, inline @section [t] application @subheading Name [t] application @subheading Synopsis @example @end example @node [t] classname, [t] exceptionname, [t] application, inline @section [t] classname @subheading Name [t] classname @subheading Synopsis @example @end example @node [t] exceptionname, [t] interfacename, [t] classname, inline @section [t] exceptionname @subheading Name [t] exceptionname @subheading Synopsis @example @end example @node [t] interfacename, [t] methodname, [t] exceptionname, inline @section [t] interfacename @subheading Name [t] interfacename @subheading Synopsis @example @end example @node [t] methodname, [t] command, [t] interfacename, inline @section [t] methodname @subheading Name [t] methodname @subheading Synopsis @example @end example @node [t] command, [t] computeroutput, [t] methodname, inline @section [t] command @subheading Name [t] command @subheading Synopsis @example @end example @node [t] computeroutput, [t] constant, [t] command, inline @section [t] computeroutput @subheading Name [t] computeroutput @subheading Synopsis @example @end example @node [t] constant, [t] database, [t] computeroutput, inline @section [t] constant @subheading Name [t] constant @subheading Synopsis @example @end example @node [t] database, [t] errorcode, [t] constant, inline @section [t] database @subheading Name [t] database @subheading Synopsis @example @end example @node [t] errorcode, [t] errorname, [t] database, inline @section [t] errorcode @subheading Name [t] errorcode @subheading Synopsis @example @end example @node [t] errorname, [t] errortype, [t] errorcode, inline @section [t] errorname @subheading Name [t] errorname @subheading Synopsis @example @end example @node [t] errortype, [t] errortext, [t] errorname, inline @section [t] errortype @subheading Name [t] errortype @subheading Synopsis @example @end example @node [t] errortext, [t] envar, [t] errortype, inline @section [t] errortext @subheading Name [t] errortext @subheading Synopsis @example @end example @node [t] envar, [t] filename, [t] errortext, inline @section [t] envar @subheading Name [t] envar @subheading Synopsis @example @end example @node [t] filename, [t] refentrytitle/function, [t] envar, inline @section [t] filename @subheading Name [t] filename @subheading Synopsis @example @end example @node [t] refentrytitle/function, [t] function, [t] filename, inline @section [t] refentrytitle/function @subheading Name [t] refentrytitle/function @subheading Synopsis @example @end example @node [t] function, [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu, [t] refentrytitle/function, inline @section [t] function @subheading Name [t] function @subheading Synopsis @example @end example @node [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu, [t] hardware, [t] function, inline @section [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu @subheading Name [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu @subheading Synopsis @example @end example @node [t] hardware, [t] interface, [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu, inline @section [t] hardware @subheading Name [t] hardware @subheading Synopsis @example @end example @node [t] interface, [t] interfacedefinition, [t] hardware, inline @section [t] interface @subheading Name [t] interface @subheading Synopsis @example @end example @node [t] interfacedefinition, [t] keycap, [t] interface, inline @section [t] interfacedefinition @subheading Name [t] interfacedefinition @subheading Synopsis @example @end example @node [t] keycap, [t] keycode, [t] interfacedefinition, inline @section [t] keycap @subheading Name [t] keycap @subheading Synopsis @example @end example @node [t] keycode, [t] keysym, [t] keycap, inline @section [t] keycode @subheading Name [t] keycode @subheading Synopsis @example @end example @node [t] keysym, [T] inline-quoted, [t] keycode, inline @section [t] keysym @subheading Name [t] keysym @subheading Synopsis @example @end example @node [T] inline-quoted, [T] inline-quoted-monospace, [t] keysym, inline @section [T] inline-quoted @subheading Name [T] inline-quoted --- Undocumented @subheading Synopsis @example @end example @node [T] inline-quoted-monospace, [t] literal, [T] inline-quoted, inline @section [T] inline-quoted-monospace @subheading Name [T] inline-quoted-monospace --- Undocumented @subheading Synopsis @example @end example @node [t] literal, [t] medialabel, [T] inline-quoted-monospace, inline @section [t] literal @subheading Name [t] literal @subheading Synopsis @example @end example @node [t] medialabel, [t] shortcut, [t] literal, inline @section [t] medialabel @subheading Name [t] medialabel @subheading Synopsis @example @end example @node [t] shortcut, [t] mousebutton, [t] medialabel, inline @section [t] shortcut @subheading Name [t] shortcut @subheading Synopsis @example @end example @node [t] mousebutton, [t] option, [t] shortcut, inline @section [t] mousebutton @subheading Name [t] mousebutton @subheading Synopsis @example @end example @node [t] option, [t] parameter, [t] mousebutton, inline @section [t] option @subheading Name [t] option @subheading Synopsis @example @end example @node [t] parameter, [t] property, [t] option, inline @section [t] parameter @subheading Name [t] parameter @subheading Synopsis @example @end example @node [t] property, [t] prompt, [t] parameter, inline @section [t] property @subheading Name [t] property @subheading Synopsis @example @end example @node [t] prompt, [t] replaceable, [t] property, inline @section [t] prompt @subheading Name [t] prompt @subheading Synopsis @example @end example @node [t] replaceable, [t] returnvalue, [t] prompt, inline @section [t] replaceable @subheading Name [t] replaceable @subheading Synopsis @example @end example @node [t] returnvalue, [t] structfield, [t] replaceable, inline @section [t] returnvalue @subheading Name [t] returnvalue @subheading Synopsis @example @end example @node [t] structfield, [t] structname, [t] returnvalue, inline @section [t] structfield @subheading Name [t] structfield @subheading Synopsis @example @end example @node [t] structname, [t] symbol, [t] structfield, inline @section [t] structname @subheading Name [t] structname @subheading Synopsis @example @end example @node [t] symbol, [t] systemitem, [t] structname, inline @section [t] symbol @subheading Name [t] symbol @subheading Synopsis @example @end example @node [t] systemitem, [t] token, [t] symbol, inline @section [t] systemitem @subheading Name [t] systemitem @subheading Synopsis @example @end example @node [t] token, [t] type, [t] systemitem, inline @section [t] token @subheading Name [t] token @subheading Synopsis @example @end example @node [t] type, [t] userinput, [t] token, inline @section [t] type @subheading Name [t] type @subheading Synopsis @example @end example @node [t] userinput, [t] abbrev, [t] type, inline @section [t] userinput @subheading Name [t] userinput @subheading Synopsis @example @end example @node [t] abbrev, [t] acronym, [t] userinput, inline @section [t] abbrev @subheading Name [t] abbrev @subheading Synopsis @example @end example @node [t] acronym, [t] citerefentry, [t] abbrev, inline @section [t] acronym @subheading Name [t] acronym @subheading Synopsis @example @end example @node [t] citerefentry, [t] citetitle, [t] acronym, inline @section [t] citerefentry @subheading Name [t] citerefentry @subheading Synopsis @example @end example @node [t] citetitle, [t] emphasis[@@role='strong' or @@role='bold' or parent;;emphasis], [t] citerefentry, inline @section [t] citetitle @subheading Name [t] citetitle @subheading Synopsis @example @end example @node [t] emphasis[@@role='strong' or @@role='bold' or parent;;emphasis], [t] emphasis, [t] citetitle, inline @section [t] emphasis[@@role='strong' or @@role='bold' or parent::emphasis] @subheading Name [t] emphasis[@@role='strong' or @@role='bold' or parent::emphasis] @subheading Synopsis @example @end example @node [t] emphasis, [t] foreignphrase, [t] emphasis[@@role='strong' or @@role='bold' or parent;;emphasis], inline @section [t] emphasis @subheading Name [t] emphasis @subheading Synopsis @example @end example @node [t] foreignphrase, [t] markup, [t] emphasis, inline @section [t] foreignphrase @subheading Name [t] foreignphrase @subheading Synopsis @example @end example @node [t] markup, [t] phrase, [t] foreignphrase, inline @section [t] markup @subheading Name [t] markup @subheading Synopsis @example @end example @node [t] phrase, [t] quote, [t] markup, inline @section [t] phrase @subheading Name [t] phrase @subheading Synopsis @example @end example @node [t] quote, [t] varname, [t] phrase, inline @section [t] quote @subheading Name [t] quote @subheading Synopsis @example @end example @node [t] varname, [t] wordasword, [t] quote, inline @section [t] varname @subheading Name [t] varname @subheading Synopsis @example @end example @node [t] wordasword, [t] lineannotation, [t] varname, inline @section [t] wordasword @subheading Name [t] wordasword @subheading Synopsis @example @end example @node [t] lineannotation, [t] superscript, [t] wordasword, inline @section [t] lineannotation @subheading Name [t] lineannotation @subheading Synopsis @example @end example @node [t] superscript, [t] subscript, [t] lineannotation, inline @section [t] superscript @subheading Name [t] superscript @subheading Synopsis @example @end example @node [t] subscript, [t] trademark, [t] superscript, inline @section [t] subscript @subheading Name [t] subscript @subheading Synopsis @example @end example @node [t] trademark, [t] firstterm, [t] subscript, inline @section [t] trademark @subheading Name [t] trademark @subheading Synopsis @example @end example @node [t] firstterm, [t] glossterm, [t] trademark, inline @section [t] firstterm @subheading Name [t] firstterm @subheading Synopsis @example @end example @node [t] glossterm, [t] sgmltag, [t] firstterm, inline @section [t] glossterm @subheading Name [t] glossterm @subheading Synopsis @example @end example @node [t] sgmltag, [T] format-sgmltag, [t] glossterm, inline @section [t] sgmltag @subheading Name [t] sgmltag @subheading Synopsis @example @end example @node [T] format-sgmltag, [t] email, [t] sgmltag, inline @section [T] format-sgmltag @subheading Name [T] format-sgmltag --- Undocumented @subheading Synopsis @example element @end example @node [t] email, [t] keycombo, [T] format-sgmltag, inline @section [t] email @subheading Name [t] email @subheading Synopsis @example @end example @node [t] keycombo, [t] menuchoice, [t] email, inline @section [t] keycombo @subheading Name [t] keycombo @subheading Synopsis @example @end example @node [t] menuchoice, [T] format-menuchoice, [t] keycombo, inline @section [t] menuchoice @subheading Name [t] menuchoice @subheading Synopsis @example @end example @node [T] format-menuchoice, [t] optional, [t] menuchoice, inline @section [T] format-menuchoice @subheading Name [T] format-menuchoice --- Undocumented @subheading Synopsis @example @end example @node [t] optional, [t] citation, [T] format-menuchoice, inline @section [t] optional @subheading Name [t] optional @subheading Synopsis @example @end example @node [t] citation, [t] comment|remark, [t] optional, inline @section [t] citation @subheading Name [t] citation @subheading Synopsis @example @end example @node [t] comment|remark, [t] productname|productnumber, [t] citation, inline @section [t] comment|remark @subheading Name [t] comment|remark @subheading Synopsis @example @end example @node [t] productname|productnumber, [t] pob|street|city|state|postcode|country|phone|fax|otheraddr, [t] comment|remark, inline @section [t] productname|productnumber @subheading Name [t] productname|productnumber @subheading Synopsis @example @end example @node [t] pob|street|city|state|postcode|country|phone|fax|otheraddr, [t] firstname|surname|lineage|othername|honorific, [t] productname|productnumber, inline @section [t] pob|street|city|state|postcode|country|phone|fax|otheraddr @subheading Name [t] pob|street|city|state|postcode|country|phone|fax|otheraddr @subheading Synopsis @example @end example @node [t] firstname|surname|lineage|othername|honorific, , [t] pob|street|city|state|postcode|country|phone|fax|otheraddr, inline @section [t] firstname|surname|lineage|othername|honorific @subheading Name [t] firstname|surname|lineage|othername|honorific @subheading Synopsis @example @end example @node xref, glossary, inline, Top @chapter xref @menu * [t] anchor:: * [t] xref:: * [t] link:: * [t] ulink:: * [M] xref-to:: Give cross-reference markup * [t xref-to] *:: @end menu @node [t] anchor, [t] xref, , xref @section [t] anchor @subheading Name [t] anchor @subheading Synopsis @example @end example @node [t] xref, [t] link, [t] anchor, xref @section [t] xref @subheading Name [t] xref @subheading Synopsis @example @end example @node [t] link, [t] ulink, [t] xref, xref @section [t] link @subheading Name [t] link @subheading Synopsis @example @end example @node [t] ulink, [M] xref-to, [t] link, xref @section [t] ulink @subheading Name [t] ulink @subheading Synopsis @example @end example @node [M] xref-to, [t xref-to] *, [t] ulink, xref @section [M] xref-to @subheading Name [M] xref-to --- Give cross-reference markup @subheading Description Processing an element with this mode returns the markup/text that should be used for referring to it in cross-references. @node [t xref-to] *, , [M] xref-to, xref @section [t xref-to] * @subheading Name [t xref-to] * @subheading Synopsis @example @end example @node glossary, lists, xref, Top @chapter glossary @menu * [t] glossary[glossentry[1]/preceding-sibling;;*]:: * [t] glossary:: * [t] glosslist:: * [t] glossdiv:: * [t] glossentry:: * [t] glossentry/glossterm:: * [t] glossentry/acronym:: * [t] glossentry/abbrev:: * [t] glossentry/revhistory:: * [t] glossentry/glossdef:: * [t] glossentry/glosssee|glossseealso:: * [t glosssee.xref] glossentry: [t glosssee_xref] glossentry. * [t glosssee.xref] glossentry/glossterm[1]: [t glosssee_xref] glossentry/glossterm[1]. * [t glosssee.xref] *: [t glosssee_xref] *. @end menu @node [t] glossary[glossentry[1]/preceding-sibling;;*], [t] glossary, , glossary @section [t] glossary[glossentry[1]/preceding-sibling::*] @subheading Name [t] glossary[glossentry[1]/preceding-sibling::*] @subheading Synopsis @example @end example @node [t] glossary, [t] glosslist, [t] glossary[glossentry[1]/preceding-sibling;;*], glossary @section [t] glossary @subheading Name [t] glossary @subheading Synopsis @example @end example @node [t] glosslist, [t] glossdiv, [t] glossary, glossary @section [t] glosslist @subheading Name [t] glosslist @subheading Synopsis @example @end example @node [t] glossdiv, [t] glossentry, [t] glosslist, glossary @section [t] glossdiv @subheading Name [t] glossdiv @subheading Synopsis @example @end example @node [t] glossentry, [t] glossentry/glossterm, [t] glossdiv, glossary @section [t] glossentry @subheading Name [t] glossentry @subheading Synopsis @example @end example @node [t] glossentry/glossterm, [t] glossentry/acronym, [t] glossentry, glossary @section [t] glossentry/glossterm @subheading Name [t] glossentry/glossterm @subheading Synopsis @example @end example @node [t] glossentry/acronym, [t] glossentry/abbrev, [t] glossentry/glossterm, glossary @section [t] glossentry/acronym @subheading Name [t] glossentry/acronym @subheading Synopsis @example @end example @node [t] glossentry/abbrev, [t] glossentry/revhistory, [t] glossentry/acronym, glossary @section [t] glossentry/abbrev @subheading Name [t] glossentry/abbrev @subheading Synopsis @example @end example @node [t] glossentry/revhistory, [t] glossentry/glossdef, [t] glossentry/abbrev, glossary @section [t] glossentry/revhistory @subheading Name [t] glossentry/revhistory @subheading Synopsis @example @end example @node [t] glossentry/glossdef, [t] glossentry/glosssee|glossseealso, [t] glossentry/revhistory, glossary @section [t] glossentry/glossdef @subheading Name [t] glossentry/glossdef @subheading Synopsis @example @end example @node [t] glossentry/glosssee|glossseealso, [t glosssee_xref] glossentry, [t] glossentry/glossdef, glossary @section [t] glossentry/glosssee|glossseealso @subheading Name [t] glossentry/glosssee|glossseealso @subheading Synopsis @example @end example @node [t glosssee_xref] glossentry, [t glosssee_xref] glossentry/glossterm[1], [t] glossentry/glosssee|glossseealso, glossary @section [t glosssee.xref] glossentry @subheading Name [t glosssee.xref] glossentry @subheading Synopsis @example @end example @node [t glosssee_xref] glossentry/glossterm[1], [t glosssee_xref] *, [t glosssee_xref] glossentry, glossary @section [t glosssee.xref] glossentry/glossterm[1] @subheading Name [t glosssee.xref] glossentry/glossterm[1] @subheading Synopsis @example @end example @node [t glosssee_xref] *, , [t glosssee_xref] glossentry/glossterm[1], glossary @section [t glosssee.xref] * @subheading Name [t glosssee.xref] * @subheading Synopsis @example @end example @node lists, index, glossary, Top @chapter lists @menu * [T] list.block: [T] list_block. Undocumented * [t] itemizedlist:: * [t] itemizedlist/listitem:: * [t] orderedlist:: * [t] orderedlist/listitem:: * [t] variablelist:: * [t] varlistentry:: * [t] term[1]:: * [t] term:: * [t] varlistentry/listitem:: * [t] simplelist:: * [t] member:: * [t] member[1]:: * [t] simplelist[@@type='inline']:: * [t] simplelist[@@type='inline']/member:: * [t] simplelist[@@type='inline']/member[1]:: @end menu @node [T] list_block, [t] itemizedlist, , lists @section [T] list.block @subheading Name [T] list.block --- Undocumented @subheading Synopsis @example @end example @node [t] itemizedlist, [t] itemizedlist/listitem, [T] list_block, lists @section [t] itemizedlist @subheading Name [t] itemizedlist @subheading Synopsis @example @end example @node [t] itemizedlist/listitem, [t] orderedlist, [t] itemizedlist, lists @section [t] itemizedlist/listitem @subheading Name [t] itemizedlist/listitem @subheading Synopsis @example @end example @node [t] orderedlist, [t] orderedlist/listitem, [t] itemizedlist/listitem, lists @section [t] orderedlist @subheading Name [t] orderedlist @subheading Synopsis @example @end example @node [t] orderedlist/listitem, [t] variablelist, [t] orderedlist, lists @section [t] orderedlist/listitem @subheading Name [t] orderedlist/listitem @subheading Synopsis @example @end example @node [t] variablelist, [t] varlistentry, [t] orderedlist/listitem, lists @section [t] variablelist @subheading Name [t] variablelist @subheading Synopsis @example @end example @node [t] varlistentry, [t] term[1], [t] variablelist, lists @section [t] varlistentry @subheading Name [t] varlistentry @subheading Synopsis @example @end example @node [t] term[1], [t] term, [t] varlistentry, lists @section [t] term[1] @subheading Name [t] term[1] @subheading Synopsis @example @end example @node [t] term, [t] varlistentry/listitem, [t] term[1], lists @section [t] term @subheading Name [t] term @subheading Synopsis @example @end example @node [t] varlistentry/listitem, [t] simplelist, [t] term, lists @section [t] varlistentry/listitem @subheading Name [t] varlistentry/listitem @subheading Synopsis @example @end example @node [t] simplelist, [t] member, [t] varlistentry/listitem, lists @section [t] simplelist @subheading Name [t] simplelist @subheading Synopsis @example @end example @node [t] member, [t] member[1], [t] simplelist, lists @section [t] member @subheading Name [t] member @subheading Synopsis @example @end example @node [t] member[1], [t] simplelist[@@type='inline'], [t] member, lists @section [t] member[1] @subheading Name [t] member[1] @subheading Synopsis @example @end example @node [t] simplelist[@@type='inline'], [t] simplelist[@@type='inline']/member, [t] member[1], lists @section [t] simplelist[@@type='inline'] @subheading Name [t] simplelist[@@type='inline'] @subheading Synopsis @example @end example @node [t] simplelist[@@type='inline']/member, [t] simplelist[@@type='inline']/member[1], [t] simplelist[@@type='inline'], lists @section [t] simplelist[@@type='inline']/member @subheading Name [t] simplelist[@@type='inline']/member @subheading Synopsis @example @end example @node [t] simplelist[@@type='inline']/member[1], , [t] simplelist[@@type='inline']/member, lists @section [t] simplelist[@@type='inline']/member[1] @subheading Name [t] simplelist[@@type='inline']/member[1] @subheading Synopsis @example @end example @node index, info, lists, Top @chapter index @menu * [t] index:: * [t] indexdiv:: * [t] indexterm:: * [t] primary:: * [t] secondary|tertiary:: * [t] see|seealso:: * [t] indexentry:: * [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie:: @end menu @node [t] index, [t] indexdiv, , index @section [t] index @subheading Name [t] index @subheading Synopsis @example @end example @node [t] indexdiv, [t] indexterm, [t] index, index @section [t] indexdiv @subheading Name [t] indexdiv @subheading Synopsis @example @end example @node [t] indexterm, [t] primary, [t] indexdiv, index @section [t] indexterm @subheading Name [t] indexterm @subheading Synopsis @example @end example @node [t] primary, [t] secondary|tertiary, [t] indexterm, index @section [t] primary @subheading Name [t] primary @subheading Synopsis @example @end example @node [t] secondary|tertiary, [t] see|seealso, [t] primary, index @section [t] secondary|tertiary @subheading Name [t] secondary|tertiary @subheading Synopsis @example @end example @node [t] see|seealso, [t] indexentry, [t] secondary|tertiary, index @section [t] see|seealso @subheading Name [t] see|seealso @subheading Synopsis @example @end example @node [t] indexentry, [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie, [t] see|seealso, index @section [t] indexentry @subheading Name [t] indexentry @subheading Synopsis @example @end example @node [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie, , [t] indexentry, index @section [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie @subheading Name [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie @subheading Synopsis @example @end example @node info, keywords, index, Top @chapter info @menu * [t] corpauthor:: * [t] jobtitle:: * [t] orgname:: * [t] orgdiv:: * [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo:: * [t] bookinfo|setinfo|seriesinfo:: * [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo:: * [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo:: * [t] objectinfo:: @end menu @node [t] corpauthor, [t] jobtitle, , info @section [t] corpauthor @subheading Name [t] corpauthor @subheading Synopsis @example @end example @node [t] jobtitle, [t] orgname, [t] corpauthor, info @section [t] jobtitle @subheading Name [t] jobtitle @subheading Synopsis @example @end example @node [t] orgname, [t] orgdiv, [t] jobtitle, info @section [t] orgname @subheading Name [t] orgname @subheading Synopsis @example @end example @node [t] orgdiv, [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo, [t] orgname, info @section [t] orgdiv @subheading Name [t] orgdiv @subheading Synopsis @example @end example @node [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo, [t] bookinfo|setinfo|seriesinfo, [t] orgdiv, info @section [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo @subheading Name [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo @subheading Synopsis @example @end example @node [t] bookinfo|setinfo|seriesinfo, [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo, [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo, info @section [t] bookinfo|setinfo|seriesinfo @subheading Name [t] bookinfo|setinfo|seriesinfo @subheading Synopsis @example @end example @node [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo, [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo, [t] bookinfo|setinfo|seriesinfo, info @section [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo @subheading Name [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo @subheading Synopsis @example @end example @node [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo, [t] objectinfo, [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo, info @section [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo @subheading Name [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo @subheading Synopsis @example @end example @node [t] objectinfo, , [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo, info @section [t] objectinfo @subheading Name [t] objectinfo @subheading Synopsis @example @end example @node keywords, toc, info, Top @chapter keywords @menu * [t] keywordset:: * [t] subjectset:: @end menu @node [t] keywordset, [t] subjectset, , keywords @section [t] keywordset @subheading Name [t] keywordset @subheading Synopsis @example @end example @node [t] subjectset, , [t] keywordset, keywords @section [t] subjectset @subheading Name [t] subjectset @subheading Synopsis @example @end example @node toc, beginpage, keywords, Top @chapter toc @menu * [t toc] *:: * [t] toc:: * [t] tocpart|tocchap|tocfront|tocback|tocentry:: * [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5:: * [t] lot|lotentry:: @end menu @node [t toc] *, [t] toc, , toc @section [t toc] * @subheading Name [t toc] * @subheading Synopsis @example @end example @node [t] toc, [t] tocpart|tocchap|tocfront|tocback|tocentry, [t toc] *, toc @section [t] toc @subheading Name [t] toc @subheading Synopsis @example @end example @node [t] tocpart|tocchap|tocfront|tocback|tocentry, [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5, [t] toc, toc @section [t] tocpart|tocchap|tocfront|tocback|tocentry @subheading Name [t] tocpart|tocchap|tocfront|tocback|tocentry @subheading Synopsis @example @end example @node [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5, [t] lot|lotentry, [t] tocpart|tocchap|tocfront|tocback|tocentry, toc @section [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5 @subheading Name [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5 @subheading Synopsis @example @end example @node [t] lot|lotentry, , [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5, toc @section [t] lot|lotentry @subheading Name [t] lot|lotentry @subheading Synopsis @example @end example @node beginpage, pi, toc, Top @chapter beginpage @node pi, , beginpage, Top @chapter pi @menu * [t] processing-instruction(): [t] processing-instruction[]. @end menu @node [t] processing-instruction[], , , pi @section [t] processing-instruction() @subheading Name [t] processing-instruction() @subheading Synopsis @example @end example @bye docbook2X-0.8.8/xslt/documentation/docbook2man-xslt.txml0000644000175000017500000000000010572276006020234 00000000000000docbook2X-0.8.8/xslt/documentation/extract-jrefentry.xsl0000644000175000017500000001641410105016211020346 00000000000000 untitled <xsl:copy-of select="$title" /> <xsl:call-template name="display-filename"> <xsl:with-param name="filename" select="$filename" /> </xsl:call-template> [T] Undocumented [t ] [P] Undocumented [V] Undocumented [AttrSet] Undocumented [M] docbook2X-0.8.8/xslt/documentation/docbook2man-xslt.xml0000644000175000017500000000000010572276006020050 00000000000000docbook2X-0.8.8/xslt/documentation/Makefile.am0000644000175000017500000000612210570405431016201 00000000000000# $Id: Makefile.am,v 1.11 2007/02/25 22:18:01 stevecheng Exp $ # # This Makefile builds the stylesheet reference documentation. # include $(top_srcdir)/docbuild.mk XSL_FILES = extract-jrefentry.xsl quote-xml.xsl extract-jrefentry2.xsl \ ss-texi.xsl ss-html.xsl XSL_FILES2 = extract-params.xsl XML_FILES = docbook2man-xslt.xml docbook2texi-xslt.xml \ docbook2man-param.xml docbook2texi-param.xml TXML_FILES = docbook2man-xslt.txml docbook2texi-xslt.txml TEXI_FILES = docbook2man-xslt.texi docbook2texi-xslt.texi INFO_FILES = docbook2man-xslt.info docbook2texi-xslt.info all: texi info docbook2man-param.xml docbook2texi-param.xml texi: docbook2man-xslt.texi docbook2texi-xslt.texi info: docbook2man-xslt.info docbook2texi-xslt.info html: .docbook2man-xslt.html .docbook2texi-xslt.html docbook2man-xslt.xml: $(XSL_FILES) $(db2x_xsltproc) -s $(srcdir)/extract-jrefentry2.xsl -o $@ \ $(srcdir)/../man/docbook.xsl \ -g title="docbook2X Man-pages Stylesheets Reference" \ -g input-filename="docbook.xsl" docbook2texi-xslt.xml: $(XSL_FILES) $(db2x_xsltproc) -s $(srcdir)/extract-jrefentry2.xsl -o $@ \ $(srcdir)/../texi/docbook.xsl \ -g title="docbook2X Texinfo Stylesheets Reference" \ -g input-filename="docbook.xsl" docbook2man-param.xml: $(XSL_FILES2) $(db2x_xsltproc) -s $(srcdir)/extract-params.xsl -o $@ \ $(srcdir)/../man/param.xsl docbook2texi-param.xml: $(XSL_FILES2) $(db2x_xsltproc) -s $(srcdir)/extract-params.xsl -o $@ \ $(srcdir)/../texi/param.xsl %.txml: %.xml $(db2x_xsltproc) -s $(srcdir)/ss-texi.xsl -o $@ $< \ -g output-file="$*" %.texi: %.txml $(db2x_texixml) $< %.info: %.texi LANG=C makeinfo $< if HAVE_HTML_XSL .%.html: %.xml $(db2x_xsltproc) -s ss-html.xsl \ -g base.dir="$*.html/" \ -g root.filename="$*" $< if HAVE_TIDY -$(TIDY) -q -m -f /dev/null \ --doctype strict --output-xhtml true --add-xml-decl false \ $*.html/*.html endif touch $@ endif # Don't try to build any DVI stuff. # It breaks distcheck. I don't know why, and don't really care. dvi: dvi-am: dvi-recursive: # ---------------------------------------------------------------------- # # Distribution (automake) # # info_TEXINFOS = $(TEXI_FILES) AUTOMAKE_OPTIONS = no-texinfo.tex # This is a hack, we really do not want to distribute # the .xml or .txml files, because they are huge, # but if we omit them in the straightforward way, # the Texinfo files get rebuilt at the user's end, # which is wrong. # # Really, you ought to be able to tell make # not to consider non-existent files as out-of-date. # dist-hook: touch $(distdir)/docbook2man-xslt.xml touch $(distdir)/docbook2man-xslt.txml touch $(distdir)/docbook2man-xslt.texi touch $(distdir)/docbook2man-xslt.info touch $(distdir)/docbook2texi-xslt.xml touch $(distdir)/docbook2texi-xslt.txml touch $(distdir)/docbook2texi-xslt.texi touch $(distdir)/docbook2texi-xslt.info EXTRA_DIST = $(XSL_FILES) $(XSL_FILES2) # ---------------------------------------------------------------------- # # Clean (automake) # # MAINTAINERCLEANFILES = $(TEXI_FILES) $(INFO_FILES) CLEANFILES = $(XML_FILES) $(TXML_FILES) .DELETE_ON_ERROR: docbook2X-0.8.8/xslt/documentation/Makefile.in0000644000175000017500000004655010572275766016245 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am,v 1.11 2007/02/25 22:18:01 stevecheng Exp $ # # This Makefile builds the stylesheet reference documentation. # # ---------------------------------------------------------------------- # # Common defines for building documentation # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/docbuild.mk subdir = xslt/documentation ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/utf8trans/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = INFO_DEPS = $(srcdir)/docbook2man-xslt.info \ $(srcdir)/docbook2texi-xslt.info am__TEXINFO_TEX_DIR = $(srcdir) DVIS = docbook2man-xslt.dvi docbook2texi-xslt.dvi PDFS = docbook2man-xslt.pdf docbook2texi-xslt.pdf PSS = docbook2man-xslt.ps docbook2texi-xslt.ps HTMLS = docbook2man-xslt.html docbook2texi-xslt.html TEXINFOS = $(TEXI_FILES) TEXI2DVI = texi2dvi TEXI2PDF = $(TEXI2DVI) --pdf --batch MAKEINFOHTML = $(MAKEINFO) --html AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) DVIPS = dvips am__installdirs = "$(DESTDIR)$(infodir)" DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GROFF = @GROFF@ HAVE_GROFF_FALSE = @HAVE_GROFF_FALSE@ HAVE_GROFF_TRUE = @HAVE_GROFF_TRUE@ HAVE_HTML_XSL_FALSE = @HAVE_HTML_XSL_FALSE@ HAVE_HTML_XSL_TRUE = @HAVE_HTML_XSL_TRUE@ HAVE_TIDY_FALSE = @HAVE_TIDY_FALSE@ HAVE_TIDY_TRUE = @HAVE_TIDY_TRUE@ HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@ HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@ ICONV = @ICONV@ INSTALLED_CHARMAP_ROFF = @INSTALLED_CHARMAP_ROFF@ INSTALLED_CHARMAP_TEXI = @INSTALLED_CHARMAP_TEXI@ INSTALLED_DB2X_MANXML = @INSTALLED_DB2X_MANXML@ INSTALLED_DB2X_TEXIXML = @INSTALLED_DB2X_TEXIXML@ INSTALLED_DB2X_XSLTPROC = @INSTALLED_DB2X_XSLTPROC@ INSTALLED_SGML2XML_ISOENT = @INSTALLED_SGML2XML_ISOENT@ INSTALLED_STYLESHEETS_CATALOG = @INSTALLED_STYLESHEETS_CATALOG@ INSTALLED_UTF8TRANS = @INSTALLED_UTF8TRANS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA = @JAVA@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ OSX = @OSX@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RESOLVER_JARS = @RESOLVER_JARS@ SAXON_JARS = @SAXON_JARS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SX = @SX@ TIDY = @TIDY@ VERSION = @VERSION@ XALAN_JARS = @XALAN_JARS@ XMLLINT = @XMLLINT@ XSLTPROC = @XSLTPROC@ XSLT_PROCESSOR = @XSLT_PROCESSOR@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ db2x_perl = $(PERL) # Location of docbook2X programs stylesheets_catalog = $(top_srcdir)/xslt/catalog.xml utf8trans = $(top_builddir)/utf8trans/utf8trans db2x_texixml = $(db2x_perl) $(top_builddir)/perl/db2x_texixml --utf8trans-program=$(utf8trans) --utf8trans-map=$(top_srcdir)/charmaps/texi.charmap db2x_manxml = $(db2x_perl) $(top_builddir)/perl/db2x_manxml --utf8trans-program=$(utf8trans) --utf8trans-map=$(top_srcdir)/charmaps/roff.charmap db2x_xsltproc = $(top_builddir)/perl/db2x_xsltproc -C $(stylesheets_catalog) XSL_FILES = extract-jrefentry.xsl quote-xml.xsl extract-jrefentry2.xsl \ ss-texi.xsl ss-html.xsl XSL_FILES2 = extract-params.xsl XML_FILES = docbook2man-xslt.xml docbook2texi-xslt.xml \ docbook2man-param.xml docbook2texi-param.xml TXML_FILES = docbook2man-xslt.txml docbook2texi-xslt.txml TEXI_FILES = docbook2man-xslt.texi docbook2texi-xslt.texi INFO_FILES = docbook2man-xslt.info docbook2texi-xslt.info # ---------------------------------------------------------------------- # # Distribution (automake) # # info_TEXINFOS = $(TEXI_FILES) AUTOMAKE_OPTIONS = no-texinfo.tex EXTRA_DIST = $(XSL_FILES) $(XSL_FILES2) # ---------------------------------------------------------------------- # # Clean (automake) # # MAINTAINERCLEANFILES = $(TEXI_FILES) $(INFO_FILES) CLEANFILES = $(XML_FILES) $(TXML_FILES) all: all-am .SUFFIXES: .SUFFIXES: .dvi .html .info .pdf .ps .texi $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/docbuild.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu xslt/documentation/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu xslt/documentation/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh .texi.info: restore=: && backupdir="$(am__leading_dot)am$$$$" && \ am__cwd=`pwd` && cd $(srcdir) && \ rm -rf $$backupdir && mkdir $$backupdir && \ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ done; \ else :; fi && \ cd "$$am__cwd"; \ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $@ $<; \ then \ rc=0; \ cd $(srcdir); \ else \ rc=$$?; \ cd $(srcdir) && \ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ fi; \ rm -rf $$backupdir; exit $$rc .texi.dvi: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2DVI) $< .texi.pdf: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2PDF) $< .texi.html: rm -rf $(@:.html=.htp) if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $(@:.html=.htp) $<; \ then \ rm -rf $@; \ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \ else \ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \ exit 1; \ fi $(srcdir)/docbook2man-xslt.info: docbook2man-xslt.texi docbook2man-xslt.dvi: docbook2man-xslt.texi docbook2man-xslt.pdf: docbook2man-xslt.texi docbook2man-xslt.html: docbook2man-xslt.texi $(srcdir)/docbook2texi-xslt.info: docbook2texi-xslt.texi docbook2texi-xslt.dvi: docbook2texi-xslt.texi docbook2texi-xslt.pdf: docbook2texi-xslt.texi docbook2texi-xslt.html: docbook2texi-xslt.texi .dvi.ps: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ $(DVIPS) -o $@ $< uninstall-info-am: @$(PRE_UNINSTALL) @if (install-info --version && \ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \ install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ done; \ else :; fi @$(NORMAL_UNINSTALL) @list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ (if cd "$(DESTDIR)$(infodir)"; then \ echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ else :; fi); \ done dist-info: $(INFO_DEPS) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; \ for base in $$list; do \ case $$base in \ $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$base; then d=.; else d=$(srcdir); fi; \ base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \ for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \ if test -f $$file; then \ relfile=`expr "$$file" : "$$d/\(.*\)"`; \ test -f $(distdir)/$$relfile || \ cp -p $$file $(distdir)/$$relfile; \ else :; fi; \ done; \ done mostlyclean-aminfo: -rm -rf docbook2man-xslt.aux docbook2man-xslt.cp docbook2man-xslt.cps \ docbook2man-xslt.fn docbook2man-xslt.fns docbook2man-xslt.ky \ docbook2man-xslt.kys docbook2man-xslt.log \ docbook2man-xslt.pg docbook2man-xslt.pgs \ docbook2man-xslt.tmp docbook2man-xslt.toc \ docbook2man-xslt.tp docbook2man-xslt.tps docbook2man-xslt.vr \ docbook2man-xslt.vrs docbook2man-xslt.dvi \ docbook2man-xslt.pdf docbook2man-xslt.ps \ docbook2man-xslt.html docbook2texi-xslt.aux \ docbook2texi-xslt.cp docbook2texi-xslt.cps \ docbook2texi-xslt.fn docbook2texi-xslt.fns \ docbook2texi-xslt.ky docbook2texi-xslt.kys \ docbook2texi-xslt.log docbook2texi-xslt.pg \ docbook2texi-xslt.pgs docbook2texi-xslt.tmp \ docbook2texi-xslt.toc docbook2texi-xslt.tp \ docbook2texi-xslt.tps docbook2texi-xslt.vr \ docbook2texi-xslt.vrs docbook2texi-xslt.dvi \ docbook2texi-xslt.pdf docbook2texi-xslt.ps \ docbook2texi-xslt.html maintainer-clean-aminfo: @list='$(INFO_DEPS)'; for i in $$list; do \ i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \ echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../.. @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-info dist-hook check-am: all-am check: check-am all-am: Makefile $(INFO_DEPS) installdirs: for dir in "$(DESTDIR)$(infodir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic html-am: $(HTMLS) info-am: $(INFO_DEPS) install-data-am: install-info-am install-exec-am: install-info: install-info-am install-info-am: $(INFO_DEPS) @$(NORMAL_INSTALL) test -z "$(infodir)" || $(mkdir_p) "$(DESTDIR)$(infodir)" @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; \ for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ if test -f $$ifile; then \ relfile=`echo "$$ifile" | sed 's|^.*/||'`; \ echo " $(INSTALL_DATA) '$$ifile' '$(DESTDIR)$(infodir)/$$relfile'"; \ $(INSTALL_DATA) "$$ifile" "$(DESTDIR)$(infodir)/$$relfile"; \ else : ; fi; \ done; \ done @$(POST_INSTALL) @if (install-info --version && \ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\ install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\ done; \ else : ; fi install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-aminfo \ maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-aminfo mostlyclean-generic pdf: pdf-am pdf-am: $(PDFS) ps: ps-am ps-am: $(PSS) uninstall-am: uninstall-info-am .PHONY: all all-am check check-am clean clean-generic dist-hook \ dist-info distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-aminfo maintainer-clean-generic mostlyclean \ mostlyclean-aminfo mostlyclean-generic pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-info-am all: texi info docbook2man-param.xml docbook2texi-param.xml texi: docbook2man-xslt.texi docbook2texi-xslt.texi info: docbook2man-xslt.info docbook2texi-xslt.info html: .docbook2man-xslt.html .docbook2texi-xslt.html docbook2man-xslt.xml: $(XSL_FILES) $(db2x_xsltproc) -s $(srcdir)/extract-jrefentry2.xsl -o $@ \ $(srcdir)/../man/docbook.xsl \ -g title="docbook2X Man-pages Stylesheets Reference" \ -g input-filename="docbook.xsl" docbook2texi-xslt.xml: $(XSL_FILES) $(db2x_xsltproc) -s $(srcdir)/extract-jrefentry2.xsl -o $@ \ $(srcdir)/../texi/docbook.xsl \ -g title="docbook2X Texinfo Stylesheets Reference" \ -g input-filename="docbook.xsl" docbook2man-param.xml: $(XSL_FILES2) $(db2x_xsltproc) -s $(srcdir)/extract-params.xsl -o $@ \ $(srcdir)/../man/param.xsl docbook2texi-param.xml: $(XSL_FILES2) $(db2x_xsltproc) -s $(srcdir)/extract-params.xsl -o $@ \ $(srcdir)/../texi/param.xsl %.txml: %.xml $(db2x_xsltproc) -s $(srcdir)/ss-texi.xsl -o $@ $< \ -g output-file="$*" %.texi: %.txml $(db2x_texixml) $< %.info: %.texi LANG=C makeinfo $< @HAVE_HTML_XSL_TRUE@.%.html: %.xml @HAVE_HTML_XSL_TRUE@ $(db2x_xsltproc) -s ss-html.xsl \ @HAVE_HTML_XSL_TRUE@ -g base.dir="$*.html/" \ @HAVE_HTML_XSL_TRUE@ -g root.filename="$*" $< @HAVE_HTML_XSL_TRUE@@HAVE_TIDY_TRUE@ -$(TIDY) -q -m -f /dev/null \ @HAVE_HTML_XSL_TRUE@@HAVE_TIDY_TRUE@ --doctype strict --output-xhtml true --add-xml-decl false \ @HAVE_HTML_XSL_TRUE@@HAVE_TIDY_TRUE@ $*.html/*.html @HAVE_HTML_XSL_TRUE@ touch $@ # Don't try to build any DVI stuff. # It breaks distcheck. I don't know why, and don't really care. dvi: dvi-am: dvi-recursive: # This is a hack, we really do not want to distribute # the .xml or .txml files, because they are huge, # but if we omit them in the straightforward way, # the Texinfo files get rebuilt at the user's end, # which is wrong. # # Really, you ought to be able to tell make # not to consider non-existent files as out-of-date. # dist-hook: touch $(distdir)/docbook2man-xslt.xml touch $(distdir)/docbook2man-xslt.txml touch $(distdir)/docbook2man-xslt.texi touch $(distdir)/docbook2man-xslt.info touch $(distdir)/docbook2texi-xslt.xml touch $(distdir)/docbook2texi-xslt.txml touch $(distdir)/docbook2texi-xslt.texi touch $(distdir)/docbook2texi-xslt.info .DELETE_ON_ERROR: # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: docbook2X-0.8.8/xslt/documentation/docbook2texi-xslt.info0000644000175000017500000107330010572276006020417 00000000000000This is docbook2texi-xslt.info, produced by makeinfo version 4.8 from docbook2texi-xslt.texi. INFO-DIR-SECTION Document Preparation START-INFO-DIR-ENTRY * docbook2X Texinfo Stylesheets Reference: (docbook2texi-xslt). . END-INFO-DIR-ENTRY  File: docbook2texi-xslt.info, Node: Top, Next: Guide to the stylesheet reference, Up: (dir) docbook2X Texinfo Stylesheets Reference *************************************** * Menu: * docbook2X Texinfo Stylesheets Reference: Guide to the stylesheet reference. * common/l10n:: * common/messages:: * common/labels:: * common/titles:: * param:: Stylesheet parameters * texifile:: Handle multiple files in Texinfo * texinode:: Nodal elements and their node names * texinode-base:: Low-level Texinfo node handling * chunk:: Output the preamble * autotoc:: Texinfo menus and directory entries * menudescrip:: Texinfo menu descriptions * index:: Texinfo Indices * sectioning:: Mapping of DocBook sections into Texinfo sections * division:: DocBook divisions * sections:: DocBook sectioning elements * refentry:: refentry markup * admon:: Admonitions * block:: Block-level objects * caption:: Captions (really headings) * formal:: DocBook formal objects * synop:: Synopses * verbatim:: Verbatim environments * footnote:: Footnotes * force-inline:: Process only inline content * inline:: Inline markup * math:: Equations * qandaset:: Question-and-answer markup * table:: Table support * xref:: Handle cross references and links * glossary:: Glossaries * lists:: All sorts of lists * callout:: Call-outs * graphics:: Graphics and media objects * biblio:: Bibliographies * info:: The *info wrappers * keywords:: Keyword and subject meta-data * toc:: User-defined table of contents (toc markup) * beginpage:: beginpage element * pi:: Handle processing instructions * docbook:: Texinfo XSLT stylesheets driver --- The Detailed Node Listing --- common/l10n * [P] localization-file:: (URI of) XML document containing localization data * [V] l10n-data:: XML element node containing localization-data * [P] default-document-language:: Assumed language of the input document when it is not specified in the source * [T] l10n-match-language:: Determine the language to translate to * [T] l10n-xml-language:: Determine the language of the given XML fragment * [T] l10n-xml-actual-language:: Undocumented * [M] l10n-substitution:: Output localized text, substituting parameters if necessary * [t l10n-substitution] text(): [t l10n-substitution] text[]. common/messages * [P] message-language:: Undocumented * [T] l10n-message-choose-language:: Undocumented * [t l10n-substitution] l;a1:: * [t l10n-substitution] l;a2:: * [t l10n-substitution] l;a3:: * [t l10n-substitution] l;a4:: * [t l10n-substitution] l;a5:: * [T] user-message:: Emit a user message * [T] print-node-line-number:: Display file name and line number of a node * [T] print-node-xpath:: Display the path of a node * [t print-node-xpath] text(): [t print-node-xpath] text[]. * [t print-node-xpath] @*:: * [t print-node-xpath] *[@id != '']:: * [t print-node-xpath] *:: * [t print-node-xpath] /:: common/labels * [M] for-label:: Provides access to element labels * [t for-label] *[@label!='']:: * [t for-label] *:: * [t for-label] qandaentry:: * [t for-label] question:: * [t for-label] answer:: * [t label] *:: * [t label] text(): [t label] text[]. common/titles * [M] for-title:: Provides access to element titles * [t title] title:: * [t title] *:: * [t title] text(): [t title] text[]. * [t for-title] set:: * [t for-title] *:: * [t for-title] book:: * [t for-title] part:: * [t for-title] preface|chapter|appendix:: * [t for-title] partintro:: * [t for-title] dedication:: * [t for-title] colophon:: * [t for-title] article:: * [t for-title] reference:: * [t for-title] refentry:: * [t for-title] refsynopsisdiv:: * [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect:: * [t for-title] bibliography:: * [t for-title] glossary:: * [t for-title] index:: * [t for-title] figure|table|example|equation:: * [t for-title] qandaset|qandadiv:: * [t for-title] abstract:: * [t for-title] caution|tip|warning|important|note:: * [t no-anchors] *:: * [t no-anchors] footnote:: * [t no-anchors] anchor:: * [t no-anchors] ulink:: * [t no-anchors] link:: * [t no-anchors] olink:: * [t no-anchors] indexterm:: * [t no-anchors] xref:: param * [P] user-message-prefix:: Undocumented * [P] captions-display-as-headings:: Use heading markup for minor captions? * [P] links-use-pxref:: Translate link using @pxref * [P] explicit-node-names:: Insist on manually constructed Texinfo node names * [P] show-comments:: Display comment elements? * [P] funcsynopsis-decoration:: Decorate elements of a FuncSynopsis? * [P] function-parens:: Generate parentheses after a function? * [P] refentry-display-name:: Output NAME header before 'RefName'(s)? * [P] manvolnum-in-xref:: Output manvolnum as part of refentry cross-reference? * [P] prefer-textobjects:: Prefer textobject over imageobject? * [P] semantic-decorations:: Use Texinfo semantic inline markup? * [P] custom-localization-file:: URI of XML document containing custom localization data * [P] custom-l10n-data:: XML document containing custom localization data * [P] author-othername-in-middle:: Is othername in author a middle name? * [P] output-file:: Name of the Info file * [P] directory-category:: The categorization of the document in the Info directory * [P] directory-description:: The description of the document in the Info directory * [P] index-category:: The Texinfo index to use * [P] qanda-defaultlabel:: Sets the default for defaultlabel on QandASet. * [P] qandaset-generate-toc:: Is a Table of Contents created for QandASets? texifile * [t texinfo-file-name] *:: * [t texinfo-file-name] text(): [t texinfo-file-name] text[]. * [t for-texinfo-file-name] set/book:: * [t for-texinfo-file-name] /*:: * [t for-texinfo-file-name] /set/book//*:: * [t for-texinfo-file-name] node(): [t for-texinfo-file-name] node[]. * [T] get-texinfo-file-name:: Find the file that contains the result texinode * [M] is-texinfo-node:: Determine if given element is a Texinfo node * [t is-texinfo-node] dedication|preface|chapter|appendix|reference|article:: * [t is-texinfo-node] sect1|sect2|sect3|sect4|sect5|section|simplesect:: * [t is-texinfo-node] refentry:: * [t is-texinfo-node] *:: * [t is-texinfo-node] part:: * [t is-texinfo-node] partintro|partintro//*:: * [t is-texinfo-node] book:: * [t is-texinfo-node] index|bibliography|glossary:: * [M] for-texinfo-node-name:: Return a suggested nodename * [t for-texinfo-node-name] *[@xreflabel]:: * [t for-texinfo-node-name] *[child;;title]:: * [t for-texinfo-node-name] *:: * [t for-texinfo-node-name] book|/*:: * [t for-texinfo-node-name] reference|preface|chapter|appendix|glossary|bibliography| sect1|sect2|sect3|sect4|sect5|section|refsect1|refsect2|refsect3:: * [t for-texinfo-node-name] article:: * [t for-texinfo-node-name] refentry:: * [t for-texinfo-node-name] part:: * [t for-texinfo-node-name] varlistentry:: * [t for-texinfo-node-name] index:: * [t is-texinfo-top-node] book|/*:: * [t is-texinfo-top-node] *:: * [t texinfo-node-name] *:: * [t texinfo-node-name] text(): [t texinfo-node-name] text[]. texinode-base * [T] make-nodenamemap:: Undocumented * [t nodenamemap] *:: * [t nodenamemap] text(): [t nodenamemap] text[]. * [T] make-texinfo-node:: Output node element * [T] make-texinfo-nontop-node:: Undocumented * [T] make-texinfo-top-node:: Undocumented * [T] make-texinfo-top-node-firstchild:: Undocumented chunk * [t] /:: * [M] top-chunk:: Process a top-level chunk * [t top-chunk] *:: autotoc * [M] texinfo-menu:: Make Texinfo menus * [V] make-detailed-menus:: Undocumented * [t texinfo-menu] *:: * [t texinfo-menu] book|/*:: * [t texinfo-detail-menu-entry] book/*|/*/*|book/part/*:: * [t texinfo-detail-menu-entry] book/part:: * [t texinfo-detail-menu-entry] *:: * [t texinfo-menu-entry] part:: * [T] make-texinfo-menu-entry:: Undocumented * [T] make-texinfo-directory:: Make a Texinfo directory entry * [t for-menu-title] node(): [t for-menu-title] node[]. menudescrip * [M] for-menu-description:: Return description for Texinfo node * [t for-menu-description] refentry:: * [t for-menu-description] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book:: * [t for-menu-description] *:: * [T] get-texinfo-directory-description:: Undocumented * [M] for-directory-category:: Return Info directory category * [T] get-texinfo-directory-category:: Undocumented * [t for-directory-category] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book|refentry:: * [t for-directory-category] *:: index * [t] index:: * [t] indexdiv:: * [t] indexterm:: * [t] primary:: * [t] secondary|tertiary:: * [t] see|seealso:: * [t] indexentry:: * [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie:: sectioning * [T] get-texinfo-section-level:: Give Texinfo structuring command for given section level * [T] make-texinfo-section:: Make Texinfo section * [T] section:: Standard template for section structures division * [t top-chunk] set:: * [t] book:: * [t] part:: * [t] partintro:: sections * [t] sect1|sect2|sect3|sect4|sect5|simplesect|section:: * [t] bridgehead:: * [t] title:: * [t] titleabbrev:: * [t] subtitle:: refentry * [t] reference:: * [t] refentry:: * [t] refmeta:: * [t] manvolnum:: * [t no-inline-markup] manvolnum:: * [t] refmiscinfo:: * [t] refentrytitle:: * [t] refnamediv:: * [t] refname:: * [t] refpurpose:: * [t] refdescriptor:: * [t] refclass:: * [t] refsynopsisdiv:: * [t] refsect1|refsect2|refsect3:: admon * [T] admonition-title:: Undocumented * [t] note|important|warning|caution|tip:: block * [T] block-object:: Undocumented * [t] para|simpara:: * [t] formalpara:: * [t] formalpara/title:: * [t] formalpara/para:: * [t] blockquote:: * [t] blockquote/title:: * [t] attribution:: * [t blockquote-attribution] attribution:: * [t] epigraph:: * [t] sidebar:: * [t] abstract:: * [t] msgset:: * [t] msgentry:: * [t] simplemsgentry:: * [t] msg:: * [t] msgmain:: * [t] msgmain/title:: * [t] msgsub:: * [t] msgsub/title:: * [t] msgrel:: * [t] msgrel/title:: * [t] msgtext:: * [t] msginfo:: * [t] msglevel|msgorig|msgaud:: * [t] msgexplan:: * [t] msgexplan/title:: * [t] revhistory:: * [t] revhistory/revision:: * [t] revision/revnumber:: * [t] revision/date:: * [t] revision/authorinitials:: * [t] revision/authorinitials[1]:: * [t] revision/revremark:: * [t] revision/revdescription:: * [t] ackno:: caption * [T] make-caption:: Render as a `caption' formal * [T] formal-object:: Undocumented * [T] formal-object-title:: Undocumented * [T] informal-object:: Undocumented * [T] semiformal-object:: Undocumented * [t] figure|table|example:: * [t] equation:: * [t] informalfigure:: * [t] informalexample:: * [t] informaltable:: * [t] informalequation:: synop * [M] no-inline-markup:: Plain text synopses * [t] synopsis:: * [t no-inline-markup] *:: * [t no-inline-markup] text(): [t no-inline-markup] text[]. * [t] cmdsynopsis:: * [t cmdsynopsis] *:: * [t cmdsynopsis] sbr:: * [t cmdsynopsis] command:: * [t cmdsynopsis] group|arg:: * [t cmdsynopsis] group/*:: * [t cmdsynopsis] group/group:: * [t cmdsynopsis] group/option:: * [t cmdsynopsis] group/arg:: * [t cmdsynopsis] synopfragment|synopfragmentref:: * [t] funcsynopsis:: * [t funcsynopsis] *:: * [t funcsynopsis] funcsynopsisinfo:: * [T] funcprototype:: Undocumented * [t funcsynopsis] modifier:: * [t funcsynopsis] funcdef:: * [t funcsynopsis] function:: * [t funcsynopsis] void:: * [t funcsynopsis] varargs:: * [t funcsynopsis] paramdef:: * [t funcsynopsis] paramdef/parameter:: * [t funcsynopsis] funcparams:: verbatim * [t] literallayout[@class='monospaced']:: * [t] literallayout:: * [t] programlisting|screen:: * [t] address:: footnote * [t] footnote:: * [t] footnoteref:: force-inline * [M] coerce-into-inline:: Process only inline content * [t coerce-into-inline] calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist| simplelist|variablelist| caution|important|note|tip|warning| literallayout|programlisting|programlistingco| screen|screenco|screenshot| synopsis|cmdsynopsis|funcsynopsis| classsynopsis|fieldsynopsis| constructorsynopsis|destructorsynopsis|methodsynopsis| formalpara| address|blockquote| graphic|graphicco|mediaobject|mediaobjectco| informalequation|informalexample|informalfigure|informaltable| equation|example|figure|table| msgset|procedure|qandaset:: * [t coerce-into-inline] para|simpara:: * [t coerce-into-inline] *|text(): [t coerce-into-inline] *|text[]. inline * [T] inline-plain:: Undocumented * [T] inline-monospace:: Undocumented * [T] inline-bold:: Undocumented * [T] inline-italic:: Undocumented * [T] inline-roman:: Undocumented * [T] inline-superscript:: Undocumented * [T] inline-subscript:: Undocumented * [T] inline-markup-emph:: Undocumented * [T] inline-markup-code:: Undocumented * [T] inline-markup-samp:: Undocumented * [T] inline-markup-cite:: Undocumented * [T] inline-markup-email:: Undocumented * [T] inline-markup-dfn:: Undocumented * [T] inline-markup-env:: Undocumented * [T] inline-markup-file:: Undocumented * [T] inline-markup-sc:: Undocumented * [T] inline-markup-acronym:: Undocumented * [T] inline-markup-strong:: Undocumented * [T] inline-markup-key:: Undocumented * [T] inline-markup-kbd:: Undocumented * [T] inline-markup-var:: Undocumented * [t] personname:: * [t] author|editor|othercredit|authorinitials:: * [t] accel:: * [t] action:: * [t] application:: * [t] classname:: * [t] exceptionname:: * [t] interfacename:: * [t] methodname:: * [t] command:: * [t] computeroutput:: * [t] constant:: * [t] database:: * [t] errorcode:: * [t] errorname:: * [t] errortype:: * [t] errortext:: * [t] envar:: * [t] filename:: * [t] refentrytitle/function:: * [t] function:: * [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu:: * [t] hardware:: * [t] interface:: * [t] interfacedefinition:: * [t] keycap:: * [t] keycode:: * [t] keysym:: * [t] literal:: * [t] medialabel:: * [t] shortcut:: * [t] mousebutton:: * [t] option:: * [t] parameter:: * [t] property:: * [t] prompt:: * [t] replaceable:: * [t] returnvalue:: * [t] structfield:: * [t] structname:: * [t] symbol:: * [t] systemitem:: * [t] token:: * [t] type:: * [t] userinput:: * [t] abbrev:: * [t] acronym:: * [t] citerefentry:: * [t] citetitle:: * [t] emphasis[@role='strong' or @role='bold' or parent;;emphasis]:: * [t] emphasis:: * [t] foreignphrase:: * [t] markup:: * [t] phrase:: * [t] quote:: * [t] varname:: * [t] wordasword:: * [t] lineannotation:: * [t] superscript:: * [t] subscript:: * [t] trademark:: * [t] firstterm:: * [t] glossterm:: * [t] sgmltag:: * [T] format-sgmltag:: Undocumented * [t] email:: * [t] keycombo:: * [t] menuchoice:: * [T] format-menuchoice:: Undocumented * [t] optional:: * [t] citation:: * [t] comment|remark:: * [t] productname|productnumber:: * [t] pob|street|city|state|postcode|country|phone|fax|otheraddr:: * [t] firstname|surname|lineage|othername|honorific:: math * [t] inlineequation:: * [t] alt:: qandaset * [t] question|answer:: * [t] qandaentry:: * [t] qandaset|qandadiv:: * [t] label:: table * [t] tgroup:: * [t] colspec:: * [t] spanspec:: * [t] thead|tfoot|tbody:: * [t] thead/colspec:: * [t] tfoot/colspec:: * [t] row:: * [t] entry:: * [T] get-proportional-colwidth:: Get the proportional width as specified in the given colspec xref * [T] anchor:: Undocumented * [t] anchor:: * [T] check-xref:: Undocumented * [t] xref:: * [t] link:: * [t] ulink:: * [t] olink:: * [M] xref-to:: Give cross-reference markup * [t xref-to] *:: * [t xref-to] co:: glossary * [t] glossary:: * [t] glosslist:: * [t] glossdiv:: * [t] glossentry:: * [t] glossentry/glossterm:: * [t] glossentry/acronym:: * [t] glossentry/abbrev:: * [t] glossentry/revhistory:: * [t] glossentry/glossdef:: * [t] glossentry/glosssee|glossseealso:: * [t glosssee-xref] glossentry:: * [t glosssee-xref] glossentry/glossterm[1]:: * [t glosssee-xref] *:: lists * [t] itemizedlist:: * [t] orderedlist:: * [t] variablelist:: * [t] listitem:: * [t] varlistentry:: * [t] varlistentry/term:: * [t] varlistentry/listitem:: * [t] simplelist[@type='horiz']:: * [t] simplelist:: * [t] simplelist[@type='inline']:: * [T] simplelist-horiz:: Undocumented * [T] simplelist-horiz-row:: Undocumented * [T] simplelist-vert:: Undocumented * [T] simplelist-vert-row:: Undocumented * [t] member:: * [t] simplelist[@type='inline']/member:: * [t] simplelist[@type='inline']/member[1]:: * [t] procedure:: * [t] substeps:: * [t] step:: * [t] segmentedlist:: * [t] segtitle:: * [t segtitle-in-seg] segtitle:: * [t] seglistitem:: * [t] seg:: callout * [t] programlistingco|screenco:: * [t] areaspec|areaset|area:: * [t no-inline-markup] co:: * [t] co:: * [t co] co:: * [T] callout-bug:: Undocumented * [t] coref:: * [T] check-co:: Undocumented * [t] calloutlist:: * [t] callout:: * [T] callout-process-arearefs:: Undocumented * [T] callout-arearef:: Undocumented graphics * [t] screenshot:: * [t] screeninfo:: * [T] imagedata:: Undocumented * [t] graphic:: * [t] inlinegraphic:: * [T] select-mediaobject:: Undocumented * [t] mediaobject:: * [t] inlinemediaobject:: * [t] objectinfo:: * [t] imageobject:: * [t] textobject:: * [t] caption:: biblio * [t] bibliography:: * [T] biblio-item-separator:: Undocumented * [t] bibliodiv:: * [t] biblioentry:: * [t] bibliomixed:: * [t bibliography] *:: * [t bibliography] abbrev:: * [t bibliography] abstract:: * [t bibliography] address:: * [t bibliography] affiliation:: * [t bibliography] shortaffil:: * [t bibliography] jobtitle:: * [t bibliography] artheader:: * [t bibliography] artpagenums:: * [t bibliography] author:: * [t bibliography] authorblurb:: * [t bibliography] authorgroup:: * [t bibliography] authorinitials:: * [t bibliography] bibliomisc:: * [t bibliography] bibliomset:: * [t bibliography] biblioset:: * [t bibliography] biblioset/title|biblioset/citetitle:: * [t bibliography] bookbiblio:: * [t bibliography] citetitle:: * [t bibliography] collab:: * [t bibliography] collabname:: * [t bibliography] confgroup:: * [t bibliography] confdates:: * [t bibliography] conftitle:: * [t bibliography] confnum:: * [t bibliography] confsponsor:: * [t bibliography] contractnum:: * [t bibliography] contractsponsor:: * [t bibliography] contrib:: * [t bibliography] copyright:: * [t bibliography] year:: * [t bibliography] year[position()=last()]: [t bibliography] year[position[]=last[]]. * [t bibliography] holder:: * [t bibliography] corpauthor:: * [t bibliography] corpname:: * [t bibliography] date:: * [t bibliography] edition:: * [t bibliography] editor:: * [t bibliography] personname:: * [t bibliography] firstname:: * [t bibliography] honorific:: * [t bibliography] indexterm:: * [t bibliography] invpartnumber:: * [t bibliography] isbn:: * [t bibliography] issn:: * [t bibliography] issuenum:: * [t bibliography] lineage:: * [t bibliography] orgname:: * [t bibliography] orgdiv:: * [t bibliography] othercredit:: * [t bibliography] othername:: * [t bibliography] pagenums:: * [t bibliography] printhistory:: * [t bibliography] productname:: * [t bibliography] productnumber:: * [t bibliography] pubdate:: * [t bibliography] publisher:: * [t bibliography] publishername:: * [t bibliography] pubsnumber:: * [t bibliography] releaseinfo:: * [t bibliography] revhistory:: * [t bibliography] seriesinfo:: * [t bibliography] seriesvolnums:: * [t bibliography] subtitle:: * [t bibliography] surname:: * [t bibliography] title:: * [t bibliography] titleabbrev:: * [t bibliography] volumenum:: * [t bibliomixed] *:: * [t bibliomixed] abbrev:: * [t bibliomixed] abstract:: * [t bibliomixed] address:: * [t bibliomixed] affiliation:: * [t bibliomixed] artpagenums:: * [t bibliomixed] author:: * [t bibliomixed] authorblurb:: * [t bibliomixed] authorgroup:: * [t bibliomixed] authorinitials:: * [t bibliomixed] bibliomisc:: * [t bibliomixed] bibliomset:: * [t bibliomixed] bibliomset/title|bibliomset/citetitle:: * [t bibliomixed] biblioset:: * [t bibliomixed] citetitle:: * [t bibliomixed] collab:: * [t bibliomixed] confgroup:: * [t bibliomixed] contractnum:: * [t bibliomixed] contractsponsor:: * [t bibliomixed] contrib:: * [t bibliomixed] copyright:: * [t bibliomixed] corpauthor:: * [t bibliomixed] corpname:: * [t bibliomixed] date:: * [t bibliomixed] edition:: * [t bibliomixed] editor:: * [t bibliomixed] firstname:: * [t bibliomixed] honorific:: * [t bibliomixed] indexterm:: * [t bibliomixed] invpartnumber:: * [t bibliomixed] isbn:: * [t bibliomixed] issn:: * [t bibliomixed] issuenum:: * [t bibliomixed] lineage:: * [t bibliomixed] orgname:: * [t bibliomixed] othercredit:: * [t bibliomixed] othername:: * [t bibliomixed] pagenums:: * [t bibliomixed] printhistory:: * [t bibliomixed] productname:: * [t bibliomixed] productnumber:: * [t bibliomixed] pubdate:: * [t bibliomixed] publisher:: * [t bibliomixed] publishername:: * [t bibliomixed] pubsnumber:: * [t bibliomixed] releaseinfo:: * [t bibliomixed] revhistory:: * [t bibliomixed] seriesvolnums:: * [t bibliomixed] subtitle:: * [t bibliomixed] surname:: * [t bibliomixed] title:: * [t bibliomixed] titleabbrev:: * [t bibliomixed] volumenum:: info * [t] corpauthor:: * [t] jobtitle:: * [t] orgname:: * [t] orgdiv:: * [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo:: * [t] bookinfo|setinfo|seriesinfo:: * [t] partinfo:: * [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo:: * [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo:: * [t] objectinfo: [t] objectinfo <1>. * [t info-wrapper] node(): [t info-wrapper] node[]. keywords * [t] keywordset:: * [t] subjectset:: toc * [t toc] *:: * [t] toc:: * [t] tocpart|tocchap|tocfront|tocback|tocentry:: * [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5:: * [t] lot|lotentry:: beginpage * [t] beginpage:: pi * [t] processing-instruction(): [t] processing-instruction[]. docbook * [t] *:: * [t] text(): [t] text[].  File: docbook2texi-xslt.info, Node: Guide to the stylesheet reference, Next: common/l10n, Prev: Top, Up: Top 1 docbook2X Texinfo Stylesheets Reference ***************************************** For the most part, this reference assumes knowledge of XSLT. But if you are not familiar with XSLT, you can still look at the page of stylesheet parameters; they are the commonly used options to the stylesheets that may be directly set from the command line. Also take a look at the introductory text to each XSL file, which gives some general advice to tweaking the output of the stylesheets. In the lists of stylesheet items, the following symbols are prefixed before each item to indicate their type: [P] A global parameter. The synopsis for the parameter shows its default value. [V] A global variable. [M] A template mode. [T] A named template. [t MODE] A template with a `match' attribute, for the given mode. If MODE is omitted, that means the default mode. These usually have no description; they are just listed so that you know the template exists.  File: docbook2texi-xslt.info, Node: common/l10n, Next: common/messages, Prev: Guide to the stylesheet reference, Up: Top 2 common/l10n ************* * Menu: * [P] localization-file:: (URI of) XML document containing localization data * [V] l10n-data:: XML element node containing localization-data * [P] default-document-language:: Assumed language of the input document when it is not specified in the source * [T] l10n-match-language:: Determine the language to translate to * [T] l10n-xml-language:: Determine the language of the given XML fragment * [T] l10n-xml-actual-language:: Undocumented * [M] l10n-substitution:: Output localized text, substituting parameters if necessary * [t l10n-substitution] text(): [t l10n-substitution] text[].  File: docbook2texi-xslt.info, Node: [P] localization-file, Next: [V] l10n-data, Up: common/l10n 2.1 [P] localization-file ========================= Name ---- [P] localization-file -- (URI of) XML document containing localization data Synopsis -------- Description ----------- This parameter specifies the URI of the localization-set document. This document, written in XML, describes all the text translations (and other locale-specific information) used by the stylesheet. You do not need to change this parameter unless you want to use custom localization data.  File: docbook2texi-xslt.info, Node: [V] l10n-data, Next: [P] default-document-language, Prev: [P] localization-file, Up: common/l10n 2.2 [V] l10n-data ================= Name ---- [V] l10n-data -- XML element node containing localization-data Synopsis -------- Description ----------- This is just `document($localization-file)/l:localization-set'. There is no need to change this.  File: docbook2texi-xslt.info, Node: [P] default-document-language, Next: [T] l10n-match-language, Prev: [V] l10n-data, Up: common/l10n 2.3 [P] default-document-language ================================= Name ---- [P] default-document-language -- Assumed language of the input document when it is not specified in the source Synopsis -------- Description ----------- If the source document does not specify what language it is written in using the `lang' or `xml:lang' attribute. then it is assumed to be in the language this parameter is set to. If these attributes are present (and in effect, whenever the stylesheet needs language information), the language specified in this parameter is ignored. You rarely need to change this parameter; it is better to change the source document instead, adding the `lang' or the `xml:lang' attribute. The format of the value of this parameter is the usual `LANGUAGE_CODE-COUNTRY_CODE'. For example, `zh-TW'. The hyphen (`-') may also be an underscore (`_').  File: docbook2texi-xslt.info, Node: [T] l10n-match-language, Next: [T] l10n-xml-language, Prev: [P] default-document-language, Up: common/l10n 2.4 [T] l10n-match-language =========================== Name ---- [T] l10n-match-language -- Determine the language to translate to Synopsis -------- Description ----------- Given a language code `lang' (usually obtained from `l10n-xml-language'), match it with a language code in the localization data file. The new language code may in fact be the same language code, or it could be the language code with the country-code part stripped. If the localization data file does not contain the language `lang', then some default language that does exist is returned. Parameters ---------- `lang' The original language code.  File: docbook2texi-xslt.info, Node: [T] l10n-xml-language, Next: [T] l10n-xml-actual-language, Prev: [T] l10n-match-language, Up: common/l10n 2.5 [T] l10n-xml-language ========================= Name ---- [T] l10n-xml-language -- Determine the language of the given XML fragment Synopsis -------- Description ----------- Returns the language of the XML content at the given node, as determined by the `lang' or `xml:lang' attribute. The result is always given in a normalized form: `LANGUAGE_CODE-COUNTRY_CODE', with the LANGUAGE_CODE and COUNTRY_CODE always in lower case. The `-COUNTRY_CODE' may be missing. No checking is done to make sure the language code is valid. Parameters ---------- `target' The (element) node to find out the language for. Defaults to the context node.  File: docbook2texi-xslt.info, Node: [T] l10n-xml-actual-language, Next: [M] l10n-substitution, Prev: [T] l10n-xml-language, Up: common/l10n 2.6 [T] l10n-xml-actual-language ================================ Name ---- [T] l10n-xml-actual-language -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [M] l10n-substitution, Next: [t l10n-substitution] text[], Prev: [T] l10n-xml-actual-language, Up: common/l10n 2.7 [M] l10n-substitution ========================= Name ---- [M] l10n-substitution -- Output localized text, substituting parameters if necessary Description ----------- A piece of the translated text is processed with this mode to perform any substitutions of parameters like chapter numbers, etc. Text nodes are echoed through in this mode.  File: docbook2texi-xslt.info, Node: [t l10n-substitution] text[], Prev: [M] l10n-substitution, Up: common/l10n 2.8 [t l10n-substitution] text() ================================ Name ---- [t l10n-substitution] text() Synopsis --------  File: docbook2texi-xslt.info, Node: common/messages, Next: common/labels, Prev: common/l10n, Up: Top 3 common/messages ***************** * Menu: * [P] message-language:: Undocumented * [T] l10n-message-choose-language:: Undocumented * [t l10n-substitution] l;a1:: * [t l10n-substitution] l;a2:: * [t l10n-substitution] l;a3:: * [t l10n-substitution] l;a4:: * [t l10n-substitution] l;a5:: * [T] user-message:: Emit a user message * [T] print-node-line-number:: Display file name and line number of a node * [T] print-node-xpath:: Display the path of a node * [t print-node-xpath] text(): [t print-node-xpath] text[]. * [t print-node-xpath] @*:: * [t print-node-xpath] *[@id != '']:: * [t print-node-xpath] *:: * [t print-node-xpath] /::  File: docbook2texi-xslt.info, Node: [P] message-language, Next: [T] l10n-message-choose-language, Up: common/messages 3.1 [P] message-language ======================== Name ---- [P] message-language -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] l10n-message-choose-language, Next: [t l10n-substitution] l;a1, Prev: [P] message-language, Up: common/messages 3.2 [T] l10n-message-choose-language ==================================== Name ---- [T] l10n-message-choose-language -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [t l10n-substitution] l;a1, Next: [t l10n-substitution] l;a2, Prev: [T] l10n-message-choose-language, Up: common/messages 3.3 [t l10n-substitution] l:a1 ============================== Name ---- [t l10n-substitution] l:a1 Synopsis --------  File: docbook2texi-xslt.info, Node: [t l10n-substitution] l;a2, Next: [t l10n-substitution] l;a3, Prev: [t l10n-substitution] l;a1, Up: common/messages 3.4 [t l10n-substitution] l:a2 ============================== Name ---- [t l10n-substitution] l:a2 Synopsis --------  File: docbook2texi-xslt.info, Node: [t l10n-substitution] l;a3, Next: [t l10n-substitution] l;a4, Prev: [t l10n-substitution] l;a2, Up: common/messages 3.5 [t l10n-substitution] l:a3 ============================== Name ---- [t l10n-substitution] l:a3 Synopsis --------  File: docbook2texi-xslt.info, Node: [t l10n-substitution] l;a4, Next: [t l10n-substitution] l;a5, Prev: [t l10n-substitution] l;a3, Up: common/messages 3.6 [t l10n-substitution] l:a4 ============================== Name ---- [t l10n-substitution] l:a4 Synopsis --------  File: docbook2texi-xslt.info, Node: [t l10n-substitution] l;a5, Next: [T] user-message, Prev: [t l10n-substitution] l;a4, Up: common/messages 3.7 [t l10n-substitution] l:a5 ============================== Name ---- [t l10n-substitution] l:a5 Synopsis --------  File: docbook2texi-xslt.info, Node: [T] user-message, Next: [T] print-node-line-number, Prev: [t l10n-substitution] l;a5, Up: common/messages 3.8 [T] user-message ==================== Name ---- [T] user-message -- Emit a user message Synopsis -------- Description ----------- This template is used in place of `xsl:message'. It traces the path of the given node to help in debugging and allows messages to be localized. Parameters ---------- `node' The node to get to trace the path to. Default is the context node. `arg' Additional string argument to message, if any. `key' The standard message text. If a localization/customization exists, it is keyed under this text and displayed instead of the standard message text.  File: docbook2texi-xslt.info, Node: [T] print-node-line-number, Next: [T] print-node-xpath, Prev: [T] user-message, Up: common/messages 3.9 [T] print-node-line-number ============================== Name ---- [T] print-node-line-number -- Display file name and line number of a node Synopsis -------- Description ----------- This template displays the file name and the line number in that file that contains the given node. In addition the name of the given node is shown in parentheses (usually the element name). The output is suitable for diagnostics to the user. ("filename" means the "filename" part of the URI of the containing entity.) Parameters ---------- `node' The node to get to print the information for. Default is the context node.  File: docbook2texi-xslt.info, Node: [T] print-node-xpath, Next: [t print-node-xpath] text[], Prev: [T] print-node-line-number, Up: common/messages 3.10 [T] print-node-xpath ========================= Name ---- [T] print-node-xpath -- Display the path of a node Synopsis -------- Description ----------- This template displays the address of the given node in XPath notation, in a compact yet unambiguous form suitable for diagnostics to the user. It assumes that ID attributes are named `id', and if an element has an ID defined, then the element will be addressed using that ID, instead of a long XPath starting from the root. Parameters ---------- `node' The node to get to trace the path to. Default is the context node.  File: docbook2texi-xslt.info, Node: [t print-node-xpath] text[], Next: [t print-node-xpath] @*, Prev: [T] print-node-xpath, Up: common/messages 3.11 [t print-node-xpath] text() ================================ Name ---- [t print-node-xpath] text() Synopsis --------  File: docbook2texi-xslt.info, Node: [t print-node-xpath] @*, Next: [t print-node-xpath] *[@id != ''], Prev: [t print-node-xpath] text[], Up: common/messages 3.12 [t print-node-xpath] @* ============================ Name ---- [t print-node-xpath] @* Synopsis --------  File: docbook2texi-xslt.info, Node: [t print-node-xpath] *[@id != ''], Next: [t print-node-xpath] *, Prev: [t print-node-xpath] @*, Up: common/messages 3.13 [t print-node-xpath] *[@id != "] ===================================== Name ---- [t print-node-xpath] *[@id != "] Synopsis --------  File: docbook2texi-xslt.info, Node: [t print-node-xpath] *, Next: [t print-node-xpath] /, Prev: [t print-node-xpath] *[@id != ''], Up: common/messages 3.14 [t print-node-xpath] * =========================== Name ---- [t print-node-xpath] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t print-node-xpath] /, Prev: [t print-node-xpath] *, Up: common/messages 3.15 [t print-node-xpath] / =========================== Name ---- [t print-node-xpath] / Synopsis --------  File: docbook2texi-xslt.info, Node: common/labels, Next: common/titles, Prev: common/messages, Up: Top 4 common/labels *************** * Menu: * [M] for-label:: Provides access to element labels * [t for-label] *[@label!='']:: * [t for-label] *:: * [t for-label] qandaentry:: * [t for-label] question:: * [t for-label] answer:: * [t label] *:: * [t label] text(): [t label] text[].  File: docbook2texi-xslt.info, Node: [M] for-label, Next: [t for-label] *[@label!=''], Up: common/labels 4.1 [M] for-label ================= Name ---- [M] for-label -- Provides access to element labels Description ----------- Processing an element in the `for-label' mode produces the element label.  File: docbook2texi-xslt.info, Node: [t for-label] *[@label!=''], Next: [t for-label] *, Prev: [M] for-label, Up: common/labels 4.2 [t for-label] *[@label!="] ============================== Name ---- [t for-label] *[@label!="] Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-label] *, Next: [t for-label] qandaentry, Prev: [t for-label] *[@label!=''], Up: common/labels 4.3 [t for-label] * =================== Name ---- [t for-label] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-label] qandaentry, Next: [t for-label] question, Prev: [t for-label] *, Up: common/labels 4.4 [t for-label] qandaentry ============================ Name ---- [t for-label] qandaentry Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-label] question, Next: [t for-label] answer, Prev: [t for-label] qandaentry, Up: common/labels 4.5 [t for-label] question ========================== Name ---- [t for-label] question Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-label] answer, Next: [t label] *, Prev: [t for-label] question, Up: common/labels 4.6 [t for-label] answer ======================== Name ---- [t for-label] answer Synopsis --------  File: docbook2texi-xslt.info, Node: [t label] *, Next: [t label] text[], Prev: [t for-label] answer, Up: common/labels 4.7 [t label] * =============== Name ---- [t label] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t label] text[], Prev: [t label] *, Up: common/labels 4.8 [t label] text() ==================== Name ---- [t label] text() Synopsis --------  File: docbook2texi-xslt.info, Node: common/titles, Next: param, Prev: common/labels, Up: Top 5 common/titles *************** * Menu: * [M] for-title:: Provides access to element titles * [t title] title:: * [t title] *:: * [t title] text(): [t title] text[]. * [t for-title] set:: * [t for-title] *:: * [t for-title] book:: * [t for-title] part:: * [t for-title] preface|chapter|appendix:: * [t for-title] partintro:: * [t for-title] dedication:: * [t for-title] colophon:: * [t for-title] article:: * [t for-title] reference:: * [t for-title] refentry:: * [t for-title] refsynopsisdiv:: * [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect:: * [t for-title] bibliography:: * [t for-title] glossary:: * [t for-title] index:: * [t for-title] figure|table|example|equation:: * [t for-title] qandaset|qandadiv:: * [t for-title] abstract:: * [t for-title] caution|tip|warning|important|note:: * [t no-anchors] *:: * [t no-anchors] footnote:: * [t no-anchors] anchor:: * [t no-anchors] ulink:: * [t no-anchors] link:: * [t no-anchors] olink:: * [t no-anchors] indexterm:: * [t no-anchors] xref::  File: docbook2texi-xslt.info, Node: [M] for-title, Next: [t title] title, Up: common/titles 5.1 [M] for-title ================= Name ---- [M] for-title -- Provides access to element titles Description ----------- Processing an element in the `title' mode produces the title of the element. This does not include the label.  File: docbook2texi-xslt.info, Node: [t title] title, Next: [t title] *, Prev: [M] for-title, Up: common/titles 5.2 [t title] title =================== Name ---- [t title] title Synopsis --------  File: docbook2texi-xslt.info, Node: [t title] *, Next: [t title] text[], Prev: [t title] title, Up: common/titles 5.3 [t title] * =============== Name ---- [t title] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t title] text[], Next: [t for-title] set, Prev: [t title] *, Up: common/titles 5.4 [t title] text() ==================== Name ---- [t title] text() Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] set, Next: [t for-title] *, Prev: [t title] text[], Up: common/titles 5.5 [t for-title] set ===================== Name ---- [t for-title] set Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] *, Next: [t for-title] book, Prev: [t for-title] set, Up: common/titles 5.6 [t for-title] * =================== Name ---- [t for-title] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] book, Next: [t for-title] part, Prev: [t for-title] *, Up: common/titles 5.7 [t for-title] book ====================== Name ---- [t for-title] book Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] part, Next: [t for-title] preface|chapter|appendix, Prev: [t for-title] book, Up: common/titles 5.8 [t for-title] part ====================== Name ---- [t for-title] part Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] preface|chapter|appendix, Next: [t for-title] partintro, Prev: [t for-title] part, Up: common/titles 5.9 [t for-title] preface|chapter|appendix ========================================== Name ---- [t for-title] preface|chapter|appendix Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] partintro, Next: [t for-title] dedication, Prev: [t for-title] preface|chapter|appendix, Up: common/titles 5.10 [t for-title] partintro ============================ Name ---- [t for-title] partintro Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] dedication, Next: [t for-title] colophon, Prev: [t for-title] partintro, Up: common/titles 5.11 [t for-title] dedication ============================= Name ---- [t for-title] dedication Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] colophon, Next: [t for-title] article, Prev: [t for-title] dedication, Up: common/titles 5.12 [t for-title] colophon =========================== Name ---- [t for-title] colophon Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] article, Next: [t for-title] reference, Prev: [t for-title] colophon, Up: common/titles 5.13 [t for-title] article ========================== Name ---- [t for-title] article Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] reference, Next: [t for-title] refentry, Prev: [t for-title] article, Up: common/titles 5.14 [t for-title] reference ============================ Name ---- [t for-title] reference Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] refentry, Next: [t for-title] refsynopsisdiv, Prev: [t for-title] reference, Up: common/titles 5.15 [t for-title] refentry =========================== Name ---- [t for-title] refentry Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] refsynopsisdiv, Next: [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect, Prev: [t for-title] refentry, Up: common/titles 5.16 [t for-title] refsynopsisdiv ================================= Name ---- [t for-title] refsynopsisdiv Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect, Next: [t for-title] bibliography, Prev: [t for-title] refsynopsisdiv, Up: common/titles 5.17 [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect ================================================================================================= Name ---- [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] bibliography, Next: [t for-title] glossary, Prev: [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect, Up: common/titles 5.18 [t for-title] bibliography =============================== Name ---- [t for-title] bibliography Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] glossary, Next: [t for-title] index, Prev: [t for-title] bibliography, Up: common/titles 5.19 [t for-title] glossary =========================== Name ---- [t for-title] glossary Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] index, Next: [t for-title] figure|table|example|equation, Prev: [t for-title] glossary, Up: common/titles 5.20 [t for-title] index ======================== Name ---- [t for-title] index Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] figure|table|example|equation, Next: [t for-title] qandaset|qandadiv, Prev: [t for-title] index, Up: common/titles 5.21 [t for-title] figure|table|example|equation ================================================ Name ---- [t for-title] figure|table|example|equation Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] qandaset|qandadiv, Next: [t for-title] abstract, Prev: [t for-title] figure|table|example|equation, Up: common/titles 5.22 [t for-title] qandaset|qandadiv ==================================== Name ---- [t for-title] qandaset|qandadiv Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] abstract, Next: [t for-title] caution|tip|warning|important|note, Prev: [t for-title] qandaset|qandadiv, Up: common/titles 5.23 [t for-title] abstract =========================== Name ---- [t for-title] abstract Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-title] caution|tip|warning|important|note, Next: [t no-anchors] *, Prev: [t for-title] abstract, Up: common/titles 5.24 [t for-title] caution|tip|warning|important|note ===================================================== Name ---- [t for-title] caution|tip|warning|important|note Synopsis --------  File: docbook2texi-xslt.info, Node: [t no-anchors] *, Next: [t no-anchors] footnote, Prev: [t for-title] caution|tip|warning|important|note, Up: common/titles 5.25 [t no-anchors] * ===================== Name ---- [t no-anchors] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t no-anchors] footnote, Next: [t no-anchors] anchor, Prev: [t no-anchors] *, Up: common/titles 5.26 [t no-anchors] footnote ============================ Name ---- [t no-anchors] footnote Synopsis --------  File: docbook2texi-xslt.info, Node: [t no-anchors] anchor, Next: [t no-anchors] ulink, Prev: [t no-anchors] footnote, Up: common/titles 5.27 [t no-anchors] anchor ========================== Name ---- [t no-anchors] anchor Synopsis --------  File: docbook2texi-xslt.info, Node: [t no-anchors] ulink, Next: [t no-anchors] link, Prev: [t no-anchors] anchor, Up: common/titles 5.28 [t no-anchors] ulink ========================= Name ---- [t no-anchors] ulink Synopsis --------  File: docbook2texi-xslt.info, Node: [t no-anchors] link, Next: [t no-anchors] olink, Prev: [t no-anchors] ulink, Up: common/titles 5.29 [t no-anchors] link ======================== Name ---- [t no-anchors] link Synopsis --------  File: docbook2texi-xslt.info, Node: [t no-anchors] olink, Next: [t no-anchors] indexterm, Prev: [t no-anchors] link, Up: common/titles 5.30 [t no-anchors] olink ========================= Name ---- [t no-anchors] olink Synopsis --------  File: docbook2texi-xslt.info, Node: [t no-anchors] indexterm, Next: [t no-anchors] xref, Prev: [t no-anchors] olink, Up: common/titles 5.31 [t no-anchors] indexterm ============================= Name ---- [t no-anchors] indexterm Synopsis --------  File: docbook2texi-xslt.info, Node: [t no-anchors] xref, Prev: [t no-anchors] indexterm, Up: common/titles 5.32 [t no-anchors] xref ======================== Name ---- [t no-anchors] xref Synopsis --------  File: docbook2texi-xslt.info, Node: param, Next: texifile, Prev: common/titles, Up: Top 6 param ******* 6.1 param ========= Stylesheet parameters influence various aspects of the rendering. They can be set from the command line (the exact syntax depends on the XSLT processor), or in a custom stylesheet. To set them in a custom stylesheet, simply copy the definition here and change the `select' attribute to something else. If a parameter for what you want to change does not exist, you can write templates in the custom stylesheet instead. * Menu: * [P] user-message-prefix:: Undocumented * [P] captions-display-as-headings:: Use heading markup for minor captions? * [P] links-use-pxref:: Translate link using @pxref * [P] explicit-node-names:: Insist on manually constructed Texinfo node names * [P] show-comments:: Display comment elements? * [P] funcsynopsis-decoration:: Decorate elements of a FuncSynopsis? * [P] function-parens:: Generate parentheses after a function? * [P] refentry-display-name:: Output NAME header before 'RefName'(s)? * [P] manvolnum-in-xref:: Output manvolnum as part of refentry cross-reference? * [P] prefer-textobjects:: Prefer textobject over imageobject? * [P] semantic-decorations:: Use Texinfo semantic inline markup? * [P] custom-localization-file:: URI of XML document containing custom localization data * [P] custom-l10n-data:: XML document containing custom localization data * [P] author-othername-in-middle:: Is othername in author a middle name? * [P] output-file:: Name of the Info file * [P] directory-category:: The categorization of the document in the Info directory * [P] directory-description:: The description of the document in the Info directory * [P] index-category:: The Texinfo index to use * [P] qanda-defaultlabel:: Sets the default for defaultlabel on QandASet. * [P] qandaset-generate-toc:: Is a Table of Contents created for QandASets?  File: docbook2texi-xslt.info, Node: [P] user-message-prefix, Next: [P] captions-display-as-headings, Up: param 6.2 [P] user-message-prefix =========================== Name ---- [P] user-message-prefix -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [P] captions-display-as-headings, Next: [P] links-use-pxref, Prev: [P] user-message-prefix, Up: param 6.3 [P] captions-display-as-headings ==================================== Name ---- [P] captions-display-as-headings -- Use heading markup for minor captions? Synopsis -------- Description ----------- If true, `title' content in some (formal) objects are rendered with the Texinfo `@HEADING' commands. If false, captions are rendered as an emphasized paragraph.  File: docbook2texi-xslt.info, Node: [P] links-use-pxref, Next: [P] explicit-node-names, Prev: [P] captions-display-as-headings, Up: param 6.4 [P] links-use-pxref ======================= Name ---- [P] links-use-pxref -- Translate `link' using `@pxref' Synopsis -------- Description ----------- If true, `link' is translated with the hypertext followed by the cross reference in parentheses. Otherwise, the hypertext content serves as the cross-reference name marked up using `@ref'. Typically info displays this contruct badly.  File: docbook2texi-xslt.info, Node: [P] explicit-node-names, Next: [P] show-comments, Prev: [P] links-use-pxref, Up: param 6.5 [P] explicit-node-names =========================== Name ---- [P] explicit-node-names -- Insist on manually constructed Texinfo node names Synopsis -------- Description ----------- Elements in the source document can influence the Texinfo node name generation specifying either a `xreflabel', or for the sectioning elements, a `title' with `role='texinfo-node'' in the `*info' container. However, for the majority of source documents, explicit Texinfo node names are not available, and the stylesheet tries to generate a reasonable one instead, e.g. from the normal title of an element. The generated name may not be optimal. If this option is set and the stylesheet needs to generate a name, a warning is emitted and `generate-id' is always used for the name. When the hashtable extension is not available, the stylesheet cannot check for node name collisions, and in this case, setting this option and using explicit node names are recommended. This option is not set (i.e. false) by default. *Note* The absolute fallback for generating node names is using the XSLT function `generate-id', and the stylesheet always emits a warning in this case regardless of the setting of `explicit-node-names'.  File: docbook2texi-xslt.info, Node: [P] show-comments, Next: [P] funcsynopsis-decoration, Prev: [P] explicit-node-names, Up: param 6.6 [P] show-comments ===================== Name ---- [P] show-comments -- Display `comment' elements? Synopsis -------- Description ----------- If true, comments will be displayed, otherwise they are suppressed. Comments here refers to the `comment' element, which will be renamed `remark' in DocBook V4.0, not XML comments (<- like this ->) which are unavailable.  File: docbook2texi-xslt.info, Node: [P] funcsynopsis-decoration, Next: [P] function-parens, Prev: [P] show-comments, Up: param 6.7 [P] funcsynopsis-decoration =============================== Name ---- [P] funcsynopsis-decoration -- Decorate elements of a FuncSynopsis? Synopsis -------- Description ----------- If true, elements of the FuncSynopsis will be decorated (e.g. bold or italic). The decoration is controlled by functions that can be redefined in a customization layer.  File: docbook2texi-xslt.info, Node: [P] function-parens, Next: [P] refentry-display-name, Prev: [P] funcsynopsis-decoration, Up: param 6.8 [P] function-parens ======================= Name ---- [P] function-parens -- Generate parentheses after a function? Synopsis -------- Description ----------- If true, the formatting of a `' element will include generated parenthesis.  File: docbook2texi-xslt.info, Node: [P] refentry-display-name, Next: [P] manvolnum-in-xref, Prev: [P] function-parens, Up: param 6.9 [P] refentry-display-name ============================= Name ---- [P] refentry-display-name -- Output NAME header before 'RefName'(s)? Synopsis -------- Description ----------- If true, a "NAME" section title is output before the list of 'RefName's.  File: docbook2texi-xslt.info, Node: [P] manvolnum-in-xref, Next: [P] prefer-textobjects, Prev: [P] refentry-display-name, Up: param 6.10 [P] manvolnum-in-xref ========================== Name ---- [P] manvolnum-in-xref -- Output `manvolnum' as part of `refentry' cross-reference? Synopsis -------- Description ----------- if true, the `manvolnum' is used when cross-referencing `refentry's, either with `xref' or `citerefentry'.  File: docbook2texi-xslt.info, Node: [P] prefer-textobjects, Next: [P] semantic-decorations, Prev: [P] manvolnum-in-xref, Up: param 6.11 [P] prefer-textobjects =========================== Name ---- [P] prefer-textobjects -- Prefer `textobject' over `imageobject'? Synopsis -------- Description ----------- If true, the `textobject' in a `mediaobject' is preferred over any `imageobject'. (Of course, for output formats other than Texinfo, you usually want to prefer the `imageobject', but Info is a text-only format.) In addition to the values true and false, this parameter may be set to `2' to indicate that both the text and the images should be output. You may want to do this because some Texinfo viewers can read images. Note that the Texinfo `@image' command has its own mechanism for switching between text and image output -- but we do not use this here. The default is true.  File: docbook2texi-xslt.info, Node: [P] semantic-decorations, Next: [P] custom-localization-file, Prev: [P] prefer-textobjects, Up: param 6.12 [P] semantic-decorations ============================= Name ---- [P] semantic-decorations -- Use Texinfo semantic inline markup? Synopsis -------- Description ----------- If true, the semantic inline markup of DocBook is translated into (the closest) Texinfo equivalent. This is the default. However, because the Info format is limited to plain text, the semantic inline markup is often distinguished by using explicit quotes, which may not look good. You can set this option to false to suppress these. (For finer control over the inline formatting, you can use your own stylesheet.)  File: docbook2texi-xslt.info, Node: [P] custom-localization-file, Next: [P] custom-l10n-data, Prev: [P] semantic-decorations, Up: param 6.13 [P] custom-localization-file ================================= Name ---- [P] custom-localization-file -- URI of XML document containing custom localization data Synopsis -------- Description ----------- This parameter specifies the URI of a XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. The text translations pointed to by this parameter always override the default text translations (from the internal parameter `localization-file'). If a particular translation is not present here, the corresponding default translation is used as a fallback. This parameter is primarily for changing certain punctuation characters used in formatting the source document. The settings for punctuation characters are often specific to the source document, but can also be dependent on the locale. To not use custom text translations, leave this parameter as the empty string.  File: docbook2texi-xslt.info, Node: [P] custom-l10n-data, Next: [P] author-othername-in-middle, Prev: [P] custom-localization-file, Up: param 6.14 [P] custom-l10n-data ========================= Name ---- [P] custom-l10n-data -- XML document containing custom localization data Synopsis -------- Description ----------- This parameter specifies the XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. This parameter is internal to the stylesheet. To point to an external XML document with a URI or a file name, you should use the `custom-localization-file' parameter instead. However, inside a custom stylesheet (_not on the command-line_) this paramter can be set to the XPath expression `document('')', which will cause the custom translations directly embedded inside the custom stylesheet to be read.  File: docbook2texi-xslt.info, Node: [P] author-othername-in-middle, Next: [P] output-file, Prev: [P] custom-l10n-data, Up: param 6.15 [P] author-othername-in-middle =================================== Name ---- [P] author-othername-in-middle -- Is `othername' in `author' a middle name? Synopsis -------- Description ----------- If true, the `othername' of an `author' appears between the `firstname' and `surname'. Otherwise, `othername' is suppressed.  File: docbook2texi-xslt.info, Node: [P] output-file, Next: [P] directory-category, Prev: [P] author-othername-in-middle, Up: param 6.16 [P] output-file ==================== Name ---- [P] output-file -- Name of the Info file Synopsis -------- Description ----------- This parameter specifies the name of the final Info file, overriding the setting in the document itself and the automatic selection in the stylesheet. If the document is a `set', this parameter has no effect. *Important* Do _not_ include the `.info' extension in the name. (Note that this parameter has nothing to do with the name of the _Texi-XML output_ by the XSLT processor you are running this stylesheet from.)  File: docbook2texi-xslt.info, Node: [P] directory-category, Next: [P] directory-description, Prev: [P] output-file, Up: param 6.17 [P] directory-category =========================== Name ---- [P] directory-category -- The categorization of the document in the Info directory Synopsis -------- Description ----------- This is set to the category that the document should go under in the Info directory of installed Info files. For example, `General Commands'. *Note* Categories may also be set directly in the source document. But if this parameter is not empty, then it always overrides the setting in the source document.  File: docbook2texi-xslt.info, Node: [P] directory-description, Next: [P] index-category, Prev: [P] directory-category, Up: param 6.18 [P] directory-description ============================== Name ---- [P] directory-description -- The description of the document in the Info directory Synopsis -------- Description ----------- This is a short description of the document that appears in the Info directory of installed Info files. For example, `An Interactive Plotting Program.' *Note* Menu descriptions may also be set directly in the source document. But if this parameter is not empty, then it always overrides the setting in the source document.  File: docbook2texi-xslt.info, Node: [P] index-category, Next: [P] qanda-defaultlabel, Prev: [P] directory-description, Up: param 6.19 [P] index-category ======================= Name ---- [P] index-category -- The Texinfo index to use Synopsis -------- Description ----------- The Texinfo index for `indexterm' and `index' is specified using the `role' attribute. If the above elements do not have a `role', then the default specified by this parameter is used. The predefined indices are: `c' `cp' Concept index `f' `fn' Function index `v' `vr' Variable index `k' `ky' Keystroke index `p' `pg' Program index `d' `tp' Data type index User-defined indices are not yet supported.  File: docbook2texi-xslt.info, Node: [P] qanda-defaultlabel, Next: [P] qandaset-generate-toc, Prev: [P] index-category, Up: param 6.20 [P] qanda-defaultlabel =========================== Name ---- [P] qanda-defaultlabel -- Sets the default for defaultlabel on QandASet. Synopsis -------- number Description ----------- If no defaultlabel attribute is specified on a QandASet, this value is used. It must be one of the legal values for the defaultlabel attribute.  File: docbook2texi-xslt.info, Node: [P] qandaset-generate-toc, Prev: [P] qanda-defaultlabel, Up: param 6.21 [P] qandaset-generate-toc ============================== Name ---- [P] qandaset-generate-toc -- Is a Table of Contents created for QandASets? Synopsis -------- 1 Description ----------- If true, a ToC is constructed for QandASets.  File: docbook2texi-xslt.info, Node: texifile, Next: texinode, Prev: param, Up: Top 7 texifile ********** 7.1 texifile ============ These templates are used when making cross references between the multiple Texinfo files that are generated from a single DocBook `set'. You probably do not need to modify anything here. * Menu: * [t texinfo-file-name] *:: * [t texinfo-file-name] text(): [t texinfo-file-name] text[]. * [t for-texinfo-file-name] set/book:: * [t for-texinfo-file-name] /*:: * [t for-texinfo-file-name] /set/book//*:: * [t for-texinfo-file-name] node(): [t for-texinfo-file-name] node[]. * [T] get-texinfo-file-name:: Find the file that contains the result  File: docbook2texi-xslt.info, Node: [t texinfo-file-name] *, Next: [t texinfo-file-name] text[], Up: texifile 7.2 [t texinfo-file-name] * =========================== Name ---- [t texinfo-file-name] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t texinfo-file-name] text[], Next: [t for-texinfo-file-name] set/book, Prev: [t texinfo-file-name] *, Up: texifile 7.3 [t texinfo-file-name] text() ================================ Name ---- [t texinfo-file-name] text() Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-texinfo-file-name] set/book, Next: [t for-texinfo-file-name] /*, Prev: [t texinfo-file-name] text[], Up: texifile 7.4 [t for-texinfo-file-name] set/book ====================================== Name ---- [t for-texinfo-file-name] set/book Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-texinfo-file-name] /*, Next: [t for-texinfo-file-name] /set/book//*, Prev: [t for-texinfo-file-name] set/book, Up: texifile 7.5 [t for-texinfo-file-name] /* ================================ Name ---- [t for-texinfo-file-name] /* Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-texinfo-file-name] /set/book//*, Next: [t for-texinfo-file-name] node[], Prev: [t for-texinfo-file-name] /*, Up: texifile 7.6 [t for-texinfo-file-name] /set/book//* ========================================== Name ---- [t for-texinfo-file-name] /set/book//* Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-texinfo-file-name] node[], Next: [T] get-texinfo-file-name, Prev: [t for-texinfo-file-name] /set/book//*, Up: texifile 7.7 [t for-texinfo-file-name] node() ==================================== Name ---- [t for-texinfo-file-name] node() Synopsis --------  File: docbook2texi-xslt.info, Node: [T] get-texinfo-file-name, Prev: [t for-texinfo-file-name] node[], Up: texifile 7.8 [T] get-texinfo-file-name ============================= Name ---- [T] get-texinfo-file-name -- Find the file that contains the result Synopsis -------- Description ----------- Returns the Texinfo file that contains the result when transforming the context node. In this implementation, every document element starts a new file, unless the document element is `set', in which case each child `book' starts a new file. Parameters ---------- `node' The node to find information for. Default is the context node.  File: docbook2texi-xslt.info, Node: texinode, Next: texinode-base, Prev: texifile, Up: Top 8 texinode ********** 8.1 texinode ============ These templates determine which elements get transformed into Texinfo nodes, and how to derive a Texinfo node name for these nodes. 8.1.1 Texinfo node names: processing expectations ------------------------------------------------- The templates try to derive a Texinfo node name of a nodal section from the content of the following, in order of preference: 1. `titleabbrev' with `role'="texinfo-node" in the `*info' wrapper. 2. The `xreflabel' 3. The `titleabbrev' 4. The `title' * Menu: * [M] is-texinfo-node:: Determine if given element is a Texinfo node * [t is-texinfo-node] dedication|preface|chapter|appendix|reference|article:: * [t is-texinfo-node] sect1|sect2|sect3|sect4|sect5|section|simplesect:: * [t is-texinfo-node] refentry:: * [t is-texinfo-node] *:: * [t is-texinfo-node] part:: * [t is-texinfo-node] partintro|partintro//*:: * [t is-texinfo-node] book:: * [t is-texinfo-node] index|bibliography|glossary:: * [M] for-texinfo-node-name:: Return a suggested nodename * [t for-texinfo-node-name] *[@xreflabel]:: * [t for-texinfo-node-name] *[child;;title]:: * [t for-texinfo-node-name] *:: * [t for-texinfo-node-name] book|/*:: * [t for-texinfo-node-name] reference|preface|chapter|appendix|glossary|bibliography| sect1|sect2|sect3|sect4|sect5|section|refsect1|refsect2|refsect3:: * [t for-texinfo-node-name] article:: * [t for-texinfo-node-name] refentry:: * [t for-texinfo-node-name] part:: * [t for-texinfo-node-name] varlistentry:: * [t for-texinfo-node-name] index:: * [t is-texinfo-top-node] book|/*:: * [t is-texinfo-top-node] *:: * [t texinfo-node-name] *:: * [t texinfo-node-name] text(): [t texinfo-node-name] text[].  File: docbook2texi-xslt.info, Node: [M] is-texinfo-node, Next: [t is-texinfo-node] dedication|preface|chapter|appendix|reference|article, Up: texinode 8.2 [M] is-texinfo-node ======================= Name ---- [M] is-texinfo-node -- Determine if given element is a Texinfo node Description ----------- This mode defines which elements are to be transformed into Texinfo node. Elements that generate anchors are not considered nodes by this mode. The set of nodal elements can be changed, but only sectioning elements can be nodes and the stylesheets do not support any fancy interleaving of nodal sections and non-nodal sections. Return empty string for an element that is not a node, and the string `1' if it is.  File: docbook2texi-xslt.info, Node: [t is-texinfo-node] dedication|preface|chapter|appendix|reference|article, Next: [t is-texinfo-node] sect1|sect2|sect3|sect4|sect5|section|simplesect, Prev: [M] is-texinfo-node, Up: texinode 8.3 [t is-texinfo-node] dedication|preface|chapter|appendix|reference|article ============================================================================= Name ---- [t is-texinfo-node] dedication|preface|chapter|appendix|reference|article Synopsis --------  File: docbook2texi-xslt.info, Node: [t is-texinfo-node] sect1|sect2|sect3|sect4|sect5|section|simplesect, Next: [t is-texinfo-node] refentry, Prev: [t is-texinfo-node] dedication|preface|chapter|appendix|reference|article, Up: texinode 8.4 [t is-texinfo-node] sect1|sect2|sect3|sect4|sect5|section|simplesect ======================================================================== Name ---- [t is-texinfo-node] sect1|sect2|sect3|sect4|sect5|section|simplesect Synopsis --------  File: docbook2texi-xslt.info, Node: [t is-texinfo-node] refentry, Next: [t is-texinfo-node] *, Prev: [t is-texinfo-node] sect1|sect2|sect3|sect4|sect5|section|simplesect, Up: texinode 8.5 [t is-texinfo-node] refentry ================================ Name ---- [t is-texinfo-node] refentry Synopsis --------  File: docbook2texi-xslt.info, Node: [t is-texinfo-node] *, Next: [t is-texinfo-node] part, Prev: [t is-texinfo-node] refentry, Up: texinode 8.6 [t is-texinfo-node] * ========================= Name ---- [t is-texinfo-node] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t is-texinfo-node] part, Next: [t is-texinfo-node] partintro|partintro//*, Prev: [t is-texinfo-node] *, Up: texinode 8.7 [t is-texinfo-node] part ============================ Name ---- [t is-texinfo-node] part Synopsis --------  File: docbook2texi-xslt.info, Node: [t is-texinfo-node] partintro|partintro//*, Next: [t is-texinfo-node] book, Prev: [t is-texinfo-node] part, Up: texinode 8.8 [t is-texinfo-node] partintro|partintro//* ============================================== Name ---- [t is-texinfo-node] partintro|partintro//* Synopsis --------  File: docbook2texi-xslt.info, Node: [t is-texinfo-node] book, Next: [t is-texinfo-node] index|bibliography|glossary, Prev: [t is-texinfo-node] partintro|partintro//*, Up: texinode 8.9 [t is-texinfo-node] book ============================ Name ---- [t is-texinfo-node] book Synopsis --------  File: docbook2texi-xslt.info, Node: [t is-texinfo-node] index|bibliography|glossary, Next: [M] for-texinfo-node-name, Prev: [t is-texinfo-node] book, Up: texinode 8.10 [t is-texinfo-node] index|bibliography|glossary ==================================================== Name ---- [t is-texinfo-node] index|bibliography|glossary Synopsis --------  File: docbook2texi-xslt.info, Node: [M] for-texinfo-node-name, Next: [t for-texinfo-node-name] *[@xreflabel], Prev: [t is-texinfo-node] index|bibliography|glossary, Up: texinode 8.11 [M] for-texinfo-node-name ============================== Name ---- [M] for-texinfo-node-name -- Return a suggested nodename Description ----------- Processing an element using for-texinfo-node-name returns a suggested nodename (or anchor name) for that element.  File: docbook2texi-xslt.info, Node: [t for-texinfo-node-name] *[@xreflabel], Next: [t for-texinfo-node-name] *[child;;title], Prev: [M] for-texinfo-node-name, Up: texinode 8.12 [t for-texinfo-node-name] *[@xreflabel] ============================================ Name ---- [t for-texinfo-node-name] *[@xreflabel] Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-texinfo-node-name] *[child;;title], Next: [t for-texinfo-node-name] *, Prev: [t for-texinfo-node-name] *[@xreflabel], Up: texinode 8.13 [t for-texinfo-node-name] *[child::title] ============================================== Name ---- [t for-texinfo-node-name] *[child::title] Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-texinfo-node-name] *, Next: [t for-texinfo-node-name] book|/*, Prev: [t for-texinfo-node-name] *[child;;title], Up: texinode 8.14 [t for-texinfo-node-name] * ================================ Name ---- [t for-texinfo-node-name] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-texinfo-node-name] book|/*, Next: [t for-texinfo-node-name] reference|preface|chapter|appendix|glossary|bibliography| sect1|sect2|sect3|sect4|sect5|section|refsect1|refsect2|refsect3, Prev: [t for-texinfo-node-name] *, Up: texinode 8.15 [t for-texinfo-node-name] book|/* ====================================== Name ---- [t for-texinfo-node-name] book|/* Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-texinfo-node-name] reference|preface|chapter|appendix|glossary|bibliography| sect1|sect2|sect3|sect4|sect5|section|refsect1|refsect2|refsect3, Next: [t for-texinfo-node-name] article, Prev: [t for-texinfo-node-name] book|/*, Up: texinode 8.16 [t for-texinfo-node-name] reference|preface|chapter|appendix|glossary|bibliography| sect1|sect2|sect3|sect4|sect5|section|refsect1|refsect2|refsect3 ========================================================================================================================================================= Name ---- [t for-texinfo-node-name] reference|preface|chapter|appendix|glossary|bibliography| sect1|sect2|sect3|sect4|sect5|section|refsect1|refsect2|refsect3 Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-texinfo-node-name] article, Next: [t for-texinfo-node-name] refentry, Prev: [t for-texinfo-node-name] reference|preface|chapter|appendix|glossary|bibliography| sect1|sect2|sect3|sect4|sect5|section|refsect1|refsect2|refsect3, Up: texinode 8.17 [t for-texinfo-node-name] article ====================================== Name ---- [t for-texinfo-node-name] article Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-texinfo-node-name] refentry, Next: [t for-texinfo-node-name] part, Prev: [t for-texinfo-node-name] article, Up: texinode 8.18 [t for-texinfo-node-name] refentry ======================================= Name ---- [t for-texinfo-node-name] refentry Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-texinfo-node-name] part, Next: [t for-texinfo-node-name] varlistentry, Prev: [t for-texinfo-node-name] refentry, Up: texinode 8.19 [t for-texinfo-node-name] part =================================== Name ---- [t for-texinfo-node-name] part Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-texinfo-node-name] varlistentry, Next: [t for-texinfo-node-name] index, Prev: [t for-texinfo-node-name] part, Up: texinode 8.20 [t for-texinfo-node-name] varlistentry =========================================== Name ---- [t for-texinfo-node-name] varlistentry Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-texinfo-node-name] index, Next: [t is-texinfo-top-node] book|/*, Prev: [t for-texinfo-node-name] varlistentry, Up: texinode 8.21 [t for-texinfo-node-name] index ==================================== Name ---- [t for-texinfo-node-name] index Synopsis --------  File: docbook2texi-xslt.info, Node: [t is-texinfo-top-node] book|/*, Next: [t is-texinfo-top-node] *, Prev: [t for-texinfo-node-name] index, Up: texinode 8.22 [t is-texinfo-top-node] book|/* ==================================== Name ---- [t is-texinfo-top-node] book|/* Synopsis --------  File: docbook2texi-xslt.info, Node: [t is-texinfo-top-node] *, Next: [t texinfo-node-name] *, Prev: [t is-texinfo-top-node] book|/*, Up: texinode 8.23 [t is-texinfo-top-node] * ============================== Name ---- [t is-texinfo-top-node] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t texinfo-node-name] *, Next: [t texinfo-node-name] text[], Prev: [t is-texinfo-top-node] *, Up: texinode 8.24 [t texinfo-node-name] * ============================ Name ---- [t texinfo-node-name] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t texinfo-node-name] text[], Prev: [t texinfo-node-name] *, Up: texinode 8.25 [t texinfo-node-name] text() ================================= Name ---- [t texinfo-node-name] text() Synopsis --------  File: docbook2texi-xslt.info, Node: texinode-base, Next: chunk, Prev: texinode, Up: Top 9 texinode-base *************** * Menu: * [T] make-nodenamemap:: Undocumented * [t nodenamemap] *:: * [t nodenamemap] text(): [t nodenamemap] text[]. * [T] make-texinfo-node:: Output node element * [T] make-texinfo-nontop-node:: Undocumented * [T] make-texinfo-top-node:: Undocumented * [T] make-texinfo-top-node-firstchild:: Undocumented  File: docbook2texi-xslt.info, Node: [T] make-nodenamemap, Next: [t nodenamemap] *, Up: texinode-base 9.1 [T] make-nodenamemap ======================== Name ---- [T] make-nodenamemap -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [t nodenamemap] *, Next: [t nodenamemap] text[], Prev: [T] make-nodenamemap, Up: texinode-base 9.2 [t nodenamemap] * ===================== Name ---- [t nodenamemap] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t nodenamemap] text[], Next: [T] make-texinfo-node, Prev: [t nodenamemap] *, Up: texinode-base 9.3 [t nodenamemap] text() ========================== Name ---- [t nodenamemap] text() Synopsis --------  File: docbook2texi-xslt.info, Node: [T] make-texinfo-node, Next: [T] make-texinfo-nontop-node, Prev: [t nodenamemap] text[], Up: texinode-base 9.4 [T] make-texinfo-node ========================= Name ---- [T] make-texinfo-node -- Output node element Synopsis -------- Description ----------- This named template creates a node element in the result tree, which corresponds to the Texinfo `@node' command.  File: docbook2texi-xslt.info, Node: [T] make-texinfo-nontop-node, Next: [T] make-texinfo-top-node, Prev: [T] make-texinfo-node, Up: texinode-base 9.5 [T] make-texinfo-nontop-node ================================ Name ---- [T] make-texinfo-nontop-node -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] make-texinfo-top-node, Next: [T] make-texinfo-top-node-firstchild, Prev: [T] make-texinfo-nontop-node, Up: texinode-base 9.6 [T] make-texinfo-top-node ============================= Name ---- [T] make-texinfo-top-node -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] make-texinfo-top-node-firstchild, Prev: [T] make-texinfo-top-node, Up: texinode-base 9.7 [T] make-texinfo-top-node-firstchild ======================================== Name ---- [T] make-texinfo-top-node-firstchild -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: chunk, Next: autotoc, Prev: texinode-base, Up: Top 10 chunk ******** * Menu: * [t] /:: * [M] top-chunk:: Process a top-level chunk * [t top-chunk] *::  File: docbook2texi-xslt.info, Node: [t] /, Next: [M] top-chunk, Up: chunk 10.1 [t] / ========== Name ---- [t] / Synopsis --------  File: docbook2texi-xslt.info, Node: [M] top-chunk, Next: [t top-chunk] *, Prev: [t] /, Up: chunk 10.2 [M] top-chunk ================== Name ---- [M] top-chunk -- Process a top-level chunk Description ----------- This mode is supposed to output all the Texi-XML markup required for the beginning of the Texinfo file, e.g. `settitle', Texinfo directories, etc. After that, it goes onto normal processing.  File: docbook2texi-xslt.info, Node: [t top-chunk] *, Prev: [M] top-chunk, Up: chunk 10.3 [t top-chunk] * ==================== Name ---- [t top-chunk] * Synopsis --------  File: docbook2texi-xslt.info, Node: autotoc, Next: menudescrip, Prev: chunk, Up: Top 11 autotoc ********** 11.1 autotoc ============ Generate Texinfo menus for each node. Also optionally generate directory entries used by `install-info'. The user generally does not modify these templates. Menus are created by the first child sectioning element, so that the `@menu' comes just after the text content of the parent sectioning element, where Texinfo expects them to be. This approach may not be the most elegant, but it works, and its operation is hidden by `make-texinfo-node'. * Menu: * [M] texinfo-menu:: Make Texinfo menus * [V] make-detailed-menus:: Undocumented * [t texinfo-menu] *:: * [t texinfo-menu] book|/*:: * [t texinfo-detail-menu-entry] book/*|/*/*|book/part/*:: * [t texinfo-detail-menu-entry] book/part:: * [t texinfo-detail-menu-entry] *:: * [t texinfo-menu-entry] part:: * [T] make-texinfo-menu-entry:: Undocumented * [T] make-texinfo-directory:: Make a Texinfo directory entry * [t for-menu-title] node(): [t for-menu-title] node[].  File: docbook2texi-xslt.info, Node: [M] texinfo-menu, Next: [V] make-detailed-menus, Up: autotoc 11.2 [M] texinfo-menu ===================== Name ---- [M] texinfo-menu -- Make Texinfo menus Description ----------- Any DocBook element that generates a Texinfo node can be processed with this mode to generate a menu for it. If the element that is processed happens to be the Top node, the `@detailmenu' is generated also.  File: docbook2texi-xslt.info, Node: [V] make-detailed-menus, Next: [t texinfo-menu] *, Prev: [M] texinfo-menu, Up: autotoc 11.3 [V] make-detailed-menus ============================ Name ---- [V] make-detailed-menus -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [t texinfo-menu] *, Next: [t texinfo-menu] book|/*, Prev: [V] make-detailed-menus, Up: autotoc 11.4 [t texinfo-menu] * ======================= Name ---- [t texinfo-menu] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t texinfo-menu] book|/*, Next: [t texinfo-detail-menu-entry] book/*|/*/*|book/part/*, Prev: [t texinfo-menu] *, Up: autotoc 11.5 [t texinfo-menu] book|/* ============================= Name ---- [t texinfo-menu] book|/* Synopsis --------  File: docbook2texi-xslt.info, Node: [t texinfo-detail-menu-entry] book/*|/*/*|book/part/*, Next: [t texinfo-detail-menu-entry] book/part, Prev: [t texinfo-menu] book|/*, Up: autotoc 11.6 [t texinfo-detail-menu-entry] book/*|/*/*|book/part/* ========================================================== Name ---- [t texinfo-detail-menu-entry] book/*|/*/*|book/part/* Synopsis --------  File: docbook2texi-xslt.info, Node: [t texinfo-detail-menu-entry] book/part, Next: [t texinfo-detail-menu-entry] *, Prev: [t texinfo-detail-menu-entry] book/*|/*/*|book/part/*, Up: autotoc 11.7 [t texinfo-detail-menu-entry] book/part ============================================ Name ---- [t texinfo-detail-menu-entry] book/part Synopsis --------  File: docbook2texi-xslt.info, Node: [t texinfo-detail-menu-entry] *, Next: [t texinfo-menu-entry] part, Prev: [t texinfo-detail-menu-entry] book/part, Up: autotoc 11.8 [t texinfo-detail-menu-entry] * ==================================== Name ---- [t texinfo-detail-menu-entry] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t texinfo-menu-entry] part, Next: [T] make-texinfo-menu-entry, Prev: [t texinfo-detail-menu-entry] *, Up: autotoc 11.9 [t texinfo-menu-entry] part ================================ Name ---- [t texinfo-menu-entry] part Synopsis --------  File: docbook2texi-xslt.info, Node: [T] make-texinfo-menu-entry, Next: [T] make-texinfo-directory, Prev: [t texinfo-menu-entry] part, Up: autotoc 11.10 [T] make-texinfo-menu-entry ================================= Name ---- [T] make-texinfo-menu-entry -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] make-texinfo-directory, Next: [t for-menu-title] node[], Prev: [T] make-texinfo-menu-entry, Up: autotoc 11.11 [T] make-texinfo-directory ================================ Name ---- [T] make-texinfo-directory -- Make a Texinfo directory entry Synopsis -------- Description ----------- Output commands so that install-info can automatically add a directory entry when installing the document.  File: docbook2texi-xslt.info, Node: [t for-menu-title] node[], Prev: [T] make-texinfo-directory, Up: autotoc 11.12 [t for-menu-title] node() =============================== Name ---- [t for-menu-title] node() Synopsis --------  File: docbook2texi-xslt.info, Node: menudescrip, Next: index, Prev: autotoc, Up: Top 12 menudescrip ************** 12.1 menudescrip ================ Make descriptions for Texinfo menu entries, if available. 12.1.1 Menu descriptions: processing expectations ------------------------------------------------- If an `abstract' with a `role' of `texinfo-node' is found, that is rendered as the menu description for the node. Descriptions should be one sentence or phrase long, since space is limited in a Texinfo menu. For the same reason, only the first paragraph of such an `abstract' is rendered. Menu descriptions also appear for the Info directory entry for an Info file; these descriptions are handled just the same as normal menus, with the `abstract' apparatus. On the other hand, the Info directory category is specified using a `subjectset' with a `scheme' of `texinfo-directory'. *Menu descriptions in the source document*
wget The non-interactive network downloader. Network Applications ... article content goes here ...
You may prefer to put the Texinfo descriptions outside of the source document. This is possible with a custom stylesheet: *Specifying Texinfo directory entries in a stylesheet* General Commands Make hard links between files. Command-line options Restrictions on linking imposed by the OS ... more entries ... * Menu: * [M] for-menu-description:: Return description for Texinfo node * [t for-menu-description] refentry:: * [t for-menu-description] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book:: * [t for-menu-description] *:: * [T] get-texinfo-directory-description:: Undocumented * [M] for-directory-category:: Return Info directory category * [T] get-texinfo-directory-category:: Undocumented * [t for-directory-category] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book|refentry:: * [t for-directory-category] *::  File: docbook2texi-xslt.info, Node: [M] for-menu-description, Next: [t for-menu-description] refentry, Up: menudescrip 12.2 [M] for-menu-description ============================= Name ---- [M] for-menu-description -- Return description for Texinfo node Description ----------- Processing an element using menu-description-mode returns a result tree fragment that is the description for its menu entry.  File: docbook2texi-xslt.info, Node: [t for-menu-description] refentry, Next: [t for-menu-description] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book, Prev: [M] for-menu-description, Up: menudescrip 12.3 [t for-menu-description] refentry ====================================== Name ---- [t for-menu-description] refentry Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-menu-description] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book, Next: [t for-menu-description] *, Prev: [t for-menu-description] refentry, Up: menudescrip 12.4 [t for-menu-description] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book ====================================================================================================================================================================================== Name ---- [t for-menu-description] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-menu-description] *, Next: [T] get-texinfo-directory-description, Prev: [t for-menu-description] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book, Up: menudescrip 12.5 [t for-menu-description] * =============================== Name ---- [t for-menu-description] * Synopsis --------  File: docbook2texi-xslt.info, Node: [T] get-texinfo-directory-description, Next: [M] for-directory-category, Prev: [t for-menu-description] *, Up: menudescrip 12.6 [T] get-texinfo-directory-description ========================================== Name ---- [T] get-texinfo-directory-description -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [M] for-directory-category, Next: [T] get-texinfo-directory-category, Prev: [T] get-texinfo-directory-description, Up: menudescrip 12.7 [M] for-directory-category =============================== Name ---- [M] for-directory-category -- Return Info directory category Description ----------- Processing an element (normally the root element, but also `book's) using menu-description-mode returns a result tree fragment that is the Info categorization for the Texinfo file.  File: docbook2texi-xslt.info, Node: [T] get-texinfo-directory-category, Next: [t for-directory-category] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book|refentry, Prev: [M] for-directory-category, Up: menudescrip 12.8 [T] get-texinfo-directory-category ======================================= Name ---- [T] get-texinfo-directory-category -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-directory-category] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book|refentry, Next: [t for-directory-category] *, Prev: [T] get-texinfo-directory-category, Up: menudescrip 12.9 [t for-directory-category] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book|refentry ================================================================================================================================================================================================= Name ---- [t for-directory-category] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book|refentry Synopsis --------  File: docbook2texi-xslt.info, Node: [t for-directory-category] *, Prev: [t for-directory-category] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book|refentry, Up: menudescrip 12.10 [t for-directory-category] * ================================== Name ---- [t for-directory-category] * Synopsis --------  File: docbook2texi-xslt.info, Node: index, Next: sectioning, Prev: menudescrip, Up: Top 13 index ******** * Menu: * [t] index:: * [t] indexdiv:: * [t] indexterm:: * [t] primary:: * [t] secondary|tertiary:: * [t] see|seealso:: * [t] indexentry:: * [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie::  File: docbook2texi-xslt.info, Node: [t] index, Next: [t] indexdiv, Up: index 13.1 [t] index ============== Name ---- [t] index Synopsis --------  File: docbook2texi-xslt.info, Node: [t] indexdiv, Next: [t] indexterm, Prev: [t] index, Up: index 13.2 [t] indexdiv ================= Name ---- [t] indexdiv Synopsis --------  File: docbook2texi-xslt.info, Node: [t] indexterm, Next: [t] primary, Prev: [t] indexdiv, Up: index 13.3 [t] indexterm ================== Name ---- [t] indexterm Synopsis --------  File: docbook2texi-xslt.info, Node: [t] primary, Next: [t] secondary|tertiary, Prev: [t] indexterm, Up: index 13.4 [t] primary ================ Name ---- [t] primary Synopsis --------  File: docbook2texi-xslt.info, Node: [t] secondary|tertiary, Next: [t] see|seealso, Prev: [t] primary, Up: index 13.5 [t] secondary|tertiary =========================== Name ---- [t] secondary|tertiary Synopsis --------  File: docbook2texi-xslt.info, Node: [t] see|seealso, Next: [t] indexentry, Prev: [t] secondary|tertiary, Up: index 13.6 [t] see|seealso ==================== Name ---- [t] see|seealso Synopsis --------  File: docbook2texi-xslt.info, Node: [t] indexentry, Next: [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie, Prev: [t] see|seealso, Up: index 13.7 [t] indexentry =================== Name ---- [t] indexentry Synopsis --------  File: docbook2texi-xslt.info, Node: [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie, Prev: [t] indexentry, Up: index 13.8 [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie ========================================================= Name ---- [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie Synopsis --------  File: docbook2texi-xslt.info, Node: sectioning, Next: division, Prev: index, Up: Top 14 sectioning ************* * Menu: * [T] get-texinfo-section-level:: Give Texinfo structuring command for given section level * [T] make-texinfo-section:: Make Texinfo section * [T] section:: Standard template for section structures  File: docbook2texi-xslt.info, Node: [T] get-texinfo-section-level, Next: [T] make-texinfo-section, Up: sectioning 14.1 [T] get-texinfo-section-level ================================== Name ---- [T] get-texinfo-section-level -- Give Texinfo structuring command for given section level Synopsis -------- Description ----------- This template returns the name of the Texinfo command that is mapped to the given DocBook element. This implementation internally uses numbers that reflect the DocBook hierarchy, like Norm's `section.level' template. However, `section.level' only maps the DocBook sectioning elements (`sectN' and `section'). This simplistic mapping of numbers to Texinfo commands sometimes yield results that do not make a lot of sense; e.g. if the document element is `section', then the first section is mapped to `@top', but the next nested section would be a Texinfo `chapter'. I have thought about letting each template specify their own structuring element, but from my testing, jumping around the hierarchy breaks at least the TeX portion of Texinfo. Besides, this neccessitated writing a `xsl:choose's with non-trivial cases in many templates. The only thing I can say is that if you use 'weird' document elements, you can't reasonably transform to Texinfo (whose top level is semantically similar to `book'). `docbook2texixml' takes the same approach. I also have a suspicion that calling this template will be slow, but there's nothing we can do about it :-( Parameters ---------- `node' The node to get the Texinfo structuring command mapping for. Default is the context node. `heading-class' The class of heading commands to use: `chapter', `unnumbered', `appendix', `chapheading' See the chart in the Texinfo manual for the meanings of each class. The default is `chapter'  File: docbook2texi-xslt.info, Node: [T] make-texinfo-section, Next: [T] section, Prev: [T] get-texinfo-section-level, Up: sectioning 14.2 [T] make-texinfo-section ============================= Name ---- [T] make-texinfo-section -- Make Texinfo section Synopsis -------- Description ----------- This template outputs the corresponding Texinfo sectioning command for the DocBook sectioning elements. Logically speaking, this template might better be called `make-texinfo-heading', as it only output the Texinfo sectioning command, but not the actual content of the section. Parameters ---------- `level' The name of the Texinfo structuring command. If not specified, automatically uses `get-texinfo-section-level'. `title' The title to use for the section. The default is found by applying `title' mode templates to the context node.  File: docbook2texi-xslt.info, Node: [T] section, Prev: [T] make-texinfo-section, Up: sectioning 14.3 [T] section ================ Name ---- [T] section -- Standard template for section structures Synopsis -------- Description ----------- For the given element, it creates a node for it if is.node=1, otherwise an anchor, and calls `make-texinfo-section' for the actual sectioning command. Finally templates are applied for the child elements. With this, the user can easily decide what elements are to be converted to nodes with a simple change to `texinode.xsl'. Parameters ---------- The arguments are the same as the ones for `make-texinfo-section', plus `content'. `content' The result tree fragment of the section. Defaults to applying templates.  File: docbook2texi-xslt.info, Node: division, Next: sections, Prev: sectioning, Up: Top 15 division *********** * Menu: * [t top-chunk] set:: * [t] book:: * [t] part:: * [t] partintro::  File: docbook2texi-xslt.info, Node: [t top-chunk] set, Next: [t] book, Up: division 15.1 [t top-chunk] set ====================== Name ---- [t top-chunk] set Synopsis --------  File: docbook2texi-xslt.info, Node: [t] book, Next: [t] part, Prev: [t top-chunk] set, Up: division 15.2 [t] book ============= Name ---- [t] book Synopsis --------  File: docbook2texi-xslt.info, Node: [t] part, Next: [t] partintro, Prev: [t] book, Up: division 15.3 [t] part ============= Name ---- [t] part Synopsis --------  File: docbook2texi-xslt.info, Node: [t] partintro, Prev: [t] part, Up: division 15.4 [t] partintro ================== Name ---- [t] partintro Synopsis --------  File: docbook2texi-xslt.info, Node: sections, Next: refentry, Prev: division, Up: Top 16 sections *********** * Menu: * [t] sect1|sect2|sect3|sect4|sect5|simplesect|section:: * [t] bridgehead:: * [t] title:: * [t] titleabbrev:: * [t] subtitle::  File: docbook2texi-xslt.info, Node: [t] sect1|sect2|sect3|sect4|sect5|simplesect|section, Next: [t] bridgehead, Up: sections 16.1 [t] sect1|sect2|sect3|sect4|sect5|simplesect|section ========================================================= Name ---- [t] sect1|sect2|sect3|sect4|sect5|simplesect|section Synopsis --------  File: docbook2texi-xslt.info, Node: [t] bridgehead, Next: [t] title, Prev: [t] sect1|sect2|sect3|sect4|sect5|simplesect|section, Up: sections 16.2 [t] bridgehead =================== Name ---- [t] bridgehead Synopsis --------  File: docbook2texi-xslt.info, Node: [t] title, Next: [t] titleabbrev, Prev: [t] bridgehead, Up: sections 16.3 [t] title ============== Name ---- [t] title Synopsis --------  File: docbook2texi-xslt.info, Node: [t] titleabbrev, Next: [t] subtitle, Prev: [t] title, Up: sections 16.4 [t] titleabbrev ==================== Name ---- [t] titleabbrev Synopsis --------  File: docbook2texi-xslt.info, Node: [t] subtitle, Prev: [t] titleabbrev, Up: sections 16.5 [t] subtitle ================= Name ---- [t] subtitle Synopsis --------  File: docbook2texi-xslt.info, Node: refentry, Next: admon, Prev: sections, Up: Top 17 refentry *********** * Menu: * [t] reference:: * [t] refentry:: * [t] refmeta:: * [t] manvolnum:: * [t no-inline-markup] manvolnum:: * [t] refmiscinfo:: * [t] refentrytitle:: * [t] refnamediv:: * [t] refname:: * [t] refpurpose:: * [t] refdescriptor:: * [t] refclass:: * [t] refsynopsisdiv:: * [t] refsect1|refsect2|refsect3::  File: docbook2texi-xslt.info, Node: [t] reference, Next: [t] refentry, Up: refentry 17.1 [t] reference ================== Name ---- [t] reference Synopsis --------  File: docbook2texi-xslt.info, Node: [t] refentry, Next: [t] refmeta, Prev: [t] reference, Up: refentry 17.2 [t] refentry ================= Name ---- [t] refentry Synopsis --------  File: docbook2texi-xslt.info, Node: [t] refmeta, Next: [t] manvolnum, Prev: [t] refentry, Up: refentry 17.3 [t] refmeta ================ Name ---- [t] refmeta Synopsis --------  File: docbook2texi-xslt.info, Node: [t] manvolnum, Next: [t no-inline-markup] manvolnum, Prev: [t] refmeta, Up: refentry 17.4 [t] manvolnum ================== Name ---- [t] manvolnum Synopsis --------  File: docbook2texi-xslt.info, Node: [t no-inline-markup] manvolnum, Next: [t] refmiscinfo, Prev: [t] manvolnum, Up: refentry 17.5 [t no-inline-markup] manvolnum =================================== Name ---- [t no-inline-markup] manvolnum Synopsis --------  File: docbook2texi-xslt.info, Node: [t] refmiscinfo, Next: [t] refentrytitle, Prev: [t no-inline-markup] manvolnum, Up: refentry 17.6 [t] refmiscinfo ==================== Name ---- [t] refmiscinfo Synopsis --------  File: docbook2texi-xslt.info, Node: [t] refentrytitle, Next: [t] refnamediv, Prev: [t] refmiscinfo, Up: refentry 17.7 [t] refentrytitle ====================== Name ---- [t] refentrytitle Synopsis --------  File: docbook2texi-xslt.info, Node: [t] refnamediv, Next: [t] refname, Prev: [t] refentrytitle, Up: refentry 17.8 [t] refnamediv =================== Name ---- [t] refnamediv Synopsis --------  File: docbook2texi-xslt.info, Node: [t] refname, Next: [t] refpurpose, Prev: [t] refnamediv, Up: refentry 17.9 [t] refname ================ Name ---- [t] refname Synopsis --------  File: docbook2texi-xslt.info, Node: [t] refpurpose, Next: [t] refdescriptor, Prev: [t] refname, Up: refentry 17.10 [t] refpurpose ==================== Name ---- [t] refpurpose Synopsis --------  File: docbook2texi-xslt.info, Node: [t] refdescriptor, Next: [t] refclass, Prev: [t] refpurpose, Up: refentry 17.11 [t] refdescriptor ======================= Name ---- [t] refdescriptor Synopsis --------  File: docbook2texi-xslt.info, Node: [t] refclass, Next: [t] refsynopsisdiv, Prev: [t] refdescriptor, Up: refentry 17.12 [t] refclass ================== Name ---- [t] refclass Synopsis --------  File: docbook2texi-xslt.info, Node: [t] refsynopsisdiv, Next: [t] refsect1|refsect2|refsect3, Prev: [t] refclass, Up: refentry 17.13 [t] refsynopsisdiv ======================== Name ---- [t] refsynopsisdiv Synopsis --------  File: docbook2texi-xslt.info, Node: [t] refsect1|refsect2|refsect3, Prev: [t] refsynopsisdiv, Up: refentry 17.14 [t] refsect1|refsect2|refsect3 ==================================== Name ---- [t] refsect1|refsect2|refsect3 Synopsis --------  File: docbook2texi-xslt.info, Node: admon, Next: block, Prev: refentry, Up: Top 18 admon ******** * Menu: * [T] admonition-title:: Undocumented * [t] note|important|warning|caution|tip::  File: docbook2texi-xslt.info, Node: [T] admonition-title, Next: [t] note|important|warning|caution|tip, Up: admon 18.1 [T] admonition-title ========================= Name ---- [T] admonition-title -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [t] note|important|warning|caution|tip, Prev: [T] admonition-title, Up: admon 18.2 [t] note|important|warning|caution|tip =========================================== Name ---- [t] note|important|warning|caution|tip Synopsis --------  File: docbook2texi-xslt.info, Node: block, Next: caption, Prev: admon, Up: Top 19 block ******** * Menu: * [T] block-object:: Undocumented * [t] para|simpara:: * [t] formalpara:: * [t] formalpara/title:: * [t] formalpara/para:: * [t] blockquote:: * [t] blockquote/title:: * [t] attribution:: * [t blockquote-attribution] attribution:: * [t] epigraph:: * [t] sidebar:: * [t] abstract:: * [t] msgset:: * [t] msgentry:: * [t] simplemsgentry:: * [t] msg:: * [t] msgmain:: * [t] msgmain/title:: * [t] msgsub:: * [t] msgsub/title:: * [t] msgrel:: * [t] msgrel/title:: * [t] msgtext:: * [t] msginfo:: * [t] msglevel|msgorig|msgaud:: * [t] msgexplan:: * [t] msgexplan/title:: * [t] revhistory:: * [t] revhistory/revision:: * [t] revision/revnumber:: * [t] revision/date:: * [t] revision/authorinitials:: * [t] revision/authorinitials[1]:: * [t] revision/revremark:: * [t] revision/revdescription:: * [t] ackno::  File: docbook2texi-xslt.info, Node: [T] block-object, Next: [t] para|simpara, Up: block 19.1 [T] block-object ===================== Name ---- [T] block-object -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [t] para|simpara, Next: [t] formalpara, Prev: [T] block-object, Up: block 19.2 [t] para|simpara ===================== Name ---- [t] para|simpara Synopsis --------  File: docbook2texi-xslt.info, Node: [t] formalpara, Next: [t] formalpara/title, Prev: [t] para|simpara, Up: block 19.3 [t] formalpara =================== Name ---- [t] formalpara Synopsis --------  File: docbook2texi-xslt.info, Node: [t] formalpara/title, Next: [t] formalpara/para, Prev: [t] formalpara, Up: block 19.4 [t] formalpara/title ========================= Name ---- [t] formalpara/title Synopsis --------  File: docbook2texi-xslt.info, Node: [t] formalpara/para, Next: [t] blockquote, Prev: [t] formalpara/title, Up: block 19.5 [t] formalpara/para ======================== Name ---- [t] formalpara/para Synopsis --------  File: docbook2texi-xslt.info, Node: [t] blockquote, Next: [t] blockquote/title, Prev: [t] formalpara/para, Up: block 19.6 [t] blockquote =================== Name ---- [t] blockquote Synopsis --------  File: docbook2texi-xslt.info, Node: [t] blockquote/title, Next: [t] attribution, Prev: [t] blockquote, Up: block 19.7 [t] blockquote/title ========================= Name ---- [t] blockquote/title Synopsis --------  File: docbook2texi-xslt.info, Node: [t] attribution, Next: [t blockquote-attribution] attribution, Prev: [t] blockquote/title, Up: block 19.8 [t] attribution ==================== Name ---- [t] attribution Synopsis --------  File: docbook2texi-xslt.info, Node: [t blockquote-attribution] attribution, Next: [t] epigraph, Prev: [t] attribution, Up: block 19.9 [t blockquote-attribution] attribution =========================================== Name ---- [t blockquote-attribution] attribution Synopsis --------  File: docbook2texi-xslt.info, Node: [t] epigraph, Next: [t] sidebar, Prev: [t blockquote-attribution] attribution, Up: block 19.10 [t] epigraph ================== Name ---- [t] epigraph Synopsis --------  File: docbook2texi-xslt.info, Node: [t] sidebar, Next: [t] abstract, Prev: [t] epigraph, Up: block 19.11 [t] sidebar ================= Name ---- [t] sidebar Synopsis --------  File: docbook2texi-xslt.info, Node: [t] abstract, Next: [t] msgset, Prev: [t] sidebar, Up: block 19.12 [t] abstract ================== Name ---- [t] abstract Synopsis --------  File: docbook2texi-xslt.info, Node: [t] msgset, Next: [t] msgentry, Prev: [t] abstract, Up: block 19.13 [t] msgset ================ Name ---- [t] msgset Synopsis --------  File: docbook2texi-xslt.info, Node: [t] msgentry, Next: [t] simplemsgentry, Prev: [t] msgset, Up: block 19.14 [t] msgentry ================== Name ---- [t] msgentry Synopsis --------  File: docbook2texi-xslt.info, Node: [t] simplemsgentry, Next: [t] msg, Prev: [t] msgentry, Up: block 19.15 [t] simplemsgentry ======================== Name ---- [t] simplemsgentry Synopsis --------  File: docbook2texi-xslt.info, Node: [t] msg, Next: [t] msgmain, Prev: [t] simplemsgentry, Up: block 19.16 [t] msg ============= Name ---- [t] msg Synopsis --------  File: docbook2texi-xslt.info, Node: [t] msgmain, Next: [t] msgmain/title, Prev: [t] msg, Up: block 19.17 [t] msgmain ================= Name ---- [t] msgmain Synopsis --------  File: docbook2texi-xslt.info, Node: [t] msgmain/title, Next: [t] msgsub, Prev: [t] msgmain, Up: block 19.18 [t] msgmain/title ======================= Name ---- [t] msgmain/title Synopsis --------  File: docbook2texi-xslt.info, Node: [t] msgsub, Next: [t] msgsub/title, Prev: [t] msgmain/title, Up: block 19.19 [t] msgsub ================ Name ---- [t] msgsub Synopsis --------  File: docbook2texi-xslt.info, Node: [t] msgsub/title, Next: [t] msgrel, Prev: [t] msgsub, Up: block 19.20 [t] msgsub/title ====================== Name ---- [t] msgsub/title Synopsis --------  File: docbook2texi-xslt.info, Node: [t] msgrel, Next: [t] msgrel/title, Prev: [t] msgsub/title, Up: block 19.21 [t] msgrel ================ Name ---- [t] msgrel Synopsis --------  File: docbook2texi-xslt.info, Node: [t] msgrel/title, Next: [t] msgtext, Prev: [t] msgrel, Up: block 19.22 [t] msgrel/title ====================== Name ---- [t] msgrel/title Synopsis --------  File: docbook2texi-xslt.info, Node: [t] msgtext, Next: [t] msginfo, Prev: [t] msgrel/title, Up: block 19.23 [t] msgtext ================= Name ---- [t] msgtext Synopsis --------  File: docbook2texi-xslt.info, Node: [t] msginfo, Next: [t] msglevel|msgorig|msgaud, Prev: [t] msgtext, Up: block 19.24 [t] msginfo ================= Name ---- [t] msginfo Synopsis --------  File: docbook2texi-xslt.info, Node: [t] msglevel|msgorig|msgaud, Next: [t] msgexplan, Prev: [t] msginfo, Up: block 19.25 [t] msglevel|msgorig|msgaud ================================= Name ---- [t] msglevel|msgorig|msgaud Synopsis --------  File: docbook2texi-xslt.info, Node: [t] msgexplan, Next: [t] msgexplan/title, Prev: [t] msglevel|msgorig|msgaud, Up: block 19.26 [t] msgexplan =================== Name ---- [t] msgexplan Synopsis --------  File: docbook2texi-xslt.info, Node: [t] msgexplan/title, Next: [t] revhistory, Prev: [t] msgexplan, Up: block 19.27 [t] msgexplan/title ========================= Name ---- [t] msgexplan/title Synopsis --------  File: docbook2texi-xslt.info, Node: [t] revhistory, Next: [t] revhistory/revision, Prev: [t] msgexplan/title, Up: block 19.28 [t] revhistory ==================== Name ---- [t] revhistory Synopsis --------  File: docbook2texi-xslt.info, Node: [t] revhistory/revision, Next: [t] revision/revnumber, Prev: [t] revhistory, Up: block 19.29 [t] revhistory/revision ============================= Name ---- [t] revhistory/revision Synopsis --------  File: docbook2texi-xslt.info, Node: [t] revision/revnumber, Next: [t] revision/date, Prev: [t] revhistory/revision, Up: block 19.30 [t] revision/revnumber ============================ Name ---- [t] revision/revnumber Synopsis --------  File: docbook2texi-xslt.info, Node: [t] revision/date, Next: [t] revision/authorinitials, Prev: [t] revision/revnumber, Up: block 19.31 [t] revision/date ======================= Name ---- [t] revision/date Synopsis --------  File: docbook2texi-xslt.info, Node: [t] revision/authorinitials, Next: [t] revision/authorinitials[1], Prev: [t] revision/date, Up: block 19.32 [t] revision/authorinitials ================================= Name ---- [t] revision/authorinitials Synopsis --------  File: docbook2texi-xslt.info, Node: [t] revision/authorinitials[1], Next: [t] revision/revremark, Prev: [t] revision/authorinitials, Up: block 19.33 [t] revision/authorinitials[1] ==================================== Name ---- [t] revision/authorinitials[1] Synopsis --------  File: docbook2texi-xslt.info, Node: [t] revision/revremark, Next: [t] revision/revdescription, Prev: [t] revision/authorinitials[1], Up: block 19.34 [t] revision/revremark ============================ Name ---- [t] revision/revremark Synopsis --------  File: docbook2texi-xslt.info, Node: [t] revision/revdescription, Next: [t] ackno, Prev: [t] revision/revremark, Up: block 19.35 [t] revision/revdescription ================================= Name ---- [t] revision/revdescription Synopsis --------  File: docbook2texi-xslt.info, Node: [t] ackno, Prev: [t] revision/revdescription, Up: block 19.36 [t] ackno =============== Name ---- [t] ackno Synopsis --------  File: docbook2texi-xslt.info, Node: caption, Next: formal, Prev: block, Up: Top 20 caption ********** * Menu: * [T] make-caption:: Render as a `caption'  File: docbook2texi-xslt.info, Node: [T] make-caption, Up: caption 20.1 [T] make-caption ===================== Name ---- [T] make-caption -- Render as a `caption' Synopsis -------- Description ----------- This template renders content (usually titles in certain block objects) as a `caption'. What this exactly means depends on the value of the `captions-display-as-headings' parameter. Parameters ---------- `content' The result tree fragment to render. If not specified, defaults to applying `for-title' mode to the _context_ node.  File: docbook2texi-xslt.info, Node: formal, Next: synop, Prev: caption, Up: Top 21 formal ********* * Menu: * [T] formal-object:: Undocumented * [T] formal-object-title:: Undocumented * [T] informal-object:: Undocumented * [T] semiformal-object:: Undocumented * [t] figure|table|example:: * [t] equation:: * [t] informalfigure:: * [t] informalexample:: * [t] informaltable:: * [t] informalequation::  File: docbook2texi-xslt.info, Node: [T] formal-object, Next: [T] formal-object-title, Up: formal 21.1 [T] formal-object ====================== Name ---- [T] formal-object -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] formal-object-title, Next: [T] informal-object, Prev: [T] formal-object, Up: formal 21.2 [T] formal-object-title ============================ Name ---- [T] formal-object-title -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] informal-object, Next: [T] semiformal-object, Prev: [T] formal-object-title, Up: formal 21.3 [T] informal-object ======================== Name ---- [T] informal-object -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] semiformal-object, Next: [t] figure|table|example, Prev: [T] informal-object, Up: formal 21.4 [T] semiformal-object ========================== Name ---- [T] semiformal-object -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [t] figure|table|example, Next: [t] equation, Prev: [T] semiformal-object, Up: formal 21.5 [t] figure|table|example ============================= Name ---- [t] figure|table|example Synopsis --------  File: docbook2texi-xslt.info, Node: [t] equation, Next: [t] informalfigure, Prev: [t] figure|table|example, Up: formal 21.6 [t] equation ================= Name ---- [t] equation Synopsis --------  File: docbook2texi-xslt.info, Node: [t] informalfigure, Next: [t] informalexample, Prev: [t] equation, Up: formal 21.7 [t] informalfigure ======================= Name ---- [t] informalfigure Synopsis --------  File: docbook2texi-xslt.info, Node: [t] informalexample, Next: [t] informaltable, Prev: [t] informalfigure, Up: formal 21.8 [t] informalexample ======================== Name ---- [t] informalexample Synopsis --------  File: docbook2texi-xslt.info, Node: [t] informaltable, Next: [t] informalequation, Prev: [t] informalexample, Up: formal 21.9 [t] informaltable ====================== Name ---- [t] informaltable Synopsis --------  File: docbook2texi-xslt.info, Node: [t] informalequation, Prev: [t] informaltable, Up: formal 21.10 [t] informalequation ========================== Name ---- [t] informalequation Synopsis --------  File: docbook2texi-xslt.info, Node: synop, Next: verbatim, Prev: formal, Up: Top 22 synop ******** * Menu: * [M] no-inline-markup:: Plain text synopses * [t] synopsis:: * [t no-inline-markup] *:: * [t no-inline-markup] text(): [t no-inline-markup] text[]. * [t] cmdsynopsis:: * [t cmdsynopsis] *:: * [t cmdsynopsis] sbr:: * [t cmdsynopsis] command:: * [t cmdsynopsis] group|arg:: * [t cmdsynopsis] group/*:: * [t cmdsynopsis] group/group:: * [t cmdsynopsis] group/option:: * [t cmdsynopsis] group/arg:: * [t cmdsynopsis] synopfragment|synopfragmentref:: * [t] funcsynopsis:: * [t funcsynopsis] *:: * [t funcsynopsis] funcsynopsisinfo:: * [T] funcprototype:: Undocumented * [t funcsynopsis] modifier:: * [t funcsynopsis] funcdef:: * [t funcsynopsis] function:: * [t funcsynopsis] void:: * [t funcsynopsis] varargs:: * [t funcsynopsis] paramdef:: * [t funcsynopsis] paramdef/parameter:: * [t funcsynopsis] funcparams::  File: docbook2texi-xslt.info, Node: [M] no-inline-markup, Next: [t] synopsis, Up: synop 22.1 [M] no-inline-markup ========================= Name ---- [M] no-inline-markup -- Plain text synopses Description ----------- Info uses decorations to represent semantic markup, which is undesirable in a verbatim synopsis. So we use `verbatim' to not use Texinfo's semantic markup. However, we lose the ability to make links :(  File: docbook2texi-xslt.info, Node: [t] synopsis, Next: [t no-inline-markup] *, Prev: [M] no-inline-markup, Up: synop 22.2 [t] synopsis ================= Name ---- [t] synopsis Synopsis --------  File: docbook2texi-xslt.info, Node: [t no-inline-markup] *, Next: [t no-inline-markup] text[], Prev: [t] synopsis, Up: synop 22.3 [t no-inline-markup] * =========================== Name ---- [t no-inline-markup] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t no-inline-markup] text[], Next: [t] cmdsynopsis, Prev: [t no-inline-markup] *, Up: synop 22.4 [t no-inline-markup] text() ================================ Name ---- [t no-inline-markup] text() Synopsis --------  File: docbook2texi-xslt.info, Node: [t] cmdsynopsis, Next: [t cmdsynopsis] *, Prev: [t no-inline-markup] text[], Up: synop 22.5 [t] cmdsynopsis ==================== Name ---- [t] cmdsynopsis Synopsis --------  File: docbook2texi-xslt.info, Node: [t cmdsynopsis] *, Next: [t cmdsynopsis] sbr, Prev: [t] cmdsynopsis, Up: synop 22.6 [t cmdsynopsis] * ====================== Name ---- [t cmdsynopsis] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t cmdsynopsis] sbr, Next: [t cmdsynopsis] command, Prev: [t cmdsynopsis] *, Up: synop 22.7 [t cmdsynopsis] sbr ======================== Name ---- [t cmdsynopsis] sbr Synopsis --------  File: docbook2texi-xslt.info, Node: [t cmdsynopsis] command, Next: [t cmdsynopsis] group|arg, Prev: [t cmdsynopsis] sbr, Up: synop 22.8 [t cmdsynopsis] command ============================ Name ---- [t cmdsynopsis] command Synopsis --------  File: docbook2texi-xslt.info, Node: [t cmdsynopsis] group|arg, Next: [t cmdsynopsis] group/*, Prev: [t cmdsynopsis] command, Up: synop 22.9 [t cmdsynopsis] group|arg ============================== Name ---- [t cmdsynopsis] group|arg Synopsis --------  File: docbook2texi-xslt.info, Node: [t cmdsynopsis] group/*, Next: [t cmdsynopsis] group/group, Prev: [t cmdsynopsis] group|arg, Up: synop 22.10 [t cmdsynopsis] group/* ============================= Name ---- [t cmdsynopsis] group/* Synopsis --------  File: docbook2texi-xslt.info, Node: [t cmdsynopsis] group/group, Next: [t cmdsynopsis] group/option, Prev: [t cmdsynopsis] group/*, Up: synop 22.11 [t cmdsynopsis] group/group ================================= Name ---- [t cmdsynopsis] group/group Synopsis --------  File: docbook2texi-xslt.info, Node: [t cmdsynopsis] group/option, Next: [t cmdsynopsis] group/arg, Prev: [t cmdsynopsis] group/group, Up: synop 22.12 [t cmdsynopsis] group/option ================================== Name ---- [t cmdsynopsis] group/option Synopsis --------  File: docbook2texi-xslt.info, Node: [t cmdsynopsis] group/arg, Next: [t cmdsynopsis] synopfragment|synopfragmentref, Prev: [t cmdsynopsis] group/option, Up: synop 22.13 [t cmdsynopsis] group/arg =============================== Name ---- [t cmdsynopsis] group/arg Synopsis --------  File: docbook2texi-xslt.info, Node: [t cmdsynopsis] synopfragment|synopfragmentref, Next: [t] funcsynopsis, Prev: [t cmdsynopsis] group/arg, Up: synop 22.14 [t cmdsynopsis] synopfragment|synopfragmentref ==================================================== Name ---- [t cmdsynopsis] synopfragment|synopfragmentref Synopsis --------  File: docbook2texi-xslt.info, Node: [t] funcsynopsis, Next: [t funcsynopsis] *, Prev: [t cmdsynopsis] synopfragment|synopfragmentref, Up: synop 22.15 [t] funcsynopsis ====================== Name ---- [t] funcsynopsis Synopsis --------  File: docbook2texi-xslt.info, Node: [t funcsynopsis] *, Next: [t funcsynopsis] funcsynopsisinfo, Prev: [t] funcsynopsis, Up: synop 22.16 [t funcsynopsis] * ======================== Name ---- [t funcsynopsis] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t funcsynopsis] funcsynopsisinfo, Next: [T] funcprototype, Prev: [t funcsynopsis] *, Up: synop 22.17 [t funcsynopsis] funcsynopsisinfo ======================================= Name ---- [t funcsynopsis] funcsynopsisinfo Synopsis --------  File: docbook2texi-xslt.info, Node: [T] funcprototype, Next: [t funcsynopsis] modifier, Prev: [t funcsynopsis] funcsynopsisinfo, Up: synop 22.18 [T] funcprototype ======================= Name ---- [T] funcprototype -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [t funcsynopsis] modifier, Next: [t funcsynopsis] funcdef, Prev: [T] funcprototype, Up: synop 22.19 [t funcsynopsis] modifier =============================== Name ---- [t funcsynopsis] modifier Synopsis --------  File: docbook2texi-xslt.info, Node: [t funcsynopsis] funcdef, Next: [t funcsynopsis] function, Prev: [t funcsynopsis] modifier, Up: synop 22.20 [t funcsynopsis] funcdef ============================== Name ---- [t funcsynopsis] funcdef Synopsis --------  File: docbook2texi-xslt.info, Node: [t funcsynopsis] function, Next: [t funcsynopsis] void, Prev: [t funcsynopsis] funcdef, Up: synop 22.21 [t funcsynopsis] function =============================== Name ---- [t funcsynopsis] function Synopsis --------  File: docbook2texi-xslt.info, Node: [t funcsynopsis] void, Next: [t funcsynopsis] varargs, Prev: [t funcsynopsis] function, Up: synop 22.22 [t funcsynopsis] void =========================== Name ---- [t funcsynopsis] void Synopsis --------  File: docbook2texi-xslt.info, Node: [t funcsynopsis] varargs, Next: [t funcsynopsis] paramdef, Prev: [t funcsynopsis] void, Up: synop 22.23 [t funcsynopsis] varargs ============================== Name ---- [t funcsynopsis] varargs Synopsis --------  File: docbook2texi-xslt.info, Node: [t funcsynopsis] paramdef, Next: [t funcsynopsis] paramdef/parameter, Prev: [t funcsynopsis] varargs, Up: synop 22.24 [t funcsynopsis] paramdef =============================== Name ---- [t funcsynopsis] paramdef Synopsis --------  File: docbook2texi-xslt.info, Node: [t funcsynopsis] paramdef/parameter, Next: [t funcsynopsis] funcparams, Prev: [t funcsynopsis] paramdef, Up: synop 22.25 [t funcsynopsis] paramdef/parameter ========================================= Name ---- [t funcsynopsis] paramdef/parameter Synopsis --------  File: docbook2texi-xslt.info, Node: [t funcsynopsis] funcparams, Prev: [t funcsynopsis] paramdef/parameter, Up: synop 22.26 [t funcsynopsis] funcparams ================================= Name ---- [t funcsynopsis] funcparams Synopsis --------  File: docbook2texi-xslt.info, Node: verbatim, Next: footnote, Prev: synop, Up: Top 23 verbatim *********** 23.1 verbatim ============= These templates transform DocBook verbatim environments to their Texinfo equivalents. 23.1.1 Verbatim environments: processing expectations ----------------------------------------------------- The verbatim environments in the printed output (TeX) are not very wide, and TeX will choke on lines that ordinarily fit comfortably on the screen in Info and HTML output (an `overfull `@hbox''). So if you want Texinfo printed output, trim down the offending lines in the verbatim environments. The stylesheets cannot do that for you. * Menu: * [t] literallayout[@class='monospaced']:: * [t] literallayout:: * [t] programlisting|screen:: * [t] address::  File: docbook2texi-xslt.info, Node: [t] literallayout[@class='monospaced'], Next: [t] literallayout, Up: verbatim 23.2 [t] literallayout[@class='monospaced'] =========================================== Name ---- [t] literallayout[@class='monospaced'] Synopsis --------  File: docbook2texi-xslt.info, Node: [t] literallayout, Next: [t] programlisting|screen, Prev: [t] literallayout[@class='monospaced'], Up: verbatim 23.3 [t] literallayout ====================== Name ---- [t] literallayout Synopsis --------  File: docbook2texi-xslt.info, Node: [t] programlisting|screen, Next: [t] address, Prev: [t] literallayout, Up: verbatim 23.4 [t] programlisting|screen ============================== Name ---- [t] programlisting|screen Synopsis --------  File: docbook2texi-xslt.info, Node: [t] address, Prev: [t] programlisting|screen, Up: verbatim 23.5 [t] address ================ Name ---- [t] address Synopsis --------  File: docbook2texi-xslt.info, Node: footnote, Next: force-inline, Prev: verbatim, Up: Top 24 footnote *********** * Menu: * [t] footnote:: * [t] footnoteref::  File: docbook2texi-xslt.info, Node: [t] footnote, Next: [t] footnoteref, Up: footnote 24.1 [t] footnote ================= Name ---- [t] footnote Synopsis --------  File: docbook2texi-xslt.info, Node: [t] footnoteref, Prev: [t] footnote, Up: footnote 24.2 [t] footnoteref ==================== Name ---- [t] footnoteref Synopsis --------  File: docbook2texi-xslt.info, Node: force-inline, Next: inline, Prev: footnote, Up: Top 25 force-inline *************** * Menu: * [M] coerce-into-inline:: Process only inline content * [t coerce-into-inline] calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist| simplelist|variablelist| caution|important|note|tip|warning| literallayout|programlisting|programlistingco| screen|screenco|screenshot| synopsis|cmdsynopsis|funcsynopsis| classsynopsis|fieldsynopsis| constructorsynopsis|destructorsynopsis|methodsynopsis| formalpara| address|blockquote| graphic|graphicco|mediaobject|mediaobjectco| informalequation|informalexample|informalfigure|informaltable| equation|example|figure|table| msgset|procedure|qandaset:: * [t coerce-into-inline] para|simpara:: * [t coerce-into-inline] *|text(): [t coerce-into-inline] *|text[].  File: docbook2texi-xslt.info, Node: [M] coerce-into-inline, Next: [t coerce-into-inline] calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist| simplelist|variablelist| caution|important|note|tip|warning| literallayout|programlisting|programlistingco| screen|screenco|screenshot| synopsis|cmdsynopsis|funcsynopsis| classsynopsis|fieldsynopsis| constructorsynopsis|destructorsynopsis|methodsynopsis| formalpara| address|blockquote| graphic|graphicco|mediaobject|mediaobjectco| informalequation|informalexample|informalfigure|informaltable| equation|example|figure|table| msgset|procedure|qandaset, Up: force-inline 25.1 [M] coerce-into-inline =========================== Name ---- [M] coerce-into-inline -- Process only inline content Description ----------- A few elements in DocBook, namely `entry' and `footnote', have content models that allow block-level content (as well as inline-level content), but the mapping to Texinfo does not allow block-level content. This mode selects only the inline content and loudly complains to the user if block-level elements are found. Additionally, simple paragraphs are converted to inline content.  File: docbook2texi-xslt.info, Node: [t coerce-into-inline] calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist| simplelist|variablelist| caution|important|note|tip|warning| literallayout|programlisting|programlistingco| screen|screenco|screenshot| synopsis|cmdsynopsis|funcsynopsis| classsynopsis|fieldsynopsis| constructorsynopsis|destructorsynopsis|methodsynopsis| formalpara| address|blockquote| graphic|graphicco|mediaobject|mediaobjectco| informalequation|informalexample|informalfigure|informaltable| equation|example|figure|table| msgset|procedure|qandaset, Next: [t coerce-into-inline] para|simpara, Prev: [M] coerce-into-inline, Up: force-inline 25.2 [t coerce-into-inline] calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist| simplelist|variablelist| caution|important|note|tip|warning| literallayout|programlisting|programlistingco| screen|screenco|screenshot| synopsis|cmdsynopsis|funcsynopsis| classsynopsis|fieldsynopsis| constructorsynopsis|destructorsynopsis|methodsynopsis| formalpara| address|blockquote| graphic|graphicco|mediaobject|mediaobjectco| informalequation|informalexample|informalfigure|informaltable| equation|example|figure|table| msgset|procedure|qandaset ============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================= Name ---- [t coerce-into-inline] calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist| simplelist|variablelist| caution|important|note|tip|warning| literallayout|programlisting|programlistingco| screen|screenco|screenshot| synopsis|cmdsynopsis|funcsynopsis| classsynopsis|fieldsynopsis| constructorsynopsis|destructorsynopsis|methodsynopsis| formalpara| address|blockquote| graphic|graphicco|mediaobject|mediaobjectco| informalequation|informalexample|informalfigure|informaltable| equation|example|figure|table| msgset|procedure|qandaset Synopsis --------  File: docbook2texi-xslt.info, Node: [t coerce-into-inline] para|simpara, Next: [t coerce-into-inline] *|text[], Prev: [t coerce-into-inline] calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist| simplelist|variablelist| caution|important|note|tip|warning| literallayout|programlisting|programlistingco| screen|screenco|screenshot| synopsis|cmdsynopsis|funcsynopsis| classsynopsis|fieldsynopsis| constructorsynopsis|destructorsynopsis|methodsynopsis| formalpara| address|blockquote| graphic|graphicco|mediaobject|mediaobjectco| informalequation|informalexample|informalfigure|informaltable| equation|example|figure|table| msgset|procedure|qandaset, Up: force-inline 25.3 [t coerce-into-inline] para|simpara ======================================== Name ---- [t coerce-into-inline] para|simpara Synopsis --------  File: docbook2texi-xslt.info, Node: [t coerce-into-inline] *|text[], Prev: [t coerce-into-inline] para|simpara, Up: force-inline 25.4 [t coerce-into-inline] *|text() ==================================== Name ---- [t coerce-into-inline] *|text() Synopsis --------  File: docbook2texi-xslt.info, Node: inline, Next: math, Prev: force-inline, Up: Top 26 inline ********* 26.1 inline =========== These are the templates for character inline-level markup. * Menu: * [T] inline-plain:: Undocumented * [T] inline-monospace:: Undocumented * [T] inline-bold:: Undocumented * [T] inline-italic:: Undocumented * [T] inline-roman:: Undocumented * [T] inline-superscript:: Undocumented * [T] inline-subscript:: Undocumented * [T] inline-markup-emph:: Undocumented * [T] inline-markup-code:: Undocumented * [T] inline-markup-samp:: Undocumented * [T] inline-markup-cite:: Undocumented * [T] inline-markup-email:: Undocumented * [T] inline-markup-dfn:: Undocumented * [T] inline-markup-env:: Undocumented * [T] inline-markup-file:: Undocumented * [T] inline-markup-sc:: Undocumented * [T] inline-markup-acronym:: Undocumented * [T] inline-markup-strong:: Undocumented * [T] inline-markup-key:: Undocumented * [T] inline-markup-kbd:: Undocumented * [T] inline-markup-var:: Undocumented * [t] personname:: * [t] author|editor|othercredit|authorinitials:: * [t] accel:: * [t] action:: * [t] application:: * [t] classname:: * [t] exceptionname:: * [t] interfacename:: * [t] methodname:: * [t] command:: * [t] computeroutput:: * [t] constant:: * [t] database:: * [t] errorcode:: * [t] errorname:: * [t] errortype:: * [t] errortext:: * [t] envar:: * [t] filename:: * [t] refentrytitle/function:: * [t] function:: * [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu:: * [t] hardware:: * [t] interface:: * [t] interfacedefinition:: * [t] keycap:: * [t] keycode:: * [t] keysym:: * [t] literal:: * [t] medialabel:: * [t] shortcut:: * [t] mousebutton:: * [t] option:: * [t] parameter:: * [t] property:: * [t] prompt:: * [t] replaceable:: * [t] returnvalue:: * [t] structfield:: * [t] structname:: * [t] symbol:: * [t] systemitem:: * [t] token:: * [t] type:: * [t] userinput:: * [t] abbrev:: * [t] acronym:: * [t] citerefentry:: * [t] citetitle:: * [t] emphasis[@role='strong' or @role='bold' or parent;;emphasis]:: * [t] emphasis:: * [t] foreignphrase:: * [t] markup:: * [t] phrase:: * [t] quote:: * [t] varname:: * [t] wordasword:: * [t] lineannotation:: * [t] superscript:: * [t] subscript:: * [t] trademark:: * [t] firstterm:: * [t] glossterm:: * [t] sgmltag:: * [T] format-sgmltag:: Undocumented * [t] email:: * [t] keycombo:: * [t] menuchoice:: * [T] format-menuchoice:: Undocumented * [t] optional:: * [t] citation:: * [t] comment|remark:: * [t] productname|productnumber:: * [t] pob|street|city|state|postcode|country|phone|fax|otheraddr:: * [t] firstname|surname|lineage|othername|honorific::  File: docbook2texi-xslt.info, Node: [T] inline-plain, Next: [T] inline-monospace, Up: inline 26.2 [T] inline-plain ===================== Name ---- [T] inline-plain -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-monospace, Next: [T] inline-bold, Prev: [T] inline-plain, Up: inline 26.3 [T] inline-monospace ========================= Name ---- [T] inline-monospace -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-bold, Next: [T] inline-italic, Prev: [T] inline-monospace, Up: inline 26.4 [T] inline-bold ==================== Name ---- [T] inline-bold -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-italic, Next: [T] inline-roman, Prev: [T] inline-bold, Up: inline 26.5 [T] inline-italic ====================== Name ---- [T] inline-italic -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-roman, Next: [T] inline-superscript, Prev: [T] inline-italic, Up: inline 26.6 [T] inline-roman ===================== Name ---- [T] inline-roman -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-superscript, Next: [T] inline-subscript, Prev: [T] inline-roman, Up: inline 26.7 [T] inline-superscript =========================== Name ---- [T] inline-superscript -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-subscript, Next: [T] inline-markup-emph, Prev: [T] inline-superscript, Up: inline 26.8 [T] inline-subscript ========================= Name ---- [T] inline-subscript -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-markup-emph, Next: [T] inline-markup-code, Prev: [T] inline-subscript, Up: inline 26.9 [T] inline-markup-emph =========================== Name ---- [T] inline-markup-emph -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-markup-code, Next: [T] inline-markup-samp, Prev: [T] inline-markup-emph, Up: inline 26.10 [T] inline-markup-code ============================ Name ---- [T] inline-markup-code -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-markup-samp, Next: [T] inline-markup-cite, Prev: [T] inline-markup-code, Up: inline 26.11 [T] inline-markup-samp ============================ Name ---- [T] inline-markup-samp -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-markup-cite, Next: [T] inline-markup-email, Prev: [T] inline-markup-samp, Up: inline 26.12 [T] inline-markup-cite ============================ Name ---- [T] inline-markup-cite -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-markup-email, Next: [T] inline-markup-dfn, Prev: [T] inline-markup-cite, Up: inline 26.13 [T] inline-markup-email ============================= Name ---- [T] inline-markup-email -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-markup-dfn, Next: [T] inline-markup-env, Prev: [T] inline-markup-email, Up: inline 26.14 [T] inline-markup-dfn =========================== Name ---- [T] inline-markup-dfn -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-markup-env, Next: [T] inline-markup-file, Prev: [T] inline-markup-dfn, Up: inline 26.15 [T] inline-markup-env =========================== Name ---- [T] inline-markup-env -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-markup-file, Next: [T] inline-markup-sc, Prev: [T] inline-markup-env, Up: inline 26.16 [T] inline-markup-file ============================ Name ---- [T] inline-markup-file -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-markup-sc, Next: [T] inline-markup-acronym, Prev: [T] inline-markup-file, Up: inline 26.17 [T] inline-markup-sc ========================== Name ---- [T] inline-markup-sc -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-markup-acronym, Next: [T] inline-markup-strong, Prev: [T] inline-markup-sc, Up: inline 26.18 [T] inline-markup-acronym =============================== Name ---- [T] inline-markup-acronym -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-markup-strong, Next: [T] inline-markup-key, Prev: [T] inline-markup-acronym, Up: inline 26.19 [T] inline-markup-strong ============================== Name ---- [T] inline-markup-strong -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-markup-key, Next: [T] inline-markup-kbd, Prev: [T] inline-markup-strong, Up: inline 26.20 [T] inline-markup-key =========================== Name ---- [T] inline-markup-key -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-markup-kbd, Next: [T] inline-markup-var, Prev: [T] inline-markup-key, Up: inline 26.21 [T] inline-markup-kbd =========================== Name ---- [T] inline-markup-kbd -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] inline-markup-var, Next: [t] personname, Prev: [T] inline-markup-kbd, Up: inline 26.22 [T] inline-markup-var =========================== Name ---- [T] inline-markup-var -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [t] personname, Next: [t] author|editor|othercredit|authorinitials, Prev: [T] inline-markup-var, Up: inline 26.23 [t] personname ==================== Name ---- [t] personname Synopsis --------  File: docbook2texi-xslt.info, Node: [t] author|editor|othercredit|authorinitials, Next: [t] accel, Prev: [t] personname, Up: inline 26.24 [t] author|editor|othercredit|authorinitials ================================================== Name ---- [t] author|editor|othercredit|authorinitials Synopsis --------  File: docbook2texi-xslt.info, Node: [t] accel, Next: [t] action, Prev: [t] author|editor|othercredit|authorinitials, Up: inline 26.25 [t] accel =============== Name ---- [t] accel Synopsis --------  File: docbook2texi-xslt.info, Node: [t] action, Next: [t] application, Prev: [t] accel, Up: inline 26.26 [t] action ================ Name ---- [t] action Synopsis --------  File: docbook2texi-xslt.info, Node: [t] application, Next: [t] classname, Prev: [t] action, Up: inline 26.27 [t] application ===================== Name ---- [t] application Synopsis --------  File: docbook2texi-xslt.info, Node: [t] classname, Next: [t] exceptionname, Prev: [t] application, Up: inline 26.28 [t] classname =================== Name ---- [t] classname Synopsis --------  File: docbook2texi-xslt.info, Node: [t] exceptionname, Next: [t] interfacename, Prev: [t] classname, Up: inline 26.29 [t] exceptionname ======================= Name ---- [t] exceptionname Synopsis --------  File: docbook2texi-xslt.info, Node: [t] interfacename, Next: [t] methodname, Prev: [t] exceptionname, Up: inline 26.30 [t] interfacename ======================= Name ---- [t] interfacename Synopsis --------  File: docbook2texi-xslt.info, Node: [t] methodname, Next: [t] command, Prev: [t] interfacename, Up: inline 26.31 [t] methodname ==================== Name ---- [t] methodname Synopsis --------  File: docbook2texi-xslt.info, Node: [t] command, Next: [t] computeroutput, Prev: [t] methodname, Up: inline 26.32 [t] command ================= Name ---- [t] command Synopsis --------  File: docbook2texi-xslt.info, Node: [t] computeroutput, Next: [t] constant, Prev: [t] command, Up: inline 26.33 [t] computeroutput ======================== Name ---- [t] computeroutput Synopsis --------  File: docbook2texi-xslt.info, Node: [t] constant, Next: [t] database, Prev: [t] computeroutput, Up: inline 26.34 [t] constant ================== Name ---- [t] constant Synopsis --------  File: docbook2texi-xslt.info, Node: [t] database, Next: [t] errorcode, Prev: [t] constant, Up: inline 26.35 [t] database ================== Name ---- [t] database Synopsis --------  File: docbook2texi-xslt.info, Node: [t] errorcode, Next: [t] errorname, Prev: [t] database, Up: inline 26.36 [t] errorcode =================== Name ---- [t] errorcode Synopsis --------  File: docbook2texi-xslt.info, Node: [t] errorname, Next: [t] errortype, Prev: [t] errorcode, Up: inline 26.37 [t] errorname =================== Name ---- [t] errorname Synopsis --------  File: docbook2texi-xslt.info, Node: [t] errortype, Next: [t] errortext, Prev: [t] errorname, Up: inline 26.38 [t] errortype =================== Name ---- [t] errortype Synopsis --------  File: docbook2texi-xslt.info, Node: [t] errortext, Next: [t] envar, Prev: [t] errortype, Up: inline 26.39 [t] errortext =================== Name ---- [t] errortext Synopsis --------  File: docbook2texi-xslt.info, Node: [t] envar, Next: [t] filename, Prev: [t] errortext, Up: inline 26.40 [t] envar =============== Name ---- [t] envar Synopsis --------  File: docbook2texi-xslt.info, Node: [t] filename, Next: [t] refentrytitle/function, Prev: [t] envar, Up: inline 26.41 [t] filename ================== Name ---- [t] filename Synopsis --------  File: docbook2texi-xslt.info, Node: [t] refentrytitle/function, Next: [t] function, Prev: [t] filename, Up: inline 26.42 [t] refentrytitle/function ================================ Name ---- [t] refentrytitle/function Synopsis --------  File: docbook2texi-xslt.info, Node: [t] function, Next: [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu, Prev: [t] refentrytitle/function, Up: inline 26.43 [t] function ================== Name ---- [t] function Synopsis --------  File: docbook2texi-xslt.info, Node: [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu, Next: [t] hardware, Prev: [t] function, Up: inline 26.44 [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu =================================================================== Name ---- [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu Synopsis --------  File: docbook2texi-xslt.info, Node: [t] hardware, Next: [t] interface, Prev: [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu, Up: inline 26.45 [t] hardware ================== Name ---- [t] hardware Synopsis --------  File: docbook2texi-xslt.info, Node: [t] interface, Next: [t] interfacedefinition, Prev: [t] hardware, Up: inline 26.46 [t] interface =================== Name ---- [t] interface Synopsis --------  File: docbook2texi-xslt.info, Node: [t] interfacedefinition, Next: [t] keycap, Prev: [t] interface, Up: inline 26.47 [t] interfacedefinition ============================= Name ---- [t] interfacedefinition Synopsis --------  File: docbook2texi-xslt.info, Node: [t] keycap, Next: [t] keycode, Prev: [t] interfacedefinition, Up: inline 26.48 [t] keycap ================ Name ---- [t] keycap Synopsis --------  File: docbook2texi-xslt.info, Node: [t] keycode, Next: [t] keysym, Prev: [t] keycap, Up: inline 26.49 [t] keycode ================= Name ---- [t] keycode Synopsis --------  File: docbook2texi-xslt.info, Node: [t] keysym, Next: [t] literal, Prev: [t] keycode, Up: inline 26.50 [t] keysym ================ Name ---- [t] keysym Synopsis --------  File: docbook2texi-xslt.info, Node: [t] literal, Next: [t] medialabel, Prev: [t] keysym, Up: inline 26.51 [t] literal ================= Name ---- [t] literal Synopsis --------  File: docbook2texi-xslt.info, Node: [t] medialabel, Next: [t] shortcut, Prev: [t] literal, Up: inline 26.52 [t] medialabel ==================== Name ---- [t] medialabel Synopsis --------  File: docbook2texi-xslt.info, Node: [t] shortcut, Next: [t] mousebutton, Prev: [t] medialabel, Up: inline 26.53 [t] shortcut ================== Name ---- [t] shortcut Synopsis --------  File: docbook2texi-xslt.info, Node: [t] mousebutton, Next: [t] option, Prev: [t] shortcut, Up: inline 26.54 [t] mousebutton ===================== Name ---- [t] mousebutton Synopsis --------  File: docbook2texi-xslt.info, Node: [t] option, Next: [t] parameter, Prev: [t] mousebutton, Up: inline 26.55 [t] option ================ Name ---- [t] option Synopsis --------  File: docbook2texi-xslt.info, Node: [t] parameter, Next: [t] property, Prev: [t] option, Up: inline 26.56 [t] parameter =================== Name ---- [t] parameter Synopsis --------  File: docbook2texi-xslt.info, Node: [t] property, Next: [t] prompt, Prev: [t] parameter, Up: inline 26.57 [t] property ================== Name ---- [t] property Synopsis --------  File: docbook2texi-xslt.info, Node: [t] prompt, Next: [t] replaceable, Prev: [t] property, Up: inline 26.58 [t] prompt ================ Name ---- [t] prompt Synopsis --------  File: docbook2texi-xslt.info, Node: [t] replaceable, Next: [t] returnvalue, Prev: [t] prompt, Up: inline 26.59 [t] replaceable ===================== Name ---- [t] replaceable Synopsis --------  File: docbook2texi-xslt.info, Node: [t] returnvalue, Next: [t] structfield, Prev: [t] replaceable, Up: inline 26.60 [t] returnvalue ===================== Name ---- [t] returnvalue Synopsis --------  File: docbook2texi-xslt.info, Node: [t] structfield, Next: [t] structname, Prev: [t] returnvalue, Up: inline 26.61 [t] structfield ===================== Name ---- [t] structfield Synopsis --------  File: docbook2texi-xslt.info, Node: [t] structname, Next: [t] symbol, Prev: [t] structfield, Up: inline 26.62 [t] structname ==================== Name ---- [t] structname Synopsis --------  File: docbook2texi-xslt.info, Node: [t] symbol, Next: [t] systemitem, Prev: [t] structname, Up: inline 26.63 [t] symbol ================ Name ---- [t] symbol Synopsis --------  File: docbook2texi-xslt.info, Node: [t] systemitem, Next: [t] token, Prev: [t] symbol, Up: inline 26.64 [t] systemitem ==================== Name ---- [t] systemitem Synopsis --------  File: docbook2texi-xslt.info, Node: [t] token, Next: [t] type, Prev: [t] systemitem, Up: inline 26.65 [t] token =============== Name ---- [t] token Synopsis --------  File: docbook2texi-xslt.info, Node: [t] type, Next: [t] userinput, Prev: [t] token, Up: inline 26.66 [t] type ============== Name ---- [t] type Synopsis --------  File: docbook2texi-xslt.info, Node: [t] userinput, Next: [t] abbrev, Prev: [t] type, Up: inline 26.67 [t] userinput =================== Name ---- [t] userinput Synopsis --------  File: docbook2texi-xslt.info, Node: [t] abbrev, Next: [t] acronym, Prev: [t] userinput, Up: inline 26.68 [t] abbrev ================ Name ---- [t] abbrev Synopsis --------  File: docbook2texi-xslt.info, Node: [t] acronym, Next: [t] citerefentry, Prev: [t] abbrev, Up: inline 26.69 [t] acronym ================= Name ---- [t] acronym Synopsis --------  File: docbook2texi-xslt.info, Node: [t] citerefentry, Next: [t] citetitle, Prev: [t] acronym, Up: inline 26.70 [t] citerefentry ====================== Name ---- [t] citerefentry Synopsis --------  File: docbook2texi-xslt.info, Node: [t] citetitle, Next: [t] emphasis[@role='strong' or @role='bold' or parent;;emphasis], Prev: [t] citerefentry, Up: inline 26.71 [t] citetitle =================== Name ---- [t] citetitle Synopsis --------  File: docbook2texi-xslt.info, Node: [t] emphasis[@role='strong' or @role='bold' or parent;;emphasis], Next: [t] emphasis, Prev: [t] citetitle, Up: inline 26.72 [t] emphasis[@role='strong' or @role='bold' or parent::emphasis] ====================================================================== Name ---- [t] emphasis[@role='strong' or @role='bold' or parent::emphasis] Synopsis --------  File: docbook2texi-xslt.info, Node: [t] emphasis, Next: [t] foreignphrase, Prev: [t] emphasis[@role='strong' or @role='bold' or parent;;emphasis], Up: inline 26.73 [t] emphasis ================== Name ---- [t] emphasis Synopsis --------  File: docbook2texi-xslt.info, Node: [t] foreignphrase, Next: [t] markup, Prev: [t] emphasis, Up: inline 26.74 [t] foreignphrase ======================= Name ---- [t] foreignphrase Synopsis --------  File: docbook2texi-xslt.info, Node: [t] markup, Next: [t] phrase, Prev: [t] foreignphrase, Up: inline 26.75 [t] markup ================ Name ---- [t] markup Synopsis --------  File: docbook2texi-xslt.info, Node: [t] phrase, Next: [t] quote, Prev: [t] markup, Up: inline 26.76 [t] phrase ================ Name ---- [t] phrase Synopsis --------  File: docbook2texi-xslt.info, Node: [t] quote, Next: [t] varname, Prev: [t] phrase, Up: inline 26.77 [t] quote =============== Name ---- [t] quote Synopsis --------  File: docbook2texi-xslt.info, Node: [t] varname, Next: [t] wordasword, Prev: [t] quote, Up: inline 26.78 [t] varname ================= Name ---- [t] varname Synopsis --------  File: docbook2texi-xslt.info, Node: [t] wordasword, Next: [t] lineannotation, Prev: [t] varname, Up: inline 26.79 [t] wordasword ==================== Name ---- [t] wordasword Synopsis --------  File: docbook2texi-xslt.info, Node: [t] lineannotation, Next: [t] superscript, Prev: [t] wordasword, Up: inline 26.80 [t] lineannotation ======================== Name ---- [t] lineannotation Synopsis --------  File: docbook2texi-xslt.info, Node: [t] superscript, Next: [t] subscript, Prev: [t] lineannotation, Up: inline 26.81 [t] superscript ===================== Name ---- [t] superscript Synopsis --------  File: docbook2texi-xslt.info, Node: [t] subscript, Next: [t] trademark, Prev: [t] superscript, Up: inline 26.82 [t] subscript =================== Name ---- [t] subscript Synopsis --------  File: docbook2texi-xslt.info, Node: [t] trademark, Next: [t] firstterm, Prev: [t] subscript, Up: inline 26.83 [t] trademark =================== Name ---- [t] trademark Synopsis --------  File: docbook2texi-xslt.info, Node: [t] firstterm, Next: [t] glossterm, Prev: [t] trademark, Up: inline 26.84 [t] firstterm =================== Name ---- [t] firstterm Synopsis --------  File: docbook2texi-xslt.info, Node: [t] glossterm, Next: [t] sgmltag, Prev: [t] firstterm, Up: inline 26.85 [t] glossterm =================== Name ---- [t] glossterm Synopsis --------  File: docbook2texi-xslt.info, Node: [t] sgmltag, Next: [T] format-sgmltag, Prev: [t] glossterm, Up: inline 26.86 [t] sgmltag ================= Name ---- [t] sgmltag Synopsis --------  File: docbook2texi-xslt.info, Node: [T] format-sgmltag, Next: [t] email, Prev: [t] sgmltag, Up: inline 26.87 [T] format-sgmltag ======================== Name ---- [T] format-sgmltag -- Undocumented Synopsis -------- element  File: docbook2texi-xslt.info, Node: [t] email, Next: [t] keycombo, Prev: [T] format-sgmltag, Up: inline 26.88 [t] email =============== Name ---- [t] email Synopsis --------  File: docbook2texi-xslt.info, Node: [t] keycombo, Next: [t] menuchoice, Prev: [t] email, Up: inline 26.89 [t] keycombo ================== Name ---- [t] keycombo Synopsis --------  File: docbook2texi-xslt.info, Node: [t] menuchoice, Next: [T] format-menuchoice, Prev: [t] keycombo, Up: inline 26.90 [t] menuchoice ==================== Name ---- [t] menuchoice Synopsis --------  File: docbook2texi-xslt.info, Node: [T] format-menuchoice, Next: [t] optional, Prev: [t] menuchoice, Up: inline 26.91 [T] format-menuchoice =========================== Name ---- [T] format-menuchoice -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [t] optional, Next: [t] citation, Prev: [T] format-menuchoice, Up: inline 26.92 [t] optional ================== Name ---- [t] optional Synopsis --------  File: docbook2texi-xslt.info, Node: [t] citation, Next: [t] comment|remark, Prev: [t] optional, Up: inline 26.93 [t] citation ================== Name ---- [t] citation Synopsis --------  File: docbook2texi-xslt.info, Node: [t] comment|remark, Next: [t] productname|productnumber, Prev: [t] citation, Up: inline 26.94 [t] comment|remark ======================== Name ---- [t] comment|remark Synopsis --------  File: docbook2texi-xslt.info, Node: [t] productname|productnumber, Next: [t] pob|street|city|state|postcode|country|phone|fax|otheraddr, Prev: [t] comment|remark, Up: inline 26.95 [t] productname|productnumber =================================== Name ---- [t] productname|productnumber Synopsis --------  File: docbook2texi-xslt.info, Node: [t] pob|street|city|state|postcode|country|phone|fax|otheraddr, Next: [t] firstname|surname|lineage|othername|honorific, Prev: [t] productname|productnumber, Up: inline 26.96 [t] pob|street|city|state|postcode|country|phone|fax|otheraddr ==================================================================== Name ---- [t] pob|street|city|state|postcode|country|phone|fax|otheraddr Synopsis --------  File: docbook2texi-xslt.info, Node: [t] firstname|surname|lineage|othername|honorific, Prev: [t] pob|street|city|state|postcode|country|phone|fax|otheraddr, Up: inline 26.97 [t] firstname|surname|lineage|othername|honorific ======================================================= Name ---- [t] firstname|surname|lineage|othername|honorific Synopsis --------  File: docbook2texi-xslt.info, Node: math, Next: qandaset, Prev: inline, Up: Top 27 math ******* 27.1 math ========= Currently we do not support the use of TeX for mathematics. * Menu: * [t] inlineequation:: * [t] alt::  File: docbook2texi-xslt.info, Node: [t] inlineequation, Next: [t] alt, Up: math 27.2 [t] inlineequation ======================= Name ---- [t] inlineequation Synopsis --------  File: docbook2texi-xslt.info, Node: [t] alt, Prev: [t] inlineequation, Up: math 27.3 [t] alt ============ Name ---- [t] alt Synopsis --------  File: docbook2texi-xslt.info, Node: qandaset, Next: table, Prev: math, Up: Top 28 qandaset *********** * Menu: * [t] question|answer:: * [t] qandaentry:: * [t] qandaset|qandadiv:: * [t] label::  File: docbook2texi-xslt.info, Node: [t] question|answer, Next: [t] qandaentry, Up: qandaset 28.1 [t] question|answer ======================== Name ---- [t] question|answer Synopsis --------  File: docbook2texi-xslt.info, Node: [t] qandaentry, Next: [t] qandaset|qandadiv, Prev: [t] question|answer, Up: qandaset 28.2 [t] qandaentry =================== Name ---- [t] qandaentry Synopsis --------  File: docbook2texi-xslt.info, Node: [t] qandaset|qandadiv, Next: [t] label, Prev: [t] qandaentry, Up: qandaset 28.3 [t] qandaset|qandadiv ========================== Name ---- [t] qandaset|qandadiv Synopsis --------  File: docbook2texi-xslt.info, Node: [t] label, Prev: [t] qandaset|qandadiv, Up: qandaset 28.4 [t] label ============== Name ---- [t] label Synopsis --------  File: docbook2texi-xslt.info, Node: table, Next: xref, Prev: qandaset, Up: Top 29 table ******** * Menu: * [t] tgroup:: * [t] colspec:: * [t] spanspec:: * [t] thead|tfoot|tbody:: * [t] thead/colspec:: * [t] tfoot/colspec:: * [t] row:: * [t] entry:: * [T] get-proportional-colwidth:: Get the proportional width as specified in the given colspec  File: docbook2texi-xslt.info, Node: [t] tgroup, Next: [t] colspec, Up: table 29.1 [t] tgroup =============== Name ---- [t] tgroup Synopsis --------  File: docbook2texi-xslt.info, Node: [t] colspec, Next: [t] spanspec, Prev: [t] tgroup, Up: table 29.2 [t] colspec ================ Name ---- [t] colspec Synopsis --------  File: docbook2texi-xslt.info, Node: [t] spanspec, Next: [t] thead|tfoot|tbody, Prev: [t] colspec, Up: table 29.3 [t] spanspec ================= Name ---- [t] spanspec Synopsis --------  File: docbook2texi-xslt.info, Node: [t] thead|tfoot|tbody, Next: [t] thead/colspec, Prev: [t] spanspec, Up: table 29.4 [t] thead|tfoot|tbody ========================== Name ---- [t] thead|tfoot|tbody Synopsis --------  File: docbook2texi-xslt.info, Node: [t] thead/colspec, Next: [t] tfoot/colspec, Prev: [t] thead|tfoot|tbody, Up: table 29.5 [t] thead/colspec ====================== Name ---- [t] thead/colspec Synopsis --------  File: docbook2texi-xslt.info, Node: [t] tfoot/colspec, Next: [t] row, Prev: [t] thead/colspec, Up: table 29.6 [t] tfoot/colspec ====================== Name ---- [t] tfoot/colspec Synopsis --------  File: docbook2texi-xslt.info, Node: [t] row, Next: [t] entry, Prev: [t] tfoot/colspec, Up: table 29.7 [t] row ============ Name ---- [t] row Synopsis --------  File: docbook2texi-xslt.info, Node: [t] entry, Next: [T] get-proportional-colwidth, Prev: [t] row, Up: table 29.8 [t] entry ============== Name ---- [t] entry Synopsis --------  File: docbook2texi-xslt.info, Node: [T] get-proportional-colwidth, Prev: [t] entry, Up: table 29.9 [T] get-proportional-colwidth ================================== Name ---- [T] get-proportional-colwidth -- Get the proportional width as specified in the given `colspec' Synopsis -------- Description ----------- In CALS tables, the `colspec' has the attribute `colwidth' which can specify either absolute column widths, relative column widths, or a mixture of both measures. Texinfo only supports relative column widths. This template coerces all absolute column widths into relative ones, as follows: No width is specified Then the column is assumed to have a relative column width of one. Absolute widths These are simply translated to a relative column width of one. Mixture These are of the form `P*+M', where P is the relative column width, and M is an absolute column width. The sign may also be minus instead of plus, with the obvious meaning. This template drops the M part and its sign. Parameters ---------- `colspec' A node-set that is the `colspec' element to determine widths for.  File: docbook2texi-xslt.info, Node: xref, Next: glossary, Prev: table, Up: Top 30 xref ******* * Menu: * [T] anchor:: Undocumented * [t] anchor:: * [T] check-xref:: Undocumented * [t] xref:: * [t] link:: * [t] ulink:: * [t] olink:: * [M] xref-to:: Give cross-reference markup * [t xref-to] *:: * [t xref-to] co::  File: docbook2texi-xslt.info, Node: [T] anchor, Next: [t] anchor, Up: xref 30.1 [T] anchor =============== Name ---- [T] anchor -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [t] anchor, Next: [T] check-xref, Prev: [T] anchor, Up: xref 30.2 [t] anchor =============== Name ---- [t] anchor Synopsis --------  File: docbook2texi-xslt.info, Node: [T] check-xref, Next: [t] xref, Prev: [t] anchor, Up: xref 30.3 [T] check-xref =================== Name ---- [T] check-xref -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [t] xref, Next: [t] link, Prev: [T] check-xref, Up: xref 30.4 [t] xref ============= Name ---- [t] xref Synopsis --------  File: docbook2texi-xslt.info, Node: [t] link, Next: [t] ulink, Prev: [t] xref, Up: xref 30.5 [t] link ============= Name ---- [t] link Synopsis --------  File: docbook2texi-xslt.info, Node: [t] ulink, Next: [t] olink, Prev: [t] link, Up: xref 30.6 [t] ulink ============== Name ---- [t] ulink Synopsis --------  File: docbook2texi-xslt.info, Node: [t] olink, Next: [M] xref-to, Prev: [t] ulink, Up: xref 30.7 [t] olink ============== Name ---- [t] olink Synopsis --------  File: docbook2texi-xslt.info, Node: [M] xref-to, Next: [t xref-to] *, Prev: [t] olink, Up: xref 30.8 [M] xref-to ================ Name ---- [M] xref-to -- Give cross-reference markup Description ----------- Processing an element with this mode returns the markup/text that should be used for referring to it in cross-references. Since Texinfo already handles cross references to nodes, this mode does mostly nothing. FIXME: However we need something for anchors...  File: docbook2texi-xslt.info, Node: [t xref-to] *, Next: [t xref-to] co, Prev: [M] xref-to, Up: xref 30.9 [t xref-to] * ================== Name ---- [t xref-to] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t xref-to] co, Prev: [t xref-to] *, Up: xref 30.10 [t xref-to] co ==================== Name ---- [t xref-to] co Synopsis --------  File: docbook2texi-xslt.info, Node: glossary, Next: lists, Prev: xref, Up: Top 31 glossary *********** * Menu: * [t] glossary:: * [t] glosslist:: * [t] glossdiv:: * [t] glossentry:: * [t] glossentry/glossterm:: * [t] glossentry/acronym:: * [t] glossentry/abbrev:: * [t] glossentry/revhistory:: * [t] glossentry/glossdef:: * [t] glossentry/glosssee|glossseealso:: * [t glosssee-xref] glossentry:: * [t glosssee-xref] glossentry/glossterm[1]:: * [t glosssee-xref] *::  File: docbook2texi-xslt.info, Node: [t] glossary, Next: [t] glosslist, Up: glossary 31.1 [t] glossary ================= Name ---- [t] glossary Synopsis --------  File: docbook2texi-xslt.info, Node: [t] glosslist, Next: [t] glossdiv, Prev: [t] glossary, Up: glossary 31.2 [t] glosslist ================== Name ---- [t] glosslist Synopsis --------  File: docbook2texi-xslt.info, Node: [t] glossdiv, Next: [t] glossentry, Prev: [t] glosslist, Up: glossary 31.3 [t] glossdiv ================= Name ---- [t] glossdiv Synopsis --------  File: docbook2texi-xslt.info, Node: [t] glossentry, Next: [t] glossentry/glossterm, Prev: [t] glossdiv, Up: glossary 31.4 [t] glossentry =================== Name ---- [t] glossentry Synopsis --------  File: docbook2texi-xslt.info, Node: [t] glossentry/glossterm, Next: [t] glossentry/acronym, Prev: [t] glossentry, Up: glossary 31.5 [t] glossentry/glossterm ============================= Name ---- [t] glossentry/glossterm Synopsis --------  File: docbook2texi-xslt.info, Node: [t] glossentry/acronym, Next: [t] glossentry/abbrev, Prev: [t] glossentry/glossterm, Up: glossary 31.6 [t] glossentry/acronym =========================== Name ---- [t] glossentry/acronym Synopsis --------  File: docbook2texi-xslt.info, Node: [t] glossentry/abbrev, Next: [t] glossentry/revhistory, Prev: [t] glossentry/acronym, Up: glossary 31.7 [t] glossentry/abbrev ========================== Name ---- [t] glossentry/abbrev Synopsis --------  File: docbook2texi-xslt.info, Node: [t] glossentry/revhistory, Next: [t] glossentry/glossdef, Prev: [t] glossentry/abbrev, Up: glossary 31.8 [t] glossentry/revhistory ============================== Name ---- [t] glossentry/revhistory Synopsis --------  File: docbook2texi-xslt.info, Node: [t] glossentry/glossdef, Next: [t] glossentry/glosssee|glossseealso, Prev: [t] glossentry/revhistory, Up: glossary 31.9 [t] glossentry/glossdef ============================ Name ---- [t] glossentry/glossdef Synopsis --------  File: docbook2texi-xslt.info, Node: [t] glossentry/glosssee|glossseealso, Next: [t glosssee-xref] glossentry, Prev: [t] glossentry/glossdef, Up: glossary 31.10 [t] glossentry/glosssee|glossseealso ========================================== Name ---- [t] glossentry/glosssee|glossseealso Synopsis --------  File: docbook2texi-xslt.info, Node: [t glosssee-xref] glossentry, Next: [t glosssee-xref] glossentry/glossterm[1], Prev: [t] glossentry/glosssee|glossseealso, Up: glossary 31.11 [t glosssee-xref] glossentry ================================== Name ---- [t glosssee-xref] glossentry Synopsis --------  File: docbook2texi-xslt.info, Node: [t glosssee-xref] glossentry/glossterm[1], Next: [t glosssee-xref] *, Prev: [t glosssee-xref] glossentry, Up: glossary 31.12 [t glosssee-xref] glossentry/glossterm[1] =============================================== Name ---- [t glosssee-xref] glossentry/glossterm[1] Synopsis --------  File: docbook2texi-xslt.info, Node: [t glosssee-xref] *, Prev: [t glosssee-xref] glossentry/glossterm[1], Up: glossary 31.13 [t glosssee-xref] * ========================= Name ---- [t glosssee-xref] * Synopsis --------  File: docbook2texi-xslt.info, Node: lists, Next: callout, Prev: glossary, Up: Top 32 lists ******** * Menu: * [t] itemizedlist:: * [t] orderedlist:: * [t] variablelist:: * [t] listitem:: * [t] varlistentry:: * [t] varlistentry/term:: * [t] varlistentry/listitem:: * [t] simplelist[@type='horiz']:: * [t] simplelist:: * [t] simplelist[@type='inline']:: * [T] simplelist-horiz:: Undocumented * [T] simplelist-horiz-row:: Undocumented * [T] simplelist-vert:: Undocumented * [T] simplelist-vert-row:: Undocumented * [t] member:: * [t] simplelist[@type='inline']/member:: * [t] simplelist[@type='inline']/member[1]:: * [t] procedure:: * [t] substeps:: * [t] step:: * [t] segmentedlist:: * [t] segtitle:: * [t segtitle-in-seg] segtitle:: * [t] seglistitem:: * [t] seg::  File: docbook2texi-xslt.info, Node: [t] itemizedlist, Next: [t] orderedlist, Up: lists 32.1 [t] itemizedlist ===================== Name ---- [t] itemizedlist Synopsis --------  File: docbook2texi-xslt.info, Node: [t] orderedlist, Next: [t] variablelist, Prev: [t] itemizedlist, Up: lists 32.2 [t] orderedlist ==================== Name ---- [t] orderedlist Synopsis --------  File: docbook2texi-xslt.info, Node: [t] variablelist, Next: [t] listitem, Prev: [t] orderedlist, Up: lists 32.3 [t] variablelist ===================== Name ---- [t] variablelist Synopsis --------  File: docbook2texi-xslt.info, Node: [t] listitem, Next: [t] varlistentry, Prev: [t] variablelist, Up: lists 32.4 [t] listitem ================= Name ---- [t] listitem Synopsis --------  File: docbook2texi-xslt.info, Node: [t] varlistentry, Next: [t] varlistentry/term, Prev: [t] listitem, Up: lists 32.5 [t] varlistentry ===================== Name ---- [t] varlistentry Synopsis --------  File: docbook2texi-xslt.info, Node: [t] varlistentry/term, Next: [t] varlistentry/listitem, Prev: [t] varlistentry, Up: lists 32.6 [t] varlistentry/term ========================== Name ---- [t] varlistentry/term Synopsis --------  File: docbook2texi-xslt.info, Node: [t] varlistentry/listitem, Next: [t] simplelist[@type='horiz'], Prev: [t] varlistentry/term, Up: lists 32.7 [t] varlistentry/listitem ============================== Name ---- [t] varlistentry/listitem Synopsis --------  File: docbook2texi-xslt.info, Node: [t] simplelist[@type='horiz'], Next: [t] simplelist, Prev: [t] varlistentry/listitem, Up: lists 32.8 [t] simplelist[@type='horiz'] ================================== Name ---- [t] simplelist[@type='horiz'] Synopsis --------  File: docbook2texi-xslt.info, Node: [t] simplelist, Next: [t] simplelist[@type='inline'], Prev: [t] simplelist[@type='horiz'], Up: lists 32.9 [t] simplelist =================== Name ---- [t] simplelist Synopsis --------  File: docbook2texi-xslt.info, Node: [t] simplelist[@type='inline'], Next: [T] simplelist-horiz, Prev: [t] simplelist, Up: lists 32.10 [t] simplelist[@type='inline'] ==================================== Name ---- [t] simplelist[@type='inline'] Synopsis --------  File: docbook2texi-xslt.info, Node: [T] simplelist-horiz, Next: [T] simplelist-horiz-row, Prev: [t] simplelist[@type='inline'], Up: lists 32.11 [T] simplelist-horiz ========================== Name ---- [T] simplelist-horiz -- Undocumented Synopsis -------- 1 1  File: docbook2texi-xslt.info, Node: [T] simplelist-horiz-row, Next: [T] simplelist-vert, Prev: [T] simplelist-horiz, Up: lists 32.12 [T] simplelist-horiz-row ============================== Name ---- [T] simplelist-horiz-row -- Undocumented Synopsis -------- 1 1 1  File: docbook2texi-xslt.info, Node: [T] simplelist-vert, Next: [T] simplelist-vert-row, Prev: [T] simplelist-horiz-row, Up: lists 32.13 [T] simplelist-vert ========================= Name ---- [T] simplelist-vert -- Undocumented Synopsis -------- 1 1  File: docbook2texi-xslt.info, Node: [T] simplelist-vert-row, Next: [t] member, Prev: [T] simplelist-vert, Up: lists 32.14 [T] simplelist-vert-row ============================= Name ---- [T] simplelist-vert-row -- Undocumented Synopsis -------- 1 1 1 1  File: docbook2texi-xslt.info, Node: [t] member, Next: [t] simplelist[@type='inline']/member, Prev: [T] simplelist-vert-row, Up: lists 32.15 [t] member ================ Name ---- [t] member Synopsis --------  File: docbook2texi-xslt.info, Node: [t] simplelist[@type='inline']/member, Next: [t] simplelist[@type='inline']/member[1], Prev: [t] member, Up: lists 32.16 [t] simplelist[@type='inline']/member =========================================== Name ---- [t] simplelist[@type='inline']/member Synopsis --------  File: docbook2texi-xslt.info, Node: [t] simplelist[@type='inline']/member[1], Next: [t] procedure, Prev: [t] simplelist[@type='inline']/member, Up: lists 32.17 [t] simplelist[@type='inline']/member[1] ============================================== Name ---- [t] simplelist[@type='inline']/member[1] Synopsis --------  File: docbook2texi-xslt.info, Node: [t] procedure, Next: [t] substeps, Prev: [t] simplelist[@type='inline']/member[1], Up: lists 32.18 [t] procedure =================== Name ---- [t] procedure Synopsis --------  File: docbook2texi-xslt.info, Node: [t] substeps, Next: [t] step, Prev: [t] procedure, Up: lists 32.19 [t] substeps ================== Name ---- [t] substeps Synopsis --------  File: docbook2texi-xslt.info, Node: [t] step, Next: [t] segmentedlist, Prev: [t] substeps, Up: lists 32.20 [t] step ============== Name ---- [t] step Synopsis --------  File: docbook2texi-xslt.info, Node: [t] segmentedlist, Next: [t] segtitle, Prev: [t] step, Up: lists 32.21 [t] segmentedlist ======================= Name ---- [t] segmentedlist Synopsis --------  File: docbook2texi-xslt.info, Node: [t] segtitle, Next: [t segtitle-in-seg] segtitle, Prev: [t] segmentedlist, Up: lists 32.22 [t] segtitle ================== Name ---- [t] segtitle Synopsis --------  File: docbook2texi-xslt.info, Node: [t segtitle-in-seg] segtitle, Next: [t] seglistitem, Prev: [t] segtitle, Up: lists 32.23 [t segtitle-in-seg] segtitle ================================== Name ---- [t segtitle-in-seg] segtitle Synopsis --------  File: docbook2texi-xslt.info, Node: [t] seglistitem, Next: [t] seg, Prev: [t segtitle-in-seg] segtitle, Up: lists 32.24 [t] seglistitem ===================== Name ---- [t] seglistitem Synopsis --------  File: docbook2texi-xslt.info, Node: [t] seg, Prev: [t] seglistitem, Up: lists 32.25 [t] seg ============= Name ---- [t] seg Synopsis --------  File: docbook2texi-xslt.info, Node: callout, Next: graphics, Prev: lists, Up: Top 33 callout ********** 33.1 callout ============ *Note* Out-of-line call-outs (i.e. those specified with ` arearef') are not supported properly (currently only the coordinates are printed, with no bug placed in the specified location). * Menu: * [t] programlistingco|screenco:: * [t] areaspec|areaset|area:: * [t no-inline-markup] co:: * [t] co:: * [t co] co:: * [T] callout-bug:: Undocumented * [t] coref:: * [T] check-co:: Undocumented * [t] calloutlist:: * [t] callout:: * [T] callout-process-arearefs:: Undocumented * [T] callout-arearef:: Undocumented  File: docbook2texi-xslt.info, Node: [t] programlistingco|screenco, Next: [t] areaspec|areaset|area, Up: callout 33.2 [t] programlistingco|screenco ================================== Name ---- [t] programlistingco|screenco Synopsis --------  File: docbook2texi-xslt.info, Node: [t] areaspec|areaset|area, Next: [t no-inline-markup] co, Prev: [t] programlistingco|screenco, Up: callout 33.3 [t] areaspec|areaset|area ============================== Name ---- [t] areaspec|areaset|area Synopsis --------  File: docbook2texi-xslt.info, Node: [t no-inline-markup] co, Next: [t] co, Prev: [t] areaspec|areaset|area, Up: callout 33.4 [t no-inline-markup] co ============================ Name ---- [t no-inline-markup] co Synopsis --------  File: docbook2texi-xslt.info, Node: [t] co, Next: [t co] co, Prev: [t no-inline-markup] co, Up: callout 33.5 [t] co =========== Name ---- [t] co Synopsis --------  File: docbook2texi-xslt.info, Node: [t co] co, Next: [T] callout-bug, Prev: [t] co, Up: callout 33.6 [t co] co ============== Name ---- [t co] co Synopsis --------  File: docbook2texi-xslt.info, Node: [T] callout-bug, Next: [t] coref, Prev: [t co] co, Up: callout 33.7 [T] callout-bug ==================== Name ---- [T] callout-bug -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [t] coref, Next: [T] check-co, Prev: [T] callout-bug, Up: callout 33.8 [t] coref ============== Name ---- [t] coref Synopsis --------  File: docbook2texi-xslt.info, Node: [T] check-co, Next: [t] calloutlist, Prev: [t] coref, Up: callout 33.9 [T] check-co ================= Name ---- [T] check-co -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [t] calloutlist, Next: [t] callout, Prev: [T] check-co, Up: callout 33.10 [t] calloutlist ===================== Name ---- [t] calloutlist Synopsis --------  File: docbook2texi-xslt.info, Node: [t] callout, Next: [T] callout-process-arearefs, Prev: [t] calloutlist, Up: callout 33.11 [t] callout ================= Name ---- [t] callout Synopsis --------  File: docbook2texi-xslt.info, Node: [T] callout-process-arearefs, Next: [T] callout-arearef, Prev: [t] callout, Up: callout 33.12 [T] callout-process-arearefs ================================== Name ---- [T] callout-process-arearefs -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [T] callout-arearef, Prev: [T] callout-process-arearefs, Up: callout 33.13 [T] callout-arearef ========================= Name ---- [T] callout-arearef -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: graphics, Next: biblio, Prev: callout, Up: Top 34 graphics *********** * Menu: * [t] screenshot:: * [t] screeninfo:: * [T] imagedata:: Undocumented * [t] graphic:: * [t] inlinegraphic:: * [T] select-mediaobject:: Undocumented * [t] mediaobject:: * [t] inlinemediaobject:: * [t] objectinfo:: * [t] imageobject:: * [t] textobject:: * [t] caption::  File: docbook2texi-xslt.info, Node: [t] screenshot, Next: [t] screeninfo, Up: graphics 34.1 [t] screenshot =================== Name ---- [t] screenshot Synopsis --------  File: docbook2texi-xslt.info, Node: [t] screeninfo, Next: [T] imagedata, Prev: [t] screenshot, Up: graphics 34.2 [t] screeninfo =================== Name ---- [t] screeninfo Synopsis --------  File: docbook2texi-xslt.info, Node: [T] imagedata, Next: [t] graphic, Prev: [t] screeninfo, Up: graphics 34.3 [T] imagedata ================== Name ---- [T] imagedata -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [t] graphic, Next: [t] inlinegraphic, Prev: [T] imagedata, Up: graphics 34.4 [t] graphic ================ Name ---- [t] graphic Synopsis --------  File: docbook2texi-xslt.info, Node: [t] inlinegraphic, Next: [T] select-mediaobject, Prev: [t] graphic, Up: graphics 34.5 [t] inlinegraphic ====================== Name ---- [t] inlinegraphic Synopsis --------  File: docbook2texi-xslt.info, Node: [T] select-mediaobject, Next: [t] mediaobject, Prev: [t] inlinegraphic, Up: graphics 34.6 [T] select-mediaobject =========================== Name ---- [T] select-mediaobject -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [t] mediaobject, Next: [t] inlinemediaobject, Prev: [T] select-mediaobject, Up: graphics 34.7 [t] mediaobject ==================== Name ---- [t] mediaobject Synopsis --------  File: docbook2texi-xslt.info, Node: [t] inlinemediaobject, Next: [t] objectinfo, Prev: [t] mediaobject, Up: graphics 34.8 [t] inlinemediaobject ========================== Name ---- [t] inlinemediaobject Synopsis --------  File: docbook2texi-xslt.info, Node: [t] objectinfo, Next: [t] imageobject, Prev: [t] inlinemediaobject, Up: graphics 34.9 [t] objectinfo =================== Name ---- [t] objectinfo Synopsis --------  File: docbook2texi-xslt.info, Node: [t] imageobject, Next: [t] textobject, Prev: [t] objectinfo, Up: graphics 34.10 [t] imageobject ===================== Name ---- [t] imageobject Synopsis --------  File: docbook2texi-xslt.info, Node: [t] textobject, Next: [t] caption, Prev: [t] imageobject, Up: graphics 34.11 [t] textobject ==================== Name ---- [t] textobject Synopsis --------  File: docbook2texi-xslt.info, Node: [t] caption, Prev: [t] textobject, Up: graphics 34.12 [t] caption ================= Name ---- [t] caption Synopsis --------  File: docbook2texi-xslt.info, Node: biblio, Next: info, Prev: graphics, Up: Top 35 biblio ********* 35.1 biblio =========== *Note* Bibliographies are probably broken right now. They may still work for you, but the entire system really needs an overhaul. * Menu: * [t] bibliography:: * [T] biblio-item-separator:: Undocumented * [t] bibliodiv:: * [t] biblioentry:: * [t] bibliomixed:: * [t bibliography] *:: * [t bibliography] abbrev:: * [t bibliography] abstract:: * [t bibliography] address:: * [t bibliography] affiliation:: * [t bibliography] shortaffil:: * [t bibliography] jobtitle:: * [t bibliography] artheader:: * [t bibliography] artpagenums:: * [t bibliography] author:: * [t bibliography] authorblurb:: * [t bibliography] authorgroup:: * [t bibliography] authorinitials:: * [t bibliography] bibliomisc:: * [t bibliography] bibliomset:: * [t bibliography] biblioset:: * [t bibliography] biblioset/title|biblioset/citetitle:: * [t bibliography] bookbiblio:: * [t bibliography] citetitle:: * [t bibliography] collab:: * [t bibliography] collabname:: * [t bibliography] confgroup:: * [t bibliography] confdates:: * [t bibliography] conftitle:: * [t bibliography] confnum:: * [t bibliography] confsponsor:: * [t bibliography] contractnum:: * [t bibliography] contractsponsor:: * [t bibliography] contrib:: * [t bibliography] copyright:: * [t bibliography] year:: * [t bibliography] year[position()=last()]: [t bibliography] year[position[]=last[]]. * [t bibliography] holder:: * [t bibliography] corpauthor:: * [t bibliography] corpname:: * [t bibliography] date:: * [t bibliography] edition:: * [t bibliography] editor:: * [t bibliography] personname:: * [t bibliography] firstname:: * [t bibliography] honorific:: * [t bibliography] indexterm:: * [t bibliography] invpartnumber:: * [t bibliography] isbn:: * [t bibliography] issn:: * [t bibliography] issuenum:: * [t bibliography] lineage:: * [t bibliography] orgname:: * [t bibliography] orgdiv:: * [t bibliography] othercredit:: * [t bibliography] othername:: * [t bibliography] pagenums:: * [t bibliography] printhistory:: * [t bibliography] productname:: * [t bibliography] productnumber:: * [t bibliography] pubdate:: * [t bibliography] publisher:: * [t bibliography] publishername:: * [t bibliography] pubsnumber:: * [t bibliography] releaseinfo:: * [t bibliography] revhistory:: * [t bibliography] seriesinfo:: * [t bibliography] seriesvolnums:: * [t bibliography] subtitle:: * [t bibliography] surname:: * [t bibliography] title:: * [t bibliography] titleabbrev:: * [t bibliography] volumenum:: * [t bibliomixed] *:: * [t bibliomixed] abbrev:: * [t bibliomixed] abstract:: * [t bibliomixed] address:: * [t bibliomixed] affiliation:: * [t bibliomixed] artpagenums:: * [t bibliomixed] author:: * [t bibliomixed] authorblurb:: * [t bibliomixed] authorgroup:: * [t bibliomixed] authorinitials:: * [t bibliomixed] bibliomisc:: * [t bibliomixed] bibliomset:: * [t bibliomixed] bibliomset/title|bibliomset/citetitle:: * [t bibliomixed] biblioset:: * [t bibliomixed] citetitle:: * [t bibliomixed] collab:: * [t bibliomixed] confgroup:: * [t bibliomixed] contractnum:: * [t bibliomixed] contractsponsor:: * [t bibliomixed] contrib:: * [t bibliomixed] copyright:: * [t bibliomixed] corpauthor:: * [t bibliomixed] corpname:: * [t bibliomixed] date:: * [t bibliomixed] edition:: * [t bibliomixed] editor:: * [t bibliomixed] firstname:: * [t bibliomixed] honorific:: * [t bibliomixed] indexterm:: * [t bibliomixed] invpartnumber:: * [t bibliomixed] isbn:: * [t bibliomixed] issn:: * [t bibliomixed] issuenum:: * [t bibliomixed] lineage:: * [t bibliomixed] orgname:: * [t bibliomixed] othercredit:: * [t bibliomixed] othername:: * [t bibliomixed] pagenums:: * [t bibliomixed] printhistory:: * [t bibliomixed] productname:: * [t bibliomixed] productnumber:: * [t bibliomixed] pubdate:: * [t bibliomixed] publisher:: * [t bibliomixed] publishername:: * [t bibliomixed] pubsnumber:: * [t bibliomixed] releaseinfo:: * [t bibliomixed] revhistory:: * [t bibliomixed] seriesvolnums:: * [t bibliomixed] subtitle:: * [t bibliomixed] surname:: * [t bibliomixed] title:: * [t bibliomixed] titleabbrev:: * [t bibliomixed] volumenum::  File: docbook2texi-xslt.info, Node: [t] bibliography, Next: [T] biblio-item-separator, Up: biblio 35.2 [t] bibliography ===================== Name ---- [t] bibliography Synopsis --------  File: docbook2texi-xslt.info, Node: [T] biblio-item-separator, Next: [t] bibliodiv, Prev: [t] bibliography, Up: biblio 35.3 [T] biblio-item-separator ============================== Name ---- [T] biblio-item-separator -- Undocumented Synopsis --------  File: docbook2texi-xslt.info, Node: [t] bibliodiv, Next: [t] biblioentry, Prev: [T] biblio-item-separator, Up: biblio 35.4 [t] bibliodiv ================== Name ---- [t] bibliodiv Synopsis --------  File: docbook2texi-xslt.info, Node: [t] biblioentry, Next: [t] bibliomixed, Prev: [t] bibliodiv, Up: biblio 35.5 [t] biblioentry ==================== Name ---- [t] biblioentry Synopsis --------  File: docbook2texi-xslt.info, Node: [t] bibliomixed, Next: [t bibliography] *, Prev: [t] biblioentry, Up: biblio 35.6 [t] bibliomixed ==================== Name ---- [t] bibliomixed Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] *, Next: [t bibliography] abbrev, Prev: [t] bibliomixed, Up: biblio 35.7 [t bibliography] * ======================= Name ---- [t bibliography] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] abbrev, Next: [t bibliography] abstract, Prev: [t bibliography] *, Up: biblio 35.8 [t bibliography] abbrev ============================ Name ---- [t bibliography] abbrev Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] abstract, Next: [t bibliography] address, Prev: [t bibliography] abbrev, Up: biblio 35.9 [t bibliography] abstract ============================== Name ---- [t bibliography] abstract Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] address, Next: [t bibliography] affiliation, Prev: [t bibliography] abstract, Up: biblio 35.10 [t bibliography] address ============================== Name ---- [t bibliography] address Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] affiliation, Next: [t bibliography] shortaffil, Prev: [t bibliography] address, Up: biblio 35.11 [t bibliography] affiliation ================================== Name ---- [t bibliography] affiliation Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] shortaffil, Next: [t bibliography] jobtitle, Prev: [t bibliography] affiliation, Up: biblio 35.12 [t bibliography] shortaffil ================================= Name ---- [t bibliography] shortaffil Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] jobtitle, Next: [t bibliography] artheader, Prev: [t bibliography] shortaffil, Up: biblio 35.13 [t bibliography] jobtitle =============================== Name ---- [t bibliography] jobtitle Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] artheader, Next: [t bibliography] artpagenums, Prev: [t bibliography] jobtitle, Up: biblio 35.14 [t bibliography] artheader ================================ Name ---- [t bibliography] artheader Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] artpagenums, Next: [t bibliography] author, Prev: [t bibliography] artheader, Up: biblio 35.15 [t bibliography] artpagenums ================================== Name ---- [t bibliography] artpagenums Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] author, Next: [t bibliography] authorblurb, Prev: [t bibliography] artpagenums, Up: biblio 35.16 [t bibliography] author ============================= Name ---- [t bibliography] author Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] authorblurb, Next: [t bibliography] authorgroup, Prev: [t bibliography] author, Up: biblio 35.17 [t bibliography] authorblurb ================================== Name ---- [t bibliography] authorblurb Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] authorgroup, Next: [t bibliography] authorinitials, Prev: [t bibliography] authorblurb, Up: biblio 35.18 [t bibliography] authorgroup ================================== Name ---- [t bibliography] authorgroup Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] authorinitials, Next: [t bibliography] bibliomisc, Prev: [t bibliography] authorgroup, Up: biblio 35.19 [t bibliography] authorinitials ===================================== Name ---- [t bibliography] authorinitials Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] bibliomisc, Next: [t bibliography] bibliomset, Prev: [t bibliography] authorinitials, Up: biblio 35.20 [t bibliography] bibliomisc ================================= Name ---- [t bibliography] bibliomisc Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] bibliomset, Next: [t bibliography] biblioset, Prev: [t bibliography] bibliomisc, Up: biblio 35.21 [t bibliography] bibliomset ================================= Name ---- [t bibliography] bibliomset Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] biblioset, Next: [t bibliography] biblioset/title|biblioset/citetitle, Prev: [t bibliography] bibliomset, Up: biblio 35.22 [t bibliography] biblioset ================================ Name ---- [t bibliography] biblioset Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] biblioset/title|biblioset/citetitle, Next: [t bibliography] bookbiblio, Prev: [t bibliography] biblioset, Up: biblio 35.23 [t bibliography] biblioset/title|biblioset/citetitle ========================================================== Name ---- [t bibliography] biblioset/title|biblioset/citetitle Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] bookbiblio, Next: [t bibliography] citetitle, Prev: [t bibliography] biblioset/title|biblioset/citetitle, Up: biblio 35.24 [t bibliography] bookbiblio ================================= Name ---- [t bibliography] bookbiblio Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] citetitle, Next: [t bibliography] collab, Prev: [t bibliography] bookbiblio, Up: biblio 35.25 [t bibliography] citetitle ================================ Name ---- [t bibliography] citetitle Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] collab, Next: [t bibliography] collabname, Prev: [t bibliography] citetitle, Up: biblio 35.26 [t bibliography] collab ============================= Name ---- [t bibliography] collab Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] collabname, Next: [t bibliography] confgroup, Prev: [t bibliography] collab, Up: biblio 35.27 [t bibliography] collabname ================================= Name ---- [t bibliography] collabname Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] confgroup, Next: [t bibliography] confdates, Prev: [t bibliography] collabname, Up: biblio 35.28 [t bibliography] confgroup ================================ Name ---- [t bibliography] confgroup Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] confdates, Next: [t bibliography] conftitle, Prev: [t bibliography] confgroup, Up: biblio 35.29 [t bibliography] confdates ================================ Name ---- [t bibliography] confdates Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] conftitle, Next: [t bibliography] confnum, Prev: [t bibliography] confdates, Up: biblio 35.30 [t bibliography] conftitle ================================ Name ---- [t bibliography] conftitle Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] confnum, Next: [t bibliography] confsponsor, Prev: [t bibliography] conftitle, Up: biblio 35.31 [t bibliography] confnum ============================== Name ---- [t bibliography] confnum Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] confsponsor, Next: [t bibliography] contractnum, Prev: [t bibliography] confnum, Up: biblio 35.32 [t bibliography] confsponsor ================================== Name ---- [t bibliography] confsponsor Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] contractnum, Next: [t bibliography] contractsponsor, Prev: [t bibliography] confsponsor, Up: biblio 35.33 [t bibliography] contractnum ================================== Name ---- [t bibliography] contractnum Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] contractsponsor, Next: [t bibliography] contrib, Prev: [t bibliography] contractnum, Up: biblio 35.34 [t bibliography] contractsponsor ====================================== Name ---- [t bibliography] contractsponsor Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] contrib, Next: [t bibliography] copyright, Prev: [t bibliography] contractsponsor, Up: biblio 35.35 [t bibliography] contrib ============================== Name ---- [t bibliography] contrib Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] copyright, Next: [t bibliography] year, Prev: [t bibliography] contrib, Up: biblio 35.36 [t bibliography] copyright ================================ Name ---- [t bibliography] copyright Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] year, Next: [t bibliography] year[position[]=last[]], Prev: [t bibliography] copyright, Up: biblio 35.37 [t bibliography] year =========================== Name ---- [t bibliography] year Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] year[position[]=last[]], Next: [t bibliography] holder, Prev: [t bibliography] year, Up: biblio 35.38 [t bibliography] year[position()=last()] ============================================== Name ---- [t bibliography] year[position()=last()] Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] holder, Next: [t bibliography] corpauthor, Prev: [t bibliography] year[position[]=last[]], Up: biblio 35.39 [t bibliography] holder ============================= Name ---- [t bibliography] holder Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] corpauthor, Next: [t bibliography] corpname, Prev: [t bibliography] holder, Up: biblio 35.40 [t bibliography] corpauthor ================================= Name ---- [t bibliography] corpauthor Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] corpname, Next: [t bibliography] date, Prev: [t bibliography] corpauthor, Up: biblio 35.41 [t bibliography] corpname =============================== Name ---- [t bibliography] corpname Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] date, Next: [t bibliography] edition, Prev: [t bibliography] corpname, Up: biblio 35.42 [t bibliography] date =========================== Name ---- [t bibliography] date Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] edition, Next: [t bibliography] editor, Prev: [t bibliography] date, Up: biblio 35.43 [t bibliography] edition ============================== Name ---- [t bibliography] edition Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] editor, Next: [t bibliography] personname, Prev: [t bibliography] edition, Up: biblio 35.44 [t bibliography] editor ============================= Name ---- [t bibliography] editor Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] personname, Next: [t bibliography] firstname, Prev: [t bibliography] editor, Up: biblio 35.45 [t bibliography] personname ================================= Name ---- [t bibliography] personname Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] firstname, Next: [t bibliography] honorific, Prev: [t bibliography] personname, Up: biblio 35.46 [t bibliography] firstname ================================ Name ---- [t bibliography] firstname Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] honorific, Next: [t bibliography] indexterm, Prev: [t bibliography] firstname, Up: biblio 35.47 [t bibliography] honorific ================================ Name ---- [t bibliography] honorific Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] indexterm, Next: [t bibliography] invpartnumber, Prev: [t bibliography] honorific, Up: biblio 35.48 [t bibliography] indexterm ================================ Name ---- [t bibliography] indexterm Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] invpartnumber, Next: [t bibliography] isbn, Prev: [t bibliography] indexterm, Up: biblio 35.49 [t bibliography] invpartnumber ==================================== Name ---- [t bibliography] invpartnumber Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] isbn, Next: [t bibliography] issn, Prev: [t bibliography] invpartnumber, Up: biblio 35.50 [t bibliography] isbn =========================== Name ---- [t bibliography] isbn Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] issn, Next: [t bibliography] issuenum, Prev: [t bibliography] isbn, Up: biblio 35.51 [t bibliography] issn =========================== Name ---- [t bibliography] issn Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] issuenum, Next: [t bibliography] lineage, Prev: [t bibliography] issn, Up: biblio 35.52 [t bibliography] issuenum =============================== Name ---- [t bibliography] issuenum Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] lineage, Next: [t bibliography] orgname, Prev: [t bibliography] issuenum, Up: biblio 35.53 [t bibliography] lineage ============================== Name ---- [t bibliography] lineage Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] orgname, Next: [t bibliography] orgdiv, Prev: [t bibliography] lineage, Up: biblio 35.54 [t bibliography] orgname ============================== Name ---- [t bibliography] orgname Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] orgdiv, Next: [t bibliography] othercredit, Prev: [t bibliography] orgname, Up: biblio 35.55 [t bibliography] orgdiv ============================= Name ---- [t bibliography] orgdiv Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] othercredit, Next: [t bibliography] othername, Prev: [t bibliography] orgdiv, Up: biblio 35.56 [t bibliography] othercredit ================================== Name ---- [t bibliography] othercredit Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] othername, Next: [t bibliography] pagenums, Prev: [t bibliography] othercredit, Up: biblio 35.57 [t bibliography] othername ================================ Name ---- [t bibliography] othername Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] pagenums, Next: [t bibliography] printhistory, Prev: [t bibliography] othername, Up: biblio 35.58 [t bibliography] pagenums =============================== Name ---- [t bibliography] pagenums Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] printhistory, Next: [t bibliography] productname, Prev: [t bibliography] pagenums, Up: biblio 35.59 [t bibliography] printhistory =================================== Name ---- [t bibliography] printhistory Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] productname, Next: [t bibliography] productnumber, Prev: [t bibliography] printhistory, Up: biblio 35.60 [t bibliography] productname ================================== Name ---- [t bibliography] productname Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] productnumber, Next: [t bibliography] pubdate, Prev: [t bibliography] productname, Up: biblio 35.61 [t bibliography] productnumber ==================================== Name ---- [t bibliography] productnumber Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] pubdate, Next: [t bibliography] publisher, Prev: [t bibliography] productnumber, Up: biblio 35.62 [t bibliography] pubdate ============================== Name ---- [t bibliography] pubdate Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] publisher, Next: [t bibliography] publishername, Prev: [t bibliography] pubdate, Up: biblio 35.63 [t bibliography] publisher ================================ Name ---- [t bibliography] publisher Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] publishername, Next: [t bibliography] pubsnumber, Prev: [t bibliography] publisher, Up: biblio 35.64 [t bibliography] publishername ==================================== Name ---- [t bibliography] publishername Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] pubsnumber, Next: [t bibliography] releaseinfo, Prev: [t bibliography] publishername, Up: biblio 35.65 [t bibliography] pubsnumber ================================= Name ---- [t bibliography] pubsnumber Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] releaseinfo, Next: [t bibliography] revhistory, Prev: [t bibliography] pubsnumber, Up: biblio 35.66 [t bibliography] releaseinfo ================================== Name ---- [t bibliography] releaseinfo Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] revhistory, Next: [t bibliography] seriesinfo, Prev: [t bibliography] releaseinfo, Up: biblio 35.67 [t bibliography] revhistory ================================= Name ---- [t bibliography] revhistory Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] seriesinfo, Next: [t bibliography] seriesvolnums, Prev: [t bibliography] revhistory, Up: biblio 35.68 [t bibliography] seriesinfo ================================= Name ---- [t bibliography] seriesinfo Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] seriesvolnums, Next: [t bibliography] subtitle, Prev: [t bibliography] seriesinfo, Up: biblio 35.69 [t bibliography] seriesvolnums ==================================== Name ---- [t bibliography] seriesvolnums Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] subtitle, Next: [t bibliography] surname, Prev: [t bibliography] seriesvolnums, Up: biblio 35.70 [t bibliography] subtitle =============================== Name ---- [t bibliography] subtitle Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] surname, Next: [t bibliography] title, Prev: [t bibliography] subtitle, Up: biblio 35.71 [t bibliography] surname ============================== Name ---- [t bibliography] surname Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] title, Next: [t bibliography] titleabbrev, Prev: [t bibliography] surname, Up: biblio 35.72 [t bibliography] title ============================ Name ---- [t bibliography] title Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] titleabbrev, Next: [t bibliography] volumenum, Prev: [t bibliography] title, Up: biblio 35.73 [t bibliography] titleabbrev ================================== Name ---- [t bibliography] titleabbrev Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliography] volumenum, Next: [t bibliomixed] *, Prev: [t bibliography] titleabbrev, Up: biblio 35.74 [t bibliography] volumenum ================================ Name ---- [t bibliography] volumenum Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] *, Next: [t bibliomixed] abbrev, Prev: [t bibliography] volumenum, Up: biblio 35.75 [t bibliomixed] * ======================= Name ---- [t bibliomixed] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] abbrev, Next: [t bibliomixed] abstract, Prev: [t bibliomixed] *, Up: biblio 35.76 [t bibliomixed] abbrev ============================ Name ---- [t bibliomixed] abbrev Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] abstract, Next: [t bibliomixed] address, Prev: [t bibliomixed] abbrev, Up: biblio 35.77 [t bibliomixed] abstract ============================== Name ---- [t bibliomixed] abstract Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] address, Next: [t bibliomixed] affiliation, Prev: [t bibliomixed] abstract, Up: biblio 35.78 [t bibliomixed] address ============================= Name ---- [t bibliomixed] address Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] affiliation, Next: [t bibliomixed] artpagenums, Prev: [t bibliomixed] address, Up: biblio 35.79 [t bibliomixed] affiliation ================================= Name ---- [t bibliomixed] affiliation Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] artpagenums, Next: [t bibliomixed] author, Prev: [t bibliomixed] affiliation, Up: biblio 35.80 [t bibliomixed] artpagenums ================================= Name ---- [t bibliomixed] artpagenums Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] author, Next: [t bibliomixed] authorblurb, Prev: [t bibliomixed] artpagenums, Up: biblio 35.81 [t bibliomixed] author ============================ Name ---- [t bibliomixed] author Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] authorblurb, Next: [t bibliomixed] authorgroup, Prev: [t bibliomixed] author, Up: biblio 35.82 [t bibliomixed] authorblurb ================================= Name ---- [t bibliomixed] authorblurb Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] authorgroup, Next: [t bibliomixed] authorinitials, Prev: [t bibliomixed] authorblurb, Up: biblio 35.83 [t bibliomixed] authorgroup ================================= Name ---- [t bibliomixed] authorgroup Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] authorinitials, Next: [t bibliomixed] bibliomisc, Prev: [t bibliomixed] authorgroup, Up: biblio 35.84 [t bibliomixed] authorinitials ==================================== Name ---- [t bibliomixed] authorinitials Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] bibliomisc, Next: [t bibliomixed] bibliomset, Prev: [t bibliomixed] authorinitials, Up: biblio 35.85 [t bibliomixed] bibliomisc ================================ Name ---- [t bibliomixed] bibliomisc Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] bibliomset, Next: [t bibliomixed] bibliomset/title|bibliomset/citetitle, Prev: [t bibliomixed] bibliomisc, Up: biblio 35.86 [t bibliomixed] bibliomset ================================ Name ---- [t bibliomixed] bibliomset Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] bibliomset/title|bibliomset/citetitle, Next: [t bibliomixed] biblioset, Prev: [t bibliomixed] bibliomset, Up: biblio 35.87 [t bibliomixed] bibliomset/title|bibliomset/citetitle =========================================================== Name ---- [t bibliomixed] bibliomset/title|bibliomset/citetitle Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] biblioset, Next: [t bibliomixed] citetitle, Prev: [t bibliomixed] bibliomset/title|bibliomset/citetitle, Up: biblio 35.88 [t bibliomixed] biblioset =============================== Name ---- [t bibliomixed] biblioset Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] citetitle, Next: [t bibliomixed] collab, Prev: [t bibliomixed] biblioset, Up: biblio 35.89 [t bibliomixed] citetitle =============================== Name ---- [t bibliomixed] citetitle Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] collab, Next: [t bibliomixed] confgroup, Prev: [t bibliomixed] citetitle, Up: biblio 35.90 [t bibliomixed] collab ============================ Name ---- [t bibliomixed] collab Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] confgroup, Next: [t bibliomixed] contractnum, Prev: [t bibliomixed] collab, Up: biblio 35.91 [t bibliomixed] confgroup =============================== Name ---- [t bibliomixed] confgroup Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] contractnum, Next: [t bibliomixed] contractsponsor, Prev: [t bibliomixed] confgroup, Up: biblio 35.92 [t bibliomixed] contractnum ================================= Name ---- [t bibliomixed] contractnum Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] contractsponsor, Next: [t bibliomixed] contrib, Prev: [t bibliomixed] contractnum, Up: biblio 35.93 [t bibliomixed] contractsponsor ===================================== Name ---- [t bibliomixed] contractsponsor Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] contrib, Next: [t bibliomixed] copyright, Prev: [t bibliomixed] contractsponsor, Up: biblio 35.94 [t bibliomixed] contrib ============================= Name ---- [t bibliomixed] contrib Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] copyright, Next: [t bibliomixed] corpauthor, Prev: [t bibliomixed] contrib, Up: biblio 35.95 [t bibliomixed] copyright =============================== Name ---- [t bibliomixed] copyright Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] corpauthor, Next: [t bibliomixed] corpname, Prev: [t bibliomixed] copyright, Up: biblio 35.96 [t bibliomixed] corpauthor ================================ Name ---- [t bibliomixed] corpauthor Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] corpname, Next: [t bibliomixed] date, Prev: [t bibliomixed] corpauthor, Up: biblio 35.97 [t bibliomixed] corpname ============================== Name ---- [t bibliomixed] corpname Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] date, Next: [t bibliomixed] edition, Prev: [t bibliomixed] corpname, Up: biblio 35.98 [t bibliomixed] date ========================== Name ---- [t bibliomixed] date Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] edition, Next: [t bibliomixed] editor, Prev: [t bibliomixed] date, Up: biblio 35.99 [t bibliomixed] edition ============================= Name ---- [t bibliomixed] edition Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] editor, Next: [t bibliomixed] firstname, Prev: [t bibliomixed] edition, Up: biblio 35.100 [t bibliomixed] editor ============================= Name ---- [t bibliomixed] editor Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] firstname, Next: [t bibliomixed] honorific, Prev: [t bibliomixed] editor, Up: biblio 35.101 [t bibliomixed] firstname ================================ Name ---- [t bibliomixed] firstname Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] honorific, Next: [t bibliomixed] indexterm, Prev: [t bibliomixed] firstname, Up: biblio 35.102 [t bibliomixed] honorific ================================ Name ---- [t bibliomixed] honorific Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] indexterm, Next: [t bibliomixed] invpartnumber, Prev: [t bibliomixed] honorific, Up: biblio 35.103 [t bibliomixed] indexterm ================================ Name ---- [t bibliomixed] indexterm Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] invpartnumber, Next: [t bibliomixed] isbn, Prev: [t bibliomixed] indexterm, Up: biblio 35.104 [t bibliomixed] invpartnumber ==================================== Name ---- [t bibliomixed] invpartnumber Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] isbn, Next: [t bibliomixed] issn, Prev: [t bibliomixed] invpartnumber, Up: biblio 35.105 [t bibliomixed] isbn =========================== Name ---- [t bibliomixed] isbn Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] issn, Next: [t bibliomixed] issuenum, Prev: [t bibliomixed] isbn, Up: biblio 35.106 [t bibliomixed] issn =========================== Name ---- [t bibliomixed] issn Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] issuenum, Next: [t bibliomixed] lineage, Prev: [t bibliomixed] issn, Up: biblio 35.107 [t bibliomixed] issuenum =============================== Name ---- [t bibliomixed] issuenum Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] lineage, Next: [t bibliomixed] orgname, Prev: [t bibliomixed] issuenum, Up: biblio 35.108 [t bibliomixed] lineage ============================== Name ---- [t bibliomixed] lineage Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] orgname, Next: [t bibliomixed] othercredit, Prev: [t bibliomixed] lineage, Up: biblio 35.109 [t bibliomixed] orgname ============================== Name ---- [t bibliomixed] orgname Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] othercredit, Next: [t bibliomixed] othername, Prev: [t bibliomixed] orgname, Up: biblio 35.110 [t bibliomixed] othercredit ================================== Name ---- [t bibliomixed] othercredit Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] othername, Next: [t bibliomixed] pagenums, Prev: [t bibliomixed] othercredit, Up: biblio 35.111 [t bibliomixed] othername ================================ Name ---- [t bibliomixed] othername Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] pagenums, Next: [t bibliomixed] printhistory, Prev: [t bibliomixed] othername, Up: biblio 35.112 [t bibliomixed] pagenums =============================== Name ---- [t bibliomixed] pagenums Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] printhistory, Next: [t bibliomixed] productname, Prev: [t bibliomixed] pagenums, Up: biblio 35.113 [t bibliomixed] printhistory =================================== Name ---- [t bibliomixed] printhistory Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] productname, Next: [t bibliomixed] productnumber, Prev: [t bibliomixed] printhistory, Up: biblio 35.114 [t bibliomixed] productname ================================== Name ---- [t bibliomixed] productname Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] productnumber, Next: [t bibliomixed] pubdate, Prev: [t bibliomixed] productname, Up: biblio 35.115 [t bibliomixed] productnumber ==================================== Name ---- [t bibliomixed] productnumber Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] pubdate, Next: [t bibliomixed] publisher, Prev: [t bibliomixed] productnumber, Up: biblio 35.116 [t bibliomixed] pubdate ============================== Name ---- [t bibliomixed] pubdate Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] publisher, Next: [t bibliomixed] publishername, Prev: [t bibliomixed] pubdate, Up: biblio 35.117 [t bibliomixed] publisher ================================ Name ---- [t bibliomixed] publisher Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] publishername, Next: [t bibliomixed] pubsnumber, Prev: [t bibliomixed] publisher, Up: biblio 35.118 [t bibliomixed] publishername ==================================== Name ---- [t bibliomixed] publishername Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] pubsnumber, Next: [t bibliomixed] releaseinfo, Prev: [t bibliomixed] publishername, Up: biblio 35.119 [t bibliomixed] pubsnumber ================================= Name ---- [t bibliomixed] pubsnumber Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] releaseinfo, Next: [t bibliomixed] revhistory, Prev: [t bibliomixed] pubsnumber, Up: biblio 35.120 [t bibliomixed] releaseinfo ================================== Name ---- [t bibliomixed] releaseinfo Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] revhistory, Next: [t bibliomixed] seriesvolnums, Prev: [t bibliomixed] releaseinfo, Up: biblio 35.121 [t bibliomixed] revhistory ================================= Name ---- [t bibliomixed] revhistory Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] seriesvolnums, Next: [t bibliomixed] subtitle, Prev: [t bibliomixed] revhistory, Up: biblio 35.122 [t bibliomixed] seriesvolnums ==================================== Name ---- [t bibliomixed] seriesvolnums Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] subtitle, Next: [t bibliomixed] surname, Prev: [t bibliomixed] seriesvolnums, Up: biblio 35.123 [t bibliomixed] subtitle =============================== Name ---- [t bibliomixed] subtitle Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] surname, Next: [t bibliomixed] title, Prev: [t bibliomixed] subtitle, Up: biblio 35.124 [t bibliomixed] surname ============================== Name ---- [t bibliomixed] surname Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] title, Next: [t bibliomixed] titleabbrev, Prev: [t bibliomixed] surname, Up: biblio 35.125 [t bibliomixed] title ============================ Name ---- [t bibliomixed] title Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] titleabbrev, Next: [t bibliomixed] volumenum, Prev: [t bibliomixed] title, Up: biblio 35.126 [t bibliomixed] titleabbrev ================================== Name ---- [t bibliomixed] titleabbrev Synopsis --------  File: docbook2texi-xslt.info, Node: [t bibliomixed] volumenum, Prev: [t bibliomixed] titleabbrev, Up: biblio 35.127 [t bibliomixed] volumenum ================================ Name ---- [t bibliomixed] volumenum Synopsis --------  File: docbook2texi-xslt.info, Node: info, Next: keywords, Prev: biblio, Up: Top 36 info ******* * Menu: * [t] corpauthor:: * [t] jobtitle:: * [t] orgname:: * [t] orgdiv:: * [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo:: * [t] bookinfo|setinfo|seriesinfo:: * [t] partinfo:: * [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo:: * [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo:: * [t] objectinfo: [t] objectinfo <1>. * [t info-wrapper] node(): [t info-wrapper] node[].  File: docbook2texi-xslt.info, Node: [t] corpauthor, Next: [t] jobtitle, Up: info 36.1 [t] corpauthor =================== Name ---- [t] corpauthor Synopsis --------  File: docbook2texi-xslt.info, Node: [t] jobtitle, Next: [t] orgname, Prev: [t] corpauthor, Up: info 36.2 [t] jobtitle ================= Name ---- [t] jobtitle Synopsis --------  File: docbook2texi-xslt.info, Node: [t] orgname, Next: [t] orgdiv, Prev: [t] jobtitle, Up: info 36.3 [t] orgname ================ Name ---- [t] orgname Synopsis --------  File: docbook2texi-xslt.info, Node: [t] orgdiv, Next: [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo, Prev: [t] orgname, Up: info 36.4 [t] orgdiv =============== Name ---- [t] orgdiv Synopsis --------  File: docbook2texi-xslt.info, Node: [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo, Next: [t] bookinfo|setinfo|seriesinfo, Prev: [t] orgdiv, Up: info 36.5 [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo ======================================================================================== Name ---- [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo Synopsis --------  File: docbook2texi-xslt.info, Node: [t] bookinfo|setinfo|seriesinfo, Next: [t] partinfo, Prev: [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo, Up: info 36.6 [t] bookinfo|setinfo|seriesinfo ==================================== Name ---- [t] bookinfo|setinfo|seriesinfo Synopsis --------  File: docbook2texi-xslt.info, Node: [t] partinfo, Next: [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo, Prev: [t] bookinfo|setinfo|seriesinfo, Up: info 36.7 [t] partinfo ================= Name ---- [t] partinfo Synopsis --------  File: docbook2texi-xslt.info, Node: [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo, Next: [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo, Prev: [t] partinfo, Up: info 36.8 [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo ============================================================================================= Name ---- [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo Synopsis --------  File: docbook2texi-xslt.info, Node: [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo, Next: [t] objectinfo <1>, Prev: [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo, Up: info 36.9 [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo ====================================================================== Name ---- [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo Synopsis --------  File: docbook2texi-xslt.info, Node: [t] objectinfo <1>, Next: [t info-wrapper] node[], Prev: [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo, Up: info 36.10 [t] objectinfo ==================== Name ---- [t] objectinfo Synopsis --------  File: docbook2texi-xslt.info, Node: [t info-wrapper] node[], Prev: [t] objectinfo <1>, Up: info 36.11 [t info-wrapper] node() ============================= Name ---- [t info-wrapper] node() Synopsis --------  File: docbook2texi-xslt.info, Node: keywords, Next: toc, Prev: info, Up: Top 37 keywords *********** * Menu: * [t] keywordset:: * [t] subjectset::  File: docbook2texi-xslt.info, Node: [t] keywordset, Next: [t] subjectset, Up: keywords 37.1 [t] keywordset =================== Name ---- [t] keywordset Synopsis --------  File: docbook2texi-xslt.info, Node: [t] subjectset, Prev: [t] keywordset, Up: keywords 37.2 [t] subjectset =================== Name ---- [t] subjectset Synopsis --------  File: docbook2texi-xslt.info, Node: toc, Next: beginpage, Prev: keywords, Up: Top 38 toc ****** * Menu: * [t toc] *:: * [t] toc:: * [t] tocpart|tocchap|tocfront|tocback|tocentry:: * [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5:: * [t] lot|lotentry::  File: docbook2texi-xslt.info, Node: [t toc] *, Next: [t] toc, Up: toc 38.1 [t toc] * ============== Name ---- [t toc] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t] toc, Next: [t] tocpart|tocchap|tocfront|tocback|tocentry, Prev: [t toc] *, Up: toc 38.2 [t] toc ============ Name ---- [t] toc Synopsis --------  File: docbook2texi-xslt.info, Node: [t] tocpart|tocchap|tocfront|tocback|tocentry, Next: [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5, Prev: [t] toc, Up: toc 38.3 [t] tocpart|tocchap|tocfront|tocback|tocentry ================================================== Name ---- [t] tocpart|tocchap|tocfront|tocback|tocentry Synopsis --------  File: docbook2texi-xslt.info, Node: [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5, Next: [t] lot|lotentry, Prev: [t] tocpart|tocchap|tocfront|tocback|tocentry, Up: toc 38.4 [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5 ========================================================== Name ---- [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5 Synopsis --------  File: docbook2texi-xslt.info, Node: [t] lot|lotentry, Prev: [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5, Up: toc 38.5 [t] lot|lotentry ===================== Name ---- [t] lot|lotentry Synopsis --------  File: docbook2texi-xslt.info, Node: beginpage, Next: pi, Prev: toc, Up: Top 39 beginpage ************ * Menu: * [t] beginpage::  File: docbook2texi-xslt.info, Node: [t] beginpage, Up: beginpage 39.1 [t] beginpage ================== Name ---- [t] beginpage Synopsis --------  File: docbook2texi-xslt.info, Node: pi, Next: docbook, Prev: beginpage, Up: Top 40 pi ***** * Menu: * [t] processing-instruction(): [t] processing-instruction[].  File: docbook2texi-xslt.info, Node: [t] processing-instruction[], Up: pi 40.1 [t] processing-instruction() ================================= Name ---- [t] processing-instruction() Synopsis --------  File: docbook2texi-xslt.info, Node: docbook, Prev: pi, Up: Top 41 docbook ********** 41.1 docbook ============ This file is the basic driver of the Texinfo XSLT stylesheets. It includes all the other stylesheet files. You can use this stylesheet directly, or create your own custom stylesheet that imports this one (or one of the other driver files): *Importing stylesheets* ... your own stylesheet code goes here ... Importing the stylesheet allows you to specify stylesheet options and customize the stylesheets without changing the standard stylesheets. * Menu: * [t] *:: * [t] text(): [t] text[].  File: docbook2texi-xslt.info, Node: [t] *, Next: [t] text[], Up: docbook 41.2 [t] * ========== Name ---- [t] * Synopsis --------  File: docbook2texi-xslt.info, Node: [t] text[], Prev: [t] *, Up: docbook 41.3 [t] text() =============== Name ---- [t] text() Synopsis --------  Tag Table: Node: Top290 Node: Guide to the stylesheet reference24184 Node: common/l10n25304 Node: [P] localization-file26274 Node: [V] l10n-data26928 Node: [P] default-document-language27420 Node: [T] l10n-match-language28510 Node: [T] l10n-xml-language29391 Node: [T] l10n-xml-actual-language30313 Node: [M] l10n-substitution30717 Node: [t l10n-substitution] text[]31221 Node: common/messages31528 Node: [P] message-language32302 Node: [T] l10n-message-choose-language32603 Node: [t l10n-substitution] l;a133086 Node: [t l10n-substitution] l;a233480 Node: [t l10n-substitution] l;a333868 Node: [t l10n-substitution] l;a434256 Node: [t l10n-substitution] l;a534644 Node: [T] user-message35022 Node: [T] print-node-line-number36182 Node: [T] print-node-xpath37071 Node: [t print-node-xpath] text[]37923 Node: [t print-node-xpath] @*38262 Node: [t print-node-xpath] *[@id != '']38598 Node: [t print-node-xpath] *38966 Node: [t print-node-xpath] /39292 Node: common/labels39576 Node: [M] for-label39982 Node: [t for-label] *[@label!='']40292 Node: [t for-label] *40624 Node: [t for-label] qandaentry40907 Node: [t for-label] question41221 Node: [t for-label] answer41532 Node: [t label] *41822 Node: [t label] text[]42142 Node: common/titles42381 Node: [M] for-title43538 Node: [t title] title43872 Node: [t title] *44128 Node: [t title] text[]44443 Node: [t for-title] set44708 Node: [t for-title] *45053 Node: [t for-title] book45452 Node: [t for-title] part45804 Node: [t for-title] preface|chapter|appendix46179 Node: [t for-title] partintro46639 Node: [t for-title] dedication47047 Node: [t for-title] colophon47443 Node: [t for-title] article47829 Node: [t for-title] reference48210 Node: [t for-title] refentry48599 Node: [t for-title] refsynopsisdiv48991 Node: [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect49476 Node: [t for-title] bibliography50305 Node: [t for-title] glossary50780 Node: [t for-title] index51166 Node: [t for-title] figure|table|example|equation51557 Node: [t for-title] qandaset|qandadiv52053 Node: [t for-title] abstract52504 Node: [t for-title] caution|tip|warning|important|note52924 Node: [t no-anchors] *53433 Node: [t no-anchors] footnote53743 Node: [t no-anchors] anchor54054 Node: [t no-anchors] ulink54361 Node: [t no-anchors] link54660 Node: [t no-anchors] olink54954 Node: [t no-anchors] indexterm55256 Node: [t no-anchors] xref55574 Node: param55843 Node: [P] user-message-prefix58178 Node: [P] captions-display-as-headings58495 Node: [P] links-use-pxref59085 Node: [P] explicit-node-names59689 Node: [P] show-comments61128 Node: [P] funcsynopsis-decoration61695 Node: [P] function-parens62256 Node: [P] refentry-display-name62712 Node: [P] manvolnum-in-xref63173 Node: [P] prefer-textobjects63675 Node: [P] semantic-decorations64646 Node: [P] custom-localization-file65458 Node: [P] custom-l10n-data66656 Node: [P] author-othername-in-middle67671 Node: [P] output-file68204 Node: [P] directory-category68968 Node: [P] directory-description69686 Node: [P] index-category70432 Node: [P] qanda-defaultlabel71220 Node: [P] qandaset-generate-toc71749 Node: texifile72158 Node: [t texinfo-file-name] *72842 Node: [t texinfo-file-name] text[]73128 Node: [t for-texinfo-file-name] set/book73477 Node: [t for-texinfo-file-name] /*73870 Node: [t for-texinfo-file-name] /set/book//*74249 Node: [t for-texinfo-file-name] node[]74666 Node: [T] get-texinfo-file-name75041 Node: texinode75803 Node: [M] is-texinfo-node77655 Node: [t is-texinfo-node] dedication|preface|chapter|appendix|reference|article78388 Node: [t is-texinfo-node] sect1|sect2|sect3|sect4|sect5|section|simplesect78992 Node: [t is-texinfo-node] refentry79585 Node: [t is-texinfo-node] *79966 Node: [t is-texinfo-node] part80275 Node: [t is-texinfo-node] partintro|partintro//*80610 Node: [t is-texinfo-node] book81020 Node: [t is-texinfo-node] index|bibliography|glossary81381 Node: [M] for-texinfo-node-name81819 Node: [t for-texinfo-node-name] *[@xreflabel]82276 Node: [t for-texinfo-node-name] *[child;;title]82706 Node: [t for-texinfo-node-name] *83147 Node: [t for-texinfo-node-name] book|/*83526 Node: [t for-texinfo-node-name] reference|preface|chapter|appendix|glossary|bibliography| sect1|sect2|sect3|sect4|sect5|section|refsect1|refsect2|refsect384035 Node: [t for-texinfo-node-name] article85022 Node: [t for-texinfo-node-name] refentry85523 Node: [t for-texinfo-node-name] part85910 Node: [t for-texinfo-node-name] varlistentry86286 Node: [t for-texinfo-node-name] index86691 Node: [t is-texinfo-top-node] book|/*87069 Node: [t is-texinfo-top-node] *87449 Node: [t texinfo-node-name] *87782 Node: [t texinfo-node-name] text[]88104 Node: texinode-base88412 Node: [T] make-nodenamemap88868 Node: [t nodenamemap] *89141 Node: [t nodenamemap] text[]89425 Node: [T] make-texinfo-node89730 Node: [T] make-texinfo-nontop-node90196 Node: [T] make-texinfo-top-node90547 Node: [T] make-texinfo-top-node-firstchild90901 Node: chunk91308 Node: [t] /91519 Node: [M] top-chunk91692 Node: [t top-chunk] *92109 Node: autotoc92339 Node: [M] texinfo-menu93426 Node: [V] make-detailed-menus93862 Node: [t texinfo-menu] *94188 Node: [t texinfo-menu] book|/*94478 Node: [t texinfo-detail-menu-entry] book/*|/*/*|book/part/*94822 Node: [t texinfo-detail-menu-entry] book/part95303 Node: [t texinfo-detail-menu-entry] *95735 Node: [t texinfo-menu-entry] part96109 Node: [T] make-texinfo-menu-entry96455 Node: [T] make-texinfo-directory96842 Node: [t for-menu-title] node[]97338 Node: menudescrip97635 Node: [M] for-menu-description100504 Node: [t for-menu-description] refentry100917 Node: [t for-menu-description] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book101440 Node: [t for-menu-description] *102628 Node: [T] get-texinfo-directory-description103129 Node: [M] for-directory-category103588 Node: [T] get-texinfo-directory-category104107 Node: [t for-directory-category] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book|refentry104713 Node: [t for-directory-category] *105961 Node: index106439 Node: [t] index106751 Node: [t] indexdiv106943 Node: [t] indexterm107169 Node: [t] primary107401 Node: [t] secondary|tertiary107635 Node: [t] see|seealso107915 Node: [t] indexentry108170 Node: [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie108451 Node: sectioning108860 Node: [T] get-texinfo-section-level109248 Node: [T] make-texinfo-section111279 Node: [T] section112446 Node: division113596 Node: [t top-chunk] set113792 Node: [t] book114030 Node: [t] part114242 Node: [t] partintro114450 Node: sections114661 Node: [t] sect1|sect2|sect3|sect4|sect5|simplesect|section114916 Node: [t] bridgehead115328 Node: [t] title115606 Node: [t] titleabbrev115827 Node: [t] subtitle116070 Node: refentry116283 Node: [t] reference116705 Node: [t] refentry116920 Node: [t] refmeta117151 Node: [t] manvolnum117378 Node: [t no-inline-markup] manvolnum117631 Node: [t] refmiscinfo117963 Node: [t] refentrytitle118232 Node: [t] refnamediv118493 Node: [t] refname118738 Node: [t] refpurpose118968 Node: [t] refdescriptor119215 Node: [t] refclass119475 Node: [t] refsynopsisdiv119719 Node: [t] refsect1|refsect2|refsect3120000 Node: admon120308 Node: [T] admonition-title120512 Node: [t] note|important|warning|caution|tip120800 Node: block121145 Node: [T] block-object122070 Node: [t] para|simpara122316 Node: [t] formalpara122570 Node: [t] formalpara/title122820 Node: [t] formalpara/para123097 Node: [t] blockquote123370 Node: [t] blockquote/title123623 Node: [t] attribution123896 Node: [t blockquote-attribution] attribution124173 Node: [t] epigraph124541 Node: [t] sidebar124796 Node: [t] abstract125021 Node: [t] msgset125248 Node: [t] msgentry125468 Node: [t] simplemsgentry125702 Node: [t] msg125957 Node: [t] msgmain126167 Node: [t] msgmain/title126392 Node: [t] msgsub126644 Node: [t] msgsub/title126873 Node: [t] msgrel127119 Node: [t] msgrel/title127347 Node: [t] msgtext127594 Node: [t] msginfo127822 Node: [t] msglevel|msgorig|msgaud128061 Node: [t] msgexplan128366 Node: [t] msgexplan/title128623 Node: [t] revhistory128891 Node: [t] revhistory/revision129149 Node: [t] revision/revnumber129446 Node: [t] revision/date129742 Node: [t] revision/authorinitials130022 Node: [t] revision/authorinitials[1]130350 Node: [t] revision/revremark130695 Node: [t] revision/revdescription131008 Node: [t] ackno131320 Node: caption131529 Node: [T] make-caption131703 Node: formal132432 Node: [T] formal-object132870 Node: [T] formal-object-title133129 Node: [T] informal-object133440 Node: [T] semiformal-object133739 Node: [t] figure|table|example134047 Node: [t] equation134345 Node: [t] informalfigure134592 Node: [t] informalexample134858 Node: [t] informaltable135133 Node: [t] informalequation135402 Node: synop135657 Node: [M] no-inline-markup136601 Node: [t] synopsis137037 Node: [t no-inline-markup] *137283 Node: [t no-inline-markup] text[]137583 Node: [t] cmdsynopsis137906 Node: [t cmdsynopsis] *138169 Node: [t cmdsynopsis] sbr138439 Node: [t cmdsynopsis] command138725 Node: [t cmdsynopsis] group|arg139035 Node: [t cmdsynopsis] group/*139357 Node: [t cmdsynopsis] group/group139692 Node: [t cmdsynopsis] group/option140046 Node: [t cmdsynopsis] group/arg140406 Node: [t cmdsynopsis] synopfragment|synopfragmentref140773 Node: [t] funcsynopsis141197 Node: [t funcsynopsis] *141487 Node: [t funcsynopsis] funcsynopsisinfo141779 Node: [T] funcprototype142132 Node: [t funcsynopsis] modifier142478 Node: [t funcsynopsis] funcdef142797 Node: [t funcsynopsis] function143120 Node: [t funcsynopsis] void143443 Node: [t funcsynopsis] varargs143750 Node: [t funcsynopsis] paramdef144069 Node: [t funcsynopsis] paramdef/parameter144406 Node: [t funcsynopsis] funcparams144786 Node: verbatim145100 Node: [t] literallayout[@class='monospaced']145899 Node: [t] literallayout146244 Node: [t] programlisting|screen146539 Node: [t] address146839 Node: footnote147057 Node: [t] footnote147226 Node: [t] footnoteref147439 Node: force-inline147664 Node: [M] coerce-into-inline148511 Node: [t coerce-into-inline] calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist| simplelist|variablelist| caution|important|note|tip|warning| literallayout|programlisting|programlistingco| screen|screenco|screenshot| synopsis|cmdsynopsis|funcsynopsis| classsynopsis|fieldsynopsis| constructorsynopsis|destructorsynopsis|methodsynopsis| formalpara| address|blockquote| graphic|graphicco|mediaobject|mediaobjectco| informalequation|informalexample|informalfigure|informaltable| equation|example|figure|table| msgset|procedure|qandaset149673 Node: [t coerce-into-inline] para|simpara152735 Node: [t coerce-into-inline] *|text[]153635 Node: inline153974 Node: [T] inline-plain156758 Node: [T] inline-monospace157109 Node: [T] inline-bold157500 Node: [T] inline-italic157872 Node: [T] inline-roman158248 Node: [T] inline-superscript158627 Node: [T] inline-subscript159033 Node: [T] inline-markup-emph159437 Node: [T] inline-markup-code159849 Node: [T] inline-markup-samp160265 Node: [T] inline-markup-cite160681 Node: [T] inline-markup-email161098 Node: [T] inline-markup-dfn161518 Node: [T] inline-markup-env161929 Node: [T] inline-markup-file162339 Node: [T] inline-markup-sc162752 Node: [T] inline-markup-acronym163161 Node: [T] inline-markup-strong163592 Node: [T] inline-markup-key164020 Node: [T] inline-markup-kbd164432 Node: [T] inline-markup-var164841 Node: [t] personname165243 Node: [t] author|editor|othercredit|authorinitials165525 Node: [t] accel165915 Node: [t] action166161 Node: [t] application166382 Node: [t] classname166627 Node: [t] exceptionname166871 Node: [t] interfacename167133 Node: [t] methodname167396 Node: [t] command167641 Node: [t] computeroutput167875 Node: [t] constant168135 Node: [t] database168372 Node: [t] errorcode168604 Node: [t] errorname168841 Node: [t] errortype169079 Node: [t] errortext169317 Node: [t] envar169551 Node: [t] filename169768 Node: [t] refentrytitle/function170010 Node: [t] function170311 Node: [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu170605 Node: [t] hardware171081 Node: [t] interface171362 Node: [t] interfacedefinition171609 Node: [t] keycap171894 Node: [t] keycode172125 Node: [t] keysym172347 Node: [t] literal172566 Node: [t] medialabel172792 Node: [t] shortcut173032 Node: [t] mousebutton173268 Node: [t] option173512 Node: [t] parameter173737 Node: [t] property173971 Node: [t] prompt174201 Node: [t] replaceable174425 Node: [t] returnvalue174672 Node: [t] structfield174924 Node: [t] structname175175 Node: [t] symbol175417 Node: [t] systemitem175642 Node: [t] token175878 Node: [t] type176092 Node: [t] userinput176301 Node: [t] abbrev176531 Node: [t] acronym176752 Node: [t] citerefentry176980 Node: [t] citetitle177231 Node: [t] emphasis[@role='strong' or @role='bold' or parent;;emphasis]177523 Node: [t] emphasis178015 Node: [t] foreignphrase178303 Node: [t] markup178557 Node: [t] phrase178781 Node: [t] quote178997 Node: [t] varname179210 Node: [t] wordasword179435 Node: [t] lineannotation179681 Node: [t] superscript179947 Node: [t] subscript180200 Node: [t] trademark180440 Node: [t] firstterm180678 Node: [t] glossterm180916 Node: [t] sgmltag181152 Node: [T] format-sgmltag181385 Node: [t] email181922 Node: [t] keycombo182144 Node: [t] menuchoice182374 Node: [T] format-menuchoice182624 Node: [t] optional183089 Node: [t] citation183329 Node: [t] comment|remark183566 Node: [t] productname|productnumber183844 Node: [t] pob|street|city|state|postcode|country|phone|fax|otheraddr184216 Node: [t] firstname|surname|lineage|othername|honorific184751 Node: math185196 Node: [t] inlineequation185427 Node: [t] alt185658 Node: qandaset185845 Node: [t] question|answer186049 Node: [t] qandaentry186296 Node: [t] qandaset|qandadiv186553 Node: [t] label186828 Node: table187032 Node: [t] tgroup187426 Node: [t] colspec187622 Node: [t] spanspec187843 Node: [t] thead|tfoot|tbody188079 Node: [t] thead/colspec188357 Node: [t] tfoot/colspec188624 Node: [t] row188877 Node: [t] entry189082 Node: [T] get-proportional-colwidth189307 Node: xref190572 Node: [T] anchor190941 Node: [t] anchor191150 Node: [T] check-xref191367 Node: [t] xref191737 Node: [t] link191942 Node: [t] ulink192142 Node: [t] olink192347 Node: [M] xref-to192555 Node: [t xref-to] *193037 Node: [t xref-to] co193277 Node: glossary193503 Node: [t] glossary193979 Node: [t] glosslist194190 Node: [t] glossdiv194426 Node: [t] glossentry194660 Node: [t] glossentry/glossterm194913 Node: [t] glossentry/acronym195216 Node: [t] glossentry/abbrev195518 Node: [t] glossentry/revhistory195817 Node: [t] glossentry/glossdef196133 Node: [t] glossentry/glosssee|glossseealso196456 Node: [t glosssee-xref] glossentry196836 Node: [t glosssee-xref] glossentry/glossterm[1]197209 Node: [t glosssee-xref] *197617 Node: lists197900 Node: [t] itemizedlist198696 Node: [t] orderedlist198926 Node: [t] variablelist199177 Node: [t] listitem199428 Node: [t] varlistentry199664 Node: [t] varlistentry/term199921 Node: [t] varlistentry/listitem200211 Node: [t] simplelist[@type='horiz']200530 Node: [t] simplelist200858 Node: [t] simplelist[@type='inline']201131 Node: [T] simplelist-horiz201461 Node: [T] simplelist-horiz-row201931 Node: [T] simplelist-vert202452 Node: [T] simplelist-vert-row202997 Node: [t] member203547 Node: [t] simplelist[@type='inline']/member203803 Node: [t] simplelist[@type='inline']/member[1]204184 Node: [t] procedure204593 Node: [t] substeps204856 Node: [t] step205083 Node: [t] segmentedlist205298 Node: [t] segtitle205549 Node: [t segtitle-in-seg] segtitle205800 Node: [t] seglistitem206120 Node: [t] seg206376 Node: callout206563 Node: [t] programlistingco|screenco207271 Node: [t] areaspec|areaset|area207578 Node: [t no-inline-markup] co207901 Node: [t] co208200 Node: [t co] co208471 Node: [T] callout-bug208690 Node: [t] coref209002 Node: [T] check-co209220 Node: [t] calloutlist209589 Node: [t] callout209835 Node: [T] callout-process-arearefs210081 Node: [T] callout-arearef210483 Node: graphics210809 Node: [t] screenshot211220 Node: [t] screeninfo211442 Node: [T] imagedata211686 Node: [t] graphic211938 Node: [t] inlinegraphic212170 Node: [T] select-mediaobject212435 Node: [t] mediaobject212739 Node: [t] inlinemediaobject213004 Node: [t] objectinfo213285 Node: [t] imageobject213538 Node: [t] textobject213790 Node: [t] caption214035 Node: biblio214244 Node: [t] bibliography218449 Node: [T] biblio-item-separator218690 Node: [t] bibliodiv219004 Node: [t] biblioentry219254 Node: [t] bibliomixed219502 Node: [t bibliography] *219755 Node: [t bibliography] abbrev220035 Node: [t bibliography] abstract220345 Node: [t bibliography] address220669 Node: [t bibliography] affiliation220996 Node: [t bibliography] shortaffil221341 Node: [t bibliography] jobtitle221683 Node: [t bibliography] artheader222015 Node: [t bibliography] artpagenums222352 Node: [t bibliography] author222695 Node: [t bibliography] authorblurb223020 Node: [t bibliography] authorgroup223365 Node: [t bibliography] authorinitials223718 Node: [t bibliography] bibliomisc224082 Node: [t bibliography] bibliomset224429 Node: [t bibliography] biblioset224771 Node: [t bibliography] biblioset/title|biblioset/citetitle225134 Node: [t bibliography] bookbiblio225601 Node: [t bibliography] citetitle225968 Node: [t bibliography] collab226302 Node: [t bibliography] collabname226624 Node: [t bibliography] confgroup226962 Node: [t bibliography] confdates227299 Node: [t bibliography] conftitle227635 Node: [t bibliography] confnum227969 Node: [t bibliography] confsponsor228297 Node: [t bibliography] contractnum228643 Node: [t bibliography] contractsponsor228997 Node: [t bibliography] contrib229363 Node: [t bibliography] copyright229695 Node: [t bibliography] year230024 Node: [t bibliography] year[position[]=last[]]230349 Node: [t bibliography] holder230747 Node: [t bibliography] corpauthor231083 Node: [t bibliography] corpname231420 Node: [t bibliography] date231747 Node: [t bibliography] edition232055 Node: [t bibliography] editor232373 Node: [t bibliography] personname232693 Node: [t bibliography] firstname233031 Node: [t bibliography] honorific233368 Node: [t bibliography] indexterm233704 Node: [t bibliography] invpartnumber234044 Node: [t bibliography] isbn234395 Node: [t bibliography] issn234705 Node: [t bibliography] issuenum235010 Node: [t bibliography] lineage235334 Node: [t bibliography] orgname235657 Node: [t bibliography] orgdiv235978 Node: [t bibliography] othercredit236299 Node: [t bibliography] othername236642 Node: [t bibliography] pagenums236979 Node: [t bibliography] printhistory237313 Node: [t bibliography] productname237665 Node: [t bibliography] productnumber238018 Node: [t bibliography] pubdate238374 Node: [t bibliography] publisher238704 Node: [t bibliography] publishername239042 Node: [t bibliography] pubsnumber239399 Node: [t bibliography] releaseinfo239746 Node: [t bibliography] revhistory240094 Node: [t bibliography] seriesinfo240438 Node: [t bibliography] seriesvolnums240784 Node: [t bibliography] subtitle241140 Node: [t bibliography] surname241473 Node: [t bibliography] title241794 Node: [t bibliography] titleabbrev242110 Node: [t bibliography] volumenum242452 Node: [t bibliomixed] *242781 Node: [t bibliomixed] abbrev243068 Node: [t bibliomixed] abstract243373 Node: [t bibliomixed] address243692 Node: [t bibliomixed] affiliation244012 Node: [t bibliomixed] artpagenums244351 Node: [t bibliomixed] author244689 Node: [t bibliomixed] authorblurb245007 Node: [t bibliomixed] authorgroup245345 Node: [t bibliomixed] authorinitials245691 Node: [t bibliomixed] bibliomisc246048 Node: [t bibliomixed] bibliomset246388 Node: [t bibliomixed] bibliomset/title|bibliomset/citetitle246751 Node: [t bibliomixed] biblioset247221 Node: [t bibliomixed] citetitle247578 Node: [t bibliomixed] collab247904 Node: [t bibliomixed] confgroup248218 Node: [t bibliomixed] contractnum248546 Node: [t bibliomixed] contractsponsor248891 Node: [t bibliomixed] contrib249250 Node: [t bibliomixed] copyright249575 Node: [t bibliomixed] corpauthor249903 Node: [t bibliomixed] corpname250236 Node: [t bibliomixed] date250556 Node: [t bibliomixed] edition250857 Node: [t bibliomixed] editor251168 Node: [t bibliomixed] firstname251482 Node: [t bibliomixed] honorific251810 Node: [t bibliomixed] indexterm252141 Node: [t bibliomixed] invpartnumber252476 Node: [t bibliomixed] isbn252822 Node: [t bibliomixed] issn253127 Node: [t bibliomixed] issuenum253427 Node: [t bibliomixed] lineage253746 Node: [t bibliomixed] orgname254064 Node: [t bibliomixed] othercredit254385 Node: [t bibliomixed] othername254724 Node: [t bibliomixed] pagenums255056 Node: [t bibliomixed] printhistory255385 Node: [t bibliomixed] productname255732 Node: [t bibliomixed] productnumber256080 Node: [t bibliomixed] pubdate256431 Node: [t bibliomixed] publisher256756 Node: [t bibliomixed] publishername257089 Node: [t bibliomixed] pubsnumber257441 Node: [t bibliomixed] releaseinfo257783 Node: [t bibliomixed] revhistory258126 Node: [t bibliomixed] seriesvolnums258468 Node: [t bibliomixed] subtitle258819 Node: [t bibliomixed] surname259147 Node: [t bibliomixed] title259463 Node: [t bibliomixed] titleabbrev259774 Node: [t bibliomixed] volumenum260111 Node: info260410 Node: [t] corpauthor260985 Node: [t] jobtitle261201 Node: [t] orgname261429 Node: [t] orgdiv261649 Node: [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo261936 Node: [t] bookinfo|setinfo|seriesinfo262535 Node: [t] partinfo262928 Node: [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo263250 Node: [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo263910 Node: [t] objectinfo <1>264484 Node: [t info-wrapper] node[]264791 Node: keywords265067 Node: [t] keywordset265224 Node: [t] subjectset265446 Node: toc265668 Node: [t toc] *265937 Node: [t] toc266129 Node: [t] tocpart|tocchap|tocfront|tocback|tocentry266360 Node: [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5266787 Node: [t] lot|lotentry267255 Node: beginpage267521 Node: [t] beginpage267659 Node: pi267854 Node: [t] processing-instruction[]268026 Node: docbook268289 Node: [t] *269135 Node: [t] text[]269307  End Tag Table docbook2X-0.8.8/xslt/documentation/docbook2texi-xslt.texi0000644000175000017500000071513510572276006020445 00000000000000\input texinfo @setfilename docbook2texi-xslt.info @documentencoding us-ascii @settitle docbook2X Texinfo Stylesheets Reference @dircategory Document Preparation @direntry * docbook2X Texinfo Stylesheets Reference: (docbook2texi-xslt). . @end direntry @node Top, Guide to the stylesheet reference, , (dir) @top docbook2X Texinfo Stylesheets Reference @menu * docbook2X Texinfo Stylesheets Reference: Guide to the stylesheet reference. * common/l10n:: * common/messages:: * common/labels:: * common/titles:: * param:: Stylesheet parameters * texifile:: Handle multiple files in Texinfo * texinode:: Nodal elements and their node names * texinode-base:: Low-level Texinfo node handling * chunk:: Output the preamble * autotoc:: Texinfo menus and directory entries * menudescrip:: Texinfo menu descriptions * index:: Texinfo Indices * sectioning:: Mapping of DocBook sections into Texinfo sections * division:: DocBook divisions * sections:: DocBook sectioning elements * refentry:: refentry markup * admon:: Admonitions * block:: Block-level objects * caption:: Captions (really headings) * formal:: DocBook formal objects * synop:: Synopses * verbatim:: Verbatim environments * footnote:: Footnotes * force-inline:: Process only inline content * inline:: Inline markup * math:: Equations * qandaset:: Question-and-answer markup * table:: Table support * xref:: Handle cross references and links * glossary:: Glossaries * lists:: All sorts of lists * callout:: Call-outs * graphics:: Graphics and media objects * biblio:: Bibliographies * info:: The *info wrappers * keywords:: Keyword and subject meta-data * toc:: User-defined table of contents (toc markup) * beginpage:: beginpage element * pi:: Handle processing instructions * docbook:: Texinfo XSLT stylesheets driver @detailmenu --- The Detailed Node Listing --- common/l10n * [P] localization-file:: (URI of) XML document containing localization data * [V] l10n-data:: XML element node containing localization-data * [P] default-document-language:: Assumed language of the input document when it is not specified in the source * [T] l10n-match-language:: Determine the language to translate to * [T] l10n-xml-language:: Determine the language of the given XML fragment * [T] l10n-xml-actual-language:: Undocumented * [M] l10n-substitution:: Output localized text, substituting parameters if necessary * [t l10n-substitution] text(): [t l10n-substitution] text[]. common/messages * [P] message-language:: Undocumented * [T] l10n-message-choose-language:: Undocumented * [t l10n-substitution] l;a1:: * [t l10n-substitution] l;a2:: * [t l10n-substitution] l;a3:: * [t l10n-substitution] l;a4:: * [t l10n-substitution] l;a5:: * [T] user-message:: Emit a user message * [T] print-node-line-number:: Display file name and line number of a node * [T] print-node-xpath:: Display the path of a node * [t print-node-xpath] text(): [t print-node-xpath] text[]. * [t print-node-xpath] @@*:: * [t print-node-xpath] *[@@id != '']:: * [t print-node-xpath] *:: * [t print-node-xpath] /:: common/labels * [M] for-label:: Provides access to element labels * [t for-label] *[@@label!='']:: * [t for-label] *:: * [t for-label] qandaentry:: * [t for-label] question:: * [t for-label] answer:: * [t label] *:: * [t label] text(): [t label] text[]. common/titles * [M] for-title:: Provides access to element titles * [t title] title:: * [t title] *:: * [t title] text(): [t title] text[]. * [t for-title] set:: * [t for-title] *:: * [t for-title] book:: * [t for-title] part:: * [t for-title] preface|chapter|appendix:: * [t for-title] partintro:: * [t for-title] dedication:: * [t for-title] colophon:: * [t for-title] article:: * [t for-title] reference:: * [t for-title] refentry:: * [t for-title] refsynopsisdiv:: * [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect:: * [t for-title] bibliography:: * [t for-title] glossary:: * [t for-title] index:: * [t for-title] figure|table|example|equation:: * [t for-title] qandaset|qandadiv:: * [t for-title] abstract:: * [t for-title] caution|tip|warning|important|note:: * [t no-anchors] *:: * [t no-anchors] footnote:: * [t no-anchors] anchor:: * [t no-anchors] ulink:: * [t no-anchors] link:: * [t no-anchors] olink:: * [t no-anchors] indexterm:: * [t no-anchors] xref:: param * [P] user-message-prefix:: Undocumented * [P] captions-display-as-headings:: Use heading markup for minor captions? * [P] links-use-pxref:: Translate link using @@pxref * [P] explicit-node-names:: Insist on manually constructed Texinfo node names * [P] show-comments:: Display comment elements? * [P] funcsynopsis-decoration:: Decorate elements of a FuncSynopsis? * [P] function-parens:: Generate parentheses after a function? * [P] refentry-display-name:: Output NAME header before 'RefName'(s)? * [P] manvolnum-in-xref:: Output manvolnum as part of refentry cross-reference? * [P] prefer-textobjects:: Prefer textobject over imageobject? * [P] semantic-decorations:: Use Texinfo semantic inline markup? * [P] custom-localization-file:: URI of XML document containing custom localization data * [P] custom-l10n-data:: XML document containing custom localization data * [P] author-othername-in-middle:: Is othername in author a middle name? * [P] output-file:: Name of the Info file * [P] directory-category:: The categorization of the document in the Info directory * [P] directory-description:: The description of the document in the Info directory * [P] index-category:: The Texinfo index to use * [P] qanda-defaultlabel:: Sets the default for defaultlabel on QandASet. * [P] qandaset-generate-toc:: Is a Table of Contents created for QandASets? texifile * [t texinfo-file-name] *:: * [t texinfo-file-name] text(): [t texinfo-file-name] text[]. * [t for-texinfo-file-name] set/book:: * [t for-texinfo-file-name] /*:: * [t for-texinfo-file-name] /set/book//*:: * [t for-texinfo-file-name] node(): [t for-texinfo-file-name] node[]. * [T] get-texinfo-file-name:: Find the file that contains the result texinode * [M] is-texinfo-node:: Determine if given element is a Texinfo node * [t is-texinfo-node] dedication|preface|chapter|appendix|reference|article:: * [t is-texinfo-node] sect1|sect2|sect3|sect4|sect5|section|simplesect:: * [t is-texinfo-node] refentry:: * [t is-texinfo-node] *:: * [t is-texinfo-node] part:: * [t is-texinfo-node] partintro|partintro//*:: * [t is-texinfo-node] book:: * [t is-texinfo-node] index|bibliography|glossary:: * [M] for-texinfo-node-name:: Return a suggested nodename * [t for-texinfo-node-name] *[@@xreflabel]:: * [t for-texinfo-node-name] *[child;;title]:: * [t for-texinfo-node-name] *:: * [t for-texinfo-node-name] book|/*:: * [t for-texinfo-node-name] reference|preface|chapter|appendix|glossary|bibliography| sect1|sect2|sect3|sect4|sect5|section|refsect1|refsect2|refsect3:: * [t for-texinfo-node-name] article:: * [t for-texinfo-node-name] refentry:: * [t for-texinfo-node-name] part:: * [t for-texinfo-node-name] varlistentry:: * [t for-texinfo-node-name] index:: * [t is-texinfo-top-node] book|/*:: * [t is-texinfo-top-node] *:: * [t texinfo-node-name] *:: * [t texinfo-node-name] text(): [t texinfo-node-name] text[]. texinode-base * [T] make-nodenamemap:: Undocumented * [t nodenamemap] *:: * [t nodenamemap] text(): [t nodenamemap] text[]. * [T] make-texinfo-node:: Output node element * [T] make-texinfo-nontop-node:: Undocumented * [T] make-texinfo-top-node:: Undocumented * [T] make-texinfo-top-node-firstchild:: Undocumented chunk * [t] /:: * [M] top-chunk:: Process a top-level chunk * [t top-chunk] *:: autotoc * [M] texinfo-menu:: Make Texinfo menus * [V] make-detailed-menus:: Undocumented * [t texinfo-menu] *:: * [t texinfo-menu] book|/*:: * [t texinfo-detail-menu-entry] book/*|/*/*|book/part/*:: * [t texinfo-detail-menu-entry] book/part:: * [t texinfo-detail-menu-entry] *:: * [t texinfo-menu-entry] part:: * [T] make-texinfo-menu-entry:: Undocumented * [T] make-texinfo-directory:: Make a Texinfo directory entry * [t for-menu-title] node(): [t for-menu-title] node[]. menudescrip * [M] for-menu-description:: Return description for Texinfo node * [t for-menu-description] refentry:: * [t for-menu-description] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book:: * [t for-menu-description] *:: * [T] get-texinfo-directory-description:: Undocumented * [M] for-directory-category:: Return Info directory category * [T] get-texinfo-directory-category:: Undocumented * [t for-directory-category] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book|refentry:: * [t for-directory-category] *:: index * [t] index:: * [t] indexdiv:: * [t] indexterm:: * [t] primary:: * [t] secondary|tertiary:: * [t] see|seealso:: * [t] indexentry:: * [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie:: sectioning * [T] get-texinfo-section-level:: Give Texinfo structuring command for given section level * [T] make-texinfo-section:: Make Texinfo section * [T] section:: Standard template for section structures division * [t top-chunk] set:: * [t] book:: * [t] part:: * [t] partintro:: sections * [t] sect1|sect2|sect3|sect4|sect5|simplesect|section:: * [t] bridgehead:: * [t] title:: * [t] titleabbrev:: * [t] subtitle:: refentry * [t] reference:: * [t] refentry:: * [t] refmeta:: * [t] manvolnum:: * [t no-inline-markup] manvolnum:: * [t] refmiscinfo:: * [t] refentrytitle:: * [t] refnamediv:: * [t] refname:: * [t] refpurpose:: * [t] refdescriptor:: * [t] refclass:: * [t] refsynopsisdiv:: * [t] refsect1|refsect2|refsect3:: admon * [T] admonition-title:: Undocumented * [t] note|important|warning|caution|tip:: block * [T] block-object:: Undocumented * [t] para|simpara:: * [t] formalpara:: * [t] formalpara/title:: * [t] formalpara/para:: * [t] blockquote:: * [t] blockquote/title:: * [t] attribution:: * [t blockquote-attribution] attribution:: * [t] epigraph:: * [t] sidebar:: * [t] abstract:: * [t] msgset:: * [t] msgentry:: * [t] simplemsgentry:: * [t] msg:: * [t] msgmain:: * [t] msgmain/title:: * [t] msgsub:: * [t] msgsub/title:: * [t] msgrel:: * [t] msgrel/title:: * [t] msgtext:: * [t] msginfo:: * [t] msglevel|msgorig|msgaud:: * [t] msgexplan:: * [t] msgexplan/title:: * [t] revhistory:: * [t] revhistory/revision:: * [t] revision/revnumber:: * [t] revision/date:: * [t] revision/authorinitials:: * [t] revision/authorinitials[1]:: * [t] revision/revremark:: * [t] revision/revdescription:: * [t] ackno:: caption * [T] make-caption:: Render as a `caption' formal * [T] formal-object:: Undocumented * [T] formal-object-title:: Undocumented * [T] informal-object:: Undocumented * [T] semiformal-object:: Undocumented * [t] figure|table|example:: * [t] equation:: * [t] informalfigure:: * [t] informalexample:: * [t] informaltable:: * [t] informalequation:: synop * [M] no-inline-markup:: Plain text synopses * [t] synopsis:: * [t no-inline-markup] *:: * [t no-inline-markup] text(): [t no-inline-markup] text[]. * [t] cmdsynopsis:: * [t cmdsynopsis] *:: * [t cmdsynopsis] sbr:: * [t cmdsynopsis] command:: * [t cmdsynopsis] group|arg:: * [t cmdsynopsis] group/*:: * [t cmdsynopsis] group/group:: * [t cmdsynopsis] group/option:: * [t cmdsynopsis] group/arg:: * [t cmdsynopsis] synopfragment|synopfragmentref:: * [t] funcsynopsis:: * [t funcsynopsis] *:: * [t funcsynopsis] funcsynopsisinfo:: * [T] funcprototype:: Undocumented * [t funcsynopsis] modifier:: * [t funcsynopsis] funcdef:: * [t funcsynopsis] function:: * [t funcsynopsis] void:: * [t funcsynopsis] varargs:: * [t funcsynopsis] paramdef:: * [t funcsynopsis] paramdef/parameter:: * [t funcsynopsis] funcparams:: verbatim * [t] literallayout[@@class='monospaced']:: * [t] literallayout:: * [t] programlisting|screen:: * [t] address:: footnote * [t] footnote:: * [t] footnoteref:: force-inline * [M] coerce-into-inline:: Process only inline content * [t coerce-into-inline] calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist| simplelist|variablelist| caution|important|note|tip|warning| literallayout|programlisting|programlistingco| screen|screenco|screenshot| synopsis|cmdsynopsis|funcsynopsis| classsynopsis|fieldsynopsis| constructorsynopsis|destructorsynopsis|methodsynopsis| formalpara| address|blockquote| graphic|graphicco|mediaobject|mediaobjectco| informalequation|informalexample|informalfigure|informaltable| equation|example|figure|table| msgset|procedure|qandaset:: * [t coerce-into-inline] para|simpara:: * [t coerce-into-inline] *|text(): [t coerce-into-inline] *|text[]. inline * [T] inline-plain:: Undocumented * [T] inline-monospace:: Undocumented * [T] inline-bold:: Undocumented * [T] inline-italic:: Undocumented * [T] inline-roman:: Undocumented * [T] inline-superscript:: Undocumented * [T] inline-subscript:: Undocumented * [T] inline-markup-emph:: Undocumented * [T] inline-markup-code:: Undocumented * [T] inline-markup-samp:: Undocumented * [T] inline-markup-cite:: Undocumented * [T] inline-markup-email:: Undocumented * [T] inline-markup-dfn:: Undocumented * [T] inline-markup-env:: Undocumented * [T] inline-markup-file:: Undocumented * [T] inline-markup-sc:: Undocumented * [T] inline-markup-acronym:: Undocumented * [T] inline-markup-strong:: Undocumented * [T] inline-markup-key:: Undocumented * [T] inline-markup-kbd:: Undocumented * [T] inline-markup-var:: Undocumented * [t] personname:: * [t] author|editor|othercredit|authorinitials:: * [t] accel:: * [t] action:: * [t] application:: * [t] classname:: * [t] exceptionname:: * [t] interfacename:: * [t] methodname:: * [t] command:: * [t] computeroutput:: * [t] constant:: * [t] database:: * [t] errorcode:: * [t] errorname:: * [t] errortype:: * [t] errortext:: * [t] envar:: * [t] filename:: * [t] refentrytitle/function:: * [t] function:: * [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu:: * [t] hardware:: * [t] interface:: * [t] interfacedefinition:: * [t] keycap:: * [t] keycode:: * [t] keysym:: * [t] literal:: * [t] medialabel:: * [t] shortcut:: * [t] mousebutton:: * [t] option:: * [t] parameter:: * [t] property:: * [t] prompt:: * [t] replaceable:: * [t] returnvalue:: * [t] structfield:: * [t] structname:: * [t] symbol:: * [t] systemitem:: * [t] token:: * [t] type:: * [t] userinput:: * [t] abbrev:: * [t] acronym:: * [t] citerefentry:: * [t] citetitle:: * [t] emphasis[@@role='strong' or @@role='bold' or parent;;emphasis]:: * [t] emphasis:: * [t] foreignphrase:: * [t] markup:: * [t] phrase:: * [t] quote:: * [t] varname:: * [t] wordasword:: * [t] lineannotation:: * [t] superscript:: * [t] subscript:: * [t] trademark:: * [t] firstterm:: * [t] glossterm:: * [t] sgmltag:: * [T] format-sgmltag:: Undocumented * [t] email:: * [t] keycombo:: * [t] menuchoice:: * [T] format-menuchoice:: Undocumented * [t] optional:: * [t] citation:: * [t] comment|remark:: * [t] productname|productnumber:: * [t] pob|street|city|state|postcode|country|phone|fax|otheraddr:: * [t] firstname|surname|lineage|othername|honorific:: math * [t] inlineequation:: * [t] alt:: qandaset * [t] question|answer:: * [t] qandaentry:: * [t] qandaset|qandadiv:: * [t] label:: table * [t] tgroup:: * [t] colspec:: * [t] spanspec:: * [t] thead|tfoot|tbody:: * [t] thead/colspec:: * [t] tfoot/colspec:: * [t] row:: * [t] entry:: * [T] get-proportional-colwidth:: Get the proportional width as specified in the given colspec xref * [T] anchor:: Undocumented * [t] anchor:: * [T] check-xref:: Undocumented * [t] xref:: * [t] link:: * [t] ulink:: * [t] olink:: * [M] xref-to:: Give cross-reference markup * [t xref-to] *:: * [t xref-to] co:: glossary * [t] glossary:: * [t] glosslist:: * [t] glossdiv:: * [t] glossentry:: * [t] glossentry/glossterm:: * [t] glossentry/acronym:: * [t] glossentry/abbrev:: * [t] glossentry/revhistory:: * [t] glossentry/glossdef:: * [t] glossentry/glosssee|glossseealso:: * [t glosssee-xref] glossentry:: * [t glosssee-xref] glossentry/glossterm[1]:: * [t glosssee-xref] *:: lists * [t] itemizedlist:: * [t] orderedlist:: * [t] variablelist:: * [t] listitem:: * [t] varlistentry:: * [t] varlistentry/term:: * [t] varlistentry/listitem:: * [t] simplelist[@@type='horiz']:: * [t] simplelist:: * [t] simplelist[@@type='inline']:: * [T] simplelist-horiz:: Undocumented * [T] simplelist-horiz-row:: Undocumented * [T] simplelist-vert:: Undocumented * [T] simplelist-vert-row:: Undocumented * [t] member:: * [t] simplelist[@@type='inline']/member:: * [t] simplelist[@@type='inline']/member[1]:: * [t] procedure:: * [t] substeps:: * [t] step:: * [t] segmentedlist:: * [t] segtitle:: * [t segtitle-in-seg] segtitle:: * [t] seglistitem:: * [t] seg:: callout * [t] programlistingco|screenco:: * [t] areaspec|areaset|area:: * [t no-inline-markup] co:: * [t] co:: * [t co] co:: * [T] callout-bug:: Undocumented * [t] coref:: * [T] check-co:: Undocumented * [t] calloutlist:: * [t] callout:: * [T] callout-process-arearefs:: Undocumented * [T] callout-arearef:: Undocumented graphics * [t] screenshot:: * [t] screeninfo:: * [T] imagedata:: Undocumented * [t] graphic:: * [t] inlinegraphic:: * [T] select-mediaobject:: Undocumented * [t] mediaobject:: * [t] inlinemediaobject:: * [t] objectinfo:: * [t] imageobject:: * [t] textobject:: * [t] caption:: biblio * [t] bibliography:: * [T] biblio-item-separator:: Undocumented * [t] bibliodiv:: * [t] biblioentry:: * [t] bibliomixed:: * [t bibliography] *:: * [t bibliography] abbrev:: * [t bibliography] abstract:: * [t bibliography] address:: * [t bibliography] affiliation:: * [t bibliography] shortaffil:: * [t bibliography] jobtitle:: * [t bibliography] artheader:: * [t bibliography] artpagenums:: * [t bibliography] author:: * [t bibliography] authorblurb:: * [t bibliography] authorgroup:: * [t bibliography] authorinitials:: * [t bibliography] bibliomisc:: * [t bibliography] bibliomset:: * [t bibliography] biblioset:: * [t bibliography] biblioset/title|biblioset/citetitle:: * [t bibliography] bookbiblio:: * [t bibliography] citetitle:: * [t bibliography] collab:: * [t bibliography] collabname:: * [t bibliography] confgroup:: * [t bibliography] confdates:: * [t bibliography] conftitle:: * [t bibliography] confnum:: * [t bibliography] confsponsor:: * [t bibliography] contractnum:: * [t bibliography] contractsponsor:: * [t bibliography] contrib:: * [t bibliography] copyright:: * [t bibliography] year:: * [t bibliography] year[position()=last()]: [t bibliography] year[position[]=last[]]. * [t bibliography] holder:: * [t bibliography] corpauthor:: * [t bibliography] corpname:: * [t bibliography] date:: * [t bibliography] edition:: * [t bibliography] editor:: * [t bibliography] personname:: * [t bibliography] firstname:: * [t bibliography] honorific:: * [t bibliography] indexterm:: * [t bibliography] invpartnumber:: * [t bibliography] isbn:: * [t bibliography] issn:: * [t bibliography] issuenum:: * [t bibliography] lineage:: * [t bibliography] orgname:: * [t bibliography] orgdiv:: * [t bibliography] othercredit:: * [t bibliography] othername:: * [t bibliography] pagenums:: * [t bibliography] printhistory:: * [t bibliography] productname:: * [t bibliography] productnumber:: * [t bibliography] pubdate:: * [t bibliography] publisher:: * [t bibliography] publishername:: * [t bibliography] pubsnumber:: * [t bibliography] releaseinfo:: * [t bibliography] revhistory:: * [t bibliography] seriesinfo:: * [t bibliography] seriesvolnums:: * [t bibliography] subtitle:: * [t bibliography] surname:: * [t bibliography] title:: * [t bibliography] titleabbrev:: * [t bibliography] volumenum:: * [t bibliomixed] *:: * [t bibliomixed] abbrev:: * [t bibliomixed] abstract:: * [t bibliomixed] address:: * [t bibliomixed] affiliation:: * [t bibliomixed] artpagenums:: * [t bibliomixed] author:: * [t bibliomixed] authorblurb:: * [t bibliomixed] authorgroup:: * [t bibliomixed] authorinitials:: * [t bibliomixed] bibliomisc:: * [t bibliomixed] bibliomset:: * [t bibliomixed] bibliomset/title|bibliomset/citetitle:: * [t bibliomixed] biblioset:: * [t bibliomixed] citetitle:: * [t bibliomixed] collab:: * [t bibliomixed] confgroup:: * [t bibliomixed] contractnum:: * [t bibliomixed] contractsponsor:: * [t bibliomixed] contrib:: * [t bibliomixed] copyright:: * [t bibliomixed] corpauthor:: * [t bibliomixed] corpname:: * [t bibliomixed] date:: * [t bibliomixed] edition:: * [t bibliomixed] editor:: * [t bibliomixed] firstname:: * [t bibliomixed] honorific:: * [t bibliomixed] indexterm:: * [t bibliomixed] invpartnumber:: * [t bibliomixed] isbn:: * [t bibliomixed] issn:: * [t bibliomixed] issuenum:: * [t bibliomixed] lineage:: * [t bibliomixed] orgname:: * [t bibliomixed] othercredit:: * [t bibliomixed] othername:: * [t bibliomixed] pagenums:: * [t bibliomixed] printhistory:: * [t bibliomixed] productname:: * [t bibliomixed] productnumber:: * [t bibliomixed] pubdate:: * [t bibliomixed] publisher:: * [t bibliomixed] publishername:: * [t bibliomixed] pubsnumber:: * [t bibliomixed] releaseinfo:: * [t bibliomixed] revhistory:: * [t bibliomixed] seriesvolnums:: * [t bibliomixed] subtitle:: * [t bibliomixed] surname:: * [t bibliomixed] title:: * [t bibliomixed] titleabbrev:: * [t bibliomixed] volumenum:: info * [t] corpauthor:: * [t] jobtitle:: * [t] orgname:: * [t] orgdiv:: * [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo:: * [t] bookinfo|setinfo|seriesinfo:: * [t] partinfo:: * [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo:: * [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo:: * [t] objectinfo: [t] objectinfo <1>. * [t info-wrapper] node(): [t info-wrapper] node[]. keywords * [t] keywordset:: * [t] subjectset:: toc * [t toc] *:: * [t] toc:: * [t] tocpart|tocchap|tocfront|tocback|tocentry:: * [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5:: * [t] lot|lotentry:: beginpage * [t] beginpage:: pi * [t] processing-instruction(): [t] processing-instruction[]. docbook * [t] *:: * [t] text(): [t] text[]. @end detailmenu @end menu @node Guide to the stylesheet reference, common/l10n, Top, Top @chapter docbook2X Texinfo Stylesheets Reference For the most part, this reference assumes knowledge of XSLT. But if you are not familiar with XSLT, you can still look at the page of stylesheet parameters; they are the commonly used options to the stylesheets that may be directly set from the command line. Also take a look at the introductory text to each XSL file, which gives some general advice to tweaking the output of the stylesheets. In the lists of stylesheet items, the following symbols are prefixed before each item to indicate their type: @table @asis @item [P] A global parameter. The synopsis for the parameter shows its default value. @item [V] A global variable. @item [M] A template mode. @item [T] A named template. @item [t @var{mode}] A template with a @code{match} attribute, for the given mode. If @var{mode} is omitted, that means the default mode. These usually have no description; they are just listed so that you know the template exists. @end table @node common/l10n, common/messages, Guide to the stylesheet reference, Top @chapter common/l10n @menu * [P] localization-file:: (URI of) XML document containing localization data * [V] l10n-data:: XML element node containing localization-data * [P] default-document-language:: Assumed language of the input document when it is not specified in the source * [T] l10n-match-language:: Determine the language to translate to * [T] l10n-xml-language:: Determine the language of the given XML fragment * [T] l10n-xml-actual-language:: Undocumented * [M] l10n-substitution:: Output localized text, substituting parameters if necessary * [t l10n-substitution] text(): [t l10n-substitution] text[]. @end menu @node [P] localization-file, [V] l10n-data, , common/l10n @section [P] localization-file @subheading Name [P] localization-file --- (URI of) XML document containing localization data @subheading Synopsis @example @end example @subheading Description This parameter specifies the URI of the localization-set document. This document, written in XML, describes all the text translations (and other locale-specific information) used by the stylesheet. You do not need to change this parameter unless you want to use custom localization data. @node [V] l10n-data, [P] default-document-language, [P] localization-file, common/l10n @section [V] l10n-data @subheading Name [V] l10n-data --- XML element node containing localization-data @subheading Synopsis @example @end example @subheading Description This is just @samp{document($localization-file)/l:localization-set}. There is no need to change this. @node [P] default-document-language, [T] l10n-match-language, [V] l10n-data, common/l10n @section [P] default-document-language @subheading Name [P] default-document-language --- Assumed language of the input document when it is not specified in the source @subheading Synopsis @example @end example @subheading Description If the source document does not specify what language it is written in using the @code{lang} or @code{xml:lang} attribute. then it is assumed to be in the language this parameter is set to. If these attributes are present (and in effect, whenever the stylesheet needs language information), the language specified in this parameter is ignored. You rarely need to change this parameter; it is better to change the source document instead, adding the @code{lang} or the @code{xml:lang} attribute. The format of the value of this parameter is the usual @samp{@var{language_code}-@var{country_code}}. For example, @samp{zh-TW}. The hyphen (@samp{-}) may also be an underscore (@samp{_}). @node [T] l10n-match-language, [T] l10n-xml-language, [P] default-document-language, common/l10n @section [T] l10n-match-language @subheading Name [T] l10n-match-language --- Determine the language to translate to @subheading Synopsis @example @end example @subheading Description Given a language code @code{lang} (usually obtained from @code{l10n-xml-language}), match it with a language code in the localization data file. The new language code may in fact be the same language code, or it could be the language code with the country-code part stripped. If the localization data file does not contain the language @code{lang}, then some default language that does exist is returned. @subheading Parameters @table @asis @item @code{lang} The original language code. @end table @node [T] l10n-xml-language, [T] l10n-xml-actual-language, [T] l10n-match-language, common/l10n @section [T] l10n-xml-language @subheading Name [T] l10n-xml-language --- Determine the language of the given XML fragment @subheading Synopsis @example @end example @subheading Description Returns the language of the XML content at the given node, as determined by the @code{lang} or @code{xml:lang} attribute. The result is always given in a normalized form: @samp{@var{language_code}-@var{country_code}}, with the @var{language_code} and @var{country_code} always in lower case. The @samp{-@var{country_code}} may be missing. No checking is done to make sure the language code is valid. @subheading Parameters @table @asis @item @code{target} The (element) node to find out the language for. Defaults to the context node. @end table @node [T] l10n-xml-actual-language, [M] l10n-substitution, [T] l10n-xml-language, common/l10n @section [T] l10n-xml-actual-language @subheading Name [T] l10n-xml-actual-language --- Undocumented @subheading Synopsis @example @end example @node [M] l10n-substitution, [t l10n-substitution] text[], [T] l10n-xml-actual-language, common/l10n @section [M] l10n-substitution @subheading Name [M] l10n-substitution --- Output localized text, substituting parameters if necessary @subheading Description A piece of the translated text is processed with this mode to perform any substitutions of parameters like chapter numbers, etc. Text nodes are echoed through in this mode. @node [t l10n-substitution] text[], , [M] l10n-substitution, common/l10n @section [t l10n-substitution] text() @subheading Name [t l10n-substitution] text() @subheading Synopsis @example @end example @node common/messages, common/labels, common/l10n, Top @chapter common/messages @menu * [P] message-language:: Undocumented * [T] l10n-message-choose-language:: Undocumented * [t l10n-substitution] l;a1:: * [t l10n-substitution] l;a2:: * [t l10n-substitution] l;a3:: * [t l10n-substitution] l;a4:: * [t l10n-substitution] l;a5:: * [T] user-message:: Emit a user message * [T] print-node-line-number:: Display file name and line number of a node * [T] print-node-xpath:: Display the path of a node * [t print-node-xpath] text(): [t print-node-xpath] text[]. * [t print-node-xpath] @@*:: * [t print-node-xpath] *[@@id != '']:: * [t print-node-xpath] *:: * [t print-node-xpath] /:: @end menu @node [P] message-language, [T] l10n-message-choose-language, , common/messages @section [P] message-language @subheading Name [P] message-language --- Undocumented @subheading Synopsis @example @end example @node [T] l10n-message-choose-language, [t l10n-substitution] l;a1, [P] message-language, common/messages @section [T] l10n-message-choose-language @subheading Name [T] l10n-message-choose-language --- Undocumented @subheading Synopsis @example @end example @node [t l10n-substitution] l;a1, [t l10n-substitution] l;a2, [T] l10n-message-choose-language, common/messages @section [t l10n-substitution] l:a1 @subheading Name [t l10n-substitution] l:a1 @subheading Synopsis @example @end example @node [t l10n-substitution] l;a2, [t l10n-substitution] l;a3, [t l10n-substitution] l;a1, common/messages @section [t l10n-substitution] l:a2 @subheading Name [t l10n-substitution] l:a2 @subheading Synopsis @example @end example @node [t l10n-substitution] l;a3, [t l10n-substitution] l;a4, [t l10n-substitution] l;a2, common/messages @section [t l10n-substitution] l:a3 @subheading Name [t l10n-substitution] l:a3 @subheading Synopsis @example @end example @node [t l10n-substitution] l;a4, [t l10n-substitution] l;a5, [t l10n-substitution] l;a3, common/messages @section [t l10n-substitution] l:a4 @subheading Name [t l10n-substitution] l:a4 @subheading Synopsis @example @end example @node [t l10n-substitution] l;a5, [T] user-message, [t l10n-substitution] l;a4, common/messages @section [t l10n-substitution] l:a5 @subheading Name [t l10n-substitution] l:a5 @subheading Synopsis @example @end example @node [T] user-message, [T] print-node-line-number, [t l10n-substitution] l;a5, common/messages @section [T] user-message @subheading Name [T] user-message --- Emit a user message @subheading Synopsis @example @end example @subheading Description This template is used in place of @code{xsl:message}. It traces the path of the given node to help in debugging and allows messages to be localized. @subheading Parameters @table @asis @item @code{node} The node to get to trace the path to. Default is the context node. @item @code{arg} Additional string argument to message, if any. @item @code{key} The standard message text. If a localization/customization exists, it is keyed under this text and displayed instead of the standard message text. @end table @node [T] print-node-line-number, [T] print-node-xpath, [T] user-message, common/messages @section [T] print-node-line-number @subheading Name [T] print-node-line-number --- Display file name and line number of a node @subheading Synopsis @example @end example @subheading Description This template displays the file name and the line number in that file that contains the given node. In addition the name of the given node is shown in parentheses (usually the element name). The output is suitable for diagnostics to the user. (``filename'' means the ``filename'' part of the URI of the containing entity.) @subheading Parameters @table @asis @item @code{node} The node to get to print the information for. Default is the context node. @end table @node [T] print-node-xpath, [t print-node-xpath] text[], [T] print-node-line-number, common/messages @section [T] print-node-xpath @subheading Name [T] print-node-xpath --- Display the path of a node @subheading Synopsis @example @end example @subheading Description This template displays the address of the given node in XPath notation, in a compact yet unambiguous form suitable for diagnostics to the user. It assumes that ID attributes are named @code{id}, and if an element has an ID defined, then the element will be addressed using that ID, instead of a long XPath starting from the root. @subheading Parameters @table @asis @item @code{node} The node to get to trace the path to. Default is the context node. @end table @node [t print-node-xpath] text[], [t print-node-xpath] @@*, [T] print-node-xpath, common/messages @section [t print-node-xpath] text() @subheading Name [t print-node-xpath] text() @subheading Synopsis @example @end example @node [t print-node-xpath] @@*, [t print-node-xpath] *[@@id != ''], [t print-node-xpath] text[], common/messages @section [t print-node-xpath] @@* @subheading Name [t print-node-xpath] @@* @subheading Synopsis @example @end example @node [t print-node-xpath] *[@@id != ''], [t print-node-xpath] *, [t print-node-xpath] @@*, common/messages @section [t print-node-xpath] *[@@id != ''] @subheading Name [t print-node-xpath] *[@@id != ''] @subheading Synopsis @example @end example @node [t print-node-xpath] *, [t print-node-xpath] /, [t print-node-xpath] *[@@id != ''], common/messages @section [t print-node-xpath] * @subheading Name [t print-node-xpath] * @subheading Synopsis @example @end example @node [t print-node-xpath] /, , [t print-node-xpath] *, common/messages @section [t print-node-xpath] / @subheading Name [t print-node-xpath] / @subheading Synopsis @example @end example @node common/labels, common/titles, common/messages, Top @chapter common/labels @menu * [M] for-label:: Provides access to element labels * [t for-label] *[@@label!='']:: * [t for-label] *:: * [t for-label] qandaentry:: * [t for-label] question:: * [t for-label] answer:: * [t label] *:: * [t label] text(): [t label] text[]. @end menu @node [M] for-label, [t for-label] *[@@label!=''], , common/labels @section [M] for-label @subheading Name [M] for-label --- Provides access to element labels @subheading Description Processing an element in the @samp{for-label} mode produces the element label. @node [t for-label] *[@@label!=''], [t for-label] *, [M] for-label, common/labels @section [t for-label] *[@@label!=''] @subheading Name [t for-label] *[@@label!=''] @subheading Synopsis @example @end example @node [t for-label] *, [t for-label] qandaentry, [t for-label] *[@@label!=''], common/labels @section [t for-label] * @subheading Name [t for-label] * @subheading Synopsis @example @end example @node [t for-label] qandaentry, [t for-label] question, [t for-label] *, common/labels @section [t for-label] qandaentry @subheading Name [t for-label] qandaentry @subheading Synopsis @example @end example @node [t for-label] question, [t for-label] answer, [t for-label] qandaentry, common/labels @section [t for-label] question @subheading Name [t for-label] question @subheading Synopsis @example @end example @node [t for-label] answer, [t label] *, [t for-label] question, common/labels @section [t for-label] answer @subheading Name [t for-label] answer @subheading Synopsis @example @end example @node [t label] *, [t label] text[], [t for-label] answer, common/labels @section [t label] * @subheading Name [t label] * @subheading Synopsis @example @end example @node [t label] text[], , [t label] *, common/labels @section [t label] text() @subheading Name [t label] text() @subheading Synopsis @example @end example @node common/titles, param, common/labels, Top @chapter common/titles @menu * [M] for-title:: Provides access to element titles * [t title] title:: * [t title] *:: * [t title] text(): [t title] text[]. * [t for-title] set:: * [t for-title] *:: * [t for-title] book:: * [t for-title] part:: * [t for-title] preface|chapter|appendix:: * [t for-title] partintro:: * [t for-title] dedication:: * [t for-title] colophon:: * [t for-title] article:: * [t for-title] reference:: * [t for-title] refentry:: * [t for-title] refsynopsisdiv:: * [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect:: * [t for-title] bibliography:: * [t for-title] glossary:: * [t for-title] index:: * [t for-title] figure|table|example|equation:: * [t for-title] qandaset|qandadiv:: * [t for-title] abstract:: * [t for-title] caution|tip|warning|important|note:: * [t no-anchors] *:: * [t no-anchors] footnote:: * [t no-anchors] anchor:: * [t no-anchors] ulink:: * [t no-anchors] link:: * [t no-anchors] olink:: * [t no-anchors] indexterm:: * [t no-anchors] xref:: @end menu @node [M] for-title, [t title] title, , common/titles @section [M] for-title @subheading Name [M] for-title --- Provides access to element titles @subheading Description Processing an element in the @samp{title} mode produces the title of the element. This does not include the label. @node [t title] title, [t title] *, [M] for-title, common/titles @section [t title] title @subheading Name [t title] title @subheading Synopsis @example @end example @node [t title] *, [t title] text[], [t title] title, common/titles @section [t title] * @subheading Name [t title] * @subheading Synopsis @example @end example @node [t title] text[], [t for-title] set, [t title] *, common/titles @section [t title] text() @subheading Name [t title] text() @subheading Synopsis @example @end example @node [t for-title] set, [t for-title] *, [t title] text[], common/titles @section [t for-title] set @subheading Name [t for-title] set @subheading Synopsis @example @end example @node [t for-title] *, [t for-title] book, [t for-title] set, common/titles @section [t for-title] * @subheading Name [t for-title] * @subheading Synopsis @example @end example @node [t for-title] book, [t for-title] part, [t for-title] *, common/titles @section [t for-title] book @subheading Name [t for-title] book @subheading Synopsis @example @end example @node [t for-title] part, [t for-title] preface|chapter|appendix, [t for-title] book, common/titles @section [t for-title] part @subheading Name [t for-title] part @subheading Synopsis @example @end example @node [t for-title] preface|chapter|appendix, [t for-title] partintro, [t for-title] part, common/titles @section [t for-title] preface|chapter|appendix @subheading Name [t for-title] preface|chapter|appendix @subheading Synopsis @example @end example @node [t for-title] partintro, [t for-title] dedication, [t for-title] preface|chapter|appendix, common/titles @section [t for-title] partintro @subheading Name [t for-title] partintro @subheading Synopsis @example @end example @node [t for-title] dedication, [t for-title] colophon, [t for-title] partintro, common/titles @section [t for-title] dedication @subheading Name [t for-title] dedication @subheading Synopsis @example @end example @node [t for-title] colophon, [t for-title] article, [t for-title] dedication, common/titles @section [t for-title] colophon @subheading Name [t for-title] colophon @subheading Synopsis @example @end example @node [t for-title] article, [t for-title] reference, [t for-title] colophon, common/titles @section [t for-title] article @subheading Name [t for-title] article @subheading Synopsis @example @end example @node [t for-title] reference, [t for-title] refentry, [t for-title] article, common/titles @section [t for-title] reference @subheading Name [t for-title] reference @subheading Synopsis @example @end example @node [t for-title] refentry, [t for-title] refsynopsisdiv, [t for-title] reference, common/titles @section [t for-title] refentry @subheading Name [t for-title] refentry @subheading Synopsis @example @end example @node [t for-title] refsynopsisdiv, [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect, [t for-title] refentry, common/titles @section [t for-title] refsynopsisdiv @subheading Name [t for-title] refsynopsisdiv @subheading Synopsis @example @end example @node [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect, [t for-title] bibliography, [t for-title] refsynopsisdiv, common/titles @section [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect @subheading Name [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect @subheading Synopsis @example @end example @node [t for-title] bibliography, [t for-title] glossary, [t for-title] section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect, common/titles @section [t for-title] bibliography @subheading Name [t for-title] bibliography @subheading Synopsis @example @end example @node [t for-title] glossary, [t for-title] index, [t for-title] bibliography, common/titles @section [t for-title] glossary @subheading Name [t for-title] glossary @subheading Synopsis @example @end example @node [t for-title] index, [t for-title] figure|table|example|equation, [t for-title] glossary, common/titles @section [t for-title] index @subheading Name [t for-title] index @subheading Synopsis @example @end example @node [t for-title] figure|table|example|equation, [t for-title] qandaset|qandadiv, [t for-title] index, common/titles @section [t for-title] figure|table|example|equation @subheading Name [t for-title] figure|table|example|equation @subheading Synopsis @example @end example @node [t for-title] qandaset|qandadiv, [t for-title] abstract, [t for-title] figure|table|example|equation, common/titles @section [t for-title] qandaset|qandadiv @subheading Name [t for-title] qandaset|qandadiv @subheading Synopsis @example @end example @node [t for-title] abstract, [t for-title] caution|tip|warning|important|note, [t for-title] qandaset|qandadiv, common/titles @section [t for-title] abstract @subheading Name [t for-title] abstract @subheading Synopsis @example @end example @node [t for-title] caution|tip|warning|important|note, [t no-anchors] *, [t for-title] abstract, common/titles @section [t for-title] caution|tip|warning|important|note @subheading Name [t for-title] caution|tip|warning|important|note @subheading Synopsis @example @end example @node [t no-anchors] *, [t no-anchors] footnote, [t for-title] caution|tip|warning|important|note, common/titles @section [t no-anchors] * @subheading Name [t no-anchors] * @subheading Synopsis @example @end example @node [t no-anchors] footnote, [t no-anchors] anchor, [t no-anchors] *, common/titles @section [t no-anchors] footnote @subheading Name [t no-anchors] footnote @subheading Synopsis @example @end example @node [t no-anchors] anchor, [t no-anchors] ulink, [t no-anchors] footnote, common/titles @section [t no-anchors] anchor @subheading Name [t no-anchors] anchor @subheading Synopsis @example @end example @node [t no-anchors] ulink, [t no-anchors] link, [t no-anchors] anchor, common/titles @section [t no-anchors] ulink @subheading Name [t no-anchors] ulink @subheading Synopsis @example @end example @node [t no-anchors] link, [t no-anchors] olink, [t no-anchors] ulink, common/titles @section [t no-anchors] link @subheading Name [t no-anchors] link @subheading Synopsis @example @end example @node [t no-anchors] olink, [t no-anchors] indexterm, [t no-anchors] link, common/titles @section [t no-anchors] olink @subheading Name [t no-anchors] olink @subheading Synopsis @example @end example @node [t no-anchors] indexterm, [t no-anchors] xref, [t no-anchors] olink, common/titles @section [t no-anchors] indexterm @subheading Name [t no-anchors] indexterm @subheading Synopsis @example @end example @node [t no-anchors] xref, , [t no-anchors] indexterm, common/titles @section [t no-anchors] xref @subheading Name [t no-anchors] xref @subheading Synopsis @example @end example @node param, texifile, common/titles, Top @chapter param @section param Stylesheet parameters influence various aspects of the rendering. They can be set from the command line (the exact syntax depends on the XSLT processor), or in a custom stylesheet. To set them in a custom stylesheet, simply copy the definition here and change the @code{select} attribute to something else. If a parameter for what you want to change does not exist, you can write templates in the custom stylesheet instead. @menu * [P] user-message-prefix:: Undocumented * [P] captions-display-as-headings:: Use heading markup for minor captions? * [P] links-use-pxref:: Translate link using @@pxref * [P] explicit-node-names:: Insist on manually constructed Texinfo node names * [P] show-comments:: Display comment elements? * [P] funcsynopsis-decoration:: Decorate elements of a FuncSynopsis? * [P] function-parens:: Generate parentheses after a function? * [P] refentry-display-name:: Output NAME header before 'RefName'(s)? * [P] manvolnum-in-xref:: Output manvolnum as part of refentry cross-reference? * [P] prefer-textobjects:: Prefer textobject over imageobject? * [P] semantic-decorations:: Use Texinfo semantic inline markup? * [P] custom-localization-file:: URI of XML document containing custom localization data * [P] custom-l10n-data:: XML document containing custom localization data * [P] author-othername-in-middle:: Is othername in author a middle name? * [P] output-file:: Name of the Info file * [P] directory-category:: The categorization of the document in the Info directory * [P] directory-description:: The description of the document in the Info directory * [P] index-category:: The Texinfo index to use * [P] qanda-defaultlabel:: Sets the default for defaultlabel on QandASet. * [P] qandaset-generate-toc:: Is a Table of Contents created for QandASets? @end menu @node [P] user-message-prefix, [P] captions-display-as-headings, , param @section [P] user-message-prefix @subheading Name [P] user-message-prefix --- Undocumented @subheading Synopsis @example @end example @node [P] captions-display-as-headings, [P] links-use-pxref, [P] user-message-prefix, param @section [P] captions-display-as-headings @subheading Name [P] captions-display-as-headings --- Use heading markup for minor captions? @subheading Synopsis @example @end example @subheading Description If true, @code{title} content in some (formal) objects are rendered with the Texinfo @code{@@@var{heading}} commands. If false, captions are rendered as an emphasized paragraph. @node [P] links-use-pxref, [P] explicit-node-names, [P] captions-display-as-headings, param @section [P] links-use-pxref @subheading Name [P] links-use-pxref --- Translate @code{link} using @code{@@pxref} @subheading Synopsis @example @end example @subheading Description If true, @code{link} is translated with the hypertext followed by the cross reference in parentheses. Otherwise, the hypertext content serves as the cross-reference name marked up using @code{@@ref}. Typically info displays this contruct badly. @node [P] explicit-node-names, [P] show-comments, [P] links-use-pxref, param @section [P] explicit-node-names @subheading Name [P] explicit-node-names --- Insist on manually constructed Texinfo node names @subheading Synopsis @example @end example @subheading Description Elements in the source document can influence the Texinfo node name generation specifying either a @code{xreflabel}, or for the sectioning elements, a @code{title} with @code{role='texinfo-node'} in the @code{@var{*}info} container. However, for the majority of source documents, explicit Texinfo node names are not available, and the stylesheet tries to generate a reasonable one instead, e.g. from the normal title of an element. The generated name may not be optimal. If this option is set and the stylesheet needs to generate a name, a warning is emitted and @code{generate-id} is always used for the name. When the hashtable extension is not available, the stylesheet cannot check for node name collisions, and in this case, setting this option and using explicit node names are recommended. This option is not set (i.e. false) by default. @quotation @strong{Note} The absolute fallback for generating node names is using the XSLT function @code{generate-id}, and the stylesheet always emits a warning in this case regardless of the setting of @code{explicit-node-names}. @end quotation @node [P] show-comments, [P] funcsynopsis-decoration, [P] explicit-node-names, param @section [P] show-comments @subheading Name [P] show-comments --- Display @code{comment} elements? @subheading Synopsis @example @end example @subheading Description If true, comments will be displayed, otherwise they are suppressed. Comments here refers to the @code{comment} element, which will be renamed @code{remark} in DocBook V4.0, not XML comments (<-- like this -->) which are unavailable. @node [P] funcsynopsis-decoration, [P] function-parens, [P] show-comments, param @section [P] funcsynopsis-decoration @subheading Name [P] funcsynopsis-decoration --- Decorate elements of a FuncSynopsis? @subheading Synopsis @example @end example @subheading Description If true, elements of the FuncSynopsis will be decorated (e.g. bold or italic). The decoration is controlled by functions that can be redefined in a customization layer. @node [P] function-parens, [P] refentry-display-name, [P] funcsynopsis-decoration, param @section [P] function-parens @subheading Name [P] function-parens --- Generate parentheses after a function? @subheading Synopsis @example @end example @subheading Description If true, the formatting of a @code{} element will include generated parenthesis. @node [P] refentry-display-name, [P] manvolnum-in-xref, [P] function-parens, param @section [P] refentry-display-name @subheading Name [P] refentry-display-name --- Output NAME header before 'RefName'(s)? @subheading Synopsis @example @end example @subheading Description If true, a "NAME" section title is output before the list of 'RefName's. @node [P] manvolnum-in-xref, [P] prefer-textobjects, [P] refentry-display-name, param @section [P] manvolnum-in-xref @subheading Name [P] manvolnum-in-xref --- Output @code{manvolnum} as part of @code{refentry} cross-reference? @subheading Synopsis @example @end example @subheading Description if true, the @code{manvolnum} is used when cross-referencing @code{refentry}s, either with @code{xref} or @code{citerefentry}. @node [P] prefer-textobjects, [P] semantic-decorations, [P] manvolnum-in-xref, param @section [P] prefer-textobjects @subheading Name [P] prefer-textobjects --- Prefer @code{textobject} over @code{imageobject}? @subheading Synopsis @example @end example @subheading Description If true, the @code{textobject} in a @code{mediaobject} is preferred over any @code{imageobject}. (Of course, for output formats other than Texinfo, you usually want to prefer the @code{imageobject}, but Info is a text-only format.) In addition to the values true and false, this parameter may be set to @samp{2} to indicate that both the text and the images should be output. You may want to do this because some Texinfo viewers can read images. Note that the Texinfo @code{@@image} command has its own mechanism for switching between text and image output --- but we do not use this here. The default is true. @node [P] semantic-decorations, [P] custom-localization-file, [P] prefer-textobjects, param @section [P] semantic-decorations @subheading Name [P] semantic-decorations --- Use Texinfo semantic inline markup? @subheading Synopsis @example @end example @subheading Description If true, the semantic inline markup of DocBook is translated into (the closest) Texinfo equivalent. This is the default. However, because the Info format is limited to plain text, the semantic inline markup is often distinguished by using explicit quotes, which may not look good. You can set this option to false to suppress these. (For finer control over the inline formatting, you can use your own stylesheet.) @node [P] custom-localization-file, [P] custom-l10n-data, [P] semantic-decorations, param @section [P] custom-localization-file @subheading Name [P] custom-localization-file --- URI of XML document containing custom localization data @subheading Synopsis @example @end example @subheading Description This parameter specifies the URI of a XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. The text translations pointed to by this parameter always override the default text translations (from the internal parameter @code{localization-file}). If a particular translation is not present here, the corresponding default translation is used as a fallback. This parameter is primarily for changing certain punctuation characters used in formatting the source document. The settings for punctuation characters are often specific to the source document, but can also be dependent on the locale. To not use custom text translations, leave this parameter as the empty string. @node [P] custom-l10n-data, [P] author-othername-in-middle, [P] custom-localization-file, param @section [P] custom-l10n-data @subheading Name [P] custom-l10n-data --- XML document containing custom localization data @subheading Synopsis @example @end example @subheading Description This parameter specifies the XML document that describes text translations (and other locale-specific information) that is needed by the stylesheet to process the DocBook document. This parameter is internal to the stylesheet. To point to an external XML document with a URI or a file name, you should use the @code{custom-localization-file} parameter instead. However, inside a custom stylesheet (@emph{not on the command-line}) this paramter can be set to the XPath expression @samp{document('')}, which will cause the custom translations directly embedded inside the custom stylesheet to be read. @node [P] author-othername-in-middle, [P] output-file, [P] custom-l10n-data, param @section [P] author-othername-in-middle @subheading Name [P] author-othername-in-middle --- Is @code{othername} in @code{author} a middle name? @subheading Synopsis @example @end example @subheading Description If true, the @code{othername} of an @code{author} appears between the @code{firstname} and @code{surname}. Otherwise, @code{othername} is suppressed. @node [P] output-file, [P] directory-category, [P] author-othername-in-middle, param @section [P] output-file @subheading Name [P] output-file --- Name of the Info file @subheading Synopsis @example @end example @subheading Description This parameter specifies the name of the final Info file, overriding the setting in the document itself and the automatic selection in the stylesheet. If the document is a @code{set}, this parameter has no effect. @quotation @strong{Important} Do @emph{not} include the @samp{.info} extension in the name. @end quotation (Note that this parameter has nothing to do with the name of the @emph{Texi-XML output} by the XSLT processor you are running this stylesheet from.) @node [P] directory-category, [P] directory-description, [P] output-file, param @section [P] directory-category @subheading Name [P] directory-category --- The categorization of the document in the Info directory @subheading Synopsis @example @end example @subheading Description This is set to the category that the document should go under in the Info directory of installed Info files. For example, @samp{General Commands}. @quotation @strong{Note} Categories may also be set directly in the source document. But if this parameter is not empty, then it always overrides the setting in the source document. @end quotation @node [P] directory-description, [P] index-category, [P] directory-category, param @section [P] directory-description @subheading Name [P] directory-description --- The description of the document in the Info directory @subheading Synopsis @example @end example @subheading Description This is a short description of the document that appears in the Info directory of installed Info files. For example, @samp{An Interactive Plotting Program.} @quotation @strong{Note} Menu descriptions may also be set directly in the source document. But if this parameter is not empty, then it always overrides the setting in the source document. @end quotation @node [P] index-category, [P] qanda-defaultlabel, [P] directory-description, param @section [P] index-category @subheading Name [P] index-category --- The Texinfo index to use @subheading Synopsis @example @end example @subheading Description The Texinfo index for @code{indexterm} and @code{index} is specified using the @code{role} attribute. If the above elements do not have a @code{role}, then the default specified by this parameter is used. The predefined indices are: @table @asis @item @samp{c} @itemx @samp{cp} Concept index @item @samp{f} @itemx @samp{fn} Function index @item @samp{v} @itemx @samp{vr} Variable index @item @samp{k} @itemx @samp{ky} Keystroke index @item @samp{p} @itemx @samp{pg} Program index @item @samp{d} @itemx @samp{tp} Data type index @end table @noindent User-defined indices are not yet supported. @node [P] qanda-defaultlabel, [P] qandaset-generate-toc, [P] index-category, param @section [P] qanda-defaultlabel @subheading Name [P] qanda-defaultlabel --- Sets the default for defaultlabel on QandASet. @subheading Synopsis @example number @end example @subheading Description If no defaultlabel attribute is specified on a QandASet, this value is used. It must be one of the legal values for the defaultlabel attribute. @node [P] qandaset-generate-toc, , [P] qanda-defaultlabel, param @section [P] qandaset-generate-toc @subheading Name [P] qandaset-generate-toc --- Is a Table of Contents created for QandASets? @subheading Synopsis @example 1 @end example @subheading Description If true, a ToC is constructed for QandASets. @node texifile, texinode, param, Top @chapter texifile @section texifile These templates are used when making cross references between the multiple Texinfo files that are generated from a single DocBook @code{set}. You probably do not need to modify anything here. @menu * [t texinfo-file-name] *:: * [t texinfo-file-name] text(): [t texinfo-file-name] text[]. * [t for-texinfo-file-name] set/book:: * [t for-texinfo-file-name] /*:: * [t for-texinfo-file-name] /set/book//*:: * [t for-texinfo-file-name] node(): [t for-texinfo-file-name] node[]. * [T] get-texinfo-file-name:: Find the file that contains the result @end menu @node [t texinfo-file-name] *, [t texinfo-file-name] text[], , texifile @section [t texinfo-file-name] * @subheading Name [t texinfo-file-name] * @subheading Synopsis @example @end example @node [t texinfo-file-name] text[], [t for-texinfo-file-name] set/book, [t texinfo-file-name] *, texifile @section [t texinfo-file-name] text() @subheading Name [t texinfo-file-name] text() @subheading Synopsis @example @end example @node [t for-texinfo-file-name] set/book, [t for-texinfo-file-name] /*, [t texinfo-file-name] text[], texifile @section [t for-texinfo-file-name] set/book @subheading Name [t for-texinfo-file-name] set/book @subheading Synopsis @example @end example @node [t for-texinfo-file-name] /*, [t for-texinfo-file-name] /set/book//*, [t for-texinfo-file-name] set/book, texifile @section [t for-texinfo-file-name] /* @subheading Name [t for-texinfo-file-name] /* @subheading Synopsis @example @end example @node [t for-texinfo-file-name] /set/book//*, [t for-texinfo-file-name] node[], [t for-texinfo-file-name] /*, texifile @section [t for-texinfo-file-name] /set/book//* @subheading Name [t for-texinfo-file-name] /set/book//* @subheading Synopsis @example @end example @node [t for-texinfo-file-name] node[], [T] get-texinfo-file-name, [t for-texinfo-file-name] /set/book//*, texifile @section [t for-texinfo-file-name] node() @subheading Name [t for-texinfo-file-name] node() @subheading Synopsis @example @end example @node [T] get-texinfo-file-name, , [t for-texinfo-file-name] node[], texifile @section [T] get-texinfo-file-name @subheading Name [T] get-texinfo-file-name --- Find the file that contains the result @subheading Synopsis @example @end example @subheading Description Returns the Texinfo file that contains the result when transforming the context node. In this implementation, every document element starts a new file, unless the document element is @code{set}, in which case each child @code{book} starts a new file. @subheading Parameters @table @asis @item @code{node} The node to find information for. Default is the context node. @end table @node texinode, texinode-base, texifile, Top @chapter texinode @section texinode These templates determine which elements get transformed into Texinfo nodes, and how to derive a Texinfo node name for these nodes. @subsection Texinfo node names: processing expectations The templates try to derive a Texinfo node name of a nodal section from the content of the following, in order of preference: @enumerate @item @code{titleabbrev} with @code{role}="texinfo-node" in the @code{@var{*}info} wrapper. @item The @code{xreflabel} @item The @code{titleabbrev} @item The @code{title} @end enumerate @menu * [M] is-texinfo-node:: Determine if given element is a Texinfo node * [t is-texinfo-node] dedication|preface|chapter|appendix|reference|article:: * [t is-texinfo-node] sect1|sect2|sect3|sect4|sect5|section|simplesect:: * [t is-texinfo-node] refentry:: * [t is-texinfo-node] *:: * [t is-texinfo-node] part:: * [t is-texinfo-node] partintro|partintro//*:: * [t is-texinfo-node] book:: * [t is-texinfo-node] index|bibliography|glossary:: * [M] for-texinfo-node-name:: Return a suggested nodename * [t for-texinfo-node-name] *[@@xreflabel]:: * [t for-texinfo-node-name] *[child;;title]:: * [t for-texinfo-node-name] *:: * [t for-texinfo-node-name] book|/*:: * [t for-texinfo-node-name] reference|preface|chapter|appendix|glossary|bibliography| sect1|sect2|sect3|sect4|sect5|section|refsect1|refsect2|refsect3:: * [t for-texinfo-node-name] article:: * [t for-texinfo-node-name] refentry:: * [t for-texinfo-node-name] part:: * [t for-texinfo-node-name] varlistentry:: * [t for-texinfo-node-name] index:: * [t is-texinfo-top-node] book|/*:: * [t is-texinfo-top-node] *:: * [t texinfo-node-name] *:: * [t texinfo-node-name] text(): [t texinfo-node-name] text[]. @end menu @node [M] is-texinfo-node, [t is-texinfo-node] dedication|preface|chapter|appendix|reference|article, , texinode @section [M] is-texinfo-node @subheading Name [M] is-texinfo-node --- Determine if given element is a Texinfo node @subheading Description This mode defines which elements are to be transformed into Texinfo node. Elements that generate anchors are not considered nodes by this mode. The set of nodal elements can be changed, but only sectioning elements can be nodes and the stylesheets do not support any fancy interleaving of nodal sections and non-nodal sections. Return empty string for an element that is not a node, and the string @samp{1} if it is. @node [t is-texinfo-node] dedication|preface|chapter|appendix|reference|article, [t is-texinfo-node] sect1|sect2|sect3|sect4|sect5|section|simplesect, [M] is-texinfo-node, texinode @section [t is-texinfo-node] dedication|preface|chapter|appendix|reference|article @subheading Name [t is-texinfo-node] dedication|preface|chapter|appendix|reference|article @subheading Synopsis @example @end example @node [t is-texinfo-node] sect1|sect2|sect3|sect4|sect5|section|simplesect, [t is-texinfo-node] refentry, [t is-texinfo-node] dedication|preface|chapter|appendix|reference|article, texinode @section [t is-texinfo-node] sect1|sect2|sect3|sect4|sect5|section|simplesect @subheading Name [t is-texinfo-node] sect1|sect2|sect3|sect4|sect5|section|simplesect @subheading Synopsis @example @end example @node [t is-texinfo-node] refentry, [t is-texinfo-node] *, [t is-texinfo-node] sect1|sect2|sect3|sect4|sect5|section|simplesect, texinode @section [t is-texinfo-node] refentry @subheading Name [t is-texinfo-node] refentry @subheading Synopsis @example @end example @node [t is-texinfo-node] *, [t is-texinfo-node] part, [t is-texinfo-node] refentry, texinode @section [t is-texinfo-node] * @subheading Name [t is-texinfo-node] * @subheading Synopsis @example @end example @node [t is-texinfo-node] part, [t is-texinfo-node] partintro|partintro//*, [t is-texinfo-node] *, texinode @section [t is-texinfo-node] part @subheading Name [t is-texinfo-node] part @subheading Synopsis @example @end example @node [t is-texinfo-node] partintro|partintro//*, [t is-texinfo-node] book, [t is-texinfo-node] part, texinode @section [t is-texinfo-node] partintro|partintro//* @subheading Name [t is-texinfo-node] partintro|partintro//* @subheading Synopsis @example @end example @node [t is-texinfo-node] book, [t is-texinfo-node] index|bibliography|glossary, [t is-texinfo-node] partintro|partintro//*, texinode @section [t is-texinfo-node] book @subheading Name [t is-texinfo-node] book @subheading Synopsis @example @end example @node [t is-texinfo-node] index|bibliography|glossary, [M] for-texinfo-node-name, [t is-texinfo-node] book, texinode @section [t is-texinfo-node] index|bibliography|glossary @subheading Name [t is-texinfo-node] index|bibliography|glossary @subheading Synopsis @example @end example @node [M] for-texinfo-node-name, [t for-texinfo-node-name] *[@@xreflabel], [t is-texinfo-node] index|bibliography|glossary, texinode @section [M] for-texinfo-node-name @subheading Name [M] for-texinfo-node-name --- Return a suggested nodename @subheading Description Processing an element using for-texinfo-node-name returns a suggested nodename (or anchor name) for that element. @node [t for-texinfo-node-name] *[@@xreflabel], [t for-texinfo-node-name] *[child;;title], [M] for-texinfo-node-name, texinode @section [t for-texinfo-node-name] *[@@xreflabel] @subheading Name [t for-texinfo-node-name] *[@@xreflabel] @subheading Synopsis @example @end example @node [t for-texinfo-node-name] *[child;;title], [t for-texinfo-node-name] *, [t for-texinfo-node-name] *[@@xreflabel], texinode @section [t for-texinfo-node-name] *[child::title] @subheading Name [t for-texinfo-node-name] *[child::title] @subheading Synopsis @example @end example @node [t for-texinfo-node-name] *, [t for-texinfo-node-name] book|/*, [t for-texinfo-node-name] *[child;;title], texinode @section [t for-texinfo-node-name] * @subheading Name [t for-texinfo-node-name] * @subheading Synopsis @example @end example @node [t for-texinfo-node-name] book|/*, [t for-texinfo-node-name] reference|preface|chapter|appendix|glossary|bibliography| sect1|sect2|sect3|sect4|sect5|section|refsect1|refsect2|refsect3, [t for-texinfo-node-name] *, texinode @section [t for-texinfo-node-name] book|/* @subheading Name [t for-texinfo-node-name] book|/* @subheading Synopsis @example @end example @node [t for-texinfo-node-name] reference|preface|chapter|appendix|glossary|bibliography| sect1|sect2|sect3|sect4|sect5|section|refsect1|refsect2|refsect3, [t for-texinfo-node-name] article, [t for-texinfo-node-name] book|/*, texinode @section [t for-texinfo-node-name] reference|preface|chapter|appendix|glossary|bibliography| sect1|sect2|sect3|sect4|sect5|section|refsect1|refsect2|refsect3 @subheading Name [t for-texinfo-node-name] reference|preface|chapter|appendix|glossary|bibliography| sect1|sect2|sect3|sect4|sect5|section|refsect1|refsect2|refsect3 @subheading Synopsis @example @end example @node [t for-texinfo-node-name] article, [t for-texinfo-node-name] refentry, [t for-texinfo-node-name] reference|preface|chapter|appendix|glossary|bibliography| sect1|sect2|sect3|sect4|sect5|section|refsect1|refsect2|refsect3, texinode @section [t for-texinfo-node-name] article @subheading Name [t for-texinfo-node-name] article @subheading Synopsis @example @end example @node [t for-texinfo-node-name] refentry, [t for-texinfo-node-name] part, [t for-texinfo-node-name] article, texinode @section [t for-texinfo-node-name] refentry @subheading Name [t for-texinfo-node-name] refentry @subheading Synopsis @example @end example @node [t for-texinfo-node-name] part, [t for-texinfo-node-name] varlistentry, [t for-texinfo-node-name] refentry, texinode @section [t for-texinfo-node-name] part @subheading Name [t for-texinfo-node-name] part @subheading Synopsis @example @end example @node [t for-texinfo-node-name] varlistentry, [t for-texinfo-node-name] index, [t for-texinfo-node-name] part, texinode @section [t for-texinfo-node-name] varlistentry @subheading Name [t for-texinfo-node-name] varlistentry @subheading Synopsis @example @end example @node [t for-texinfo-node-name] index, [t is-texinfo-top-node] book|/*, [t for-texinfo-node-name] varlistentry, texinode @section [t for-texinfo-node-name] index @subheading Name [t for-texinfo-node-name] index @subheading Synopsis @example @end example @node [t is-texinfo-top-node] book|/*, [t is-texinfo-top-node] *, [t for-texinfo-node-name] index, texinode @section [t is-texinfo-top-node] book|/* @subheading Name [t is-texinfo-top-node] book|/* @subheading Synopsis @example @end example @node [t is-texinfo-top-node] *, [t texinfo-node-name] *, [t is-texinfo-top-node] book|/*, texinode @section [t is-texinfo-top-node] * @subheading Name [t is-texinfo-top-node] * @subheading Synopsis @example @end example @node [t texinfo-node-name] *, [t texinfo-node-name] text[], [t is-texinfo-top-node] *, texinode @section [t texinfo-node-name] * @subheading Name [t texinfo-node-name] * @subheading Synopsis @example @end example @node [t texinfo-node-name] text[], , [t texinfo-node-name] *, texinode @section [t texinfo-node-name] text() @subheading Name [t texinfo-node-name] text() @subheading Synopsis @example @end example @node texinode-base, chunk, texinode, Top @chapter texinode-base @menu * [T] make-nodenamemap:: Undocumented * [t nodenamemap] *:: * [t nodenamemap] text(): [t nodenamemap] text[]. * [T] make-texinfo-node:: Output node element * [T] make-texinfo-nontop-node:: Undocumented * [T] make-texinfo-top-node:: Undocumented * [T] make-texinfo-top-node-firstchild:: Undocumented @end menu @node [T] make-nodenamemap, [t nodenamemap] *, , texinode-base @section [T] make-nodenamemap @subheading Name [T] make-nodenamemap --- Undocumented @subheading Synopsis @example @end example @node [t nodenamemap] *, [t nodenamemap] text[], [T] make-nodenamemap, texinode-base @section [t nodenamemap] * @subheading Name [t nodenamemap] * @subheading Synopsis @example @end example @node [t nodenamemap] text[], [T] make-texinfo-node, [t nodenamemap] *, texinode-base @section [t nodenamemap] text() @subheading Name [t nodenamemap] text() @subheading Synopsis @example @end example @node [T] make-texinfo-node, [T] make-texinfo-nontop-node, [t nodenamemap] text[], texinode-base @section [T] make-texinfo-node @subheading Name [T] make-texinfo-node --- Output node element @subheading Synopsis @example @end example @subheading Description This named template creates a node element in the result tree, which corresponds to the Texinfo @samp{@@node} command. @node [T] make-texinfo-nontop-node, [T] make-texinfo-top-node, [T] make-texinfo-node, texinode-base @section [T] make-texinfo-nontop-node @subheading Name [T] make-texinfo-nontop-node --- Undocumented @subheading Synopsis @example @end example @node [T] make-texinfo-top-node, [T] make-texinfo-top-node-firstchild, [T] make-texinfo-nontop-node, texinode-base @section [T] make-texinfo-top-node @subheading Name [T] make-texinfo-top-node --- Undocumented @subheading Synopsis @example @end example @node [T] make-texinfo-top-node-firstchild, , [T] make-texinfo-top-node, texinode-base @section [T] make-texinfo-top-node-firstchild @subheading Name [T] make-texinfo-top-node-firstchild --- Undocumented @subheading Synopsis @example @end example @node chunk, autotoc, texinode-base, Top @chapter chunk @menu * [t] /:: * [M] top-chunk:: Process a top-level chunk * [t top-chunk] *:: @end menu @node [t] /, [M] top-chunk, , chunk @section [t] / @subheading Name [t] / @subheading Synopsis @example @end example @node [M] top-chunk, [t top-chunk] *, [t] /, chunk @section [M] top-chunk @subheading Name [M] top-chunk --- Process a top-level chunk @subheading Description This mode is supposed to output all the Texi-XML markup required for the beginning of the Texinfo file, e.g. @code{settitle}, Texinfo directories, etc. After that, it goes onto normal processing. @node [t top-chunk] *, , [M] top-chunk, chunk @section [t top-chunk] * @subheading Name [t top-chunk] * @subheading Synopsis @example @end example @node autotoc, menudescrip, chunk, Top @chapter autotoc @section autotoc Generate Texinfo menus for each node. Also optionally generate directory entries used by @code{install-info}. The user generally does not modify these templates. Menus are created by the first child sectioning element, so that the @code{@@menu} comes just after the text content of the parent sectioning element, where Texinfo expects them to be. This approach may not be the most elegant, but it works, and its operation is hidden by @code{make-texinfo-node}. @menu * [M] texinfo-menu:: Make Texinfo menus * [V] make-detailed-menus:: Undocumented * [t texinfo-menu] *:: * [t texinfo-menu] book|/*:: * [t texinfo-detail-menu-entry] book/*|/*/*|book/part/*:: * [t texinfo-detail-menu-entry] book/part:: * [t texinfo-detail-menu-entry] *:: * [t texinfo-menu-entry] part:: * [T] make-texinfo-menu-entry:: Undocumented * [T] make-texinfo-directory:: Make a Texinfo directory entry * [t for-menu-title] node(): [t for-menu-title] node[]. @end menu @node [M] texinfo-menu, [V] make-detailed-menus, , autotoc @section [M] texinfo-menu @subheading Name [M] texinfo-menu --- Make Texinfo menus @subheading Description Any DocBook element that generates a Texinfo node can be processed with this mode to generate a menu for it. If the element that is processed happens to be the Top node, the @code{@@detailmenu} is generated also. @node [V] make-detailed-menus, [t texinfo-menu] *, [M] texinfo-menu, autotoc @section [V] make-detailed-menus @subheading Name [V] make-detailed-menus --- Undocumented @subheading Synopsis @example @end example @node [t texinfo-menu] *, [t texinfo-menu] book|/*, [V] make-detailed-menus, autotoc @section [t texinfo-menu] * @subheading Name [t texinfo-menu] * @subheading Synopsis @example @end example @node [t texinfo-menu] book|/*, [t texinfo-detail-menu-entry] book/*|/*/*|book/part/*, [t texinfo-menu] *, autotoc @section [t texinfo-menu] book|/* @subheading Name [t texinfo-menu] book|/* @subheading Synopsis @example @end example @node [t texinfo-detail-menu-entry] book/*|/*/*|book/part/*, [t texinfo-detail-menu-entry] book/part, [t texinfo-menu] book|/*, autotoc @section [t texinfo-detail-menu-entry] book/*|/*/*|book/part/* @subheading Name [t texinfo-detail-menu-entry] book/*|/*/*|book/part/* @subheading Synopsis @example @end example @node [t texinfo-detail-menu-entry] book/part, [t texinfo-detail-menu-entry] *, [t texinfo-detail-menu-entry] book/*|/*/*|book/part/*, autotoc @section [t texinfo-detail-menu-entry] book/part @subheading Name [t texinfo-detail-menu-entry] book/part @subheading Synopsis @example @end example @node [t texinfo-detail-menu-entry] *, [t texinfo-menu-entry] part, [t texinfo-detail-menu-entry] book/part, autotoc @section [t texinfo-detail-menu-entry] * @subheading Name [t texinfo-detail-menu-entry] * @subheading Synopsis @example @end example @node [t texinfo-menu-entry] part, [T] make-texinfo-menu-entry, [t texinfo-detail-menu-entry] *, autotoc @section [t texinfo-menu-entry] part @subheading Name [t texinfo-menu-entry] part @subheading Synopsis @example @end example @node [T] make-texinfo-menu-entry, [T] make-texinfo-directory, [t texinfo-menu-entry] part, autotoc @section [T] make-texinfo-menu-entry @subheading Name [T] make-texinfo-menu-entry --- Undocumented @subheading Synopsis @example @end example @node [T] make-texinfo-directory, [t for-menu-title] node[], [T] make-texinfo-menu-entry, autotoc @section [T] make-texinfo-directory @subheading Name [T] make-texinfo-directory --- Make a Texinfo directory entry @subheading Synopsis @example @end example @subheading Description Output commands so that install-info can automatically add a directory entry when installing the document. @node [t for-menu-title] node[], , [T] make-texinfo-directory, autotoc @section [t for-menu-title] node() @subheading Name [t for-menu-title] node() @subheading Synopsis @example @end example @node menudescrip, index, autotoc, Top @chapter menudescrip @section menudescrip Make descriptions for Texinfo menu entries, if available. @subsection Menu descriptions: processing expectations If an @code{abstract} with a @code{role} of @samp{texinfo-node} is found, that is rendered as the menu description for the node. Descriptions should be one sentence or phrase long, since space is limited in a Texinfo menu. For the same reason, only the first paragraph of such an @code{abstract} is rendered. Menu descriptions also appear for the Info directory entry for an Info file; these descriptions are handled just the same as normal menus, with the @code{abstract} apparatus. On the other hand, the Info directory category is specified using a @code{subjectset} with a @code{scheme} of @samp{texinfo-directory}. @strong{Menu descriptions in the source document} @example
wget The non-interactive network downloader. Network Applications @dots{} article content goes here @dots{}
@end example You may prefer to put the Texinfo descriptions outside of the source document. This is possible with a custom stylesheet: @strong{Specifying Texinfo directory entries in a stylesheet} @example General Commands Make hard links between files. Command-line options Restrictions on linking imposed by the OS @dots{} more entries @dots{} @end example @menu * [M] for-menu-description:: Return description for Texinfo node * [t for-menu-description] refentry:: * [t for-menu-description] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book:: * [t for-menu-description] *:: * [T] get-texinfo-directory-description:: Undocumented * [M] for-directory-category:: Return Info directory category * [T] get-texinfo-directory-category:: Undocumented * [t for-directory-category] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book|refentry:: * [t for-directory-category] *:: @end menu @node [M] for-menu-description, [t for-menu-description] refentry, , menudescrip @section [M] for-menu-description @subheading Name [M] for-menu-description --- Return description for Texinfo node @subheading Description Processing an element using menu-description-mode returns a result tree fragment that is the description for its menu entry. @node [t for-menu-description] refentry, [t for-menu-description] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book, [M] for-menu-description, menudescrip @section [t for-menu-description] refentry @subheading Name [t for-menu-description] refentry @subheading Synopsis @example @end example @node [t for-menu-description] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book, [t for-menu-description] *, [t for-menu-description] refentry, menudescrip @section [t for-menu-description] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book @subheading Name [t for-menu-description] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book @subheading Synopsis @example @end example @node [t for-menu-description] *, [T] get-texinfo-directory-description, [t for-menu-description] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book, menudescrip @section [t for-menu-description] * @subheading Name [t for-menu-description] * @subheading Synopsis @example @end example @node [T] get-texinfo-directory-description, [M] for-directory-category, [t for-menu-description] *, menudescrip @section [T] get-texinfo-directory-description @subheading Name [T] get-texinfo-directory-description --- Undocumented @subheading Synopsis @example @end example @node [M] for-directory-category, [T] get-texinfo-directory-category, [T] get-texinfo-directory-description, menudescrip @section [M] for-directory-category @subheading Name [M] for-directory-category --- Return Info directory category @subheading Description Processing an element (normally the root element, but also @code{book}s) using menu-description-mode returns a result tree fragment that is the Info categorization for the Texinfo file. @node [T] get-texinfo-directory-category, [t for-directory-category] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book|refentry, [M] for-directory-category, menudescrip @section [T] get-texinfo-directory-category @subheading Name [T] get-texinfo-directory-category --- Undocumented @subheading Synopsis @example @end example @node [t for-directory-category] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book|refentry, [t for-directory-category] *, [T] get-texinfo-directory-category, menudescrip @section [t for-directory-category] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book|refentry @subheading Name [t for-directory-category] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book|refentry @subheading Synopsis @example @end example @node [t for-directory-category] *, , [t for-directory-category] reference|preface|chapter|appendix|glossary| bibliography|article|part| sect1|sect2|sect3|sect4|sect5|refsect1|refsect2|refsect3| partintro|section|book|refentry, menudescrip @section [t for-directory-category] * @subheading Name [t for-directory-category] * @subheading Synopsis @example @end example @node index, sectioning, menudescrip, Top @chapter index @menu * [t] index:: * [t] indexdiv:: * [t] indexterm:: * [t] primary:: * [t] secondary|tertiary:: * [t] see|seealso:: * [t] indexentry:: * [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie:: @end menu @node [t] index, [t] indexdiv, , index @section [t] index @subheading Name [t] index @subheading Synopsis @example @end example @node [t] indexdiv, [t] indexterm, [t] index, index @section [t] indexdiv @subheading Name [t] indexdiv @subheading Synopsis @example @end example @node [t] indexterm, [t] primary, [t] indexdiv, index @section [t] indexterm @subheading Name [t] indexterm @subheading Synopsis @example @end example @node [t] primary, [t] secondary|tertiary, [t] indexterm, index @section [t] primary @subheading Name [t] primary @subheading Synopsis @example @end example @node [t] secondary|tertiary, [t] see|seealso, [t] primary, index @section [t] secondary|tertiary @subheading Name [t] secondary|tertiary @subheading Synopsis @example @end example @node [t] see|seealso, [t] indexentry, [t] secondary|tertiary, index @section [t] see|seealso @subheading Name [t] see|seealso @subheading Synopsis @example @end example @node [t] indexentry, [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie, [t] see|seealso, index @section [t] indexentry @subheading Name [t] indexentry @subheading Synopsis @example @end example @node [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie, , [t] indexentry, index @section [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie @subheading Name [t] primaryie|secondaryie|tertiaryie|seeie|seealsoie @subheading Synopsis @example @end example @node sectioning, division, index, Top @chapter sectioning @menu * [T] get-texinfo-section-level:: Give Texinfo structuring command for given section level * [T] make-texinfo-section:: Make Texinfo section * [T] section:: Standard template for section structures @end menu @node [T] get-texinfo-section-level, [T] make-texinfo-section, , sectioning @section [T] get-texinfo-section-level @subheading Name [T] get-texinfo-section-level --- Give Texinfo structuring command for given section level @subheading Synopsis @example @end example @subheading Description This template returns the name of the Texinfo command that is mapped to the given DocBook element. This implementation internally uses numbers that reflect the DocBook hierarchy, like Norm's @code{section.level} template. However, @code{section.level} only maps the DocBook sectioning elements (@code{sect@var{n}} and @code{section}). This simplistic mapping of numbers to Texinfo commands sometimes yield results that do not make a lot of sense; e.g. if the document element is @code{section}, then the first section is mapped to @code{@@top}, but the next nested section would be a Texinfo @code{chapter}. I have thought about letting each template specify their own structuring element, but from my testing, jumping around the hierarchy breaks at least the TeX portion of Texinfo. Besides, this neccessitated writing a @code{xsl:choose}s with non-trivial cases in many templates. The only thing I can say is that if you use 'weird' document elements, you can't reasonably transform to Texinfo (whose top level is semantically similar to @code{book}). @code{docbook2texixml} takes the same approach. I also have a suspicion that calling this template will be slow, but there's nothing we can do about it :-( @subheading Parameters @table @asis @item @code{node} The node to get the Texinfo structuring command mapping for. Default is the context node. @item @code{heading-class} The class of heading commands to use: @samp{chapter}, @samp{unnumbered}, @samp{appendix}, @samp{chapheading} See the chart in the Texinfo manual for the meanings of each class. The default is @samp{chapter} @end table @node [T] make-texinfo-section, [T] section, [T] get-texinfo-section-level, sectioning @section [T] make-texinfo-section @subheading Name [T] make-texinfo-section --- Make Texinfo section @subheading Synopsis @example @end example @subheading Description This template outputs the corresponding Texinfo sectioning command for the DocBook sectioning elements. Logically speaking, this template might better be called @code{make-texinfo-heading}, as it only output the Texinfo sectioning command, but not the actual content of the section. @subheading Parameters @table @asis @item @code{level} The name of the Texinfo structuring command. If not specified, automatically uses @code{get-texinfo-section-level}. @item @code{title} The title to use for the section. The default is found by applying @code{title} mode templates to the context node. @end table @node [T] section, , [T] make-texinfo-section, sectioning @section [T] section @subheading Name [T] section --- Standard template for section structures @subheading Synopsis @example @end example @subheading Description For the given element, it creates a node for it if is.node=1, otherwise an anchor, and calls @code{make-texinfo-section} for the actual sectioning command. Finally templates are applied for the child elements. With this, the user can easily decide what elements are to be converted to nodes with a simple change to @file{texinode.xsl}. @subheading Parameters The arguments are the same as the ones for @code{make-texinfo-section}, plus @code{content}. @table @asis @item @code{content} The result tree fragment of the section. Defaults to applying templates. @end table @node division, sections, sectioning, Top @chapter division @menu * [t top-chunk] set:: * [t] book:: * [t] part:: * [t] partintro:: @end menu @node [t top-chunk] set, [t] book, , division @section [t top-chunk] set @subheading Name [t top-chunk] set @subheading Synopsis @example @end example @node [t] book, [t] part, [t top-chunk] set, division @section [t] book @subheading Name [t] book @subheading Synopsis @example @end example @node [t] part, [t] partintro, [t] book, division @section [t] part @subheading Name [t] part @subheading Synopsis @example @end example @node [t] partintro, , [t] part, division @section [t] partintro @subheading Name [t] partintro @subheading Synopsis @example @end example @node sections, refentry, division, Top @chapter sections @menu * [t] sect1|sect2|sect3|sect4|sect5|simplesect|section:: * [t] bridgehead:: * [t] title:: * [t] titleabbrev:: * [t] subtitle:: @end menu @node [t] sect1|sect2|sect3|sect4|sect5|simplesect|section, [t] bridgehead, , sections @section [t] sect1|sect2|sect3|sect4|sect5|simplesect|section @subheading Name [t] sect1|sect2|sect3|sect4|sect5|simplesect|section @subheading Synopsis @example @end example @node [t] bridgehead, [t] title, [t] sect1|sect2|sect3|sect4|sect5|simplesect|section, sections @section [t] bridgehead @subheading Name [t] bridgehead @subheading Synopsis @example @end example @node [t] title, [t] titleabbrev, [t] bridgehead, sections @section [t] title @subheading Name [t] title @subheading Synopsis @example @end example @node [t] titleabbrev, [t] subtitle, [t] title, sections @section [t] titleabbrev @subheading Name [t] titleabbrev @subheading Synopsis @example @end example @node [t] subtitle, , [t] titleabbrev, sections @section [t] subtitle @subheading Name [t] subtitle @subheading Synopsis @example @end example @node refentry, admon, sections, Top @chapter refentry @menu * [t] reference:: * [t] refentry:: * [t] refmeta:: * [t] manvolnum:: * [t no-inline-markup] manvolnum:: * [t] refmiscinfo:: * [t] refentrytitle:: * [t] refnamediv:: * [t] refname:: * [t] refpurpose:: * [t] refdescriptor:: * [t] refclass:: * [t] refsynopsisdiv:: * [t] refsect1|refsect2|refsect3:: @end menu @node [t] reference, [t] refentry, , refentry @section [t] reference @subheading Name [t] reference @subheading Synopsis @example @end example @node [t] refentry, [t] refmeta, [t] reference, refentry @section [t] refentry @subheading Name [t] refentry @subheading Synopsis @example @end example @node [t] refmeta, [t] manvolnum, [t] refentry, refentry @section [t] refmeta @subheading Name [t] refmeta @subheading Synopsis @example @end example @node [t] manvolnum, [t no-inline-markup] manvolnum, [t] refmeta, refentry @section [t] manvolnum @subheading Name [t] manvolnum @subheading Synopsis @example @end example @node [t no-inline-markup] manvolnum, [t] refmiscinfo, [t] manvolnum, refentry @section [t no-inline-markup] manvolnum @subheading Name [t no-inline-markup] manvolnum @subheading Synopsis @example @end example @node [t] refmiscinfo, [t] refentrytitle, [t no-inline-markup] manvolnum, refentry @section [t] refmiscinfo @subheading Name [t] refmiscinfo @subheading Synopsis @example @end example @node [t] refentrytitle, [t] refnamediv, [t] refmiscinfo, refentry @section [t] refentrytitle @subheading Name [t] refentrytitle @subheading Synopsis @example @end example @node [t] refnamediv, [t] refname, [t] refentrytitle, refentry @section [t] refnamediv @subheading Name [t] refnamediv @subheading Synopsis @example @end example @node [t] refname, [t] refpurpose, [t] refnamediv, refentry @section [t] refname @subheading Name [t] refname @subheading Synopsis @example @end example @node [t] refpurpose, [t] refdescriptor, [t] refname, refentry @section [t] refpurpose @subheading Name [t] refpurpose @subheading Synopsis @example @end example @node [t] refdescriptor, [t] refclass, [t] refpurpose, refentry @section [t] refdescriptor @subheading Name [t] refdescriptor @subheading Synopsis @example @end example @node [t] refclass, [t] refsynopsisdiv, [t] refdescriptor, refentry @section [t] refclass @subheading Name [t] refclass @subheading Synopsis @example @end example @node [t] refsynopsisdiv, [t] refsect1|refsect2|refsect3, [t] refclass, refentry @section [t] refsynopsisdiv @subheading Name [t] refsynopsisdiv @subheading Synopsis @example @end example @node [t] refsect1|refsect2|refsect3, , [t] refsynopsisdiv, refentry @section [t] refsect1|refsect2|refsect3 @subheading Name [t] refsect1|refsect2|refsect3 @subheading Synopsis @example @end example @node admon, block, refentry, Top @chapter admon @menu * [T] admonition-title:: Undocumented * [t] note|important|warning|caution|tip:: @end menu @node [T] admonition-title, [t] note|important|warning|caution|tip, , admon @section [T] admonition-title @subheading Name [T] admonition-title --- Undocumented @subheading Synopsis @example @end example @node [t] note|important|warning|caution|tip, , [T] admonition-title, admon @section [t] note|important|warning|caution|tip @subheading Name [t] note|important|warning|caution|tip @subheading Synopsis @example @end example @node block, caption, admon, Top @chapter block @menu * [T] block-object:: Undocumented * [t] para|simpara:: * [t] formalpara:: * [t] formalpara/title:: * [t] formalpara/para:: * [t] blockquote:: * [t] blockquote/title:: * [t] attribution:: * [t blockquote-attribution] attribution:: * [t] epigraph:: * [t] sidebar:: * [t] abstract:: * [t] msgset:: * [t] msgentry:: * [t] simplemsgentry:: * [t] msg:: * [t] msgmain:: * [t] msgmain/title:: * [t] msgsub:: * [t] msgsub/title:: * [t] msgrel:: * [t] msgrel/title:: * [t] msgtext:: * [t] msginfo:: * [t] msglevel|msgorig|msgaud:: * [t] msgexplan:: * [t] msgexplan/title:: * [t] revhistory:: * [t] revhistory/revision:: * [t] revision/revnumber:: * [t] revision/date:: * [t] revision/authorinitials:: * [t] revision/authorinitials[1]:: * [t] revision/revremark:: * [t] revision/revdescription:: * [t] ackno:: @end menu @node [T] block-object, [t] para|simpara, , block @section [T] block-object @subheading Name [T] block-object --- Undocumented @subheading Synopsis @example @end example @node [t] para|simpara, [t] formalpara, [T] block-object, block @section [t] para|simpara @subheading Name [t] para|simpara @subheading Synopsis @example @end example @node [t] formalpara, [t] formalpara/title, [t] para|simpara, block @section [t] formalpara @subheading Name [t] formalpara @subheading Synopsis @example @end example @node [t] formalpara/title, [t] formalpara/para, [t] formalpara, block @section [t] formalpara/title @subheading Name [t] formalpara/title @subheading Synopsis @example @end example @node [t] formalpara/para, [t] blockquote, [t] formalpara/title, block @section [t] formalpara/para @subheading Name [t] formalpara/para @subheading Synopsis @example @end example @node [t] blockquote, [t] blockquote/title, [t] formalpara/para, block @section [t] blockquote @subheading Name [t] blockquote @subheading Synopsis @example @end example @node [t] blockquote/title, [t] attribution, [t] blockquote, block @section [t] blockquote/title @subheading Name [t] blockquote/title @subheading Synopsis @example @end example @node [t] attribution, [t blockquote-attribution] attribution, [t] blockquote/title, block @section [t] attribution @subheading Name [t] attribution @subheading Synopsis @example @end example @node [t blockquote-attribution] attribution, [t] epigraph, [t] attribution, block @section [t blockquote-attribution] attribution @subheading Name [t blockquote-attribution] attribution @subheading Synopsis @example @end example @node [t] epigraph, [t] sidebar, [t blockquote-attribution] attribution, block @section [t] epigraph @subheading Name [t] epigraph @subheading Synopsis @example @end example @node [t] sidebar, [t] abstract, [t] epigraph, block @section [t] sidebar @subheading Name [t] sidebar @subheading Synopsis @example @end example @node [t] abstract, [t] msgset, [t] sidebar, block @section [t] abstract @subheading Name [t] abstract @subheading Synopsis @example @end example @node [t] msgset, [t] msgentry, [t] abstract, block @section [t] msgset @subheading Name [t] msgset @subheading Synopsis @example @end example @node [t] msgentry, [t] simplemsgentry, [t] msgset, block @section [t] msgentry @subheading Name [t] msgentry @subheading Synopsis @example @end example @node [t] simplemsgentry, [t] msg, [t] msgentry, block @section [t] simplemsgentry @subheading Name [t] simplemsgentry @subheading Synopsis @example @end example @node [t] msg, [t] msgmain, [t] simplemsgentry, block @section [t] msg @subheading Name [t] msg @subheading Synopsis @example @end example @node [t] msgmain, [t] msgmain/title, [t] msg, block @section [t] msgmain @subheading Name [t] msgmain @subheading Synopsis @example @end example @node [t] msgmain/title, [t] msgsub, [t] msgmain, block @section [t] msgmain/title @subheading Name [t] msgmain/title @subheading Synopsis @example @end example @node [t] msgsub, [t] msgsub/title, [t] msgmain/title, block @section [t] msgsub @subheading Name [t] msgsub @subheading Synopsis @example @end example @node [t] msgsub/title, [t] msgrel, [t] msgsub, block @section [t] msgsub/title @subheading Name [t] msgsub/title @subheading Synopsis @example @end example @node [t] msgrel, [t] msgrel/title, [t] msgsub/title, block @section [t] msgrel @subheading Name [t] msgrel @subheading Synopsis @example @end example @node [t] msgrel/title, [t] msgtext, [t] msgrel, block @section [t] msgrel/title @subheading Name [t] msgrel/title @subheading Synopsis @example @end example @node [t] msgtext, [t] msginfo, [t] msgrel/title, block @section [t] msgtext @subheading Name [t] msgtext @subheading Synopsis @example @end example @node [t] msginfo, [t] msglevel|msgorig|msgaud, [t] msgtext, block @section [t] msginfo @subheading Name [t] msginfo @subheading Synopsis @example @end example @node [t] msglevel|msgorig|msgaud, [t] msgexplan, [t] msginfo, block @section [t] msglevel|msgorig|msgaud @subheading Name [t] msglevel|msgorig|msgaud @subheading Synopsis @example @end example @node [t] msgexplan, [t] msgexplan/title, [t] msglevel|msgorig|msgaud, block @section [t] msgexplan @subheading Name [t] msgexplan @subheading Synopsis @example @end example @node [t] msgexplan/title, [t] revhistory, [t] msgexplan, block @section [t] msgexplan/title @subheading Name [t] msgexplan/title @subheading Synopsis @example @end example @node [t] revhistory, [t] revhistory/revision, [t] msgexplan/title, block @section [t] revhistory @subheading Name [t] revhistory @subheading Synopsis @example @end example @node [t] revhistory/revision, [t] revision/revnumber, [t] revhistory, block @section [t] revhistory/revision @subheading Name [t] revhistory/revision @subheading Synopsis @example @end example @node [t] revision/revnumber, [t] revision/date, [t] revhistory/revision, block @section [t] revision/revnumber @subheading Name [t] revision/revnumber @subheading Synopsis @example @end example @node [t] revision/date, [t] revision/authorinitials, [t] revision/revnumber, block @section [t] revision/date @subheading Name [t] revision/date @subheading Synopsis @example @end example @node [t] revision/authorinitials, [t] revision/authorinitials[1], [t] revision/date, block @section [t] revision/authorinitials @subheading Name [t] revision/authorinitials @subheading Synopsis @example @end example @node [t] revision/authorinitials[1], [t] revision/revremark, [t] revision/authorinitials, block @section [t] revision/authorinitials[1] @subheading Name [t] revision/authorinitials[1] @subheading Synopsis @example @end example @node [t] revision/revremark, [t] revision/revdescription, [t] revision/authorinitials[1], block @section [t] revision/revremark @subheading Name [t] revision/revremark @subheading Synopsis @example @end example @node [t] revision/revdescription, [t] ackno, [t] revision/revremark, block @section [t] revision/revdescription @subheading Name [t] revision/revdescription @subheading Synopsis @example @end example @node [t] ackno, , [t] revision/revdescription, block @section [t] ackno @subheading Name [t] ackno @subheading Synopsis @example @end example @node caption, formal, block, Top @chapter caption @menu * [T] make-caption:: Render as a `caption' @end menu @node [T] make-caption, , , caption @section [T] make-caption @subheading Name [T] make-caption --- Render as a `caption' @subheading Synopsis @example @end example @subheading Description This template renders content (usually titles in certain block objects) as a `caption'. What this exactly means depends on the value of the @code{captions-display-as-headings} parameter. @subheading Parameters @table @asis @item @code{content} The result tree fragment to render. If not specified, defaults to applying @code{for-title} mode to the @emph{context} node. @end table @node formal, synop, caption, Top @chapter formal @menu * [T] formal-object:: Undocumented * [T] formal-object-title:: Undocumented * [T] informal-object:: Undocumented * [T] semiformal-object:: Undocumented * [t] figure|table|example:: * [t] equation:: * [t] informalfigure:: * [t] informalexample:: * [t] informaltable:: * [t] informalequation:: @end menu @node [T] formal-object, [T] formal-object-title, , formal @section [T] formal-object @subheading Name [T] formal-object --- Undocumented @subheading Synopsis @example @end example @node [T] formal-object-title, [T] informal-object, [T] formal-object, formal @section [T] formal-object-title @subheading Name [T] formal-object-title --- Undocumented @subheading Synopsis @example @end example @node [T] informal-object, [T] semiformal-object, [T] formal-object-title, formal @section [T] informal-object @subheading Name [T] informal-object --- Undocumented @subheading Synopsis @example @end example @node [T] semiformal-object, [t] figure|table|example, [T] informal-object, formal @section [T] semiformal-object @subheading Name [T] semiformal-object --- Undocumented @subheading Synopsis @example @end example @node [t] figure|table|example, [t] equation, [T] semiformal-object, formal @section [t] figure|table|example @subheading Name [t] figure|table|example @subheading Synopsis @example @end example @node [t] equation, [t] informalfigure, [t] figure|table|example, formal @section [t] equation @subheading Name [t] equation @subheading Synopsis @example @end example @node [t] informalfigure, [t] informalexample, [t] equation, formal @section [t] informalfigure @subheading Name [t] informalfigure @subheading Synopsis @example @end example @node [t] informalexample, [t] informaltable, [t] informalfigure, formal @section [t] informalexample @subheading Name [t] informalexample @subheading Synopsis @example @end example @node [t] informaltable, [t] informalequation, [t] informalexample, formal @section [t] informaltable @subheading Name [t] informaltable @subheading Synopsis @example @end example @node [t] informalequation, , [t] informaltable, formal @section [t] informalequation @subheading Name [t] informalequation @subheading Synopsis @example @end example @node synop, verbatim, formal, Top @chapter synop @menu * [M] no-inline-markup:: Plain text synopses * [t] synopsis:: * [t no-inline-markup] *:: * [t no-inline-markup] text(): [t no-inline-markup] text[]. * [t] cmdsynopsis:: * [t cmdsynopsis] *:: * [t cmdsynopsis] sbr:: * [t cmdsynopsis] command:: * [t cmdsynopsis] group|arg:: * [t cmdsynopsis] group/*:: * [t cmdsynopsis] group/group:: * [t cmdsynopsis] group/option:: * [t cmdsynopsis] group/arg:: * [t cmdsynopsis] synopfragment|synopfragmentref:: * [t] funcsynopsis:: * [t funcsynopsis] *:: * [t funcsynopsis] funcsynopsisinfo:: * [T] funcprototype:: Undocumented * [t funcsynopsis] modifier:: * [t funcsynopsis] funcdef:: * [t funcsynopsis] function:: * [t funcsynopsis] void:: * [t funcsynopsis] varargs:: * [t funcsynopsis] paramdef:: * [t funcsynopsis] paramdef/parameter:: * [t funcsynopsis] funcparams:: @end menu @node [M] no-inline-markup, [t] synopsis, , synop @section [M] no-inline-markup @subheading Name [M] no-inline-markup --- Plain text synopses @subheading Description Info uses decorations to represent semantic markup, which is undesirable in a verbatim synopsis. So we use @code{verbatim} to not use Texinfo's semantic markup. However, we lose the ability to make links :( @node [t] synopsis, [t no-inline-markup] *, [M] no-inline-markup, synop @section [t] synopsis @subheading Name [t] synopsis @subheading Synopsis @example @end example @node [t no-inline-markup] *, [t no-inline-markup] text[], [t] synopsis, synop @section [t no-inline-markup] * @subheading Name [t no-inline-markup] * @subheading Synopsis @example @end example @node [t no-inline-markup] text[], [t] cmdsynopsis, [t no-inline-markup] *, synop @section [t no-inline-markup] text() @subheading Name [t no-inline-markup] text() @subheading Synopsis @example @end example @node [t] cmdsynopsis, [t cmdsynopsis] *, [t no-inline-markup] text[], synop @section [t] cmdsynopsis @subheading Name [t] cmdsynopsis @subheading Synopsis @example @end example @node [t cmdsynopsis] *, [t cmdsynopsis] sbr, [t] cmdsynopsis, synop @section [t cmdsynopsis] * @subheading Name [t cmdsynopsis] * @subheading Synopsis @example @end example @node [t cmdsynopsis] sbr, [t cmdsynopsis] command, [t cmdsynopsis] *, synop @section [t cmdsynopsis] sbr @subheading Name [t cmdsynopsis] sbr @subheading Synopsis @example @end example @node [t cmdsynopsis] command, [t cmdsynopsis] group|arg, [t cmdsynopsis] sbr, synop @section [t cmdsynopsis] command @subheading Name [t cmdsynopsis] command @subheading Synopsis @example @end example @node [t cmdsynopsis] group|arg, [t cmdsynopsis] group/*, [t cmdsynopsis] command, synop @section [t cmdsynopsis] group|arg @subheading Name [t cmdsynopsis] group|arg @subheading Synopsis @example @end example @node [t cmdsynopsis] group/*, [t cmdsynopsis] group/group, [t cmdsynopsis] group|arg, synop @section [t cmdsynopsis] group/* @subheading Name [t cmdsynopsis] group/* @subheading Synopsis @example @end example @node [t cmdsynopsis] group/group, [t cmdsynopsis] group/option, [t cmdsynopsis] group/*, synop @section [t cmdsynopsis] group/group @subheading Name [t cmdsynopsis] group/group @subheading Synopsis @example @end example @node [t cmdsynopsis] group/option, [t cmdsynopsis] group/arg, [t cmdsynopsis] group/group, synop @section [t cmdsynopsis] group/option @subheading Name [t cmdsynopsis] group/option @subheading Synopsis @example @end example @node [t cmdsynopsis] group/arg, [t cmdsynopsis] synopfragment|synopfragmentref, [t cmdsynopsis] group/option, synop @section [t cmdsynopsis] group/arg @subheading Name [t cmdsynopsis] group/arg @subheading Synopsis @example @end example @node [t cmdsynopsis] synopfragment|synopfragmentref, [t] funcsynopsis, [t cmdsynopsis] group/arg, synop @section [t cmdsynopsis] synopfragment|synopfragmentref @subheading Name [t cmdsynopsis] synopfragment|synopfragmentref @subheading Synopsis @example @end example @node [t] funcsynopsis, [t funcsynopsis] *, [t cmdsynopsis] synopfragment|synopfragmentref, synop @section [t] funcsynopsis @subheading Name [t] funcsynopsis @subheading Synopsis @example @end example @node [t funcsynopsis] *, [t funcsynopsis] funcsynopsisinfo, [t] funcsynopsis, synop @section [t funcsynopsis] * @subheading Name [t funcsynopsis] * @subheading Synopsis @example @end example @node [t funcsynopsis] funcsynopsisinfo, [T] funcprototype, [t funcsynopsis] *, synop @section [t funcsynopsis] funcsynopsisinfo @subheading Name [t funcsynopsis] funcsynopsisinfo @subheading Synopsis @example @end example @node [T] funcprototype, [t funcsynopsis] modifier, [t funcsynopsis] funcsynopsisinfo, synop @section [T] funcprototype @subheading Name [T] funcprototype --- Undocumented @subheading Synopsis @example @end example @node [t funcsynopsis] modifier, [t funcsynopsis] funcdef, [T] funcprototype, synop @section [t funcsynopsis] modifier @subheading Name [t funcsynopsis] modifier @subheading Synopsis @example @end example @node [t funcsynopsis] funcdef, [t funcsynopsis] function, [t funcsynopsis] modifier, synop @section [t funcsynopsis] funcdef @subheading Name [t funcsynopsis] funcdef @subheading Synopsis @example @end example @node [t funcsynopsis] function, [t funcsynopsis] void, [t funcsynopsis] funcdef, synop @section [t funcsynopsis] function @subheading Name [t funcsynopsis] function @subheading Synopsis @example @end example @node [t funcsynopsis] void, [t funcsynopsis] varargs, [t funcsynopsis] function, synop @section [t funcsynopsis] void @subheading Name [t funcsynopsis] void @subheading Synopsis @example @end example @node [t funcsynopsis] varargs, [t funcsynopsis] paramdef, [t funcsynopsis] void, synop @section [t funcsynopsis] varargs @subheading Name [t funcsynopsis] varargs @subheading Synopsis @example @end example @node [t funcsynopsis] paramdef, [t funcsynopsis] paramdef/parameter, [t funcsynopsis] varargs, synop @section [t funcsynopsis] paramdef @subheading Name [t funcsynopsis] paramdef @subheading Synopsis @example @end example @node [t funcsynopsis] paramdef/parameter, [t funcsynopsis] funcparams, [t funcsynopsis] paramdef, synop @section [t funcsynopsis] paramdef/parameter @subheading Name [t funcsynopsis] paramdef/parameter @subheading Synopsis @example @end example @node [t funcsynopsis] funcparams, , [t funcsynopsis] paramdef/parameter, synop @section [t funcsynopsis] funcparams @subheading Name [t funcsynopsis] funcparams @subheading Synopsis @example @end example @node verbatim, footnote, synop, Top @chapter verbatim @section verbatim These templates transform DocBook verbatim environments to their Texinfo equivalents. @subsection Verbatim environments: processing expectations The verbatim environments in the printed output (TeX) are not very wide, and TeX will choke on lines that ordinarily fit comfortably on the screen in Info and HTML output (an `overfull @code{@@hbox}'). So if you want Texinfo printed output, trim down the offending lines in the verbatim environments. The stylesheets cannot do that for you. @menu * [t] literallayout[@@class='monospaced']:: * [t] literallayout:: * [t] programlisting|screen:: * [t] address:: @end menu @node [t] literallayout[@@class='monospaced'], [t] literallayout, , verbatim @section [t] literallayout[@@class='monospaced'] @subheading Name [t] literallayout[@@class='monospaced'] @subheading Synopsis @example @end example @node [t] literallayout, [t] programlisting|screen, [t] literallayout[@@class='monospaced'], verbatim @section [t] literallayout @subheading Name [t] literallayout @subheading Synopsis @example @end example @node [t] programlisting|screen, [t] address, [t] literallayout, verbatim @section [t] programlisting|screen @subheading Name [t] programlisting|screen @subheading Synopsis @example @end example @node [t] address, , [t] programlisting|screen, verbatim @section [t] address @subheading Name [t] address @subheading Synopsis @example @end example @node footnote, force-inline, verbatim, Top @chapter footnote @menu * [t] footnote:: * [t] footnoteref:: @end menu @node [t] footnote, [t] footnoteref, , footnote @section [t] footnote @subheading Name [t] footnote @subheading Synopsis @example @end example @node [t] footnoteref, , [t] footnote, footnote @section [t] footnoteref @subheading Name [t] footnoteref @subheading Synopsis @example @end example @node force-inline, inline, footnote, Top @chapter force-inline @menu * [M] coerce-into-inline:: Process only inline content * [t coerce-into-inline] calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist| simplelist|variablelist| caution|important|note|tip|warning| literallayout|programlisting|programlistingco| screen|screenco|screenshot| synopsis|cmdsynopsis|funcsynopsis| classsynopsis|fieldsynopsis| constructorsynopsis|destructorsynopsis|methodsynopsis| formalpara| address|blockquote| graphic|graphicco|mediaobject|mediaobjectco| informalequation|informalexample|informalfigure|informaltable| equation|example|figure|table| msgset|procedure|qandaset:: * [t coerce-into-inline] para|simpara:: * [t coerce-into-inline] *|text(): [t coerce-into-inline] *|text[]. @end menu @node [M] coerce-into-inline, [t coerce-into-inline] calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist| simplelist|variablelist| caution|important|note|tip|warning| literallayout|programlisting|programlistingco| screen|screenco|screenshot| synopsis|cmdsynopsis|funcsynopsis| classsynopsis|fieldsynopsis| constructorsynopsis|destructorsynopsis|methodsynopsis| formalpara| address|blockquote| graphic|graphicco|mediaobject|mediaobjectco| informalequation|informalexample|informalfigure|informaltable| equation|example|figure|table| msgset|procedure|qandaset, , force-inline @section [M] coerce-into-inline @subheading Name [M] coerce-into-inline --- Process only inline content @subheading Description A few elements in DocBook, namely @code{entry} and @code{footnote}, have content models that allow block-level content (as well as inline-level content), but the mapping to Texinfo does not allow block-level content. This mode selects only the inline content and loudly complains to the user if block-level elements are found. Additionally, simple paragraphs are converted to inline content. @node [t coerce-into-inline] calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist| simplelist|variablelist| caution|important|note|tip|warning| literallayout|programlisting|programlistingco| screen|screenco|screenshot| synopsis|cmdsynopsis|funcsynopsis| classsynopsis|fieldsynopsis| constructorsynopsis|destructorsynopsis|methodsynopsis| formalpara| address|blockquote| graphic|graphicco|mediaobject|mediaobjectco| informalequation|informalexample|informalfigure|informaltable| equation|example|figure|table| msgset|procedure|qandaset, [t coerce-into-inline] para|simpara, [M] coerce-into-inline, force-inline @section [t coerce-into-inline] calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist| simplelist|variablelist| caution|important|note|tip|warning| literallayout|programlisting|programlistingco| screen|screenco|screenshot| synopsis|cmdsynopsis|funcsynopsis| classsynopsis|fieldsynopsis| constructorsynopsis|destructorsynopsis|methodsynopsis| formalpara| address|blockquote| graphic|graphicco|mediaobject|mediaobjectco| informalequation|informalexample|informalfigure|informaltable| equation|example|figure|table| msgset|procedure|qandaset @subheading Name [t coerce-into-inline] calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist| simplelist|variablelist| caution|important|note|tip|warning| literallayout|programlisting|programlistingco| screen|screenco|screenshot| synopsis|cmdsynopsis|funcsynopsis| classsynopsis|fieldsynopsis| constructorsynopsis|destructorsynopsis|methodsynopsis| formalpara| address|blockquote| graphic|graphicco|mediaobject|mediaobjectco| informalequation|informalexample|informalfigure|informaltable| equation|example|figure|table| msgset|procedure|qandaset @subheading Synopsis @example @end example @node [t coerce-into-inline] para|simpara, [t coerce-into-inline] *|text[], [t coerce-into-inline] calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist| simplelist|variablelist| caution|important|note|tip|warning| literallayout|programlisting|programlistingco| screen|screenco|screenshot| synopsis|cmdsynopsis|funcsynopsis| classsynopsis|fieldsynopsis| constructorsynopsis|destructorsynopsis|methodsynopsis| formalpara| address|blockquote| graphic|graphicco|mediaobject|mediaobjectco| informalequation|informalexample|informalfigure|informaltable| equation|example|figure|table| msgset|procedure|qandaset, force-inline @section [t coerce-into-inline] para|simpara @subheading Name [t coerce-into-inline] para|simpara @subheading Synopsis @example @end example @node [t coerce-into-inline] *|text[], , [t coerce-into-inline] para|simpara, force-inline @section [t coerce-into-inline] *|text() @subheading Name [t coerce-into-inline] *|text() @subheading Synopsis @example @end example @node inline, math, force-inline, Top @chapter inline @section inline These are the templates for character inline-level markup. @menu * [T] inline-plain:: Undocumented * [T] inline-monospace:: Undocumented * [T] inline-bold:: Undocumented * [T] inline-italic:: Undocumented * [T] inline-roman:: Undocumented * [T] inline-superscript:: Undocumented * [T] inline-subscript:: Undocumented * [T] inline-markup-emph:: Undocumented * [T] inline-markup-code:: Undocumented * [T] inline-markup-samp:: Undocumented * [T] inline-markup-cite:: Undocumented * [T] inline-markup-email:: Undocumented * [T] inline-markup-dfn:: Undocumented * [T] inline-markup-env:: Undocumented * [T] inline-markup-file:: Undocumented * [T] inline-markup-sc:: Undocumented * [T] inline-markup-acronym:: Undocumented * [T] inline-markup-strong:: Undocumented * [T] inline-markup-key:: Undocumented * [T] inline-markup-kbd:: Undocumented * [T] inline-markup-var:: Undocumented * [t] personname:: * [t] author|editor|othercredit|authorinitials:: * [t] accel:: * [t] action:: * [t] application:: * [t] classname:: * [t] exceptionname:: * [t] interfacename:: * [t] methodname:: * [t] command:: * [t] computeroutput:: * [t] constant:: * [t] database:: * [t] errorcode:: * [t] errorname:: * [t] errortype:: * [t] errortext:: * [t] envar:: * [t] filename:: * [t] refentrytitle/function:: * [t] function:: * [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu:: * [t] hardware:: * [t] interface:: * [t] interfacedefinition:: * [t] keycap:: * [t] keycode:: * [t] keysym:: * [t] literal:: * [t] medialabel:: * [t] shortcut:: * [t] mousebutton:: * [t] option:: * [t] parameter:: * [t] property:: * [t] prompt:: * [t] replaceable:: * [t] returnvalue:: * [t] structfield:: * [t] structname:: * [t] symbol:: * [t] systemitem:: * [t] token:: * [t] type:: * [t] userinput:: * [t] abbrev:: * [t] acronym:: * [t] citerefentry:: * [t] citetitle:: * [t] emphasis[@@role='strong' or @@role='bold' or parent;;emphasis]:: * [t] emphasis:: * [t] foreignphrase:: * [t] markup:: * [t] phrase:: * [t] quote:: * [t] varname:: * [t] wordasword:: * [t] lineannotation:: * [t] superscript:: * [t] subscript:: * [t] trademark:: * [t] firstterm:: * [t] glossterm:: * [t] sgmltag:: * [T] format-sgmltag:: Undocumented * [t] email:: * [t] keycombo:: * [t] menuchoice:: * [T] format-menuchoice:: Undocumented * [t] optional:: * [t] citation:: * [t] comment|remark:: * [t] productname|productnumber:: * [t] pob|street|city|state|postcode|country|phone|fax|otheraddr:: * [t] firstname|surname|lineage|othername|honorific:: @end menu @node [T] inline-plain, [T] inline-monospace, , inline @section [T] inline-plain @subheading Name [T] inline-plain --- Undocumented @subheading Synopsis @example @end example @node [T] inline-monospace, [T] inline-bold, [T] inline-plain, inline @section [T] inline-monospace @subheading Name [T] inline-monospace --- Undocumented @subheading Synopsis @example @end example @node [T] inline-bold, [T] inline-italic, [T] inline-monospace, inline @section [T] inline-bold @subheading Name [T] inline-bold --- Undocumented @subheading Synopsis @example @end example @node [T] inline-italic, [T] inline-roman, [T] inline-bold, inline @section [T] inline-italic @subheading Name [T] inline-italic --- Undocumented @subheading Synopsis @example @end example @node [T] inline-roman, [T] inline-superscript, [T] inline-italic, inline @section [T] inline-roman @subheading Name [T] inline-roman --- Undocumented @subheading Synopsis @example @end example @node [T] inline-superscript, [T] inline-subscript, [T] inline-roman, inline @section [T] inline-superscript @subheading Name [T] inline-superscript --- Undocumented @subheading Synopsis @example @end example @node [T] inline-subscript, [T] inline-markup-emph, [T] inline-superscript, inline @section [T] inline-subscript @subheading Name [T] inline-subscript --- Undocumented @subheading Synopsis @example @end example @node [T] inline-markup-emph, [T] inline-markup-code, [T] inline-subscript, inline @section [T] inline-markup-emph @subheading Name [T] inline-markup-emph --- Undocumented @subheading Synopsis @example @end example @node [T] inline-markup-code, [T] inline-markup-samp, [T] inline-markup-emph, inline @section [T] inline-markup-code @subheading Name [T] inline-markup-code --- Undocumented @subheading Synopsis @example @end example @node [T] inline-markup-samp, [T] inline-markup-cite, [T] inline-markup-code, inline @section [T] inline-markup-samp @subheading Name [T] inline-markup-samp --- Undocumented @subheading Synopsis @example @end example @node [T] inline-markup-cite, [T] inline-markup-email, [T] inline-markup-samp, inline @section [T] inline-markup-cite @subheading Name [T] inline-markup-cite --- Undocumented @subheading Synopsis @example @end example @node [T] inline-markup-email, [T] inline-markup-dfn, [T] inline-markup-cite, inline @section [T] inline-markup-email @subheading Name [T] inline-markup-email --- Undocumented @subheading Synopsis @example @end example @node [T] inline-markup-dfn, [T] inline-markup-env, [T] inline-markup-email, inline @section [T] inline-markup-dfn @subheading Name [T] inline-markup-dfn --- Undocumented @subheading Synopsis @example @end example @node [T] inline-markup-env, [T] inline-markup-file, [T] inline-markup-dfn, inline @section [T] inline-markup-env @subheading Name [T] inline-markup-env --- Undocumented @subheading Synopsis @example @end example @node [T] inline-markup-file, [T] inline-markup-sc, [T] inline-markup-env, inline @section [T] inline-markup-file @subheading Name [T] inline-markup-file --- Undocumented @subheading Synopsis @example @end example @node [T] inline-markup-sc, [T] inline-markup-acronym, [T] inline-markup-file, inline @section [T] inline-markup-sc @subheading Name [T] inline-markup-sc --- Undocumented @subheading Synopsis @example @end example @node [T] inline-markup-acronym, [T] inline-markup-strong, [T] inline-markup-sc, inline @section [T] inline-markup-acronym @subheading Name [T] inline-markup-acronym --- Undocumented @subheading Synopsis @example @end example @node [T] inline-markup-strong, [T] inline-markup-key, [T] inline-markup-acronym, inline @section [T] inline-markup-strong @subheading Name [T] inline-markup-strong --- Undocumented @subheading Synopsis @example @end example @node [T] inline-markup-key, [T] inline-markup-kbd, [T] inline-markup-strong, inline @section [T] inline-markup-key @subheading Name [T] inline-markup-key --- Undocumented @subheading Synopsis @example @end example @node [T] inline-markup-kbd, [T] inline-markup-var, [T] inline-markup-key, inline @section [T] inline-markup-kbd @subheading Name [T] inline-markup-kbd --- Undocumented @subheading Synopsis @example @end example @node [T] inline-markup-var, [t] personname, [T] inline-markup-kbd, inline @section [T] inline-markup-var @subheading Name [T] inline-markup-var --- Undocumented @subheading Synopsis @example @end example @node [t] personname, [t] author|editor|othercredit|authorinitials, [T] inline-markup-var, inline @section [t] personname @subheading Name [t] personname @subheading Synopsis @example @end example @node [t] author|editor|othercredit|authorinitials, [t] accel, [t] personname, inline @section [t] author|editor|othercredit|authorinitials @subheading Name [t] author|editor|othercredit|authorinitials @subheading Synopsis @example @end example @node [t] accel, [t] action, [t] author|editor|othercredit|authorinitials, inline @section [t] accel @subheading Name [t] accel @subheading Synopsis @example @end example @node [t] action, [t] application, [t] accel, inline @section [t] action @subheading Name [t] action @subheading Synopsis @example @end example @node [t] application, [t] classname, [t] action, inline @section [t] application @subheading Name [t] application @subheading Synopsis @example @end example @node [t] classname, [t] exceptionname, [t] application, inline @section [t] classname @subheading Name [t] classname @subheading Synopsis @example @end example @node [t] exceptionname, [t] interfacename, [t] classname, inline @section [t] exceptionname @subheading Name [t] exceptionname @subheading Synopsis @example @end example @node [t] interfacename, [t] methodname, [t] exceptionname, inline @section [t] interfacename @subheading Name [t] interfacename @subheading Synopsis @example @end example @node [t] methodname, [t] command, [t] interfacename, inline @section [t] methodname @subheading Name [t] methodname @subheading Synopsis @example @end example @node [t] command, [t] computeroutput, [t] methodname, inline @section [t] command @subheading Name [t] command @subheading Synopsis @example @end example @node [t] computeroutput, [t] constant, [t] command, inline @section [t] computeroutput @subheading Name [t] computeroutput @subheading Synopsis @example @end example @node [t] constant, [t] database, [t] computeroutput, inline @section [t] constant @subheading Name [t] constant @subheading Synopsis @example @end example @node [t] database, [t] errorcode, [t] constant, inline @section [t] database @subheading Name [t] database @subheading Synopsis @example @end example @node [t] errorcode, [t] errorname, [t] database, inline @section [t] errorcode @subheading Name [t] errorcode @subheading Synopsis @example @end example @node [t] errorname, [t] errortype, [t] errorcode, inline @section [t] errorname @subheading Name [t] errorname @subheading Synopsis @example @end example @node [t] errortype, [t] errortext, [t] errorname, inline @section [t] errortype @subheading Name [t] errortype @subheading Synopsis @example @end example @node [t] errortext, [t] envar, [t] errortype, inline @section [t] errortext @subheading Name [t] errortext @subheading Synopsis @example @end example @node [t] envar, [t] filename, [t] errortext, inline @section [t] envar @subheading Name [t] envar @subheading Synopsis @example @end example @node [t] filename, [t] refentrytitle/function, [t] envar, inline @section [t] filename @subheading Name [t] filename @subheading Synopsis @example @end example @node [t] refentrytitle/function, [t] function, [t] filename, inline @section [t] refentrytitle/function @subheading Name [t] refentrytitle/function @subheading Synopsis @example @end example @node [t] function, [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu, [t] refentrytitle/function, inline @section [t] function @subheading Name [t] function @subheading Synopsis @example @end example @node [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu, [t] hardware, [t] function, inline @section [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu @subheading Name [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu @subheading Synopsis @example @end example @node [t] hardware, [t] interface, [t] guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu, inline @section [t] hardware @subheading Name [t] hardware @subheading Synopsis @example @end example @node [t] interface, [t] interfacedefinition, [t] hardware, inline @section [t] interface @subheading Name [t] interface @subheading Synopsis @example @end example @node [t] interfacedefinition, [t] keycap, [t] interface, inline @section [t] interfacedefinition @subheading Name [t] interfacedefinition @subheading Synopsis @example @end example @node [t] keycap, [t] keycode, [t] interfacedefinition, inline @section [t] keycap @subheading Name [t] keycap @subheading Synopsis @example @end example @node [t] keycode, [t] keysym, [t] keycap, inline @section [t] keycode @subheading Name [t] keycode @subheading Synopsis @example @end example @node [t] keysym, [t] literal, [t] keycode, inline @section [t] keysym @subheading Name [t] keysym @subheading Synopsis @example @end example @node [t] literal, [t] medialabel, [t] keysym, inline @section [t] literal @subheading Name [t] literal @subheading Synopsis @example @end example @node [t] medialabel, [t] shortcut, [t] literal, inline @section [t] medialabel @subheading Name [t] medialabel @subheading Synopsis @example @end example @node [t] shortcut, [t] mousebutton, [t] medialabel, inline @section [t] shortcut @subheading Name [t] shortcut @subheading Synopsis @example @end example @node [t] mousebutton, [t] option, [t] shortcut, inline @section [t] mousebutton @subheading Name [t] mousebutton @subheading Synopsis @example @end example @node [t] option, [t] parameter, [t] mousebutton, inline @section [t] option @subheading Name [t] option @subheading Synopsis @example @end example @node [t] parameter, [t] property, [t] option, inline @section [t] parameter @subheading Name [t] parameter @subheading Synopsis @example @end example @node [t] property, [t] prompt, [t] parameter, inline @section [t] property @subheading Name [t] property @subheading Synopsis @example @end example @node [t] prompt, [t] replaceable, [t] property, inline @section [t] prompt @subheading Name [t] prompt @subheading Synopsis @example @end example @node [t] replaceable, [t] returnvalue, [t] prompt, inline @section [t] replaceable @subheading Name [t] replaceable @subheading Synopsis @example @end example @node [t] returnvalue, [t] structfield, [t] replaceable, inline @section [t] returnvalue @subheading Name [t] returnvalue @subheading Synopsis @example @end example @node [t] structfield, [t] structname, [t] returnvalue, inline @section [t] structfield @subheading Name [t] structfield @subheading Synopsis @example @end example @node [t] structname, [t] symbol, [t] structfield, inline @section [t] structname @subheading Name [t] structname @subheading Synopsis @example @end example @node [t] symbol, [t] systemitem, [t] structname, inline @section [t] symbol @subheading Name [t] symbol @subheading Synopsis @example @end example @node [t] systemitem, [t] token, [t] symbol, inline @section [t] systemitem @subheading Name [t] systemitem @subheading Synopsis @example @end example @node [t] token, [t] type, [t] systemitem, inline @section [t] token @subheading Name [t] token @subheading Synopsis @example @end example @node [t] type, [t] userinput, [t] token, inline @section [t] type @subheading Name [t] type @subheading Synopsis @example @end example @node [t] userinput, [t] abbrev, [t] type, inline @section [t] userinput @subheading Name [t] userinput @subheading Synopsis @example @end example @node [t] abbrev, [t] acronym, [t] userinput, inline @section [t] abbrev @subheading Name [t] abbrev @subheading Synopsis @example @end example @node [t] acronym, [t] citerefentry, [t] abbrev, inline @section [t] acronym @subheading Name [t] acronym @subheading Synopsis @example @end example @node [t] citerefentry, [t] citetitle, [t] acronym, inline @section [t] citerefentry @subheading Name [t] citerefentry @subheading Synopsis @example @end example @node [t] citetitle, [t] emphasis[@@role='strong' or @@role='bold' or parent;;emphasis], [t] citerefentry, inline @section [t] citetitle @subheading Name [t] citetitle @subheading Synopsis @example @end example @node [t] emphasis[@@role='strong' or @@role='bold' or parent;;emphasis], [t] emphasis, [t] citetitle, inline @section [t] emphasis[@@role='strong' or @@role='bold' or parent::emphasis] @subheading Name [t] emphasis[@@role='strong' or @@role='bold' or parent::emphasis] @subheading Synopsis @example @end example @node [t] emphasis, [t] foreignphrase, [t] emphasis[@@role='strong' or @@role='bold' or parent;;emphasis], inline @section [t] emphasis @subheading Name [t] emphasis @subheading Synopsis @example @end example @node [t] foreignphrase, [t] markup, [t] emphasis, inline @section [t] foreignphrase @subheading Name [t] foreignphrase @subheading Synopsis @example @end example @node [t] markup, [t] phrase, [t] foreignphrase, inline @section [t] markup @subheading Name [t] markup @subheading Synopsis @example @end example @node [t] phrase, [t] quote, [t] markup, inline @section [t] phrase @subheading Name [t] phrase @subheading Synopsis @example @end example @node [t] quote, [t] varname, [t] phrase, inline @section [t] quote @subheading Name [t] quote @subheading Synopsis @example @end example @node [t] varname, [t] wordasword, [t] quote, inline @section [t] varname @subheading Name [t] varname @subheading Synopsis @example @end example @node [t] wordasword, [t] lineannotation, [t] varname, inline @section [t] wordasword @subheading Name [t] wordasword @subheading Synopsis @example @end example @node [t] lineannotation, [t] superscript, [t] wordasword, inline @section [t] lineannotation @subheading Name [t] lineannotation @subheading Synopsis @example @end example @node [t] superscript, [t] subscript, [t] lineannotation, inline @section [t] superscript @subheading Name [t] superscript @subheading Synopsis @example @end example @node [t] subscript, [t] trademark, [t] superscript, inline @section [t] subscript @subheading Name [t] subscript @subheading Synopsis @example @end example @node [t] trademark, [t] firstterm, [t] subscript, inline @section [t] trademark @subheading Name [t] trademark @subheading Synopsis @example @end example @node [t] firstterm, [t] glossterm, [t] trademark, inline @section [t] firstterm @subheading Name [t] firstterm @subheading Synopsis @example @end example @node [t] glossterm, [t] sgmltag, [t] firstterm, inline @section [t] glossterm @subheading Name [t] glossterm @subheading Synopsis @example @end example @node [t] sgmltag, [T] format-sgmltag, [t] glossterm, inline @section [t] sgmltag @subheading Name [t] sgmltag @subheading Synopsis @example @end example @node [T] format-sgmltag, [t] email, [t] sgmltag, inline @section [T] format-sgmltag @subheading Name [T] format-sgmltag --- Undocumented @subheading Synopsis @example element @end example @node [t] email, [t] keycombo, [T] format-sgmltag, inline @section [t] email @subheading Name [t] email @subheading Synopsis @example @end example @node [t] keycombo, [t] menuchoice, [t] email, inline @section [t] keycombo @subheading Name [t] keycombo @subheading Synopsis @example @end example @node [t] menuchoice, [T] format-menuchoice, [t] keycombo, inline @section [t] menuchoice @subheading Name [t] menuchoice @subheading Synopsis @example @end example @node [T] format-menuchoice, [t] optional, [t] menuchoice, inline @section [T] format-menuchoice @subheading Name [T] format-menuchoice --- Undocumented @subheading Synopsis @example @end example @node [t] optional, [t] citation, [T] format-menuchoice, inline @section [t] optional @subheading Name [t] optional @subheading Synopsis @example @end example @node [t] citation, [t] comment|remark, [t] optional, inline @section [t] citation @subheading Name [t] citation @subheading Synopsis @example @end example @node [t] comment|remark, [t] productname|productnumber, [t] citation, inline @section [t] comment|remark @subheading Name [t] comment|remark @subheading Synopsis @example @end example @node [t] productname|productnumber, [t] pob|street|city|state|postcode|country|phone|fax|otheraddr, [t] comment|remark, inline @section [t] productname|productnumber @subheading Name [t] productname|productnumber @subheading Synopsis @example @end example @node [t] pob|street|city|state|postcode|country|phone|fax|otheraddr, [t] firstname|surname|lineage|othername|honorific, [t] productname|productnumber, inline @section [t] pob|street|city|state|postcode|country|phone|fax|otheraddr @subheading Name [t] pob|street|city|state|postcode|country|phone|fax|otheraddr @subheading Synopsis @example @end example @node [t] firstname|surname|lineage|othername|honorific, , [t] pob|street|city|state|postcode|country|phone|fax|otheraddr, inline @section [t] firstname|surname|lineage|othername|honorific @subheading Name [t] firstname|surname|lineage|othername|honorific @subheading Synopsis @example @end example @node math, qandaset, inline, Top @chapter math @section math Currently we do not support the use of TeX for mathematics. @menu * [t] inlineequation:: * [t] alt:: @end menu @node [t] inlineequation, [t] alt, , math @section [t] inlineequation @subheading Name [t] inlineequation @subheading Synopsis @example @end example @node [t] alt, , [t] inlineequation, math @section [t] alt @subheading Name [t] alt @subheading Synopsis @example @end example @node qandaset, table, math, Top @chapter qandaset @menu * [t] question|answer:: * [t] qandaentry:: * [t] qandaset|qandadiv:: * [t] label:: @end menu @node [t] question|answer, [t] qandaentry, , qandaset @section [t] question|answer @subheading Name [t] question|answer @subheading Synopsis @example @end example @node [t] qandaentry, [t] qandaset|qandadiv, [t] question|answer, qandaset @section [t] qandaentry @subheading Name [t] qandaentry @subheading Synopsis @example @end example @node [t] qandaset|qandadiv, [t] label, [t] qandaentry, qandaset @section [t] qandaset|qandadiv @subheading Name [t] qandaset|qandadiv @subheading Synopsis @example @end example @node [t] label, , [t] qandaset|qandadiv, qandaset @section [t] label @subheading Name [t] label @subheading Synopsis @example @end example @node table, xref, qandaset, Top @chapter table @menu * [t] tgroup:: * [t] colspec:: * [t] spanspec:: * [t] thead|tfoot|tbody:: * [t] thead/colspec:: * [t] tfoot/colspec:: * [t] row:: * [t] entry:: * [T] get-proportional-colwidth:: Get the proportional width as specified in the given colspec @end menu @node [t] tgroup, [t] colspec, , table @section [t] tgroup @subheading Name [t] tgroup @subheading Synopsis @example @end example @node [t] colspec, [t] spanspec, [t] tgroup, table @section [t] colspec @subheading Name [t] colspec @subheading Synopsis @example @end example @node [t] spanspec, [t] thead|tfoot|tbody, [t] colspec, table @section [t] spanspec @subheading Name [t] spanspec @subheading Synopsis @example @end example @node [t] thead|tfoot|tbody, [t] thead/colspec, [t] spanspec, table @section [t] thead|tfoot|tbody @subheading Name [t] thead|tfoot|tbody @subheading Synopsis @example @end example @node [t] thead/colspec, [t] tfoot/colspec, [t] thead|tfoot|tbody, table @section [t] thead/colspec @subheading Name [t] thead/colspec @subheading Synopsis @example @end example @node [t] tfoot/colspec, [t] row, [t] thead/colspec, table @section [t] tfoot/colspec @subheading Name [t] tfoot/colspec @subheading Synopsis @example @end example @node [t] row, [t] entry, [t] tfoot/colspec, table @section [t] row @subheading Name [t] row @subheading Synopsis @example @end example @node [t] entry, [T] get-proportional-colwidth, [t] row, table @section [t] entry @subheading Name [t] entry @subheading Synopsis @example @end example @node [T] get-proportional-colwidth, , [t] entry, table @section [T] get-proportional-colwidth @subheading Name [T] get-proportional-colwidth --- Get the proportional width as specified in the given @code{colspec} @subheading Synopsis @example @end example @subheading Description In CALS tables, the @code{colspec} has the attribute @code{colwidth} which can specify either absolute column widths, relative column widths, or a mixture of both measures. Texinfo only supports relative column widths. This template coerces all absolute column widths into relative ones, as follows: @table @asis @item No width is specified Then the column is assumed to have a relative column width of one. @item Absolute widths These are simply translated to a relative column width of one. @item Mixture These are of the form @samp{@var{P}*+@var{M}}, where @var{P} is the relative column width, and @var{M} is an absolute column width. The sign may also be minus instead of plus, with the obvious meaning. This template drops the @var{M} part and its sign. @end table @subheading Parameters @table @asis @item @code{colspec} A node-set that is the @code{colspec} element to determine widths for. @end table @node xref, glossary, table, Top @chapter xref @menu * [T] anchor:: Undocumented * [t] anchor:: * [T] check-xref:: Undocumented * [t] xref:: * [t] link:: * [t] ulink:: * [t] olink:: * [M] xref-to:: Give cross-reference markup * [t xref-to] *:: * [t xref-to] co:: @end menu @node [T] anchor, [t] anchor, , xref @section [T] anchor @subheading Name [T] anchor --- Undocumented @subheading Synopsis @example @end example @node [t] anchor, [T] check-xref, [T] anchor, xref @section [t] anchor @subheading Name [t] anchor @subheading Synopsis @example @end example @node [T] check-xref, [t] xref, [t] anchor, xref @section [T] check-xref @subheading Name [T] check-xref --- Undocumented @subheading Synopsis @example @end example @node [t] xref, [t] link, [T] check-xref, xref @section [t] xref @subheading Name [t] xref @subheading Synopsis @example @end example @node [t] link, [t] ulink, [t] xref, xref @section [t] link @subheading Name [t] link @subheading Synopsis @example @end example @node [t] ulink, [t] olink, [t] link, xref @section [t] ulink @subheading Name [t] ulink @subheading Synopsis @example @end example @node [t] olink, [M] xref-to, [t] ulink, xref @section [t] olink @subheading Name [t] olink @subheading Synopsis @example @end example @node [M] xref-to, [t xref-to] *, [t] olink, xref @section [M] xref-to @subheading Name [M] xref-to --- Give cross-reference markup @subheading Description Processing an element with this mode returns the markup/text that should be used for referring to it in cross-references. Since Texinfo already handles cross references to nodes, this mode does mostly nothing. FIXME: However we need something for anchors... @node [t xref-to] *, [t xref-to] co, [M] xref-to, xref @section [t xref-to] * @subheading Name [t xref-to] * @subheading Synopsis @example @end example @node [t xref-to] co, , [t xref-to] *, xref @section [t xref-to] co @subheading Name [t xref-to] co @subheading Synopsis @example @end example @node glossary, lists, xref, Top @chapter glossary @menu * [t] glossary:: * [t] glosslist:: * [t] glossdiv:: * [t] glossentry:: * [t] glossentry/glossterm:: * [t] glossentry/acronym:: * [t] glossentry/abbrev:: * [t] glossentry/revhistory:: * [t] glossentry/glossdef:: * [t] glossentry/glosssee|glossseealso:: * [t glosssee-xref] glossentry:: * [t glosssee-xref] glossentry/glossterm[1]:: * [t glosssee-xref] *:: @end menu @node [t] glossary, [t] glosslist, , glossary @section [t] glossary @subheading Name [t] glossary @subheading Synopsis @example @end example @node [t] glosslist, [t] glossdiv, [t] glossary, glossary @section [t] glosslist @subheading Name [t] glosslist @subheading Synopsis @example @end example @node [t] glossdiv, [t] glossentry, [t] glosslist, glossary @section [t] glossdiv @subheading Name [t] glossdiv @subheading Synopsis @example @end example @node [t] glossentry, [t] glossentry/glossterm, [t] glossdiv, glossary @section [t] glossentry @subheading Name [t] glossentry @subheading Synopsis @example @end example @node [t] glossentry/glossterm, [t] glossentry/acronym, [t] glossentry, glossary @section [t] glossentry/glossterm @subheading Name [t] glossentry/glossterm @subheading Synopsis @example @end example @node [t] glossentry/acronym, [t] glossentry/abbrev, [t] glossentry/glossterm, glossary @section [t] glossentry/acronym @subheading Name [t] glossentry/acronym @subheading Synopsis @example @end example @node [t] glossentry/abbrev, [t] glossentry/revhistory, [t] glossentry/acronym, glossary @section [t] glossentry/abbrev @subheading Name [t] glossentry/abbrev @subheading Synopsis @example @end example @node [t] glossentry/revhistory, [t] glossentry/glossdef, [t] glossentry/abbrev, glossary @section [t] glossentry/revhistory @subheading Name [t] glossentry/revhistory @subheading Synopsis @example @end example @node [t] glossentry/glossdef, [t] glossentry/glosssee|glossseealso, [t] glossentry/revhistory, glossary @section [t] glossentry/glossdef @subheading Name [t] glossentry/glossdef @subheading Synopsis @example @end example @node [t] glossentry/glosssee|glossseealso, [t glosssee-xref] glossentry, [t] glossentry/glossdef, glossary @section [t] glossentry/glosssee|glossseealso @subheading Name [t] glossentry/glosssee|glossseealso @subheading Synopsis @example @end example @node [t glosssee-xref] glossentry, [t glosssee-xref] glossentry/glossterm[1], [t] glossentry/glosssee|glossseealso, glossary @section [t glosssee-xref] glossentry @subheading Name [t glosssee-xref] glossentry @subheading Synopsis @example @end example @node [t glosssee-xref] glossentry/glossterm[1], [t glosssee-xref] *, [t glosssee-xref] glossentry, glossary @section [t glosssee-xref] glossentry/glossterm[1] @subheading Name [t glosssee-xref] glossentry/glossterm[1] @subheading Synopsis @example @end example @node [t glosssee-xref] *, , [t glosssee-xref] glossentry/glossterm[1], glossary @section [t glosssee-xref] * @subheading Name [t glosssee-xref] * @subheading Synopsis @example @end example @node lists, callout, glossary, Top @chapter lists @menu * [t] itemizedlist:: * [t] orderedlist:: * [t] variablelist:: * [t] listitem:: * [t] varlistentry:: * [t] varlistentry/term:: * [t] varlistentry/listitem:: * [t] simplelist[@@type='horiz']:: * [t] simplelist:: * [t] simplelist[@@type='inline']:: * [T] simplelist-horiz:: Undocumented * [T] simplelist-horiz-row:: Undocumented * [T] simplelist-vert:: Undocumented * [T] simplelist-vert-row:: Undocumented * [t] member:: * [t] simplelist[@@type='inline']/member:: * [t] simplelist[@@type='inline']/member[1]:: * [t] procedure:: * [t] substeps:: * [t] step:: * [t] segmentedlist:: * [t] segtitle:: * [t segtitle-in-seg] segtitle:: * [t] seglistitem:: * [t] seg:: @end menu @node [t] itemizedlist, [t] orderedlist, , lists @section [t] itemizedlist @subheading Name [t] itemizedlist @subheading Synopsis @example @end example @node [t] orderedlist, [t] variablelist, [t] itemizedlist, lists @section [t] orderedlist @subheading Name [t] orderedlist @subheading Synopsis @example @end example @node [t] variablelist, [t] listitem, [t] orderedlist, lists @section [t] variablelist @subheading Name [t] variablelist @subheading Synopsis @example @end example @node [t] listitem, [t] varlistentry, [t] variablelist, lists @section [t] listitem @subheading Name [t] listitem @subheading Synopsis @example @end example @node [t] varlistentry, [t] varlistentry/term, [t] listitem, lists @section [t] varlistentry @subheading Name [t] varlistentry @subheading Synopsis @example @end example @node [t] varlistentry/term, [t] varlistentry/listitem, [t] varlistentry, lists @section [t] varlistentry/term @subheading Name [t] varlistentry/term @subheading Synopsis @example @end example @node [t] varlistentry/listitem, [t] simplelist[@@type='horiz'], [t] varlistentry/term, lists @section [t] varlistentry/listitem @subheading Name [t] varlistentry/listitem @subheading Synopsis @example @end example @node [t] simplelist[@@type='horiz'], [t] simplelist, [t] varlistentry/listitem, lists @section [t] simplelist[@@type='horiz'] @subheading Name [t] simplelist[@@type='horiz'] @subheading Synopsis @example @end example @node [t] simplelist, [t] simplelist[@@type='inline'], [t] simplelist[@@type='horiz'], lists @section [t] simplelist @subheading Name [t] simplelist @subheading Synopsis @example @end example @node [t] simplelist[@@type='inline'], [T] simplelist-horiz, [t] simplelist, lists @section [t] simplelist[@@type='inline'] @subheading Name [t] simplelist[@@type='inline'] @subheading Synopsis @example @end example @node [T] simplelist-horiz, [T] simplelist-horiz-row, [t] simplelist[@@type='inline'], lists @section [T] simplelist-horiz @subheading Name [T] simplelist-horiz --- Undocumented @subheading Synopsis @example 1 1 @end example @node [T] simplelist-horiz-row, [T] simplelist-vert, [T] simplelist-horiz, lists @section [T] simplelist-horiz-row @subheading Name [T] simplelist-horiz-row --- Undocumented @subheading Synopsis @example 1 1 1 @end example @node [T] simplelist-vert, [T] simplelist-vert-row, [T] simplelist-horiz-row, lists @section [T] simplelist-vert @subheading Name [T] simplelist-vert --- Undocumented @subheading Synopsis @example 1 1 @end example @node [T] simplelist-vert-row, [t] member, [T] simplelist-vert, lists @section [T] simplelist-vert-row @subheading Name [T] simplelist-vert-row --- Undocumented @subheading Synopsis @example 1 1 1 1 @end example @node [t] member, [t] simplelist[@@type='inline']/member, [T] simplelist-vert-row, lists @section [t] member @subheading Name [t] member @subheading Synopsis @example @end example @node [t] simplelist[@@type='inline']/member, [t] simplelist[@@type='inline']/member[1], [t] member, lists @section [t] simplelist[@@type='inline']/member @subheading Name [t] simplelist[@@type='inline']/member @subheading Synopsis @example @end example @node [t] simplelist[@@type='inline']/member[1], [t] procedure, [t] simplelist[@@type='inline']/member, lists @section [t] simplelist[@@type='inline']/member[1] @subheading Name [t] simplelist[@@type='inline']/member[1] @subheading Synopsis @example @end example @node [t] procedure, [t] substeps, [t] simplelist[@@type='inline']/member[1], lists @section [t] procedure @subheading Name [t] procedure @subheading Synopsis @example @end example @node [t] substeps, [t] step, [t] procedure, lists @section [t] substeps @subheading Name [t] substeps @subheading Synopsis @example @end example @node [t] step, [t] segmentedlist, [t] substeps, lists @section [t] step @subheading Name [t] step @subheading Synopsis @example @end example @node [t] segmentedlist, [t] segtitle, [t] step, lists @section [t] segmentedlist @subheading Name [t] segmentedlist @subheading Synopsis @example @end example @node [t] segtitle, [t segtitle-in-seg] segtitle, [t] segmentedlist, lists @section [t] segtitle @subheading Name [t] segtitle @subheading Synopsis @example @end example @node [t segtitle-in-seg] segtitle, [t] seglistitem, [t] segtitle, lists @section [t segtitle-in-seg] segtitle @subheading Name [t segtitle-in-seg] segtitle @subheading Synopsis @example @end example @node [t] seglistitem, [t] seg, [t segtitle-in-seg] segtitle, lists @section [t] seglistitem @subheading Name [t] seglistitem @subheading Synopsis @example @end example @node [t] seg, , [t] seglistitem, lists @section [t] seg @subheading Name [t] seg @subheading Synopsis @example @end example @node callout, graphics, lists, Top @chapter callout @section callout @quotation @strong{Note} Out-of-line call-outs (i.e. those specified with @code{ arearef}) are not supported properly (currently only the coordinates are printed, with no bug placed in the specified location). @end quotation @menu * [t] programlistingco|screenco:: * [t] areaspec|areaset|area:: * [t no-inline-markup] co:: * [t] co:: * [t co] co:: * [T] callout-bug:: Undocumented * [t] coref:: * [T] check-co:: Undocumented * [t] calloutlist:: * [t] callout:: * [T] callout-process-arearefs:: Undocumented * [T] callout-arearef:: Undocumented @end menu @node [t] programlistingco|screenco, [t] areaspec|areaset|area, , callout @section [t] programlistingco|screenco @subheading Name [t] programlistingco|screenco @subheading Synopsis @example @end example @node [t] areaspec|areaset|area, [t no-inline-markup] co, [t] programlistingco|screenco, callout @section [t] areaspec|areaset|area @subheading Name [t] areaspec|areaset|area @subheading Synopsis @example @end example @node [t no-inline-markup] co, [t] co, [t] areaspec|areaset|area, callout @section [t no-inline-markup] co @subheading Name [t no-inline-markup] co @subheading Synopsis @example @end example @node [t] co, [t co] co, [t no-inline-markup] co, callout @section [t] co @subheading Name [t] co @subheading Synopsis @example @end example @node [t co] co, [T] callout-bug, [t] co, callout @section [t co] co @subheading Name [t co] co @subheading Synopsis @example @end example @node [T] callout-bug, [t] coref, [t co] co, callout @section [T] callout-bug @subheading Name [T] callout-bug --- Undocumented @subheading Synopsis @example @end example @node [t] coref, [T] check-co, [T] callout-bug, callout @section [t] coref @subheading Name [t] coref @subheading Synopsis @example @end example @node [T] check-co, [t] calloutlist, [t] coref, callout @section [T] check-co @subheading Name [T] check-co --- Undocumented @subheading Synopsis @example @end example @node [t] calloutlist, [t] callout, [T] check-co, callout @section [t] calloutlist @subheading Name [t] calloutlist @subheading Synopsis @example @end example @node [t] callout, [T] callout-process-arearefs, [t] calloutlist, callout @section [t] callout @subheading Name [t] callout @subheading Synopsis @example @end example @node [T] callout-process-arearefs, [T] callout-arearef, [t] callout, callout @section [T] callout-process-arearefs @subheading Name [T] callout-process-arearefs --- Undocumented @subheading Synopsis @example @end example @node [T] callout-arearef, , [T] callout-process-arearefs, callout @section [T] callout-arearef @subheading Name [T] callout-arearef --- Undocumented @subheading Synopsis @example @end example @node graphics, biblio, callout, Top @chapter graphics @menu * [t] screenshot:: * [t] screeninfo:: * [T] imagedata:: Undocumented * [t] graphic:: * [t] inlinegraphic:: * [T] select-mediaobject:: Undocumented * [t] mediaobject:: * [t] inlinemediaobject:: * [t] objectinfo:: * [t] imageobject:: * [t] textobject:: * [t] caption:: @end menu @node [t] screenshot, [t] screeninfo, , graphics @section [t] screenshot @subheading Name [t] screenshot @subheading Synopsis @example @end example @node [t] screeninfo, [T] imagedata, [t] screenshot, graphics @section [t] screeninfo @subheading Name [t] screeninfo @subheading Synopsis @example @end example @node [T] imagedata, [t] graphic, [t] screeninfo, graphics @section [T] imagedata @subheading Name [T] imagedata --- Undocumented @subheading Synopsis @example @end example @node [t] graphic, [t] inlinegraphic, [T] imagedata, graphics @section [t] graphic @subheading Name [t] graphic @subheading Synopsis @example @end example @node [t] inlinegraphic, [T] select-mediaobject, [t] graphic, graphics @section [t] inlinegraphic @subheading Name [t] inlinegraphic @subheading Synopsis @example @end example @node [T] select-mediaobject, [t] mediaobject, [t] inlinegraphic, graphics @section [T] select-mediaobject @subheading Name [T] select-mediaobject --- Undocumented @subheading Synopsis @example @end example @node [t] mediaobject, [t] inlinemediaobject, [T] select-mediaobject, graphics @section [t] mediaobject @subheading Name [t] mediaobject @subheading Synopsis @example @end example @node [t] inlinemediaobject, [t] objectinfo, [t] mediaobject, graphics @section [t] inlinemediaobject @subheading Name [t] inlinemediaobject @subheading Synopsis @example @end example @node [t] objectinfo, [t] imageobject, [t] inlinemediaobject, graphics @section [t] objectinfo @subheading Name [t] objectinfo @subheading Synopsis @example @end example @node [t] imageobject, [t] textobject, [t] objectinfo, graphics @section [t] imageobject @subheading Name [t] imageobject @subheading Synopsis @example @end example @node [t] textobject, [t] caption, [t] imageobject, graphics @section [t] textobject @subheading Name [t] textobject @subheading Synopsis @example @end example @node [t] caption, , [t] textobject, graphics @section [t] caption @subheading Name [t] caption @subheading Synopsis @example @end example @node biblio, info, graphics, Top @chapter biblio @section biblio @quotation @strong{Note} Bibliographies are probably broken right now. They may still work for you, but the entire system really needs an overhaul. @end quotation @menu * [t] bibliography:: * [T] biblio-item-separator:: Undocumented * [t] bibliodiv:: * [t] biblioentry:: * [t] bibliomixed:: * [t bibliography] *:: * [t bibliography] abbrev:: * [t bibliography] abstract:: * [t bibliography] address:: * [t bibliography] affiliation:: * [t bibliography] shortaffil:: * [t bibliography] jobtitle:: * [t bibliography] artheader:: * [t bibliography] artpagenums:: * [t bibliography] author:: * [t bibliography] authorblurb:: * [t bibliography] authorgroup:: * [t bibliography] authorinitials:: * [t bibliography] bibliomisc:: * [t bibliography] bibliomset:: * [t bibliography] biblioset:: * [t bibliography] biblioset/title|biblioset/citetitle:: * [t bibliography] bookbiblio:: * [t bibliography] citetitle:: * [t bibliography] collab:: * [t bibliography] collabname:: * [t bibliography] confgroup:: * [t bibliography] confdates:: * [t bibliography] conftitle:: * [t bibliography] confnum:: * [t bibliography] confsponsor:: * [t bibliography] contractnum:: * [t bibliography] contractsponsor:: * [t bibliography] contrib:: * [t bibliography] copyright:: * [t bibliography] year:: * [t bibliography] year[position()=last()]: [t bibliography] year[position[]=last[]]. * [t bibliography] holder:: * [t bibliography] corpauthor:: * [t bibliography] corpname:: * [t bibliography] date:: * [t bibliography] edition:: * [t bibliography] editor:: * [t bibliography] personname:: * [t bibliography] firstname:: * [t bibliography] honorific:: * [t bibliography] indexterm:: * [t bibliography] invpartnumber:: * [t bibliography] isbn:: * [t bibliography] issn:: * [t bibliography] issuenum:: * [t bibliography] lineage:: * [t bibliography] orgname:: * [t bibliography] orgdiv:: * [t bibliography] othercredit:: * [t bibliography] othername:: * [t bibliography] pagenums:: * [t bibliography] printhistory:: * [t bibliography] productname:: * [t bibliography] productnumber:: * [t bibliography] pubdate:: * [t bibliography] publisher:: * [t bibliography] publishername:: * [t bibliography] pubsnumber:: * [t bibliography] releaseinfo:: * [t bibliography] revhistory:: * [t bibliography] seriesinfo:: * [t bibliography] seriesvolnums:: * [t bibliography] subtitle:: * [t bibliography] surname:: * [t bibliography] title:: * [t bibliography] titleabbrev:: * [t bibliography] volumenum:: * [t bibliomixed] *:: * [t bibliomixed] abbrev:: * [t bibliomixed] abstract:: * [t bibliomixed] address:: * [t bibliomixed] affiliation:: * [t bibliomixed] artpagenums:: * [t bibliomixed] author:: * [t bibliomixed] authorblurb:: * [t bibliomixed] authorgroup:: * [t bibliomixed] authorinitials:: * [t bibliomixed] bibliomisc:: * [t bibliomixed] bibliomset:: * [t bibliomixed] bibliomset/title|bibliomset/citetitle:: * [t bibliomixed] biblioset:: * [t bibliomixed] citetitle:: * [t bibliomixed] collab:: * [t bibliomixed] confgroup:: * [t bibliomixed] contractnum:: * [t bibliomixed] contractsponsor:: * [t bibliomixed] contrib:: * [t bibliomixed] copyright:: * [t bibliomixed] corpauthor:: * [t bibliomixed] corpname:: * [t bibliomixed] date:: * [t bibliomixed] edition:: * [t bibliomixed] editor:: * [t bibliomixed] firstname:: * [t bibliomixed] honorific:: * [t bibliomixed] indexterm:: * [t bibliomixed] invpartnumber:: * [t bibliomixed] isbn:: * [t bibliomixed] issn:: * [t bibliomixed] issuenum:: * [t bibliomixed] lineage:: * [t bibliomixed] orgname:: * [t bibliomixed] othercredit:: * [t bibliomixed] othername:: * [t bibliomixed] pagenums:: * [t bibliomixed] printhistory:: * [t bibliomixed] productname:: * [t bibliomixed] productnumber:: * [t bibliomixed] pubdate:: * [t bibliomixed] publisher:: * [t bibliomixed] publishername:: * [t bibliomixed] pubsnumber:: * [t bibliomixed] releaseinfo:: * [t bibliomixed] revhistory:: * [t bibliomixed] seriesvolnums:: * [t bibliomixed] subtitle:: * [t bibliomixed] surname:: * [t bibliomixed] title:: * [t bibliomixed] titleabbrev:: * [t bibliomixed] volumenum:: @end menu @node [t] bibliography, [T] biblio-item-separator, , biblio @section [t] bibliography @subheading Name [t] bibliography @subheading Synopsis @example @end example @node [T] biblio-item-separator, [t] bibliodiv, [t] bibliography, biblio @section [T] biblio-item-separator @subheading Name [T] biblio-item-separator --- Undocumented @subheading Synopsis @example @end example @node [t] bibliodiv, [t] biblioentry, [T] biblio-item-separator, biblio @section [t] bibliodiv @subheading Name [t] bibliodiv @subheading Synopsis @example @end example @node [t] biblioentry, [t] bibliomixed, [t] bibliodiv, biblio @section [t] biblioentry @subheading Name [t] biblioentry @subheading Synopsis @example @end example @node [t] bibliomixed, [t bibliography] *, [t] biblioentry, biblio @section [t] bibliomixed @subheading Name [t] bibliomixed @subheading Synopsis @example @end example @node [t bibliography] *, [t bibliography] abbrev, [t] bibliomixed, biblio @section [t bibliography] * @subheading Name [t bibliography] * @subheading Synopsis @example @end example @node [t bibliography] abbrev, [t bibliography] abstract, [t bibliography] *, biblio @section [t bibliography] abbrev @subheading Name [t bibliography] abbrev @subheading Synopsis @example @end example @node [t bibliography] abstract, [t bibliography] address, [t bibliography] abbrev, biblio @section [t bibliography] abstract @subheading Name [t bibliography] abstract @subheading Synopsis @example @end example @node [t bibliography] address, [t bibliography] affiliation, [t bibliography] abstract, biblio @section [t bibliography] address @subheading Name [t bibliography] address @subheading Synopsis @example @end example @node [t bibliography] affiliation, [t bibliography] shortaffil, [t bibliography] address, biblio @section [t bibliography] affiliation @subheading Name [t bibliography] affiliation @subheading Synopsis @example @end example @node [t bibliography] shortaffil, [t bibliography] jobtitle, [t bibliography] affiliation, biblio @section [t bibliography] shortaffil @subheading Name [t bibliography] shortaffil @subheading Synopsis @example @end example @node [t bibliography] jobtitle, [t bibliography] artheader, [t bibliography] shortaffil, biblio @section [t bibliography] jobtitle @subheading Name [t bibliography] jobtitle @subheading Synopsis @example @end example @node [t bibliography] artheader, [t bibliography] artpagenums, [t bibliography] jobtitle, biblio @section [t bibliography] artheader @subheading Name [t bibliography] artheader @subheading Synopsis @example @end example @node [t bibliography] artpagenums, [t bibliography] author, [t bibliography] artheader, biblio @section [t bibliography] artpagenums @subheading Name [t bibliography] artpagenums @subheading Synopsis @example @end example @node [t bibliography] author, [t bibliography] authorblurb, [t bibliography] artpagenums, biblio @section [t bibliography] author @subheading Name [t bibliography] author @subheading Synopsis @example @end example @node [t bibliography] authorblurb, [t bibliography] authorgroup, [t bibliography] author, biblio @section [t bibliography] authorblurb @subheading Name [t bibliography] authorblurb @subheading Synopsis @example @end example @node [t bibliography] authorgroup, [t bibliography] authorinitials, [t bibliography] authorblurb, biblio @section [t bibliography] authorgroup @subheading Name [t bibliography] authorgroup @subheading Synopsis @example @end example @node [t bibliography] authorinitials, [t bibliography] bibliomisc, [t bibliography] authorgroup, biblio @section [t bibliography] authorinitials @subheading Name [t bibliography] authorinitials @subheading Synopsis @example @end example @node [t bibliography] bibliomisc, [t bibliography] bibliomset, [t bibliography] authorinitials, biblio @section [t bibliography] bibliomisc @subheading Name [t bibliography] bibliomisc @subheading Synopsis @example @end example @node [t bibliography] bibliomset, [t bibliography] biblioset, [t bibliography] bibliomisc, biblio @section [t bibliography] bibliomset @subheading Name [t bibliography] bibliomset @subheading Synopsis @example @end example @node [t bibliography] biblioset, [t bibliography] biblioset/title|biblioset/citetitle, [t bibliography] bibliomset, biblio @section [t bibliography] biblioset @subheading Name [t bibliography] biblioset @subheading Synopsis @example @end example @node [t bibliography] biblioset/title|biblioset/citetitle, [t bibliography] bookbiblio, [t bibliography] biblioset, biblio @section [t bibliography] biblioset/title|biblioset/citetitle @subheading Name [t bibliography] biblioset/title|biblioset/citetitle @subheading Synopsis @example @end example @node [t bibliography] bookbiblio, [t bibliography] citetitle, [t bibliography] biblioset/title|biblioset/citetitle, biblio @section [t bibliography] bookbiblio @subheading Name [t bibliography] bookbiblio @subheading Synopsis @example @end example @node [t bibliography] citetitle, [t bibliography] collab, [t bibliography] bookbiblio, biblio @section [t bibliography] citetitle @subheading Name [t bibliography] citetitle @subheading Synopsis @example @end example @node [t bibliography] collab, [t bibliography] collabname, [t bibliography] citetitle, biblio @section [t bibliography] collab @subheading Name [t bibliography] collab @subheading Synopsis @example @end example @node [t bibliography] collabname, [t bibliography] confgroup, [t bibliography] collab, biblio @section [t bibliography] collabname @subheading Name [t bibliography] collabname @subheading Synopsis @example @end example @node [t bibliography] confgroup, [t bibliography] confdates, [t bibliography] collabname, biblio @section [t bibliography] confgroup @subheading Name [t bibliography] confgroup @subheading Synopsis @example @end example @node [t bibliography] confdates, [t bibliography] conftitle, [t bibliography] confgroup, biblio @section [t bibliography] confdates @subheading Name [t bibliography] confdates @subheading Synopsis @example @end example @node [t bibliography] conftitle, [t bibliography] confnum, [t bibliography] confdates, biblio @section [t bibliography] conftitle @subheading Name [t bibliography] conftitle @subheading Synopsis @example @end example @node [t bibliography] confnum, [t bibliography] confsponsor, [t bibliography] conftitle, biblio @section [t bibliography] confnum @subheading Name [t bibliography] confnum @subheading Synopsis @example @end example @node [t bibliography] confsponsor, [t bibliography] contractnum, [t bibliography] confnum, biblio @section [t bibliography] confsponsor @subheading Name [t bibliography] confsponsor @subheading Synopsis @example @end example @node [t bibliography] contractnum, [t bibliography] contractsponsor, [t bibliography] confsponsor, biblio @section [t bibliography] contractnum @subheading Name [t bibliography] contractnum @subheading Synopsis @example @end example @node [t bibliography] contractsponsor, [t bibliography] contrib, [t bibliography] contractnum, biblio @section [t bibliography] contractsponsor @subheading Name [t bibliography] contractsponsor @subheading Synopsis @example @end example @node [t bibliography] contrib, [t bibliography] copyright, [t bibliography] contractsponsor, biblio @section [t bibliography] contrib @subheading Name [t bibliography] contrib @subheading Synopsis @example @end example @node [t bibliography] copyright, [t bibliography] year, [t bibliography] contrib, biblio @section [t bibliography] copyright @subheading Name [t bibliography] copyright @subheading Synopsis @example @end example @node [t bibliography] year, [t bibliography] year[position[]=last[]], [t bibliography] copyright, biblio @section [t bibliography] year @subheading Name [t bibliography] year @subheading Synopsis @example @end example @node [t bibliography] year[position[]=last[]], [t bibliography] holder, [t bibliography] year, biblio @section [t bibliography] year[position()=last()] @subheading Name [t bibliography] year[position()=last()] @subheading Synopsis @example @end example @node [t bibliography] holder, [t bibliography] corpauthor, [t bibliography] year[position[]=last[]], biblio @section [t bibliography] holder @subheading Name [t bibliography] holder @subheading Synopsis @example @end example @node [t bibliography] corpauthor, [t bibliography] corpname, [t bibliography] holder, biblio @section [t bibliography] corpauthor @subheading Name [t bibliography] corpauthor @subheading Synopsis @example @end example @node [t bibliography] corpname, [t bibliography] date, [t bibliography] corpauthor, biblio @section [t bibliography] corpname @subheading Name [t bibliography] corpname @subheading Synopsis @example @end example @node [t bibliography] date, [t bibliography] edition, [t bibliography] corpname, biblio @section [t bibliography] date @subheading Name [t bibliography] date @subheading Synopsis @example @end example @node [t bibliography] edition, [t bibliography] editor, [t bibliography] date, biblio @section [t bibliography] edition @subheading Name [t bibliography] edition @subheading Synopsis @example @end example @node [t bibliography] editor, [t bibliography] personname, [t bibliography] edition, biblio @section [t bibliography] editor @subheading Name [t bibliography] editor @subheading Synopsis @example @end example @node [t bibliography] personname, [t bibliography] firstname, [t bibliography] editor, biblio @section [t bibliography] personname @subheading Name [t bibliography] personname @subheading Synopsis @example @end example @node [t bibliography] firstname, [t bibliography] honorific, [t bibliography] personname, biblio @section [t bibliography] firstname @subheading Name [t bibliography] firstname @subheading Synopsis @example @end example @node [t bibliography] honorific, [t bibliography] indexterm, [t bibliography] firstname, biblio @section [t bibliography] honorific @subheading Name [t bibliography] honorific @subheading Synopsis @example @end example @node [t bibliography] indexterm, [t bibliography] invpartnumber, [t bibliography] honorific, biblio @section [t bibliography] indexterm @subheading Name [t bibliography] indexterm @subheading Synopsis @example @end example @node [t bibliography] invpartnumber, [t bibliography] isbn, [t bibliography] indexterm, biblio @section [t bibliography] invpartnumber @subheading Name [t bibliography] invpartnumber @subheading Synopsis @example @end example @node [t bibliography] isbn, [t bibliography] issn, [t bibliography] invpartnumber, biblio @section [t bibliography] isbn @subheading Name [t bibliography] isbn @subheading Synopsis @example @end example @node [t bibliography] issn, [t bibliography] issuenum, [t bibliography] isbn, biblio @section [t bibliography] issn @subheading Name [t bibliography] issn @subheading Synopsis @example @end example @node [t bibliography] issuenum, [t bibliography] lineage, [t bibliography] issn, biblio @section [t bibliography] issuenum @subheading Name [t bibliography] issuenum @subheading Synopsis @example @end example @node [t bibliography] lineage, [t bibliography] orgname, [t bibliography] issuenum, biblio @section [t bibliography] lineage @subheading Name [t bibliography] lineage @subheading Synopsis @example @end example @node [t bibliography] orgname, [t bibliography] orgdiv, [t bibliography] lineage, biblio @section [t bibliography] orgname @subheading Name [t bibliography] orgname @subheading Synopsis @example @end example @node [t bibliography] orgdiv, [t bibliography] othercredit, [t bibliography] orgname, biblio @section [t bibliography] orgdiv @subheading Name [t bibliography] orgdiv @subheading Synopsis @example @end example @node [t bibliography] othercredit, [t bibliography] othername, [t bibliography] orgdiv, biblio @section [t bibliography] othercredit @subheading Name [t bibliography] othercredit @subheading Synopsis @example @end example @node [t bibliography] othername, [t bibliography] pagenums, [t bibliography] othercredit, biblio @section [t bibliography] othername @subheading Name [t bibliography] othername @subheading Synopsis @example @end example @node [t bibliography] pagenums, [t bibliography] printhistory, [t bibliography] othername, biblio @section [t bibliography] pagenums @subheading Name [t bibliography] pagenums @subheading Synopsis @example @end example @node [t bibliography] printhistory, [t bibliography] productname, [t bibliography] pagenums, biblio @section [t bibliography] printhistory @subheading Name [t bibliography] printhistory @subheading Synopsis @example @end example @node [t bibliography] productname, [t bibliography] productnumber, [t bibliography] printhistory, biblio @section [t bibliography] productname @subheading Name [t bibliography] productname @subheading Synopsis @example @end example @node [t bibliography] productnumber, [t bibliography] pubdate, [t bibliography] productname, biblio @section [t bibliography] productnumber @subheading Name [t bibliography] productnumber @subheading Synopsis @example @end example @node [t bibliography] pubdate, [t bibliography] publisher, [t bibliography] productnumber, biblio @section [t bibliography] pubdate @subheading Name [t bibliography] pubdate @subheading Synopsis @example @end example @node [t bibliography] publisher, [t bibliography] publishername, [t bibliography] pubdate, biblio @section [t bibliography] publisher @subheading Name [t bibliography] publisher @subheading Synopsis @example @end example @node [t bibliography] publishername, [t bibliography] pubsnumber, [t bibliography] publisher, biblio @section [t bibliography] publishername @subheading Name [t bibliography] publishername @subheading Synopsis @example @end example @node [t bibliography] pubsnumber, [t bibliography] releaseinfo, [t bibliography] publishername, biblio @section [t bibliography] pubsnumber @subheading Name [t bibliography] pubsnumber @subheading Synopsis @example @end example @node [t bibliography] releaseinfo, [t bibliography] revhistory, [t bibliography] pubsnumber, biblio @section [t bibliography] releaseinfo @subheading Name [t bibliography] releaseinfo @subheading Synopsis @example @end example @node [t bibliography] revhistory, [t bibliography] seriesinfo, [t bibliography] releaseinfo, biblio @section [t bibliography] revhistory @subheading Name [t bibliography] revhistory @subheading Synopsis @example @end example @node [t bibliography] seriesinfo, [t bibliography] seriesvolnums, [t bibliography] revhistory, biblio @section [t bibliography] seriesinfo @subheading Name [t bibliography] seriesinfo @subheading Synopsis @example @end example @node [t bibliography] seriesvolnums, [t bibliography] subtitle, [t bibliography] seriesinfo, biblio @section [t bibliography] seriesvolnums @subheading Name [t bibliography] seriesvolnums @subheading Synopsis @example @end example @node [t bibliography] subtitle, [t bibliography] surname, [t bibliography] seriesvolnums, biblio @section [t bibliography] subtitle @subheading Name [t bibliography] subtitle @subheading Synopsis @example @end example @node [t bibliography] surname, [t bibliography] title, [t bibliography] subtitle, biblio @section [t bibliography] surname @subheading Name [t bibliography] surname @subheading Synopsis @example @end example @node [t bibliography] title, [t bibliography] titleabbrev, [t bibliography] surname, biblio @section [t bibliography] title @subheading Name [t bibliography] title @subheading Synopsis @example @end example @node [t bibliography] titleabbrev, [t bibliography] volumenum, [t bibliography] title, biblio @section [t bibliography] titleabbrev @subheading Name [t bibliography] titleabbrev @subheading Synopsis @example @end example @node [t bibliography] volumenum, [t bibliomixed] *, [t bibliography] titleabbrev, biblio @section [t bibliography] volumenum @subheading Name [t bibliography] volumenum @subheading Synopsis @example @end example @node [t bibliomixed] *, [t bibliomixed] abbrev, [t bibliography] volumenum, biblio @section [t bibliomixed] * @subheading Name [t bibliomixed] * @subheading Synopsis @example @end example @node [t bibliomixed] abbrev, [t bibliomixed] abstract, [t bibliomixed] *, biblio @section [t bibliomixed] abbrev @subheading Name [t bibliomixed] abbrev @subheading Synopsis @example @end example @node [t bibliomixed] abstract, [t bibliomixed] address, [t bibliomixed] abbrev, biblio @section [t bibliomixed] abstract @subheading Name [t bibliomixed] abstract @subheading Synopsis @example @end example @node [t bibliomixed] address, [t bibliomixed] affiliation, [t bibliomixed] abstract, biblio @section [t bibliomixed] address @subheading Name [t bibliomixed] address @subheading Synopsis @example @end example @node [t bibliomixed] affiliation, [t bibliomixed] artpagenums, [t bibliomixed] address, biblio @section [t bibliomixed] affiliation @subheading Name [t bibliomixed] affiliation @subheading Synopsis @example @end example @node [t bibliomixed] artpagenums, [t bibliomixed] author, [t bibliomixed] affiliation, biblio @section [t bibliomixed] artpagenums @subheading Name [t bibliomixed] artpagenums @subheading Synopsis @example @end example @node [t bibliomixed] author, [t bibliomixed] authorblurb, [t bibliomixed] artpagenums, biblio @section [t bibliomixed] author @subheading Name [t bibliomixed] author @subheading Synopsis @example @end example @node [t bibliomixed] authorblurb, [t bibliomixed] authorgroup, [t bibliomixed] author, biblio @section [t bibliomixed] authorblurb @subheading Name [t bibliomixed] authorblurb @subheading Synopsis @example @end example @node [t bibliomixed] authorgroup, [t bibliomixed] authorinitials, [t bibliomixed] authorblurb, biblio @section [t bibliomixed] authorgroup @subheading Name [t bibliomixed] authorgroup @subheading Synopsis @example @end example @node [t bibliomixed] authorinitials, [t bibliomixed] bibliomisc, [t bibliomixed] authorgroup, biblio @section [t bibliomixed] authorinitials @subheading Name [t bibliomixed] authorinitials @subheading Synopsis @example @end example @node [t bibliomixed] bibliomisc, [t bibliomixed] bibliomset, [t bibliomixed] authorinitials, biblio @section [t bibliomixed] bibliomisc @subheading Name [t bibliomixed] bibliomisc @subheading Synopsis @example @end example @node [t bibliomixed] bibliomset, [t bibliomixed] bibliomset/title|bibliomset/citetitle, [t bibliomixed] bibliomisc, biblio @section [t bibliomixed] bibliomset @subheading Name [t bibliomixed] bibliomset @subheading Synopsis @example @end example @node [t bibliomixed] bibliomset/title|bibliomset/citetitle, [t bibliomixed] biblioset, [t bibliomixed] bibliomset, biblio @section [t bibliomixed] bibliomset/title|bibliomset/citetitle @subheading Name [t bibliomixed] bibliomset/title|bibliomset/citetitle @subheading Synopsis @example @end example @node [t bibliomixed] biblioset, [t bibliomixed] citetitle, [t bibliomixed] bibliomset/title|bibliomset/citetitle, biblio @section [t bibliomixed] biblioset @subheading Name [t bibliomixed] biblioset @subheading Synopsis @example @end example @node [t bibliomixed] citetitle, [t bibliomixed] collab, [t bibliomixed] biblioset, biblio @section [t bibliomixed] citetitle @subheading Name [t bibliomixed] citetitle @subheading Synopsis @example @end example @node [t bibliomixed] collab, [t bibliomixed] confgroup, [t bibliomixed] citetitle, biblio @section [t bibliomixed] collab @subheading Name [t bibliomixed] collab @subheading Synopsis @example @end example @node [t bibliomixed] confgroup, [t bibliomixed] contractnum, [t bibliomixed] collab, biblio @section [t bibliomixed] confgroup @subheading Name [t bibliomixed] confgroup @subheading Synopsis @example @end example @node [t bibliomixed] contractnum, [t bibliomixed] contractsponsor, [t bibliomixed] confgroup, biblio @section [t bibliomixed] contractnum @subheading Name [t bibliomixed] contractnum @subheading Synopsis @example @end example @node [t bibliomixed] contractsponsor, [t bibliomixed] contrib, [t bibliomixed] contractnum, biblio @section [t bibliomixed] contractsponsor @subheading Name [t bibliomixed] contractsponsor @subheading Synopsis @example @end example @node [t bibliomixed] contrib, [t bibliomixed] copyright, [t bibliomixed] contractsponsor, biblio @section [t bibliomixed] contrib @subheading Name [t bibliomixed] contrib @subheading Synopsis @example @end example @node [t bibliomixed] copyright, [t bibliomixed] corpauthor, [t bibliomixed] contrib, biblio @section [t bibliomixed] copyright @subheading Name [t bibliomixed] copyright @subheading Synopsis @example @end example @node [t bibliomixed] corpauthor, [t bibliomixed] corpname, [t bibliomixed] copyright, biblio @section [t bibliomixed] corpauthor @subheading Name [t bibliomixed] corpauthor @subheading Synopsis @example @end example @node [t bibliomixed] corpname, [t bibliomixed] date, [t bibliomixed] corpauthor, biblio @section [t bibliomixed] corpname @subheading Name [t bibliomixed] corpname @subheading Synopsis @example @end example @node [t bibliomixed] date, [t bibliomixed] edition, [t bibliomixed] corpname, biblio @section [t bibliomixed] date @subheading Name [t bibliomixed] date @subheading Synopsis @example @end example @node [t bibliomixed] edition, [t bibliomixed] editor, [t bibliomixed] date, biblio @section [t bibliomixed] edition @subheading Name [t bibliomixed] edition @subheading Synopsis @example @end example @node [t bibliomixed] editor, [t bibliomixed] firstname, [t bibliomixed] edition, biblio @section [t bibliomixed] editor @subheading Name [t bibliomixed] editor @subheading Synopsis @example @end example @node [t bibliomixed] firstname, [t bibliomixed] honorific, [t bibliomixed] editor, biblio @section [t bibliomixed] firstname @subheading Name [t bibliomixed] firstname @subheading Synopsis @example @end example @node [t bibliomixed] honorific, [t bibliomixed] indexterm, [t bibliomixed] firstname, biblio @section [t bibliomixed] honorific @subheading Name [t bibliomixed] honorific @subheading Synopsis @example @end example @node [t bibliomixed] indexterm, [t bibliomixed] invpartnumber, [t bibliomixed] honorific, biblio @section [t bibliomixed] indexterm @subheading Name [t bibliomixed] indexterm @subheading Synopsis @example @end example @node [t bibliomixed] invpartnumber, [t bibliomixed] isbn, [t bibliomixed] indexterm, biblio @section [t bibliomixed] invpartnumber @subheading Name [t bibliomixed] invpartnumber @subheading Synopsis @example @end example @node [t bibliomixed] isbn, [t bibliomixed] issn, [t bibliomixed] invpartnumber, biblio @section [t bibliomixed] isbn @subheading Name [t bibliomixed] isbn @subheading Synopsis @example @end example @node [t bibliomixed] issn, [t bibliomixed] issuenum, [t bibliomixed] isbn, biblio @section [t bibliomixed] issn @subheading Name [t bibliomixed] issn @subheading Synopsis @example @end example @node [t bibliomixed] issuenum, [t bibliomixed] lineage, [t bibliomixed] issn, biblio @section [t bibliomixed] issuenum @subheading Name [t bibliomixed] issuenum @subheading Synopsis @example @end example @node [t bibliomixed] lineage, [t bibliomixed] orgname, [t bibliomixed] issuenum, biblio @section [t bibliomixed] lineage @subheading Name [t bibliomixed] lineage @subheading Synopsis @example @end example @node [t bibliomixed] orgname, [t bibliomixed] othercredit, [t bibliomixed] lineage, biblio @section [t bibliomixed] orgname @subheading Name [t bibliomixed] orgname @subheading Synopsis @example @end example @node [t bibliomixed] othercredit, [t bibliomixed] othername, [t bibliomixed] orgname, biblio @section [t bibliomixed] othercredit @subheading Name [t bibliomixed] othercredit @subheading Synopsis @example @end example @node [t bibliomixed] othername, [t bibliomixed] pagenums, [t bibliomixed] othercredit, biblio @section [t bibliomixed] othername @subheading Name [t bibliomixed] othername @subheading Synopsis @example @end example @node [t bibliomixed] pagenums, [t bibliomixed] printhistory, [t bibliomixed] othername, biblio @section [t bibliomixed] pagenums @subheading Name [t bibliomixed] pagenums @subheading Synopsis @example @end example @node [t bibliomixed] printhistory, [t bibliomixed] productname, [t bibliomixed] pagenums, biblio @section [t bibliomixed] printhistory @subheading Name [t bibliomixed] printhistory @subheading Synopsis @example @end example @node [t bibliomixed] productname, [t bibliomixed] productnumber, [t bibliomixed] printhistory, biblio @section [t bibliomixed] productname @subheading Name [t bibliomixed] productname @subheading Synopsis @example @end example @node [t bibliomixed] productnumber, [t bibliomixed] pubdate, [t bibliomixed] productname, biblio @section [t bibliomixed] productnumber @subheading Name [t bibliomixed] productnumber @subheading Synopsis @example @end example @node [t bibliomixed] pubdate, [t bibliomixed] publisher, [t bibliomixed] productnumber, biblio @section [t bibliomixed] pubdate @subheading Name [t bibliomixed] pubdate @subheading Synopsis @example @end example @node [t bibliomixed] publisher, [t bibliomixed] publishername, [t bibliomixed] pubdate, biblio @section [t bibliomixed] publisher @subheading Name [t bibliomixed] publisher @subheading Synopsis @example @end example @node [t bibliomixed] publishername, [t bibliomixed] pubsnumber, [t bibliomixed] publisher, biblio @section [t bibliomixed] publishername @subheading Name [t bibliomixed] publishername @subheading Synopsis @example @end example @node [t bibliomixed] pubsnumber, [t bibliomixed] releaseinfo, [t bibliomixed] publishername, biblio @section [t bibliomixed] pubsnumber @subheading Name [t bibliomixed] pubsnumber @subheading Synopsis @example @end example @node [t bibliomixed] releaseinfo, [t bibliomixed] revhistory, [t bibliomixed] pubsnumber, biblio @section [t bibliomixed] releaseinfo @subheading Name [t bibliomixed] releaseinfo @subheading Synopsis @example @end example @node [t bibliomixed] revhistory, [t bibliomixed] seriesvolnums, [t bibliomixed] releaseinfo, biblio @section [t bibliomixed] revhistory @subheading Name [t bibliomixed] revhistory @subheading Synopsis @example @end example @node [t bibliomixed] seriesvolnums, [t bibliomixed] subtitle, [t bibliomixed] revhistory, biblio @section [t bibliomixed] seriesvolnums @subheading Name [t bibliomixed] seriesvolnums @subheading Synopsis @example @end example @node [t bibliomixed] subtitle, [t bibliomixed] surname, [t bibliomixed] seriesvolnums, biblio @section [t bibliomixed] subtitle @subheading Name [t bibliomixed] subtitle @subheading Synopsis @example @end example @node [t bibliomixed] surname, [t bibliomixed] title, [t bibliomixed] subtitle, biblio @section [t bibliomixed] surname @subheading Name [t bibliomixed] surname @subheading Synopsis @example @end example @node [t bibliomixed] title, [t bibliomixed] titleabbrev, [t bibliomixed] surname, biblio @section [t bibliomixed] title @subheading Name [t bibliomixed] title @subheading Synopsis @example @end example @node [t bibliomixed] titleabbrev, [t bibliomixed] volumenum, [t bibliomixed] title, biblio @section [t bibliomixed] titleabbrev @subheading Name [t bibliomixed] titleabbrev @subheading Synopsis @example @end example @node [t bibliomixed] volumenum, , [t bibliomixed] titleabbrev, biblio @section [t bibliomixed] volumenum @subheading Name [t bibliomixed] volumenum @subheading Synopsis @example @end example @node info, keywords, biblio, Top @chapter info @menu * [t] corpauthor:: * [t] jobtitle:: * [t] orgname:: * [t] orgdiv:: * [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo:: * [t] bookinfo|setinfo|seriesinfo:: * [t] partinfo:: * [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo:: * [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo:: * [t] objectinfo: [t] objectinfo <1>. * [t info-wrapper] node(): [t info-wrapper] node[]. @end menu @node [t] corpauthor, [t] jobtitle, , info @section [t] corpauthor @subheading Name [t] corpauthor @subheading Synopsis @example @end example @node [t] jobtitle, [t] orgname, [t] corpauthor, info @section [t] jobtitle @subheading Name [t] jobtitle @subheading Synopsis @example @end example @node [t] orgname, [t] orgdiv, [t] jobtitle, info @section [t] orgname @subheading Name [t] orgname @subheading Synopsis @example @end example @node [t] orgdiv, [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo, [t] orgname, info @section [t] orgdiv @subheading Name [t] orgdiv @subheading Synopsis @example @end example @node [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo, [t] bookinfo|setinfo|seriesinfo, [t] orgdiv, info @section [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo @subheading Name [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo @subheading Synopsis @example @end example @node [t] bookinfo|setinfo|seriesinfo, [t] partinfo, [t] docinfo|prefaceinfo|chapterinfo|appendixinfo|articleinfo|artheader|glossaryinfo, info @section [t] bookinfo|setinfo|seriesinfo @subheading Name [t] bookinfo|setinfo|seriesinfo @subheading Synopsis @example @end example @node [t] partinfo, [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo, [t] bookinfo|setinfo|seriesinfo, info @section [t] partinfo @subheading Name [t] partinfo @subheading Synopsis @example @end example @node [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo, [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo, [t] partinfo, info @section [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo @subheading Name [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo @subheading Synopsis @example @end example @node [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo, [t] objectinfo <1>, [t] referenceinfo|refentryinfo|refsect1info|refsect2info|refsect3info|refsynopsisdivinfo, info @section [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo @subheading Name [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo @subheading Synopsis @example @end example @node [t] objectinfo <1>, [t info-wrapper] node[], [t] sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo, info @section [t] objectinfo @subheading Name [t] objectinfo @subheading Synopsis @example @end example @node [t info-wrapper] node[], , [t] objectinfo <1>, info @section [t info-wrapper] node() @subheading Name [t info-wrapper] node() @subheading Synopsis @example @end example @node keywords, toc, info, Top @chapter keywords @menu * [t] keywordset:: * [t] subjectset:: @end menu @node [t] keywordset, [t] subjectset, , keywords @section [t] keywordset @subheading Name [t] keywordset @subheading Synopsis @example @end example @node [t] subjectset, , [t] keywordset, keywords @section [t] subjectset @subheading Name [t] subjectset @subheading Synopsis @example @end example @node toc, beginpage, keywords, Top @chapter toc @menu * [t toc] *:: * [t] toc:: * [t] tocpart|tocchap|tocfront|tocback|tocentry:: * [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5:: * [t] lot|lotentry:: @end menu @node [t toc] *, [t] toc, , toc @section [t toc] * @subheading Name [t toc] * @subheading Synopsis @example @end example @node [t] toc, [t] tocpart|tocchap|tocfront|tocback|tocentry, [t toc] *, toc @section [t] toc @subheading Name [t] toc @subheading Synopsis @example @end example @node [t] tocpart|tocchap|tocfront|tocback|tocentry, [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5, [t] toc, toc @section [t] tocpart|tocchap|tocfront|tocback|tocentry @subheading Name [t] tocpart|tocchap|tocfront|tocback|tocentry @subheading Synopsis @example @end example @node [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5, [t] lot|lotentry, [t] tocpart|tocchap|tocfront|tocback|tocentry, toc @section [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5 @subheading Name [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5 @subheading Synopsis @example @end example @node [t] lot|lotentry, , [t] toclevel1|toclevel2|toclevel3|toclevel4|toclevel5, toc @section [t] lot|lotentry @subheading Name [t] lot|lotentry @subheading Synopsis @example @end example @node beginpage, pi, toc, Top @chapter beginpage @menu * [t] beginpage:: @end menu @node [t] beginpage, , , beginpage @section [t] beginpage @subheading Name [t] beginpage @subheading Synopsis @example @end example @node pi, docbook, beginpage, Top @chapter pi @menu * [t] processing-instruction(): [t] processing-instruction[]. @end menu @node [t] processing-instruction[], , , pi @section [t] processing-instruction() @subheading Name [t] processing-instruction() @subheading Synopsis @example @end example @node docbook, , pi, Top @chapter docbook @section docbook This file is the basic driver of the Texinfo XSLT stylesheets. It includes all the other stylesheet files. You can use this stylesheet directly, or create your own custom stylesheet that imports this one (or one of the other driver files): @strong{Importing stylesheets} @example @dots{} your own stylesheet code goes here @dots{} @end example @noindent Importing the stylesheet allows you to specify stylesheet options and customize the stylesheets without changing the standard stylesheets. @menu * [t] *:: * [t] text(): [t] text[]. @end menu @node [t] *, [t] text[], , docbook @section [t] * @subheading Name [t] * @subheading Synopsis @example @end example @node [t] text[], , [t] *, docbook @section [t] text() @subheading Name [t] text() @subheading Synopsis @example @end example @bye docbook2X-0.8.8/xslt/documentation/docbook2texi-xslt.txml0000644000175000017500000000000010572276006020432 00000000000000docbook2X-0.8.8/xslt/documentation/docbook2texi-xslt.xml0000644000175000017500000000000010572276006020246 00000000000000docbook2X-0.8.8/xslt/documentation/ss-html.xsl0000644000175000017500000003755510107014654016301 00000000000000 mailto:stevecheng@users.sourceforge.net docbook2X: Documentation Table of Contents docbook2X: Wrapper scripts docbook2X:

Author: ()


Author
Version
Parameters
Returns
Exceptions
See
Since
Serial
Deprecated
docbook2X-0.8.8/xslt/Makefile.am0000644000175000017500000000033610076307257013341 00000000000000# $Id: Makefile.am,v 1.7 2004/07/17 20:40:15 stevecheng Exp $ # SUBDIRS = common man texi documentation backend # Install the XML catalog. xsltdir = $(pkgdatadir)/xslt xslt_DATA = catalog.xml EXTRA_DIST = catalog.xml docbook2X-0.8.8/xslt/Makefile.in0000644000175000017500000003604310572275765013367 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am,v 1.7 2004/07/17 20:40:15 stevecheng Exp $ # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = xslt DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/utf8trans/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(xsltdir)" xsltDATA_INSTALL = $(INSTALL_DATA) DATA = $(xslt_DATA) ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GROFF = @GROFF@ HAVE_GROFF_FALSE = @HAVE_GROFF_FALSE@ HAVE_GROFF_TRUE = @HAVE_GROFF_TRUE@ HAVE_HTML_XSL_FALSE = @HAVE_HTML_XSL_FALSE@ HAVE_HTML_XSL_TRUE = @HAVE_HTML_XSL_TRUE@ HAVE_TIDY_FALSE = @HAVE_TIDY_FALSE@ HAVE_TIDY_TRUE = @HAVE_TIDY_TRUE@ HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@ HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@ ICONV = @ICONV@ INSTALLED_CHARMAP_ROFF = @INSTALLED_CHARMAP_ROFF@ INSTALLED_CHARMAP_TEXI = @INSTALLED_CHARMAP_TEXI@ INSTALLED_DB2X_MANXML = @INSTALLED_DB2X_MANXML@ INSTALLED_DB2X_TEXIXML = @INSTALLED_DB2X_TEXIXML@ INSTALLED_DB2X_XSLTPROC = @INSTALLED_DB2X_XSLTPROC@ INSTALLED_SGML2XML_ISOENT = @INSTALLED_SGML2XML_ISOENT@ INSTALLED_STYLESHEETS_CATALOG = @INSTALLED_STYLESHEETS_CATALOG@ INSTALLED_UTF8TRANS = @INSTALLED_UTF8TRANS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA = @JAVA@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ OSX = @OSX@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RESOLVER_JARS = @RESOLVER_JARS@ SAXON_JARS = @SAXON_JARS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SX = @SX@ TIDY = @TIDY@ VERSION = @VERSION@ XALAN_JARS = @XALAN_JARS@ XMLLINT = @XMLLINT@ XSLTPROC = @XSLTPROC@ XSLT_PROCESSOR = @XSLT_PROCESSOR@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUBDIRS = common man texi documentation backend # Install the XML catalog. xsltdir = $(pkgdatadir)/xslt xslt_DATA = catalog.xml EXTRA_DIST = catalog.xml all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu xslt/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu xslt/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh uninstall-info-am: install-xsltDATA: $(xslt_DATA) @$(NORMAL_INSTALL) test -z "$(xsltdir)" || $(mkdir_p) "$(DESTDIR)$(xsltdir)" @list='$(xslt_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(xsltDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(xsltdir)/$$f'"; \ $(xsltDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(xsltdir)/$$f"; \ done uninstall-xsltDATA: @$(NORMAL_UNINSTALL) @list='$(xslt_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(xsltdir)/$$f'"; \ rm -f "$(DESTDIR)$(xsltdir)/$$f"; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(xsltdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-xsltDATA install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-xsltDATA uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ clean clean-generic clean-recursive ctags ctags-recursive \ distclean distclean-generic distclean-recursive distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip install-xsltDATA installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive \ mostlyclean mostlyclean-generic mostlyclean-recursive pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-info-am uninstall-xsltDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: docbook2X-0.8.8/xslt/backend/0000777000175000017500000000000010572276007012755 500000000000000docbook2X-0.8.8/xslt/backend/charmap.xsl0000644000175000017500000000506410421447075015037 00000000000000 docbook2X-0.8.8/xslt/backend/man-html-table.xsl0000644000175000017500000011420110422504106016206 00000000000000 0   border- : ; border- -width: ; border- -style: ; border- -color: ; Error: CALS tables must specify the number of columns. 100% 0 border-collapse: collapse; border-collapse: collapse; border-collapse: collapse; border-collapse: collapse; border-collapse: collapse; border-collapse: collapse; 0 1 100% No convertLength function available. No adjustColumnWidths function available.
th th td 1 0   1 : 0: 0 : 1 1 1 1
docbook2X-0.8.8/xslt/backend/string.xsl0000644000175000017500000000277310076307257014741 00000000000000 docbook2X-0.8.8/xslt/backend/Makefile.am0000644000175000017500000000045010422503474014717 00000000000000# $Id: Makefile.am,v 1.6 2006/04/22 19:42:52 stevecheng Exp $ # XSL_FILES = db2x_manxml.xsl string.xsl charmap.xsl db2x_texixml.xsl \ man-html-table.xsl man-table.xsl xsltdir = $(pkgdatadir)/xslt xsltbackenddir = $(xsltdir)/backend xsltbackend_DATA = $(XSL_FILES) EXTRA_DIST = $(XSL_FILES) docbook2X-0.8.8/xslt/backend/Makefile.in0000644000175000017500000002376010572275765014760 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am,v 1.6 2006/04/22 19:42:52 stevecheng Exp $ # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = xslt/backend DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/utf8trans/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(xsltbackenddir)" xsltbackendDATA_INSTALL = $(INSTALL_DATA) DATA = $(xsltbackend_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GROFF = @GROFF@ HAVE_GROFF_FALSE = @HAVE_GROFF_FALSE@ HAVE_GROFF_TRUE = @HAVE_GROFF_TRUE@ HAVE_HTML_XSL_FALSE = @HAVE_HTML_XSL_FALSE@ HAVE_HTML_XSL_TRUE = @HAVE_HTML_XSL_TRUE@ HAVE_TIDY_FALSE = @HAVE_TIDY_FALSE@ HAVE_TIDY_TRUE = @HAVE_TIDY_TRUE@ HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@ HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@ ICONV = @ICONV@ INSTALLED_CHARMAP_ROFF = @INSTALLED_CHARMAP_ROFF@ INSTALLED_CHARMAP_TEXI = @INSTALLED_CHARMAP_TEXI@ INSTALLED_DB2X_MANXML = @INSTALLED_DB2X_MANXML@ INSTALLED_DB2X_TEXIXML = @INSTALLED_DB2X_TEXIXML@ INSTALLED_DB2X_XSLTPROC = @INSTALLED_DB2X_XSLTPROC@ INSTALLED_SGML2XML_ISOENT = @INSTALLED_SGML2XML_ISOENT@ INSTALLED_STYLESHEETS_CATALOG = @INSTALLED_STYLESHEETS_CATALOG@ INSTALLED_UTF8TRANS = @INSTALLED_UTF8TRANS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA = @JAVA@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ OSX = @OSX@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RESOLVER_JARS = @RESOLVER_JARS@ SAXON_JARS = @SAXON_JARS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SX = @SX@ TIDY = @TIDY@ VERSION = @VERSION@ XALAN_JARS = @XALAN_JARS@ XMLLINT = @XMLLINT@ XSLTPROC = @XSLTPROC@ XSLT_PROCESSOR = @XSLT_PROCESSOR@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ XSL_FILES = db2x_manxml.xsl string.xsl charmap.xsl db2x_texixml.xsl \ man-html-table.xsl man-table.xsl xsltdir = $(pkgdatadir)/xslt xsltbackenddir = $(xsltdir)/backend xsltbackend_DATA = $(XSL_FILES) EXTRA_DIST = $(XSL_FILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu xslt/backend/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu xslt/backend/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh uninstall-info-am: install-xsltbackendDATA: $(xsltbackend_DATA) @$(NORMAL_INSTALL) test -z "$(xsltbackenddir)" || $(mkdir_p) "$(DESTDIR)$(xsltbackenddir)" @list='$(xsltbackend_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(xsltbackendDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(xsltbackenddir)/$$f'"; \ $(xsltbackendDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(xsltbackenddir)/$$f"; \ done uninstall-xsltbackendDATA: @$(NORMAL_UNINSTALL) @list='$(xsltbackend_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(xsltbackenddir)/$$f'"; \ rm -f "$(DESTDIR)$(xsltbackenddir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(xsltbackenddir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-xsltbackendDATA install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-xsltbackendDATA .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip install-xsltbackendDATA installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-info-am \ uninstall-xsltbackendDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: docbook2X-0.8.8/xslt/backend/man-table.xsl0000644000175000017500000007064210422504106015256 00000000000000 : B B allbox center expand
.PP . *[nested table] .sp -1n .TS H tab( ) ; .TH .T& .TE .sp
T{ T} Warn tbl convert : Extracted a nested table [\fInested table\fR]* . ^ c r n l t ^ s
docbook2X-0.8.8/xslt/backend/db2x_manxml.xsl0000644000175000017500000005116610422711344015635 00000000000000 .PP .PP .\" ' \&' .PP \fB \fR \fI \fR \*(T< \*(T> \fB \fR \fI \fR \(lq \(rq \(lq \(rq , \- . .\" -*- coding: -*- .\" -*- coding: -*- .so man / .if \n(.g .ds T< \\FC .if \n(.g .ds T> \\F[\n[.fam]] .de URL \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac \kx .if (\nx>(\n(.l/2)) .nr x (\n(.l/5) 'in \n(.iu+\nxu 'in \n(.iu-\nxu) docbook2X-0.8.8/xslt/backend/db2x_texixml.xsl0000644000175000017500000004131310136310753016025 00000000000000 @ @end @c { , , , , , , , } @url{ , @anchor{ } cp fn vr ky pg tp @ index c f v k p t @printindex { } @enumerate @end enumerate @itemize @itemize @w @end itemize @table \@asis @end table @item @itemx @item @ @end untitled .texi .texi \input texinfo @setfilename .info @documentencoding docbook2X-0.8.8/depcomp0000755000175000017500000003710010445626470011670 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: docbook2X-0.8.8/aclocal.m40000644000175000017500000007546210572275760012173 00000000000000# generated automatically by aclocal 1.9.6 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. # Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.9.6])]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 7 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE]) AC_SUBST([$1_FALSE]) if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH]) ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 3 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 12 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.58])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl ]) ]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $1 | $1:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl install_sh=${install_sh-"$am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. # # Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories # created by `make install' are always world readable, even if the # installer happens to have an overly restrictive umask (e.g. 077). # This was a mistake. There are at least two reasons why we must not # use `-m 0755': # - it causes special bits like SGID to be ignored, # - it may be too restrictive (some setups expect 775 directories). # # Do not use -m 0755 and let people choose whatever they expect by # setting umask. # # We cannot accept any implementation of `mkdir' that recognizes `-p'. # Some implementations (such as Solaris 8's) are not thread-safe: if a # parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' # concurrently, both version can detect that a/ is missing, but only # one can create it and the other will error out. Consequently we # restrict ourselves to GNU make (using the --version option ensures # this.) AC_DEFUN([AM_PROG_MKDIR_P], [if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi AC_SUBST([mkdir_p])]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR docbook2X-0.8.8/README0000644000175000017500000000107110052761155011163 00000000000000docbook2X README ================ docbook2X converts DocBook documents into man pages and Texinfo documents. For detailed instructions on building and installing docbook2X, see the file INSTALL (or doc/install.html). Basically it is just the usual ./configure; make; make install mantra. The documentation in HTML, Texinfo, and man-page format is found under doc/. It is automatically generated from DocBook source, of course. It is distributed with the rest of the package in releases, but for CVS versions you must first build the package to read it. Enjoy. docbook2X-0.8.8/THANKS0000644000175000017500000000134410410121540011203 00000000000000The idea of using XSLT stylesheets instead of Perl hacks for man-page and Texinfo conversion came from Mark Burton's dbtotexi. Many thanks. Some parts of the stylesheets were originally copied from Norman Walsh's DocBook XSL Stylesheets. Of course the unadulterated XSL HTML stylesheets have been very useful also. :) The copyright notice is in COPYING. Michael Smith encouraged me to make docbook2X more portable. He also expanded the roff charmaps. I like the result. Thank you. Other contributors, in no particular order: Tim Bishop has discovered a Solaris troff incompatibility with the man pages generated by docbook2X, and helped me develop the fix. Craig Ruff has contributed entrytbl support for man pages (non-trivial!). docbook2X-0.8.8/configure0000755000175000017500000057566510572275770012255 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.60 for docbook2X 0.8.8. # # Report bugs to . # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /usr/bin/posix$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell autoconf@gnu.org about your system, echo including any error possibly output before this echo message } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # Find out whether ``test -x'' works. Don't use a zero-byte file, as # systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then as_executable_p="test -x" else as_executable_p=: fi rm -f conf$$.file # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='docbook2X' PACKAGE_TARNAME='docbook2X' PACKAGE_VERSION='0.8.8' PACKAGE_STRING='docbook2X 0.8.8' PACKAGE_BUGREPORT='stevecheng@users.sourceforge.net' ac_unique_file="perl/docbook2X.pl" # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #endif #if HAVE_STDINT_H # include #endif #if HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir localstatedir includedir oldincludedir docdir infodir htmldir dvidir pdfdir psdir libdir localedir mandir DEFS ECHO_C ECHO_N ECHO_T LIBS build_alias host_alias target_alias INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar HAVE_HTML_XSL_TRUE HAVE_HTML_XSL_FALSE XSLT_PROCESSOR CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE PERL ICONV SX OSX GROFF HAVE_GROFF_TRUE HAVE_GROFF_FALSE XMLLINT HAVE_XMLLINT_TRUE HAVE_XMLLINT_FALSE TIDY HAVE_TIDY_TRUE HAVE_TIDY_FALSE XSLTPROC JAVA RESOLVER_JARS SAXON_JARS XALAN_JARS CPP GREP EGREP INSTALLED_UTF8TRANS INSTALLED_CHARMAP_ROFF INSTALLED_CHARMAP_TEXI INSTALLED_DB2X_MANXML INSTALLED_DB2X_TEXIXML INSTALLED_STYLESHEETS_CATALOG INSTALLED_DB2X_XSLTPROC INSTALLED_SGML2XML_ISOENT LIBOBJS LTLIBOBJS' ac_subst_files='' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval enable_$ac_feature=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval enable_$ac_feature=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` eval with_$ac_package=\$ac_optarg ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval with_$ac_package=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute directory names. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { echo "$as_me: error: Working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$0" || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures docbook2X 0.8.8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/docbook2X] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of docbook2X 0.8.8:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-html-xsl build HTML documentation using Norman Walsh's DocBook XSL stylesheets (default is no) --with-xslt-processor=ARG which XSLT processor to use (possible choices are: libxslt, saxon, xalan-j) --with-resolver-jars=ARG specify Java class path for Apache XML Commons catalogs resolver --with-saxon-jars=ARG specify Java class path for SAXON XSLT processor --with-xalan-jars=ARG specify Java class path for Xalan XSLT processor Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF docbook2X configure 0.8.8 generated by GNU Autoconf 2.60 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by docbook2X $as_me 0.8.8, which was generated by GNU Autoconf 2.60. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then set x "$CONFIG_SITE" elif test "x$prefix" != xNONE; then set x "$prefix/share/config.site" "$prefix/etc/config.site" else set x "$ac_default_prefix/share/config.site" \ "$ac_default_prefix/etc/config.site" fi shift for ac_site_file do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version="1.9" ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm -f conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$AWK" && break done { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=docbook2X VERSION=0.8.8 cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' XSLT_PROCESSOR="libxslt" # Check whether --with-html-xsl was given. if test "${with_html_xsl+set}" = set; then withval=$with_html_xsl; HTML_XSL="$withval" else HTML_XSL=no fi # Check whether --with-xslt-processor was given. if test "${with_xslt_processor+set}" = set; then withval=$with_xslt_processor; XSLT_PROCESSOR="$withval" else XSLT_PROCESSOR="libxslt" fi # Check whether --with-resolver-jars was given. if test "${with_resolver_jars+set}" = set; then withval=$with_resolver_jars; RESOLVER_JARS="$withval" else RESOLVER_JARS="" fi # Check whether --with-saxon-jars was given. if test "${with_saxon_jars+set}" = set; then withval=$with_saxon_jars; SAXON_JARS="$withval" else SAXON_JARS="" fi # Check whether --with-xalan-jars was given. if test "${with_xalan_jars+set}" = set; then withval=$with_xalan_jars; XALAN_JARS="$withval" else XALAN_JARS="" fi if test "x$HTML_XSL" != "xno"; then HAVE_HTML_XSL_TRUE= HAVE_HTML_XSL_FALSE='#' else HAVE_HTML_XSL_TRUE='#' HAVE_HTML_XSL_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # # List of possible output files, starting from the most likely. # The algorithm is not robust to junk in `.', hence go to wildcards (a.*) # only as a last resort. b.out is created by i960 compilers. ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' # # The IRIX 6 linker writes into existing files which may not be # executable, retaining their permissions. Remove them first so a # subsequent execution test works. ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6; } # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6; } { echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi { echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_PERL+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $PERL in [\\/]* | ?:[\\/]*) ac_cv_path_PERL="$PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PERL=$ac_cv_path_PERL if test -n "$PERL"; then { echo "$as_me:$LINENO: result: $PERL" >&5 echo "${ECHO_T}$PERL" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test -z "$PERL" ; then { { echo "$as_me:$LINENO: error: You need Perl 5" >&5 echo "$as_me: error: You need Perl 5" >&2;} { (exit 1); exit 1; }; } fi # Extract the first word of "iconv piconv", so it can be a program name with args. set dummy iconv piconv; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_ICONV+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $ICONV in [\\/]* | ?:[\\/]*) ac_cv_path_ICONV="$ICONV" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ICONV="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ICONV=$ac_cv_path_ICONV if test -n "$ICONV"; then { echo "$as_me:$LINENO: result: $ICONV" >&5 echo "${ECHO_T}$ICONV" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test -z "$ICONV" ; then { { echo "$as_me:$LINENO: error: You need iconv" >&5 echo "$as_me: error: You need iconv" >&2;} { (exit 1); exit 1; }; } fi # Extract the first word of "sgml2xml sx", so it can be a program name with args. set dummy sgml2xml sx; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_SX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $SX in [\\/]* | ?:[\\/]*) ac_cv_path_SX="$SX" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_SX="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi SX=$ac_cv_path_SX if test -n "$SX"; then { echo "$as_me:$LINENO: result: $SX" >&5 echo "${ECHO_T}$SX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi # Extract the first word of "osx", so it can be a program name with args. set dummy osx; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_OSX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $OSX in [\\/]* | ?:[\\/]*) ac_cv_path_OSX="$OSX" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_OSX="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi OSX=$ac_cv_path_OSX if test -n "$OSX"; then { echo "$as_me:$LINENO: result: $OSX" >&5 echo "${ECHO_T}$OSX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi # Extract the first word of "makeinfo", so it can be a program name with args. set dummy makeinfo; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_MAKEINFO+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAKEINFO in [\\/]* | ?:[\\/]*) ac_cv_path_MAKEINFO="$MAKEINFO" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MAKEINFO="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MAKEINFO=$ac_cv_path_MAKEINFO if test -n "$MAKEINFO"; then { echo "$as_me:$LINENO: result: $MAKEINFO" >&5 echo "${ECHO_T}$MAKEINFO" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi # Extract the first word of "groff", so it can be a program name with args. set dummy groff; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_GROFF+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $GROFF in [\\/]* | ?:[\\/]*) ac_cv_path_GROFF="$GROFF" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GROFF="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GROFF=$ac_cv_path_GROFF if test -n "$GROFF"; then { echo "$as_me:$LINENO: result: $GROFF" >&5 echo "${ECHO_T}$GROFF" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test -n "$GROFF"; then HAVE_GROFF_TRUE= HAVE_GROFF_FALSE='#' else HAVE_GROFF_TRUE='#' HAVE_GROFF_FALSE= fi # Extract the first word of "xmllint", so it can be a program name with args. set dummy xmllint; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_XMLLINT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $XMLLINT in [\\/]* | ?:[\\/]*) ac_cv_path_XMLLINT="$XMLLINT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XMLLINT="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XMLLINT=$ac_cv_path_XMLLINT if test -n "$XMLLINT"; then { echo "$as_me:$LINENO: result: $XMLLINT" >&5 echo "${ECHO_T}$XMLLINT" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test -n "$XMLLINT"; then HAVE_XMLLINT_TRUE= HAVE_XMLLINT_FALSE='#' else HAVE_XMLLINT_TRUE='#' HAVE_XMLLINT_FALSE= fi # Extract the first word of "tidy", so it can be a program name with args. set dummy tidy; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_TIDY+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $TIDY in [\\/]* | ?:[\\/]*) ac_cv_path_TIDY="$TIDY" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_TIDY="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi TIDY=$ac_cv_path_TIDY if test -n "$TIDY"; then { echo "$as_me:$LINENO: result: $TIDY" >&5 echo "${ECHO_T}$TIDY" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test -n "$TIDY"; then HAVE_TIDY_TRUE= HAVE_TIDY_FALSE='#' else HAVE_TIDY_TRUE='#' HAVE_TIDY_FALSE= fi # Extract the first word of "xsltproc", so it can be a program name with args. set dummy xsltproc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_XSLTPROC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $XSLTPROC in [\\/]* | ?:[\\/]*) ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XSLTPROC=$ac_cv_path_XSLTPROC if test -n "$XSLTPROC"; then { echo "$as_me:$LINENO: result: $XSLTPROC" >&5 echo "${ECHO_T}$XSLTPROC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi # Extract the first word of "java", so it can be a program name with args. set dummy java; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_JAVA+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $JAVA in [\\/]* | ?:[\\/]*) ac_cv_path_JAVA="$JAVA" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_JAVA="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi JAVA=$ac_cv_path_JAVA if test -n "$JAVA"; then { echo "$as_me:$LINENO: result: $JAVA" >&5 echo "${ECHO_T}$JAVA" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test -z "$RESOLVER_JARS" ; then { echo "$as_me:$LINENO: checking for /usr/local/share/java/resolver.jar" >&5 echo $ECHO_N "checking for /usr/local/share/java/resolver.jar... $ECHO_C" >&6; } if test "${ac_cv_file__usr_local_share_java_resolver_jar+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else test "$cross_compiling" = yes && { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } if test -r "/usr/local/share/java/resolver.jar"; then ac_cv_file__usr_local_share_java_resolver_jar=yes else ac_cv_file__usr_local_share_java_resolver_jar=no fi fi { echo "$as_me:$LINENO: result: $ac_cv_file__usr_local_share_java_resolver_jar" >&5 echo "${ECHO_T}$ac_cv_file__usr_local_share_java_resolver_jar" >&6; } if test $ac_cv_file__usr_local_share_java_resolver_jar = yes; then RESOLVER_JARS=/usr/local/share/java/resolver.jar fi fi if test -z "$RESOLVER_JARS" ; then { echo "$as_me:$LINENO: checking for /usr/share/java/resolver.jar" >&5 echo $ECHO_N "checking for /usr/share/java/resolver.jar... $ECHO_C" >&6; } if test "${ac_cv_file__usr_share_java_resolver_jar+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else test "$cross_compiling" = yes && { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } if test -r "/usr/share/java/resolver.jar"; then ac_cv_file__usr_share_java_resolver_jar=yes else ac_cv_file__usr_share_java_resolver_jar=no fi fi { echo "$as_me:$LINENO: result: $ac_cv_file__usr_share_java_resolver_jar" >&5 echo "${ECHO_T}$ac_cv_file__usr_share_java_resolver_jar" >&6; } if test $ac_cv_file__usr_share_java_resolver_jar = yes; then RESOLVER_JARS=/usr/share/java/resolver.jar fi fi if test -z "$RESOLVER_JARS" ; then { echo "$as_me:$LINENO: checking for /usr/share/java/xml-commons-resolver-1.1.jar" >&5 echo $ECHO_N "checking for /usr/share/java/xml-commons-resolver-1.1.jar... $ECHO_C" >&6; } if test "${ac_cv_file__usr_share_java_xml_commons_resolver_1_1_jar+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else test "$cross_compiling" = yes && { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } if test -r "/usr/share/java/xml-commons-resolver-1.1.jar"; then ac_cv_file__usr_share_java_xml_commons_resolver_1_1_jar=yes else ac_cv_file__usr_share_java_xml_commons_resolver_1_1_jar=no fi fi { echo "$as_me:$LINENO: result: $ac_cv_file__usr_share_java_xml_commons_resolver_1_1_jar" >&5 echo "${ECHO_T}$ac_cv_file__usr_share_java_xml_commons_resolver_1_1_jar" >&6; } if test $ac_cv_file__usr_share_java_xml_commons_resolver_1_1_jar = yes; then RESOLVER_JARS=/usr/share/java/xml-commons-resolver-1.1.jar fi fi if test -z "$SAXON_JARS" ; then { echo "$as_me:$LINENO: checking for /usr/local/share/java/saxon.jar" >&5 echo $ECHO_N "checking for /usr/local/share/java/saxon.jar... $ECHO_C" >&6; } if test "${ac_cv_file__usr_local_share_java_saxon_jar+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else test "$cross_compiling" = yes && { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } if test -r "/usr/local/share/java/saxon.jar"; then ac_cv_file__usr_local_share_java_saxon_jar=yes else ac_cv_file__usr_local_share_java_saxon_jar=no fi fi { echo "$as_me:$LINENO: result: $ac_cv_file__usr_local_share_java_saxon_jar" >&5 echo "${ECHO_T}$ac_cv_file__usr_local_share_java_saxon_jar" >&6; } if test $ac_cv_file__usr_local_share_java_saxon_jar = yes; then SAXON_JARS=/usr/local/share/java/saxon.jar fi fi if test -z "$SAXON_JARS" ; then { echo "$as_me:$LINENO: checking for /usr/share/java/saxon.jar" >&5 echo $ECHO_N "checking for /usr/share/java/saxon.jar... $ECHO_C" >&6; } if test "${ac_cv_file__usr_share_java_saxon_jar+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else test "$cross_compiling" = yes && { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } if test -r "/usr/share/java/saxon.jar"; then ac_cv_file__usr_share_java_saxon_jar=yes else ac_cv_file__usr_share_java_saxon_jar=no fi fi { echo "$as_me:$LINENO: result: $ac_cv_file__usr_share_java_saxon_jar" >&5 echo "${ECHO_T}$ac_cv_file__usr_share_java_saxon_jar" >&6; } if test $ac_cv_file__usr_share_java_saxon_jar = yes; then SAXON_JARS=/usr/share/java/saxon.jar fi fi if test -z "$XALAN_JARS" ; then { echo "$as_me:$LINENO: checking for /usr/local/share/java/xalan.jar" >&5 echo $ECHO_N "checking for /usr/local/share/java/xalan.jar... $ECHO_C" >&6; } if test "${ac_cv_file__usr_local_share_java_xalan_jar+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else test "$cross_compiling" = yes && { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } if test -r "/usr/local/share/java/xalan.jar"; then ac_cv_file__usr_local_share_java_xalan_jar=yes else ac_cv_file__usr_local_share_java_xalan_jar=no fi fi { echo "$as_me:$LINENO: result: $ac_cv_file__usr_local_share_java_xalan_jar" >&5 echo "${ECHO_T}$ac_cv_file__usr_local_share_java_xalan_jar" >&6; } if test $ac_cv_file__usr_local_share_java_xalan_jar = yes; then XALAN_JARS=/usr/local/share/java/xalan.jar fi fi if test -z "$XALAN_JARS" ; then { echo "$as_me:$LINENO: checking for /usr/share/java/xalan.jar" >&5 echo $ECHO_N "checking for /usr/share/java/xalan.jar... $ECHO_C" >&6; } if test "${ac_cv_file__usr_share_java_xalan_jar+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else test "$cross_compiling" = yes && { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } if test -r "/usr/share/java/xalan.jar"; then ac_cv_file__usr_share_java_xalan_jar=yes else ac_cv_file__usr_share_java_xalan_jar=no fi fi { echo "$as_me:$LINENO: result: $ac_cv_file__usr_share_java_xalan_jar" >&5 echo "${ECHO_T}$ac_cv_file__usr_share_java_xalan_jar" >&6; } if test $ac_cv_file__usr_share_java_xalan_jar = yes; then XALAN_JARS=/usr/share/java/xalan.jar fi fi if test -z "$XALAN_JARS" ; then { echo "$as_me:$LINENO: checking for /usr/share/java/xalan2.jar" >&5 echo $ECHO_N "checking for /usr/share/java/xalan2.jar... $ECHO_C" >&6; } if test "${ac_cv_file__usr_share_java_xalan2_jar+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else test "$cross_compiling" = yes && { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } if test -r "/usr/share/java/xalan2.jar"; then ac_cv_file__usr_share_java_xalan2_jar=yes else ac_cv_file__usr_share_java_xalan2_jar=no fi fi { echo "$as_me:$LINENO: result: $ac_cv_file__usr_share_java_xalan2_jar" >&5 echo "${ECHO_T}$ac_cv_file__usr_share_java_xalan2_jar" >&6; } if test $ac_cv_file__usr_share_java_xalan2_jar = yes; then XALAN_JARS=/usr/share/java/xalan2.jar fi fi ac_config_headers="$ac_config_headers utf8trans/config.h" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Extract the first word of "grep ggrep" to use in msg output if test -z "$GREP"; then set dummy grep ggrep; ac_prog_name=$2 if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_executable_p "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS fi GREP="$ac_cv_path_GREP" if test -z "$GREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 echo "${ECHO_T}$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else # Extract the first word of "egrep" to use in msg output if test -z "$EGREP"; then set dummy egrep; ac_prog_name=$2 if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_executable_p "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS fi EGREP="$ac_cv_path_EGREP" if test -z "$EGREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in getopt.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ----------------------------------------------- ## ## Report this to stevecheng@users.sourceforge.net ## ## ----------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in getline do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in getopt_long do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' eval static_datadir="$datadir" eval static_bindir="$bindir" old_val="" until test "$static_bindir" = "$old_val"; do old_val="$static_bindir" eval static_bindir="$static_bindir" done INSTALLED_UTF8TRANS="$static_bindir/`echo utf8trans | sed -e "$program_transform_name"`" INSTALLED_CHARMAP_ROFF="$static_datadir/docbook2X/charmaps/roff.charmap" INSTALLED_CHARMAP_TEXI="$static_datadir/docbook2X/charmaps/texi.charmap" INSTALLED_DB2X_MANXML="$static_bindir/`echo db2x_manxml | sed -e "$program_transform_name"`" INSTALLED_DB2X_TEXIXML="$static_bindir/`echo db2x_texixml | sed -e "$program_transform_name"`" INSTALLED_STYLESHEETS_CATALOG="$static_datadir/docbook2X/xslt/catalog.xml" INSTALLED_DB2X_XSLTPROC="$static_bindir/`echo db2x_xsltproc | sed -e "$program_transform_name"`" INSTALLED_SGML2XML_ISOENT="$static_bindir/`echo sgml2xml-isoent | sed -e "$program_transform_name"`" CFLAGS="${CFLAGS} -Wall" ac_config_files="$ac_config_files Makefile charmaps/Makefile dtd/Makefile xslt/Makefile xslt/common/Makefile xslt/common/text/Makefile xslt/man/Makefile xslt/texi/Makefile xslt/documentation/Makefile xslt/backend/Makefile perl/Makefile perl/config.pl perl/sgml2xml-isoent utf8trans/Makefile doc/Makefile test/Makefile test/refentry/Makefile test/complete-manuals/Makefile test/utf8trans/Makefile test/sgml/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${HAVE_HTML_XSL_TRUE}" && test -z "${HAVE_HTML_XSL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HAVE_HTML_XSL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HAVE_HTML_XSL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_GROFF_TRUE}" && test -z "${HAVE_GROFF_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HAVE_GROFF\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HAVE_GROFF\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_XMLLINT_TRUE}" && test -z "${HAVE_XMLLINT_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HAVE_XMLLINT\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HAVE_XMLLINT\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_TIDY_TRUE}" && test -z "${HAVE_TIDY_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HAVE_TIDY\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HAVE_TIDY\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # Find out whether ``test -x'' works. Don't use a zero-byte file, as # systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then as_executable_p="test -x" else as_executable_p=: fi rm -f conf$$.file # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by docbook2X $as_me 0.8.8, which was generated by GNU Autoconf 2.60. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ docbook2X config.status 0.8.8 configured by $0, generated by GNU Autoconf 2.60, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "utf8trans/config.h") CONFIG_HEADERS="$CONFIG_HEADERS utf8trans/config.h" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "charmaps/Makefile") CONFIG_FILES="$CONFIG_FILES charmaps/Makefile" ;; "dtd/Makefile") CONFIG_FILES="$CONFIG_FILES dtd/Makefile" ;; "xslt/Makefile") CONFIG_FILES="$CONFIG_FILES xslt/Makefile" ;; "xslt/common/Makefile") CONFIG_FILES="$CONFIG_FILES xslt/common/Makefile" ;; "xslt/common/text/Makefile") CONFIG_FILES="$CONFIG_FILES xslt/common/text/Makefile" ;; "xslt/man/Makefile") CONFIG_FILES="$CONFIG_FILES xslt/man/Makefile" ;; "xslt/texi/Makefile") CONFIG_FILES="$CONFIG_FILES xslt/texi/Makefile" ;; "xslt/documentation/Makefile") CONFIG_FILES="$CONFIG_FILES xslt/documentation/Makefile" ;; "xslt/backend/Makefile") CONFIG_FILES="$CONFIG_FILES xslt/backend/Makefile" ;; "perl/Makefile") CONFIG_FILES="$CONFIG_FILES perl/Makefile" ;; "perl/config.pl") CONFIG_FILES="$CONFIG_FILES perl/config.pl" ;; "perl/sgml2xml-isoent") CONFIG_FILES="$CONFIG_FILES perl/sgml2xml-isoent" ;; "utf8trans/Makefile") CONFIG_FILES="$CONFIG_FILES utf8trans/Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; "test/refentry/Makefile") CONFIG_FILES="$CONFIG_FILES test/refentry/Makefile" ;; "test/complete-manuals/Makefile") CONFIG_FILES="$CONFIG_FILES test/complete-manuals/Makefile" ;; "test/utf8trans/Makefile") CONFIG_FILES="$CONFIG_FILES test/utf8trans/Makefile" ;; "test/sgml/Makefile") CONFIG_FILES="$CONFIG_FILES test/sgml/Makefile" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim CYGPATH_W!$CYGPATH_W$ac_delim PACKAGE!$PACKAGE$ac_delim VERSION!$VERSION$ac_delim ACLOCAL!$ACLOCAL$ac_delim AUTOCONF!$AUTOCONF$ac_delim AUTOMAKE!$AUTOMAKE$ac_delim AUTOHEADER!$AUTOHEADER$ac_delim MAKEINFO!$MAKEINFO$ac_delim install_sh!$install_sh$ac_delim STRIP!$STRIP$ac_delim INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim mkdir_p!$mkdir_p$ac_delim AWK!$AWK$ac_delim SET_MAKE!$SET_MAKE$ac_delim am__leading_dot!$am__leading_dot$ac_delim AMTAR!$AMTAR$ac_delim am__tar!$am__tar$ac_delim am__untar!$am__untar$ac_delim HAVE_HTML_XSL_TRUE!$HAVE_HTML_XSL_TRUE$ac_delim HAVE_HTML_XSL_FALSE!$HAVE_HTML_XSL_FALSE$ac_delim XSLT_PROCESSOR!$XSLT_PROCESSOR$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim EXEEXT!$EXEEXT$ac_delim OBJEXT!$OBJEXT$ac_delim DEPDIR!$DEPDIR$ac_delim am__include!$am__include$ac_delim am__quote!$am__quote$ac_delim AMDEP_TRUE!$AMDEP_TRUE$ac_delim AMDEP_FALSE!$AMDEP_FALSE$ac_delim AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim CCDEPMODE!$CCDEPMODE$ac_delim am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim PERL!$PERL$ac_delim ICONV!$ICONV$ac_delim SX!$SX$ac_delim OSX!$OSX$ac_delim GROFF!$GROFF$ac_delim HAVE_GROFF_TRUE!$HAVE_GROFF_TRUE$ac_delim HAVE_GROFF_FALSE!$HAVE_GROFF_FALSE$ac_delim XMLLINT!$XMLLINT$ac_delim HAVE_XMLLINT_TRUE!$HAVE_XMLLINT_TRUE$ac_delim HAVE_XMLLINT_FALSE!$HAVE_XMLLINT_FALSE$ac_delim TIDY!$TIDY$ac_delim HAVE_TIDY_TRUE!$HAVE_TIDY_TRUE$ac_delim HAVE_TIDY_FALSE!$HAVE_TIDY_FALSE$ac_delim XSLTPROC!$XSLTPROC$ac_delim JAVA!$JAVA$ac_delim RESOLVER_JARS!$RESOLVER_JARS$ac_delim SAXON_JARS!$SAXON_JARS$ac_delim XALAN_JARS!$XALAN_JARS$ac_delim CPP!$CPP$ac_delim GREP!$GREP$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF CEOF$ac_eof _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF EGREP!$EGREP$ac_delim INSTALLED_UTF8TRANS!$INSTALLED_UTF8TRANS$ac_delim INSTALLED_CHARMAP_ROFF!$INSTALLED_CHARMAP_ROFF$ac_delim INSTALLED_CHARMAP_TEXI!$INSTALLED_CHARMAP_TEXI$ac_delim INSTALLED_DB2X_MANXML!$INSTALLED_DB2X_MANXML$ac_delim INSTALLED_DB2X_TEXIXML!$INSTALLED_DB2X_TEXIXML$ac_delim INSTALLED_STYLESHEETS_CATALOG!$INSTALLED_STYLESHEETS_CATALOG$ac_delim INSTALLED_DB2X_XSLTPROC!$INSTALLED_DB2X_XSLTPROC$ac_delim INSTALLED_SGML2XML_ISOENT!$INSTALLED_SGML2XML_ISOENT$ac_delim LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 11; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$ac_file_inputs $ac_f" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input="Generated from "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; :H) # # CONFIG_HEADER # _ACEOF # Transform confdefs.h into a sed script `conftest.defines', that # substitutes the proper values into config.h.in to produce config.h. rm -f conftest.defines conftest.tail # First, append a space to every undef/define line, to ease matching. echo 's/$/ /' >conftest.defines # Then, protect against being on the right side of a sed subst, or in # an unquoted here document, in config.status. If some macros were # called several times there might be several #defines for the same # symbol, which is useless. But do not sort them, since the last # AC_DEFINE must be honored. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* # These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where # NAME is the cpp macro being defined, VALUE is the value it is being given. # PARAMS is the parameter list in the macro definition--in most cases, it's # just an empty string. ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' ac_dB='\\)[ (].*,\\1define\\2' ac_dC=' ' ac_dD=' ,' uniq confdefs.h | sed -n ' t rset :rset s/^[ ]*#[ ]*define[ ][ ]*// t ok d :ok s/[\\&,]/\\&/g s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p ' >>conftest.defines # Remove the space that was appended to ease matching. # Then replace #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. # (The regexp can be short, since the line contains either #define or #undef.) echo 's/ $// s,^[ #]*u.*,/* & */,' >>conftest.defines # Break up conftest.defines: ac_max_sed_lines=50 # First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" # Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" # Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" # et cetera. ac_in='$ac_file_inputs' ac_out='"$tmp/out1"' ac_nxt='"$tmp/out2"' while : do # Write a here document: cat >>$CONFIG_STATUS <<_ACEOF # First, check the format of the line: cat >"\$tmp/defines.sed" <<\\CEOF /^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def /^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def b :def _ACEOF sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail grep . conftest.tail >/dev/null || break rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines conftest.tail echo "ac_result=$ac_in" >>$CONFIG_STATUS cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then echo "/* $configure_input */" >"$tmp/config.h" cat "$ac_result" >>"$tmp/config.h" if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else rm -f $ac_file mv "$tmp/config.h" $ac_file fi else echo "/* $configure_input */" cat "$ac_result" fi rm -f "$tmp/out12" # Compute $ac_file's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $ac_file | $ac_file:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $ac_file" >`$as_dirname -- $ac_file || $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X$ac_file : 'X\(//\)[^/]' \| \ X$ac_file : 'X\(//\)$' \| \ X$ac_file : 'X\(/\)' \| . 2>/dev/null || echo X$ac_file | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir=$dirpart/$fdir case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi docbook2X-0.8.8/charmaps/0000777000175000017500000000000010572276002012165 500000000000000docbook2X-0.8.8/charmaps/roff-small.charmap.xml0000644000175000017500000000320010106750127016270 00000000000000 docbook2X-0.8.8/charmaps/roff.charmap0000644000175000017500000006423110112225150014364 00000000000000 # $Id: roff.charmap,v 1.6 2004/08/13 01:32:23 stevecheng Exp $ # # unicodetoroff.xml - map Unicode chars to roff escape sequences. # # Author: Michael Smith # Created: 2004-01-27 # Version: 1.00.0 # Date: $Date: 2004/08/13 01:32:23 $ # RCS Id: $Id: roff.charmap,v 1.6 2004/08/13 01:32:23 stevecheng Exp $ # URL: http://docbook.sf.net/projects/xsl/ # # Copyright 2004 Michael Smith # # Permission is hereby granted, free of charge, to any person # obtaining a copy of this software and associated documentation # files (the "Software"), to deal in the Software without # restriction, including without limitation the rights to use, # copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following # conditions: # # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR # OTHER DEALINGS IN THE SOFTWARE. # # *************************************************************** # Commentary # *************************************************************** # This file maps a small subset of Unicode characters (around 800 # or so) to corresponding roff espace sequences. Use it when you # need to convert Unicode (UTF-8 or UTF-16) encoded XML content # to roff (e.g., to generate "portable" man-page output). # # Although the format follows the "character map" format # specified in the XSLT 2.0 working draft[1], it can be used with # an appropriate XSLT 1.0 stylesheet and any XSLT 1.0 processor. # # [1] http://www.w3.org/TR/xslt20/#character-maps # # In order to make the character map more readable, it uses the # following "extension attributes" (in the "unichar" namespace): # # - unichar:name = ISO character name (e.g., "YEN SIGN") # - unichar:entity = ISO entity name (e.g., "yen") # # Use of such extension attributes is permitted by the XSLT 2.0 # spec; see the "Extension Attributes" section[2]. # # [2] http://www.w3.org/TR/xslt20/#extension-attributes # # The initial version of this file (before the "string" mappings # were added) was generated by taking the "unichars.el" file from # Norm Walsh's "xmlunicode.el"[3] elisp distro, and running a # script on it to convert it to XML. # # *************************************************************** # Acknowledgements # *************************************************************** # References used in selecting roff mappings: # # - groff_char(7) man page[3] # - groff info file[4]; in particular, the "Page Motions" node[5] # - tables in "Character Sets" chapter of "XML In a Nutshell"[6] # # [3] http://www.linux.se/showMan.php?TITLE=groff_char&SECTION=7 # [4] http://www.fifi.org/cgi-bin/info2www?(groff) # [5] http://www.fifi.org/cgi-bin/info2www?(groff)Page+Motions # [6] http://www.ibiblio.org/xml/books/xian2/ # # The idea for doing this in XML/XSLT came from working with # Steve Cheng’s docbook2x package[7] - in particular, the # "utf8trans" utility and character-map system in that package. # # [7] http://docbook2x.sourceforge.net/ # # ################################################################# # ***************************************************************** # Begin: Latin-1/ISO-8859-1 # x00a0 to x00ff # **************************************************************** # no-break space can be written two ways in roff; the difference, # according to the "Page Motions" node in the groff info page, is: # # "\ " = # "An unbreakable and unpaddable (i.e. not expanded during filling) # space." # # "\~" = # "An unbreakable space that stretches like a normal # inter-word space when a line is adjusted." # # Unfortunately, roff seems to do some weird things with long # lines that only have words separated by "\~" spaces, so it's # safer just to stick with the "\ " space # a0 \ a1 \(r! a2 \(ct a3 \(Po a4 \(Cs a5 \(Ye a6 \(bb a7 \(sc a8 \(ad a9 \(co aa \(Of ab \(Fo ac \(no # groff_char(7) man page says: "the soft hyphen control character # (prints as itself). groff never use this character for output # (thus it is omitted in the table below); the input character 173 # is onto \%." ad \% ae \(rg af \(a- b0 \(de b1 \(+- b2 \(S2 b3 \(S3 b4 \(aa b5 \(mc b6 \(ps # according to groff_char(7), I think the escape string \(pc # "periodcentered" could also be used for middot; not sure which # is better, but "md" mnemonic is a better fit :-) # b7 \(md b8 \(ac b9 \(S1 ba \(Om bb \(Fc bc \(14 bd \(12 be \(34 bf \(r? c0 \(`A c1 \('A c2 \(^A c3 \(~A c4 \(:A c5 \(oA c6 \(AE c7 \(,C c8 \(`E c9 \('E ca \(^E cb \(:E cc \(`I cd \('I ce \(^I cf \(:I d0 \(-D d1 \(~N d2 \(`O d3 \('O d4 \(^O d5 \(~O d6 \(:O d7 \(mu d8 \(/O d9 \(`U da \('U db \(^U dc \(:U dd \('Y de \(TP df \(ss e0 \(`a e1 \('a e2 \(^a e3 \(~a e4 \(:a e5 \(oa e6 \(ae e7 \(,c e8 \(`e e9 \('e ea \(^e eb \(:e ec \(`i ed \('i ee \(^i ef \(:i f0 \(Sd f1 \(~n f2 \(`o f3 \('o f4 \(^o f5 \(~o f6 \(:o f7 \(di f8 \(/o f9 \(`u fa \('u fb \(^u fc \(:u fd \('y fe \(Tp ff \(:y # **************************************************************** # End: Latin-1/ISO-8859-1 # **************************************************************** # **************************************************************** # Begin: # # - x0100 to x017f (Latin Extended-A) # - x0180 to x023f (Latin Extended-B) # - x0250 to x02ad (IPA Extensions) # - x02b0 to x02ee (Spacing Modifier Letters) # - x0300 to x036f (Combining Diacritical Marks) # # Other than the following exceptions, characters in these # blocks don't have any roff equivalents # **************************************************************** 131 \(.i 132 \(IJ 133 \(ij 141 \(/L 142 \(/l 152 \(OE 153 \(oe 192 \(Fn 2c6 \(a^ 2c7 \(ac 2c9 \(a- 2d8 \(ab # there does not seem to by any roff equivalent for "dot above" # # 2da \(ao 2db \(ho # groff_char(7) man page calls Unicode x02dd a "Hungarian umlaut" # 2dd \(a" # **************************************************************** # End: # - Latin Extended-A # - Latin Extended-B # - IPA Extensions # - Spacing Modifier Letters # - Combining Diacritical Marks # **************************************************************** # **************************************************************** # Begin: Greek and Coptic # x0370 to x03ff # **************************************************************** 391 \(*A) 392 \(*B 393 \(*G 394 \(*D 395 \(*E 396 \(*Z 397 \(*Y 398 \(*H 399 \(*I 39a \(*K 39b \(*L 39c \(*M 39d \(*N 39e \(*C 39f \(*O 3a0 \(*P 3a1 \(*R 3a3 \(*S 3a4 \(*T 3a5 \(*U 3a6 \(*F 3a7 \(*X 3a8 \(*Q 3a9 \(*W 3aa \(*I 3ab \(*U 3ac \(*a 3ad \(*e 3ae \(*y 3af \(*i 3b0 \(*u 3b1 \(*a 3b2 \(*b 3b3 \(*g 3b4 \(*d 3b5 \(*e 3b6 \(*z 3b7 \(*y 3b8 \(*h 3b9 \(*i 3ba \(*k 3bb \(*l 3bc \(*m 3bd \(*n 3be \(*c 3bf \(*o 3c0 \(*p 3c1 \(*r 3c2 \(ts 3c3 \(*s 3c4 \(*t 3c5 \(*u 3c6 \(*f 3c7 \(*x 3c8 \(*q 3c9 \(*w 3ca \(*i 3cb \(*u 3cc \(*o 3cd \(*u 3ce \(*w 3d0 \(*B 3d1 \(+h 3d2 \(*U 3d3 \(*U 3d4 \(*U 3d5 \(+f 3d6 \(+p # no mappings for remaining chars x03d7 to x03ef 3f0 (*k 3f1 \(*r 3f2 \(*s 3f4 \(*H 3f5 \(*e 3f6 \(*e # **************************************************************** # End: Greek and Coptic # **************************************************************** # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # Cyrillic # x0400 to x04ff # # - do nothing - # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # ***************************************************************** # Begin: General Punctuation # x2000 to x206f # **************************************************************** # first, Spaces of various widths # Note: There does not seem to be either a real em space or en # space in roff; to approximate them, this character map assumes # that in most fonts, an en space is about the same as the width of # a digit (in roff, "\0"), so an em space (which by definition is # equal to the width of two en spaces) is about the same as the # width of two digits (thus, in roff, "\0\0") 2000 \0 2001 \0\0 2002 \0 2003 \0\0 # roughly same width as a normal space 2004 # roughly same width as a normal space 2005 # roughly same width as a normal space 2006 # same as roff "digit" space 2007 \0 # punctuation space in most fonts is actually closer to a normal # space than it is to a thin space 2008 # Note: Not sure how best to deal with thin space, because the # roff thin space, "\^", prints as a zero-width space in TTY # output. However, it seems that, unlike a hair space, a thin # space, at 1/12 of an em, is still recognizable to most people # as a space, so treating it as zero-width seems wrong. So, for # the sake of making TTY output look OK, just substitute with a # normal space; but real roff escape is "\(\^" 2009 # I don't think there's a standard definition of what a hair # space is; some guides just say it's "less than 1/5 of an em" or # that it's "narrower than a thin space"; seems like in practice, # it's *a lot* narrower than a thin space, to the point where # it's close to being a non-space, so here it's substitute with # roff equivalent of a zero-width joiner 200a \& # map to roff "zero-width break point" 200b \: # map to roff "zero-width break point" 200c \: # groff docs seem ambiguous about whether \& is a joiner and # prevents breaks, but, based on testing, seems like it does 200d \& # non-visible # # # # .................................................... # next, hyphens and various dashes, bars, underscores 2010 \(hy 2011 \&-\& # roughly same width as en dash 2012 \(en 2013 \(en 2014 \(em # seems roughly same width as em dash 2015 \(em 2016 \(bv\(bv # no double-underscore in roff; so just make it a single # underscore 2017 _ # .................................................... # various quotation marks 2018 \(oq 2019 \(cq 201a \(bq # no roff equiv; treat same as lsquo 201b \(oq 201c \(lq 201d \(rq 201e \(Bq # no roff equiv; treat same as rdquo 201f \(rq # .................................................... # various symbols 2020 \(dg 2021 \(dd 2022 \(bu # no roff equiv 2023 >\& # no roff equiv 2024 \&. # no roff equiv 2025 \&.. # no roff equiv 2026 \&... 2027 \% # Begin x2028 to x202e - no idea what to do with these # # # # # # # # End x2028 to x202e - no idea what to do with these # seems like "narrow" nbsp is basically the same as a no-break # space 202f \ 2030 \(%0 # no roff equiv; no idea what to do with it # # 2032 \(fm 2033 \(sd 2034 \(sd\(fm # no idea for these # # # # # there is no low caret in roff 2038 ^ 2039 \(fo 203a \(fc # not in roff 203b * 203c !! 203d ?! 203e \(rn 203f \(ul # not in roff 2040 \(rn # not in roff 2041 ^ # not in roff 2042 * # not in roff; just make bold hyphen 2043 \fB-\fR 2044 \(sl # not in roff 2045 [ # not in roff 2046 ] 2047 ?? 2048 ?! 2049 !? # not in roff 204a 7 # not in roff; just replace with un-reversed pilcrow 204b \(ps # not in roff; just make regular bullet 204c \(bu # not in roff; just make regular bullet 204d \(bu 204e * # ............................................................... # Remaining General Punctuation # from x2050 to x206f # only map a couple of these # .............................................................. # basically same as a normal space 205f # no idea how this is different than a zero-width joiner 2060 \& # ***************************************************************** # End: General Punctuation # **************************************************************** # ***************************************************************** # Begin: Superscripts and Subscripts # x2070 to x209f # For superscripts, just do a^n thing # For subscripts, just do a_n # **************************************************************** 2070 ^0 2071 ^i 2074 ^4 2075 ^5 2076 ^6 2077 ^7 2078 ^8 2079 ^9 207a ^+ 207b ^- 207c ^= 207d ^( 207e ^) 207f ^n 2080 _0 2081 _1 2082 _2 2083 _3 2084 _4 2085 _5 2086 _6 2087 _7 2088 _8 2089 _9 208a _+ 208b _- 208c _= 208d _( 208e _) # ***************************************************************** # End: Superscripts and Subscripts # x2070 to x209f # **************************************************************** # ***************************************************************** # Begin: Currency Symbols # x20a0 to x20b1 # No mappings for any of these; just spell out # **************************************************************** 20a0 EUR 20a1 COLON 20a2 CRUZEIRO 20a3 FRANC 20a4 LIRA 20a5 MILL 20a6 NAIRA 20a7 PESETA 20a8 RUPEE 20a9 WON 20aa SHEQEL 20ab DONG 20ac EUR 20ad KIP 20ae TUGRIK 20af DRACHMA 20b0 ? 20b1 PESO # ***************************************************************** # End: Currency Symbols # x20a0 to x20b1 # **************************************************************** # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # Combining Diacritical Marks for Symbols # x20do to x20ff # # - do nothing - # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # ***************************************************************** # Begin: Letterlike Symbols # x2100 to x214b # # No mappings for any of these, and nothing appropriate for most # of them; so, just spell out the ones that we can # **************************************************************** 2103 \(deC 2105 c/o 2109 \(deF # roff Ifraktur 2111 \(Im 2113 l 2116 No. 2118 \(wp 211c \(Re 211e Rx 2120 sm 2122 \(tm 2126 \(*W 212a K 212b \(oA 2135 \(Ah # ***************************************************************** # End: Letterlike Symbols # x2100 to x214b # **************************************************************** # ***************************************************************** # Begin: Number Forms # x2150 to x218f # # No mappings for any of these, and nothing appropriate for most # of them; so, just spell out the ones that we can # **************************************************************** 2153 1/3 2154 2/3 2155 1/5 2156 2/5 2157 3/5 2158 4/5 2159 1/6 215a 5/6 215b 1/8 215c 3/8 215d 5/8 215e 7/8 215f 1/ 2160 I 2161 II 2162 III 2163 IV 2164 V 2165 VI 2166 VII 2167 VIII 2168 IX 2169 X 216a XI 216b XII 216c L 216d C 216e D 216f M 2170 i 2171 ii 2172 iii 2173 iv 2174 v 2175 vi 2176 vii 2177 viii 2178 ix 2179 x 217a xi 217b xii 217c l 217d c 217e d 217f m 2180 CD # ***************************************************************** # End: Number Forms # x2150 to x218f # **************************************************************** # ***************************************************************** # Begin: Arrows # x2190 to x21ff # **************************************************************** 2190 \(<- 2191 \(ua 2192 \(-> 2193 \(da 2194 \(<> 2195 \(va 21b5 \(CR 21d0 \(la 21d1 \(uA 21d2 \(rA 21d3 \(dA 21d4 \(hA # no roff equiv; render same as single arrow 21d5 \(va # ***************************************************************** # Begin: Mathematical Operators # x2200 to x22ff # **************************************************************** 2200 \(fa 2201 C 2202 \(pd 2203 \(te # no roff equiv # # 2205 \(es 2206 \(*D 2207 \(gr 2208 \(mo 2209 \(nm 220a \(mo 220b \(st # not in roff # # 220d \(st # not in roff # # 220f \(product # not in roff # # 2211 \(sum 2212 \- 2213 \(+- # not in roff # # 2215 \(f/ # not in roff # # 2217 \(** # not in roff # # 2219 \(bu 221a \(sr # not in roff # # # 221d \(pt 221e \(if # not in roff # # 2220 \(/_ # 0x2221 to 0x2226 not in roff; # but fake a parallel sign with vert bars 2225 \(bv\(bv 2227 \(AN 2228 \(OR 2229 \(ca 222a \(cu 222b \(is 222c \(is\(is 222d \(is\(is\(is # 0x222e to 0x2233 not in roff 2234 \(tf # not in roff # # 2236 : 2237 :: # 0x2238 to 0x223b not in roff 223c \(ti # 0x223d to 0x224b not in roff 2245 \(=~ # not in roff # # # 2248 \(~~ # x2249 to x2253 not in roff 2254 := 2255 =: # x2256 to x2255 not in roff 225f ?= 2260 \(!= 2261 \(== # not in roff # # # 2264 \(<= 2265 \(>= # x2266 to x2269 not in roff 226a << 226b >> # x226c to x2281 not in roff 2282 \(sb 2283 \(sp 2284 \(nb # not in roff # # 2286 \(ib 2287 \(ip # x2288 to x2294 not in roff 2295 \(c+ 2296 \(c* 2297 \(c* # x2298 to x22a4 not in roff 22a5 \(pp # x22a6 to x22bf not in roff 22c0 \(AN 22c1 \(OR 22c2 \(ca 22c3 \(cu # not in roff # # 22c5 \(md 22c6 \(** # x22c7 to x22cd not in roff 22ce \(OR 22cf \(AN # x22d0 to x22d7 not in roff 22d8 <<< 22d9 >>> # x22da to x22ee not in roff 22ef \&... # x22fo to x22ff not in roff # ***************************************************************** # End: Mathematical Operators # **************************************************************** # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # Miscellaneous Technical # x2300 to x23ff # - do nothing except for angle brackets - # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2329 \(la 232a \(ra # ***************************************************************** # Begin: Control Pictures # x2400 to x243f # **************************************************************** 2400 NUL 2401 SOH 2402 STX 2403 ETX 2404 EOT 2405 ENQ 2406 ACK 2407 BEL 2408 BS 2409 HT 240a LF 240b VT 240c FF 240d CR 240e SO 240f SI 2410 DLE 2411 DC1 2412 DC2 2413 DC3 2414 DC4 2415 NAK 2416 SYN 2417 ETB 2418 CAN 2419 EM 241a SUB 241b ESC 241c FS 241d GS 241e RS 241f US 2420 SP 2421 DEL # no roff equiv; just use real space 2422 # no roff equiv; just use real space 2423 2424 NL # ***************************************************************** # End: Control Pictures # **************************************************************** # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # Optical Character Recognition # x2440 to x24ff # - do nothing - # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # ***************************************************************** # Begin: Enclosed Alphanumerics # x2460 to x24ff # **************************************************************** 2460 1 2461 2 2462 3 2463 4 2464 5 2465 6 2466 7 2467 8 2468 9 2469 10 246a 11 246b 12 246c 13 246d 14 246e 15 246f 16 2470 17 2471 18 2472 19 2473 20 2474 (1) 2475 (2) 2476 (3) 2477 (4) 2478 (5) 2479 (6) 247a (7) 247b (8) 247c (9) 247d (10) 247e (11) 247f (12) 2480 (13) 2481 (14) 2482 (15) 2483 (16) 2484 (17) 2485 (18) 2486 (19) 2487 (20) 2488 1. 2489 2. 248a 3. 248b 4. 248c 5. 248d 6. 248e 7. 248f 8. 2490 9. 2491 10. 2492 11. 2493 12. 2494 13. 2495 14. 2496 15. 2497 16. 2498 17. 2499 18. 249a 19. 249b 20. 249c (a) 249d (b) 249e (c) 249f (d) 24a0 (e) 24a1 (f) 24a2 (g) 24a3 (h) 24a4 (i) 24a5 (j) 24a6 (k) 24a7 (l) 24a8 (m) 24a9 (n) 24aa (o) 24ab (p) 24ac (q) 24ad (r) 24ae (s) 24af (t) 24b0 (u) 24b1 (v) 24b2 (w) 24b3 (x) 24b4 (y) 24b5 (z) 24b6 A 24b7 B 24b8 C 24b9 D 24ba E 24bb F 24bc G 24bd H 24be I 24bf J 24c0 K 24c1 L 24c2 M 24c3 N 24c4 O 24c5 P 24c6 Q 24c7 R 24c8 S 24c9 T 24ca U 24cb V 24cc W 24cd X 24ce Y 24cf Z 24d0 a 24d1 b 24d2 c 24d3 d 24d4 e 24d5 f 24d6 g 24d7 h 24d8 i 24d9 j 24da k 24db l 24dc m 24dd n 24de o 24df p 24e0 q 24e1 r 24e2 s 24e3 t 24e4 u 24e5 b 24e6 w 24e7 x 24e8 y 24e9 z 24ea 0 24eb 11 24ec 12 24ed 13 24ee 14 24ef 15 24f0 16 24f1 17 24f2 18 24f3 19 24f4 20 24f5 1 24f6 2 24f7 3 24f8 4 24f9 5 24fa 6 24fb 7 24fc 8 24fd 9 24fe 10 # ***************************************************************** # End: Enclosed Alphanumerics # **************************************************************** # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # Box Drawing # x2500 to x257f # # Block Elements # x2580 to x259f # # - do nothing - # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # ***************************************************************** # Begin: Geometric Shapes # x25a0 to x25f7 # **************************************************************** 25a1 \(sq 25a2 \(sq 25ab \(sq 25ba \fB>\fR 25bb > 25bc \fBv\fR 25bd v 25c4 \fB<\fR 25c5 < 25c6 \(DI 25c7 \(lz 25ca \(lz 25cb \(ci 25cf \(bu 25e6 \(ci 25ef \(ci # ***************************************************************** # End: Geometric Shapes # x25a0 to x25f7 # **************************************************************** # ***************************************************************** # Begin: Miscellaneous Symbols # x2600 to x26ff # **************************************************************** 261a \(lh 261b \(rh) 261c \(lh 261e \(rh) 2660 \(SP 2661 \(HE 2662 \(DI 2663 \(CL 2664 \(SP 2665 \(HE 2666 \(DI 2667 \(CL # ***************************************************************** # End: Miscellaneous Symbols # **************************************************************** # ***************************************************************** # Begin: Dingbats # x2700 to x27be # No roff equiv. for most of these; just map to something close # **************************************************************** 2713 \(OK 2714 \fB\(OK\fR 2715 \(mu 2716 \fB\(mu\fR 2717 \(mu 2718 \fB\(mu\fR 2719 \fB+\fR 271a \fB+\fR 271b \fB+\fR 271c \fB+\fR 271d \fB+\fR 271e \fB+\fR 271f \fB+\fR 2720 \fB+\fR 2721 * 2722 * 2723 * 2724 * 2725 * 2726 * 2727 * 2729 * 272a * 272b * 272c * 272d * 272e * 272f * 2730 * 2731 * 2732 * 2733 * 2734 * 2735 * 2736 * 2737 * 2738 * 2739 * 273a * 273b * 273c * 273d * 273e * 273f * 2740 * 2741 * 2742 * 2743 * 2744 * 2745 * 2746 * 2747 * 2748 * 2749 * 274a * 274b * 274d * 274f \(sq 2750 \(sq 2751 \(sq 2752 \(sq 2756 * 2758 \(bv 2759 \fB\(bv\fR 275a \fB\(bv\fR 275b \fB\(oq\fR 275c \fB\(cq\fR 275d \fB\(lq\fR 275e \fB\(rq\fR 2761 \(ps 2762 \fB!\fR 2763 \fB!\fR 2764 \fB\(HE\fR 2765 \fB\(HE\fR 2766 \fB\(HE\fR 2767 \fB\(HE\fR 2776 1 2777 2 2778 3 2779 4 277a 5 277b 6 277c 7 277d 8 277e 9 277f 10 2780 1 2781 2 2782 3 2783 4 2784 5 2785 6 2786 7 2787 8 2788 9 2789 10 278a 1 278b 2 278c 3 278d 4 278e 5 278f 6 2790 7 2791 8 2792 9 2793 10 2794 \fR\(->\fB 2799 \fR\(->\fB 279b \(-> 279c \fR\(->\fB 279d \(-> 279e \fR\(->\fB 279f \(-> 27a0 \fR\(->\fB 27a1 \fR\(->\fB 27a2 \(-> 27a3 \(-> 27a4 \(-> 27a7 \fR\(->\fB 27a8 \fR\(->\fB 27a9 \(rA 27aa \(rA 27ab \(rA 27ac \(rA 27ad \(rA 27ae \(rA 27af \(rA 27b1 \(rA 27b2 \(rA 27b3 \fR\(->\fB 27b4 \fR\(->\fB 27b5 \fR\(->\fB 27b6 \fR\(->\fB 27b7 \fR\(->\fB 27b8 \fR\(->\fB 27b9 \fR\(->\fB 27ba \fR\(->\fB 27bb \fR\(->\fB 27bc \fR\(->\fB 27bd \fR\(->\fB 27be \fR\(rA\fB # ***************************************************************** # End: Dingbats # **************************************************************** # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # Miscellaneous Mathematical Symbols # x27c0 to x27ef # # Supplemental Arrows # x27f0 to x297f # # Miscellaneous Mathematical Symbols # x2980 to x29ff # # Supplemental Mathematical Operators # x2a00 to x2aff # # - no nothing - # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 3008 \[la] 3009 \[ra] # ***************************************************************** # Begin: Alphabetic Presentation Forms # xfb00 to xfb04 # **************************************************************** fb00 \(ff fb01 \(fi fb02 \(fl fb03 \(Fi fb04 \(Fl # ***************************************************************** # End: Alphabetic Presentation Forms # **************************************************************** docbook2X-0.8.8/charmaps/texi.charmap0000644000175000017500000000413310420261535014405 00000000000000 # # $Id: texi.charmap,v 1.9 2006/04/15 21:19:25 stevecheng Exp $ # # This file defines the mapping of Unicode characters to # Texinfo @-commands or combining characters, used by db2x_texixml(1). # # The format of this file is described in utf8trans(1). # # References: # 1. Mark Burton's dbtotexi. # Essential mappings a0 @ 2010 - 2212 @minus{} 2013 -- 2014 --- 2022 @bullet{} 2026 @dots{} 2018 ` 2019 ' 201c `` 201d '' 2122 (TM) # # Texinfo "glyphs" # Of course, the Unicode characters do not have the semantics assigned # to the glyphs by Texinfo, but they look similar to what would appear # in the TeX-printed output. 21d2 @result{} 21a6 @expansion{} 22a3 @print{} 2261 @equiv{} 212e @error{} 22c6 @point{} # # Latin 1, Latin 2 # # Since makeinfo cannot automatically render the following characters # using native characters from a non-ASCII charset, we may want to leave # them as UTF-8 and let recode handle the rest. a1 @exclamdown{} a3 @pounds{} a9 @copyright{} bf @questiondown{} c6 @AE{} df @ss{} e6 @ae{} 131 @dotless{i} a8 @"{ } e4 @"a c4 @"A eb @"e cb @"E ef @"{@dotless{i}} cf @"I f6 @"o d6 @"O fc @"u dc @"U ff @"y 178 @"Y b4 @'{ } e1 @'a c1 @'A e9 @'e c9 @'E ed @'{@dotless{i}} cd @'I f3 @'o d3 @'O fa @'u da @'U fd @'y dd @'Y 107 @'c 106 @'C 1f5 @'g 13a @'l 139 @'L 144 @'n 143 @'N 155 @'r 154 @'R 15b @'s 15a @'S 17a @'z 179 @'Z b8 @,{ } e7 @,{c} c7 @,{C} 122 @,{G} 137 @,{k} 136 @,{K} 13c @,{l} 13b @,{L} 146 @,{n} 145 @,{N} 157 @,{r} 156 @,{R} 15f @,{s} 15e @,{S} 163 @,{t} 162 @,{T} af @={ } 101 @=a 100 @=A 113 @=e 112 @=E 12a @=I 12b @={@dotless{i}} 14c @=O 14d @=o 16b @=u 16a @=U e2 @^a c2 @^A ea @^e ca @^E ee @^{@dotless{i}} ce @^I f4 @^o d4 @^O db @^u fb @^U 109 @^c 108 @^C 11d @^g 11c @^G 125 @^h 124 @^H 135 @^{@dotless{j}} 134 @^J 15d @^s 15c @^S 175 @^w 174 @^W 177 @^y 176 @^Y e0 @`a c0 @`A e8 @`e c8 @`E ec @`{@dotless{i}} cc @`I f2 @`o d2 @`O f9 @`u d9 @`U e3 @~a c3 @~A f1 @~n d1 @~N f5 @~o d5 @~O 129 @~{@dotless{i}} 128 @~I 169 @~u 168 @~U # stevecheng: I don't know if I should use no-break space # or regular space for figure (or digit) space 2007 221e ∞ 2329 < 232a > 2007 docbook2X-0.8.8/charmaps/texi-small.charmap.xml0000644000175000017500000000207210106750127016313 00000000000000 docbook2X-0.8.8/charmaps/texi.charmap.xml0000644000175000017500000002331510420261536015210 00000000000000 docbook2X-0.8.8/charmaps/xmlcharmap2utf8trans0000755000175000017500000001106710417722467016142 00000000000000#!/usr/bin/env perl =head1 NAME xmlchar2utf8trans - convert XSLT 2.0 character maps to utf8trans character maps =head1 SYNOPSIS xmlchar2utf8trans [xslt-charmap-file] =head1 DESCRIPTION This script converts a XML character map in XSLT 2.0 format to the plain text format used by utf8trans(1). Note: The parsing of the XSLT 2.0 character map is really minimal, and does not conform to the full specification. =cut use XML::SAX::ParserFactory; use strict; package CharmapProcessor; use base qw(XML::SAX::Base); sub start_document { my ($self, $elem) = @_; $self->{imported_charmaps} = {}; $self->{local_charmaps} = {}; } sub xsl_import_element { my ($self, $elem) = @_; my $href = $elem->{Attributes}->{'{}href'}; if(not defined $href) { $self->report_static_error(" does not have required 'href' attribute"); return; } my $import_charmap_proc = CharmapProcessor->new; my $import_parser = XML::SAX::ParserFactory->parser( DocumentHandler => $import_charmap_proc); $import_parser->parse_uri($href->{Value}); copy_hash_entries($self->{imported_charmaps}, $import_charmap_proc->{imported_charmaps}); copy_hash_entries($self->{imported_charmaps}, $import_charmap_proc->{local_charmaps}); } sub copy_hash_entries { my ($to, $from) = @_; my @conflicts = 0; while( my ($k,$v) = each %{$from} ) { push(@conflicts, $k) if exists($to->{$k}); $to->{$k} = $v; } return @conflicts; } sub xsl_include_element { my ($self, $elem) = @_; my $href = $elem->{Attributes}->{'{}href'}; if(not defined $href) { $self->report_static_error(" does not have required 'href' attribute"); return; } my $include_parser = XML::SAX::ParserFactory->parser( DocumentHandler => $self); $include_parser->parse_uri($href->{Value}); } sub xsl_output_character_element { my ($self, $elem) = @_; if(not defined $self->{current_charmap}) { print STDERR "no current charmap\n"; return; } my $char = ord($elem->{Attributes}->{'{}character'}->{Value}); my $string = $elem->{Attributes}->{'{}string'}->{Value}; push(@{$self->{current_charmap}}, [ $char, $string ]); } sub xsl_character_map_element { my ($self, $elem) = @_; my $charmap_name = $elem->{Attributes}->{'{}name'}->{Value}; $self->{current_charmap} = []; $self->{local_charmaps}->{$charmap_name} = $self->{current_charmap}; } sub xsl_output_element { my ($self, $elem) = @_; if(exists $elem->{Attributes}->{'{}use-character-maps'}) { # FIXME doesn't handle namespaced names yet ! $_ = $elem->{Attributes}->{'{}use-character-maps'}->{Value}; my @k = split; $self->{use_charmaps} = \@k; } } sub start_element { my ($self, $elem) = @_; if($elem->{NamespaceURI} eq 'http://www.w3.org/1999/XSL/Transform') { if($elem->{LocalName} eq 'output-character') { &xsl_output_character_element; } elsif($elem->{LocalName} eq 'character-map') { &xsl_character_map_element; } elsif($elem->{LocalName} eq 'import') { &xsl_import_element; } elsif($elem->{LocalName} eq 'include') { &xsl_include_element; } elsif($elem->{LocalName} eq 'output') { &xsl_output_element; } } } sub report_static_error { my ($self, $error_code, $message) = @_; print STDERR "$0: $error_code: $message\n"; } sub set_document_locator { my ($self, $arg) = @_; $self->{locator} = $arg->{Locator}; } # sub comment { # my ($self, $node) = @_; # my @lines = split(/\n/, $node->{Data}); # # print "\n" if @lines > 1; # # foreach my $line (@lines) { # $line =~ s/^[ \t]+//; # print "# $line\n"; # } # } package main; my $charmap_proc = CharmapProcessor->new; unshift(@ARGV, '-') unless @ARGV; my $parser = XML::SAX::ParserFactory->parser( DocumentHandler => $charmap_proc); binmode(STDOUT, ":utf8") unless $] < 5.008; foreach my $file (@ARGV) { if($file eq '-') { $parser->parse_file(\*STDIN); } else { $parser->parse_uri($file); } } if(!exists $charmap_proc->{use_charmaps}) { print STDERR "no character maps are indicated to be used"; } foreach my $k (@{$charmap_proc->{use_charmaps}}) { my $charmap = $charmap_proc->{local_charmaps}->{$k}; foreach my $entry (@$charmap) { $entry->[1] =~ tr/\n\0/ /; printf "%x\t%s\n", $entry->[0], $entry->[1]; } } docbook2X-0.8.8/charmaps/Makefile.am0000644000175000017500000000073610407345645014152 00000000000000CHARMAP_XML_FILES = texi.charmap texi.charmap.xml texi-small.charmap.xml CHARMAP_FILES = roff.charmap roff.charmap.xml roff-small.charmap.xml # Disable for now, because the xmlcharmap2utf8trans script # is not completely functional yet #%.charmap: %.charmap.xml # $(PERL) $(srcdir)/xmlcharmap2utf8trans $< > $@ charmapsdir = $(pkgdatadir)/charmaps charmaps_DATA = $(CHARMAP_XML_FILES) $(CHARMAP_FILES) EXTRA_DIST = $(CHARMAP_XML_FILES) $(CHARMAP_FILES) xmlcharmap2utf8trans docbook2X-0.8.8/charmaps/Makefile.in0000644000175000017500000002412710572275762014170 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = charmaps DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/utf8trans/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(charmapsdir)" charmapsDATA_INSTALL = $(INSTALL_DATA) DATA = $(charmaps_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GROFF = @GROFF@ HAVE_GROFF_FALSE = @HAVE_GROFF_FALSE@ HAVE_GROFF_TRUE = @HAVE_GROFF_TRUE@ HAVE_HTML_XSL_FALSE = @HAVE_HTML_XSL_FALSE@ HAVE_HTML_XSL_TRUE = @HAVE_HTML_XSL_TRUE@ HAVE_TIDY_FALSE = @HAVE_TIDY_FALSE@ HAVE_TIDY_TRUE = @HAVE_TIDY_TRUE@ HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@ HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@ ICONV = @ICONV@ INSTALLED_CHARMAP_ROFF = @INSTALLED_CHARMAP_ROFF@ INSTALLED_CHARMAP_TEXI = @INSTALLED_CHARMAP_TEXI@ INSTALLED_DB2X_MANXML = @INSTALLED_DB2X_MANXML@ INSTALLED_DB2X_TEXIXML = @INSTALLED_DB2X_TEXIXML@ INSTALLED_DB2X_XSLTPROC = @INSTALLED_DB2X_XSLTPROC@ INSTALLED_SGML2XML_ISOENT = @INSTALLED_SGML2XML_ISOENT@ INSTALLED_STYLESHEETS_CATALOG = @INSTALLED_STYLESHEETS_CATALOG@ INSTALLED_UTF8TRANS = @INSTALLED_UTF8TRANS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA = @JAVA@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ OSX = @OSX@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RESOLVER_JARS = @RESOLVER_JARS@ SAXON_JARS = @SAXON_JARS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SX = @SX@ TIDY = @TIDY@ VERSION = @VERSION@ XALAN_JARS = @XALAN_JARS@ XMLLINT = @XMLLINT@ XSLTPROC = @XSLTPROC@ XSLT_PROCESSOR = @XSLT_PROCESSOR@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ CHARMAP_XML_FILES = texi.charmap texi.charmap.xml texi-small.charmap.xml CHARMAP_FILES = roff.charmap roff.charmap.xml roff-small.charmap.xml # Disable for now, because the xmlcharmap2utf8trans script # is not completely functional yet #%.charmap: %.charmap.xml # $(PERL) $(srcdir)/xmlcharmap2utf8trans $< > $@ charmapsdir = $(pkgdatadir)/charmaps charmaps_DATA = $(CHARMAP_XML_FILES) $(CHARMAP_FILES) EXTRA_DIST = $(CHARMAP_XML_FILES) $(CHARMAP_FILES) xmlcharmap2utf8trans all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu charmaps/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu charmaps/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh uninstall-info-am: install-charmapsDATA: $(charmaps_DATA) @$(NORMAL_INSTALL) test -z "$(charmapsdir)" || $(mkdir_p) "$(DESTDIR)$(charmapsdir)" @list='$(charmaps_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(charmapsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(charmapsdir)/$$f'"; \ $(charmapsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(charmapsdir)/$$f"; \ done uninstall-charmapsDATA: @$(NORMAL_UNINSTALL) @list='$(charmaps_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(charmapsdir)/$$f'"; \ rm -f "$(DESTDIR)$(charmapsdir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(charmapsdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-charmapsDATA install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-charmapsDATA uninstall-info-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-charmapsDATA install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-charmapsDATA \ uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: docbook2X-0.8.8/charmaps/roff.charmap.xml0000644000175000017500000025744010111742307015200 00000000000000 groff_char7"> groff Info page"> groff"> docbook2X"> utf8trans1"> xmlcharmap2utf8trans"> ]> Michael Smith Steve Cheng This file maps a small subset of Unicode characters (around 800 or so) to corresponding roff espace sequences. Use it when you need to convert XML documents using Unicode characters to roff (e.g., to generate “portable” man-page output). Although the format follows the “character map” format specified in the XSLT 2.0 working draft, it can be used with an appropriate XSLT 1.0 stylesheet and any XSLT 1.0 processor. It can also be used with the &utf8trans; program of &docbook2X;, after conversion with the &xmlcharmap2utf8trans; script. In order to make the character map more readable, it uses the following “extension attributes” (in the unichar namespace): unichar:name Name for the character assigned by Unicode (e.g. NO-BREAK SPACE) unichar:entity ISO entity name for the character (e.g. nbsp) Use of such extension attributes is permitted by the XSLT 2.0 spec; see the “Extension Attributes” section. The initial version of this file (before the “string” mappings were added) was generated by taking the unichars.el file from Norm Walsh’s xmlunicode.el elisp distro, and running a script on it to convert it to XML. Steve Cheng later reorganized the file, putting the characters in each Unicode block in separate xsl:character-map elements, and changing the XML comments to documentation snippets in the doc namespace. (This helps to pretty-print the document.) References used in selecting roff mappings: &groff_char; man page &groff; Info file; in particular, the “Page Motions” section tables in the “Character Sets” chapter of XML In a Nutshell Latin-1 Supplement No-break space can be written two ways in roff; the difference, according to the “Page Motions” node in &groff_info;, is: \ An unbreakable and unpaddable (i.e. not expanded during filling) space. \~ An unbreakable space that stretches like a normal inter-word space when a line is adjusted. Unfortunately, roff seems to do some weird things with long lines that only have words separated by \~ spaces, so it is safer just to stick with the \ space. &groff_char; says: the soft hyphen control character (prints as itself). groff never uses this character for output (thus it is omitted in the table below); the input character 173 is mapped onto \%. According to &groff_char;, I think the escape string \(pc "periodcentered" could also be used for middot; not sure which is better, but "md" mnemonic is a better fit :-) Latin Extended-A Most characters here do not have any (direct) roff equivalents. Those that do have been mapped already. Latin Extended-B Most characters here do not have any (direct) roff equivalents. Those that do have been mapped already. Spacing Modifier Letters &groff_char; calls this a Hungarian umlaut. Greek and Coptic General Punctuation There does not seem to be either a real em space or en space in roff; to approximate them, this character map assumes that in most fonts, an en space is about the same as the width of a digit (in roff, \0), so an em space (which by definition is equal to the width of two en spaces) is about the same as the width of two digits (thus, in roff, \0\0). Roughly same width as a normal space. Roughly same width as a normal space. Roughly same width as a normal space. Same as roff “digit” space. Punctuation space in most fonts is actually closer to a normal space than it is to a thin space. Not sure how best to deal with thin space, because the roff thin space, \^, prints as a zero-width space in TTY output. However, it seems that, unlike a hair space, a thin space, at 1/12 of an em, is still recognizable to most people as a space, so treating it as zero-width seems wrong. So, for the sake of making TTY output look OK, just substitute with a normal space; but real roff escape is \(\^ I don't think there’s a standard definition of what a hair space is; some guides just say it's less than 1/5 of an em or that it’s narrower than a thin space; seems like in practice, it's a lot narrower than a thin space, to the point where it’s close to being a non-space, so here it is substituted with the roff equivalent of a zero-width joiner. Map to roff zero-width break point Map to roff zero-width break point &groff; docs seem ambiguous about whether \& is a joiner and prevents breaks, but, based on testing, seems like it does. Letterlike Symbols No mappings for any of these, and nothing appropriate for most of them; so, just spell out the ones that we can. Arrows Mathematical Operators Miscellaneous Technical The ISO entities used by DocBook maps lang to U+3008, from the mathematics block.) Originally, Michael Smith had this entity mapped to U+2329. It is not clear who is right from a “theoretical” point of view. But since this is for DocBook, we follow the DocBook mapping for the unichar:entity documentation, but keep both xsl:output-character entries, which actually map to the same roff markup. The same notes for U+2329 apply to this character. Geometric Shapes Miscellaneous Symbols Dingbats No &groff; equivalent for most of these; just map to something close. CJK Symbols and Punctuation Of course &groff; does not support CJK, but a few of the symbols in the ISO entity sets have been unified with the CJK symbols here in Unicode. Alphabetic Presentation Forms docbook2X-0.8.8/configure.ac0000644000175000017500000001404510572275656012613 00000000000000dnl Process this file with autoconf to produce configure. # vim: noet sw=8 # $Id: configure.ac,v 1.21 2007/03/03 13:44:14 stevecheng Exp $ AC_INIT([docbook2X], 0.8.8, [stevecheng@users.sourceforge.net], docbook2X) AC_CONFIG_SRCDIR(perl/docbook2X.pl) AM_INIT_AUTOMAKE(docbook2X, 0.8.8) XSLT_PROCESSOR="libxslt" AC_ARG_WITH(html-xsl, AC_HELP_STRING([--with-html-xsl], [build HTML documentation using Norman Walsh's DocBook XSL stylesheets (default is no)]), HTML_XSL="$withval", HTML_XSL=no) AC_ARG_WITH(xslt-processor, AC_HELP_STRING([--with-xslt-processor=ARG], [which XSLT processor to use (possible choices are: libxslt, saxon, xalan-j)]), XSLT_PROCESSOR="$withval", XSLT_PROCESSOR="libxslt") AC_ARG_WITH(resolver-jars, AC_HELP_STRING([--with-resolver-jars=ARG], [specify Java class path for Apache XML Commons catalogs resolver]), RESOLVER_JARS="$withval", RESOLVER_JARS="") AC_ARG_WITH(saxon-jars, AC_HELP_STRING([--with-saxon-jars=ARG], [specify Java class path for SAXON XSLT processor]), SAXON_JARS="$withval", SAXON_JARS="") AC_ARG_WITH(xalan-jars, AC_HELP_STRING([--with-xalan-jars=ARG], [specify Java class path for Xalan XSLT processor]), XALAN_JARS="$withval", XALAN_JARS="") AM_CONDITIONAL(HAVE_HTML_XSL, test "x$HTML_XSL" != "xno") AC_SUBST(XSLT_PROCESSOR) dnl Check for compiler, Perl... AC_PROG_CC AC_PROG_INSTALL AC_PATH_PROG(PERL, perl) if test -z "$PERL" ; then AC_MSG_ERROR(You need Perl 5) fi dnl For db2x_manxml and db2x_texixml AC_PATH_PROG(ICONV, iconv piconv) if test -z "$ICONV" ; then AC_MSG_ERROR(You need iconv) fi dnl (piconv is an iconv implementation from Perl 5.8.0. dnl I haven't heard of anyone using it regularly, but dnl I added it here for the convenience of non-GNU dnl platforms that may not already have a working dnl iconv.) dnl For sgml2xml-isoent AC_PATH_PROG(SX, sgml2xml sx) AC_PATH_PROG(OSX, osx) dnl For db2x_texixml AC_PATH_PROG(MAKEINFO, makeinfo) dnl For testing man pages. dnl We check for groff only; Unix nroff is useless for testing. AC_PATH_PROG(GROFF, groff) AM_CONDITIONAL(HAVE_GROFF, test -n "$GROFF") dnl For validating the docbook2X documentation XML sources AC_PATH_PROG(XMLLINT, xmllint) AM_CONDITIONAL(HAVE_XMLLINT, test -n "$XMLLINT") dnl Tidy is for tidying up the output from the HTML stylesheets. AC_PATH_PROG(TIDY, tidy) AM_CONDITIONAL(HAVE_TIDY, test -n "$TIDY") dnl The XSLT processors AC_PATH_PROG(XSLTPROC, xsltproc) AC_PATH_PROG(JAVA, java) if test -z "$RESOLVER_JARS" ; then AC_CHECK_FILE(/usr/local/share/java/resolver.jar, [ RESOLVER_JARS=/usr/local/share/java/resolver.jar ]) fi if test -z "$RESOLVER_JARS" ; then AC_CHECK_FILE(/usr/share/java/resolver.jar, [ RESOLVER_JARS=/usr/share/java/resolver.jar ]) fi if test -z "$RESOLVER_JARS" ; then AC_CHECK_FILE(/usr/share/java/xml-commons-resolver-1.1.jar, [ RESOLVER_JARS=/usr/share/java/xml-commons-resolver-1.1.jar ]) fi AC_SUBST(RESOLVER_JARS) if test -z "$SAXON_JARS" ; then AC_CHECK_FILE(/usr/local/share/java/saxon.jar, [ SAXON_JARS=/usr/local/share/java/saxon.jar ]) fi if test -z "$SAXON_JARS" ; then AC_CHECK_FILE(/usr/share/java/saxon.jar, [ SAXON_JARS=/usr/share/java/saxon.jar ]) fi AC_SUBST(SAXON_JARS) if test -z "$XALAN_JARS" ; then AC_CHECK_FILE(/usr/local/share/java/xalan.jar, [ XALAN_JARS=/usr/local/share/java/xalan.jar ]) fi if test -z "$XALAN_JARS" ; then AC_CHECK_FILE(/usr/share/java/xalan.jar, [ XALAN_JARS=/usr/share/java/xalan.jar ]) fi if test -z "$XALAN_JARS" ; then AC_CHECK_FILE(/usr/share/java/xalan2.jar, [ XALAN_JARS=/usr/share/java/xalan2.jar ]) fi AC_SUBST(XALAN_JARS) dnl For utf8trans AM_CONFIG_HEADER(utf8trans/config.h) AC_CHECK_HEADERS(getopt.h) AC_CHECK_FUNCS(getline, ,) AC_CHECK_FUNCS(getopt_long,,) dnl ---------------------------------------------------------------------- dnl dnl Default paths enbedded in db2x_xsltproc binary: dnl dnl This bit copied from libggi's configure: test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' dnl Use static_* to substitute into files where values shouldn't dnl dynamicly change. Makefiles need to be able to dynamicly change dnl paths between build and install and shouldn't use these static_*. dnl Files that will be installed must always show the final location where dnl they will reside and should use these static_* values. dnl Ensure that all static_* are fully expanded. eval static_datadir="$datadir" eval static_bindir="$bindir" old_val="" until test "$static_bindir" = "$old_val"; do old_val="$static_bindir" eval static_bindir="$static_bindir" done dnl For perl/config.pl INSTALLED_UTF8TRANS="$static_bindir/`echo utf8trans | sed -e "$program_transform_name"`" INSTALLED_CHARMAP_ROFF="$static_datadir/docbook2X/charmaps/roff.charmap" INSTALLED_CHARMAP_TEXI="$static_datadir/docbook2X/charmaps/texi.charmap" INSTALLED_DB2X_MANXML="$static_bindir/`echo db2x_manxml | sed -e "$program_transform_name"`" INSTALLED_DB2X_TEXIXML="$static_bindir/`echo db2x_texixml | sed -e "$program_transform_name"`" INSTALLED_STYLESHEETS_CATALOG="$static_datadir/docbook2X/xslt/catalog.xml" INSTALLED_DB2X_XSLTPROC="$static_bindir/`echo db2x_xsltproc | sed -e "$program_transform_name"`" INSTALLED_SGML2XML_ISOENT="$static_bindir/`echo sgml2xml-isoent | sed -e "$program_transform_name"`" AC_SUBST(INSTALLED_UTF8TRANS) AC_SUBST(INSTALLED_CHARMAP_ROFF) AC_SUBST(INSTALLED_CHARMAP_TEXI) AC_SUBST(INSTALLED_DB2X_MANXML) AC_SUBST(INSTALLED_DB2X_TEXIXML) AC_SUBST(INSTALLED_STYLESHEETS_CATALOG) AC_SUBST(INSTALLED_DB2X_XSLTPROC) AC_SUBST(INSTALLED_SGML2XML_ISOENT) dnl Turn on compiler warnings (for utf8trans) CFLAGS="${CFLAGS} -Wall" AC_SUBST(CFLAGS) dnl ---------------------------------------------------------------------- dnl dnl Makefile output dnl AC_OUTPUT( Makefile charmaps/Makefile dtd/Makefile xslt/Makefile xslt/common/Makefile xslt/common/text/Makefile xslt/man/Makefile xslt/texi/Makefile xslt/documentation/Makefile xslt/backend/Makefile perl/Makefile perl/config.pl perl/sgml2xml-isoent utf8trans/Makefile doc/Makefile test/Makefile test/refentry/Makefile test/complete-manuals/Makefile test/utf8trans/Makefile test/sgml/Makefile ) docbook2X-0.8.8/config.guess0000755000175000017500000012605110445617613012636 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. timestamp='2006-02-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerppc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS_NT-*:*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; x86:Interix*:[345]*) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T:Interix*:[345]*) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__sun) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: docbook2X-0.8.8/install-sh0000755000175000017500000002202110445626470012313 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2005-05-14.22 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= no_target_directory= usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: -c (ignored) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit $?;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit $?;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` shift IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $cpprog "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit 1 } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit 1; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit 0 } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: docbook2X-0.8.8/autogen.sh0000755000175000017500000000174310417256375012322 00000000000000#!/bin/sh set -e if test ! -e perl/docbook2X.pl; then echo "autogen.sh: Please run this script from the docbook2X/ directory."; exit 1; fi # automake tries to detect the docbook2X.texi file # but it does not exist until we build the package, # so put a dummy value in there for now. echo '@setfilename docbook2X.info' > doc/docbook2X.texi echo '@setfilename docbook2man-xslt.info' > xslt/documentation/docbook2man-xslt.texi echo '@setfilename docbook2texi-xslt.info' > xslt/documentation/docbook2texi-xslt.texi # but if we had a good docbook2X.texi to begin with # the above command would clobber it, so this tells the # make system to build it again. touch -t 197001010000 doc/docbook2X.texi touch -t 197001010000 xslt/documentation/docbook2man-xslt.texi touch -t 197001010000 xslt/documentation/docbook2texi-xslt.texi rm -f doc/docbook2X.txml rm -f xslt/documentation/docbook2man-xslt.txml rm -f xslt/documentation/docbook2texi-xslt.txml aclocal autoheader automake --add-missing autoconf docbook2X-0.8.8/config.sub0000755000175000017500000007713010445617613012304 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. timestamp='2006-02-23' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32r | m32rle | m68000 | m68k | m88k | maxq | mb | microblaze | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m32c) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; m32c-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: docbook2X-0.8.8/missing0000755000175000017500000002540610445626470011720 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: docbook2X-0.8.8/Makefile.am0000644000175000017500000000022710113211045012323 00000000000000SUBDIRS = . charmaps dtd perl utf8trans xslt doc test pkgrootdir = $(pkgdatadir) pkgroot_DATA = VERSION EXTRA_DIST = autogen.sh docbuild.mk VERSION docbook2X-0.8.8/Makefile.in0000644000175000017500000004676510572275767012413 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \ ChangeLog INSTALL NEWS THANKS TODO config.guess config.sub \ depcomp install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/utf8trans/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(pkgrootdir)" pkgrootDATA_INSTALL = $(INSTALL_DATA) DATA = $(pkgroot_DATA) ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GROFF = @GROFF@ HAVE_GROFF_FALSE = @HAVE_GROFF_FALSE@ HAVE_GROFF_TRUE = @HAVE_GROFF_TRUE@ HAVE_HTML_XSL_FALSE = @HAVE_HTML_XSL_FALSE@ HAVE_HTML_XSL_TRUE = @HAVE_HTML_XSL_TRUE@ HAVE_TIDY_FALSE = @HAVE_TIDY_FALSE@ HAVE_TIDY_TRUE = @HAVE_TIDY_TRUE@ HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@ HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@ ICONV = @ICONV@ INSTALLED_CHARMAP_ROFF = @INSTALLED_CHARMAP_ROFF@ INSTALLED_CHARMAP_TEXI = @INSTALLED_CHARMAP_TEXI@ INSTALLED_DB2X_MANXML = @INSTALLED_DB2X_MANXML@ INSTALLED_DB2X_TEXIXML = @INSTALLED_DB2X_TEXIXML@ INSTALLED_DB2X_XSLTPROC = @INSTALLED_DB2X_XSLTPROC@ INSTALLED_SGML2XML_ISOENT = @INSTALLED_SGML2XML_ISOENT@ INSTALLED_STYLESHEETS_CATALOG = @INSTALLED_STYLESHEETS_CATALOG@ INSTALLED_UTF8TRANS = @INSTALLED_UTF8TRANS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA = @JAVA@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ OSX = @OSX@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RESOLVER_JARS = @RESOLVER_JARS@ SAXON_JARS = @SAXON_JARS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SX = @SX@ TIDY = @TIDY@ VERSION = @VERSION@ XALAN_JARS = @XALAN_JARS@ XMLLINT = @XMLLINT@ XSLTPROC = @XSLTPROC@ XSLT_PROCESSOR = @XSLT_PROCESSOR@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUBDIRS = . charmaps dtd perl utf8trans xslt doc test pkgrootdir = $(pkgdatadir) pkgroot_DATA = VERSION EXTRA_DIST = autogen.sh docbuild.mk VERSION all: all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ cd $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) uninstall-info-am: install-pkgrootDATA: $(pkgroot_DATA) @$(NORMAL_INSTALL) test -z "$(pkgrootdir)" || $(mkdir_p) "$(DESTDIR)$(pkgrootdir)" @list='$(pkgroot_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(pkgrootDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgrootdir)/$$f'"; \ $(pkgrootDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgrootdir)/$$f"; \ done uninstall-pkgrootDATA: @$(NORMAL_UNINSTALL) @list='$(pkgroot_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgrootdir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgrootdir)/$$f"; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkdir_p) $(distdir)/perl @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(pkgrootdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-pkgrootDATA install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-pkgrootDATA uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ check-am clean clean-generic clean-recursive ctags \ ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \ dist-tarZ dist-zip distcheck distclean distclean-generic \ distclean-recursive distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-pkgrootDATA install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive \ mostlyclean mostlyclean-generic mostlyclean-recursive pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-info-am uninstall-pkgrootDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: docbook2X-0.8.8/docbuild.mk0000644000175000017500000000121010407376054012420 00000000000000# ---------------------------------------------------------------------- # # Common defines for building documentation # db2x_perl = $(PERL) # Location of docbook2X programs stylesheets_catalog = $(top_srcdir)/xslt/catalog.xml utf8trans = $(top_builddir)/utf8trans/utf8trans db2x_texixml = $(db2x_perl) $(top_builddir)/perl/db2x_texixml --utf8trans-program=$(utf8trans) --utf8trans-map=$(top_srcdir)/charmaps/texi.charmap db2x_manxml = $(db2x_perl) $(top_builddir)/perl/db2x_manxml --utf8trans-program=$(utf8trans) --utf8trans-map=$(top_srcdir)/charmaps/roff.charmap db2x_xsltproc = $(top_builddir)/perl/db2x_xsltproc -C $(stylesheets_catalog) docbook2X-0.8.8/VERSION0000644000175000017500000000000610421602613011341 000000000000000.8.8 docbook2X-0.8.8/AUTHORS0000644000175000017500000000005707315534412011360 00000000000000Steve Cheng docbook2X-0.8.8/INSTALL0000644000175000017500000001717010420206641011334 00000000000000docbook2X installation ********************** 1 Installation ************** After checking that you have the necessary prerequisites (*note Dependencies on other software::), unpack the tarball, then run './configure', and then 'make', 'make install', as usual. *Note* If you intend to use only the pure XSLT version of docbook2X, then you do not need to compile or build the package at all. Simply unpack the tarball, and point your XSLT processor to the XSLT stylesheets under the 'xslt/' subdirectory. (The last 'make install' step, to install the files of the package onto the filesystem, is optional. You may use docbook2X from its own directory after building it, although in that case, when invoking docbook2X, you will have to specify some paths manually on the command-line.) You may also want to run 'make check' to do some checks that the package is working properly. Typing 'make -W docbook2X.xml man texi' in the 'doc/' directory will rebuild docbook2X's own documentation, and can serve as an additional check. You need GNU make to build docbook2X properly. If you are using the CVS version, you will also need the autoconf and automake tools, and must run './autogen.sh' first. But see also the note below about the CVS version. If you want to (re-)build HTML documentation (after having installed Norman Walsh's DocBook XSL stylesheets), pass '--with-html-xsl' to './configure'. You do not really need this, since docbook2X releases already contain pre-built HTML documentation. Some other packages also call their conversion programs 'docbook2man' and 'docbook2texi'; you can use the '--program-transform-name' parameter to './configure' if you do not want docbook2X to clobber over your existing 'docbook2man' or 'docbook2texi'. If you are using a Java-based XSLT processor, you need to use pass '--with-xslt-processor=saxon' for SAXON, or '--with-xslt-processor=xalan-j' for Xalan-Java. (The default is for libxslt.) In addition, since the automatic check for the installed JARs is not very intelligent, you will probably need to pass some options to './configure' to tell it where the JARs are. See './configure --help' for details. The docbook2X package supports VPATH builds (building in a location other than the source directory), but any newly generated documentation will not end up in the right place for installation and redistribution. Cross compilation is not supported at all. 1.1 Installation problems ========================= Q: Where is 'XML::Handler::SGMLSpl'? A: It's included in the docbook2X package. If Perl says it cannot find it, then that is a bug in the docbook2X distribution. Please report it. In older versions of docbook2X, the SGMLSpl module had to be installed, or specified manually on the Perl command line. That is no longer the case. Q: 'db2x_xsltproc' tells me that 'one input document is required' when building docbook2X. A: Use GNU make to build docbook2X (as opposed to BSD make). I could fix this incompatibility in the docbook2X make files, but some of the default automake rules have the same problem, so I didn't bother. Q: When docbook2X attempts to build its documentation, I get errors about "attempting to load network entity", etc. A: You will need to set up the XML catalogs for the DocBook XML DTDs correctly. This tells the XSLT processor where to find the DocBook DTDs on your system. Recent Linux distributions should already have this done for you. This error (or rather, warning) is harmless in the case of docbook2X documentation -- it does not actually require the DTD to build. But your other DocBook documents might (mainly because they use the ISO entities). libxml also understands SGML catalogs, but last time I tried it there was some bug that stopped it from working. Your Mileage May Vary. Q: I cannot build from CVS. A: If the problem is related to HTML files, then you must pass '--with-html-xsl' to 'configure'. The problem is that the HTML files are automatically generated from the XML source and are not in CVS, but the Makefile still tries to install them. (This issue does not appear when building from release tarballs.) For other docbook2X problems, please also look at its main documentation. 2 Dependencies on other software ******************************** To use docbook2X you need: A reasonable Unix system, with Perl 5 docbook2X can work on Linux, FreeBSD, Solaris, and Cygwin on Windows. A C compiler is required to compile a small ANSI C program ('utf8trans'). XML-NamespaceSupport, XML-SAX, XML-Parser and XML-SAX-Expat (Perl modules) The last two are optional: they add a Perl interface to the C-based XML parser Expat. It is recommended that you install them anyway; otherwise, the fallback Perl-based XML parser makes docbook2X real slow. You can get all the Perl modules here: CPAN XML module listing (http://www.cpan.org/modules/by-category/11_String_Lang_Text_Proc/XML/). iconv If you are running Linux glibc, you already have it. Otherwise, see the GNU libiconv home page (http://www.gnu.org/software/libiconv/). XSLT 1.0 processor You have a choice of: libxslt See the libxml2, libxslt home page (http://xmlsoft.org/). SAXON See the SAXON home page (http://saxon.sourceforge.net/). Xalan-Java See the Xalan-Java home page (http://xml.apache.org/xalan-j/). For the Java-based processors (SAXON and Xalan-Java), you will also need(1) the Apache XML Commons (http://xml.apache.org/commons/) distribution. This adds XML catalogs support to any Java-based processor. Out of the three processors, libxslt is recommended. (I would have added support for other XSLT processors, but only these three seem to have proper XML catalogs support.) Unlike previous versions of docbook2X, these Java-based processors can work almost out-of-the-box. Also docbook2X no longer needs to compile XSLT extensions, so you if you use an OS distribution package of libxslt, you do not need the development versions of the library any more. DocBook XML DTD Make sure you set up the XML catalogs for the DTDs you install. The DocBook: The Definitive Guide website (http://www.docbook.org/) has more information. You may also need the SGML DTD if your documents are SGML rather than XML. Norman Walsh's DocBook XSL stylesheets See the Open DocBook Repository (http://docbook.sourceforge.net/). This is optional and is only used to build documentation in HTML format. In your XML catalog, point the URI in 'doc/ss-html.xsl' to a local copy of the stylesheets. For all the items above, it will be easier for you to install the OS packaging of the software (e.g. Debian packages), than to install them manually. But be aware that sometimes the OS package may not be for an up-to-date version of the software. If you cannot satisfy all the prerequisites above (say you are on a vanilla Win32 system), then you will not be able to "build" docbook2X properly, but if you are knowledgeable, you can still salvage its parts (e.g. the XSLT stylesheets, which can be run alone). ---------- Footnotes ---------- (1) Strictly speaking this component is not required, but if you do not have it, you will almost certainly have your computer downloading large XML files from the Internet all the time, as portable XML files will not refer directly to cached local copies of the required files. docbook2X-0.8.8/utf8trans/0000777000175000017500000000000010572276003012326 500000000000000docbook2X-0.8.8/utf8trans/mtable.c0000644000175000017500000000726010051765101013651 00000000000000#include "mtable.h" #include #include #include #define mtable_left_index(k, e) ((~((1<<(e))-1) & (k))>>(e)) #define mtable_right_index(k, e) (((1<<(e))-1) & (k)) static void * mallocc(size_t size) { void *p = malloc(size); if(p == NULL) { fprintf(stderr, "out of memory\n"); abort(); } return p; } static mtable_t mtable_new2(int *exponents) { void **p = mallocc(sizeof(void *) * (1 + (1< 0) { n--; exponents_copy[n] = exponents[n]; } return mtable_new2(exponents_copy); } static void mtable_delete2(mtable_t mtab, int e_sum, int start) { if(mtab->exponents[1] != 0) { int k; int e = mtab->exponents[0]; void **p = &(mtab->slots[0]); for(k=0; k<(1<exponents[i] != 0; i++) e_sum += mtab->exponents[i]; exponents = mtab->exponents; mtable_delete2(mtab, e_sum, 0); free(exponents); } #if 0 static void mtable_change_exponents(mtable_t mtab, int *exponents) { if(mtab->exponents[1] != 0) { int k; int e = mtab->exponents[0]; void **p = &(mtab->slots[0]); for(k=0; k<(1<exponents = exponents; } mtable_t mtable_extend(mtable_t mtab, int *exponents) { struct mtable *p; int *all_exponents, *old_exponents; int n = 0; int i = 0; for(n=0; exponents[n++] != 0; ); for(i=0; mtab->exponents[i++] != 0; ); all_exponents = mallocc(sizeof(int) * (n-1+i)); for(i=0; exponents[i] != 0; i++) all_exponents[i] = exponents[i]; for(i=0; mtab->exponents[i] != 0; i++) all_exponents[n-1+i] = mtab->exponents[i]; all_exponents[n-1+i] = 0; p = mtable_new2(exponents); mtable_set(p, 0, mtab); old_exponents = mtab->exponents; mtable_change_exponents(p, all_exponents); mtable_change_exponents(mtab, all_exponents+n-1); free(old_exponents); return p; } #endif void mtable_set(mtable_t mtab, mtable_key key, void *data) { int i, e=0; struct mtable *p; mtable_key k; for(i=0; mtab->exponents[i] != 0; i++) e += mtab->exponents[i]; p = mtab; k = key; for(;;) { if(p->exponents[1] == 0) { p->slots[k] = data; return; } else { e -= p->exponents[0]; i = mtable_left_index(k, e); k = mtable_right_index(k, e); if(p->slots[i] == NULL) p->slots[i] = mtable_new2(p->exponents+1); p = p->slots[i]; } } } void *mtable_get(mtable_t mtab, mtable_key key) { int i, e=0; struct mtable *p; mtable_key k; for(i=0; mtab->exponents[i] != 0; i++) e += mtab->exponents[i]; p = mtab; k = key; while(p != NULL) { if(p->exponents[1] == 0) { return p->slots[k]; } else { e -= p->exponents[0]; i = mtable_left_index(k, e); k = mtable_right_index(k, e); p = p->slots[i]; } } return NULL; } docbook2X-0.8.8/utf8trans/mtable.h0000644000175000017500000000361110051765101013652 00000000000000/* * mtable.h * * This module implements a sparse multi-level array. * The indices of the array range from 0 to (2^n)-1, inclusive, * and the n bits used for the addressing can be split * into arbitrary groups of consecutive bits, * one group representing each level of the table. * * This module is used in utf8trans to store * the Unicode translation table, where the index * can get as high as (2^31)-1, but usually the table * stores only a few thousand entries scattered in blocks * in the bottom 64k addresses. * * Each entry in the multi-level array is assumed * to be of type void*. If unassigned, the entry * is the null pointer. */ #ifndef MTABLE_H #define MTABLE_H typedef unsigned int mtable_key; struct mtable { int *exponents; void *slots[1]; }; typedef struct mtable *mtable_t; /* * Makes a new sparse multi-level array. * * exponents is a list of positive integers which * are the number of bits of addressing for each * level of the table. The list is terminated * by a single zero entry. * * For example, for a 2^4 * 2^8 table (total 2^(4+8) entries), * set exponents = [ 4, 8, 0 ]. * * The most significant bits are listed first. * * All entries are initially unassigned (that is, they are NULL). */ mtable_t mtable_new(int *exponents); /* * Deallocates a multi-level array created by mtable_delete. */ void mtable_delete(mtable_t mtable); /* * Extends the given multi-level array by adding * more bits of addressing. The existing * entries in the array are given a prefix of zero * in the expanded address space. */ mtable_t mtable_extend(mtable_t mtab, int *exponents); /* * Changes the entry at the given index to the given data * value. */ void mtable_set(mtable_t mtable, mtable_key key, void *data); /* * Returns the entry at the given index. */ void *mtable_get(mtable_t mtable, mtable_key key); #endif /* !defined MTABLE_H */ docbook2X-0.8.8/utf8trans/strings_buffer.c0000644000175000017500000000260610051765101015426 00000000000000#include "strings_buffer.h" #include #include #include #define max(a,b) ((a) > (b)? (a) : (b)) static void * mallocc(size_t size) { void *p = malloc(size); if(p == NULL) { fprintf(stderr, "out of memory\n"); abort(); } return p; } static struct strings_section * strings_buffer_new2(size_t size, struct strings_section *ss) { struct strings_section *p; p = mallocc(sizeof(struct strings_section)); p->cur_size = p->size = size; p->cur = p->start = mallocc(size); p->next = ss; return p; } struct strings_section * strings_buffer_new(size_t size) { return strings_buffer_new2(size, NULL); } void strings_buffer_delete(struct strings_section *ss) { while(ss != NULL) { struct strings_section *p = ss; ss = ss->next; free(p->start); free(p); } } char * strings_buffer_add(struct strings_section **ss, const char *s) { struct strings_section *p; size_t len = strlen(s)+1; for(p=*ss; p != NULL; p=p->next) { if(p->cur_size >= len) { strcpy(p->cur, s); p->cur += len; p->cur_size -= len; return (p->cur - len); } } p = strings_buffer_new2(max((*ss)->size, len), *ss); strcpy(p->cur, s); p->cur += len; p->cur_size -= len; *ss = p; return (p->cur - len); } docbook2X-0.8.8/utf8trans/strings_buffer.h0000644000175000017500000000234410051765101015432 00000000000000/* * strings_buffer.h * * This module implements a packed storage area for * null-terminated constant strings. It is efficient for * making tables of many strings of small length. * In utf8trans, we use this for the strings * in the Unicode translation table. * * Initially, we allocate a large buffer. As more * and more strings are stored, they fill up * the buffer, and when the buffer is (nearly) full, * new buffers are allocated automatically to store * new strings. */ #ifndef STRINGS_BUFFER_H #define STRINGS_BUFFER_H #include struct strings_section { size_t cur_size; size_t size; char *cur; char *start; struct strings_section *next; }; typedef struct strings_section *strings_buffer_t; /* * Makes a strings buffer. size is the initial * buffer size in bytes. */ strings_buffer_t strings_buffer_new(size_t size); /* * Deallocates a strings buffer. The strings * stored inside are all destroyed at once. */ void strings_buffer_delete(strings_buffer_t ss); /* * Copies the null-terminated string s into the strings * buffer, and returns its address inside the buffer. */ char *strings_buffer_add(strings_buffer_t *ss, const char *s); #endif /* !defined(STRINGS_BUFFER_H) */ docbook2X-0.8.8/utf8trans/Makefile.am0000644000175000017500000000032410570406670014300 00000000000000# $Id: Makefile.am,v 1.2 2004/05/16 22:25:05 stevecheng Exp $ # # This Makefile builds utf8trans. # bin_PROGRAMS = utf8trans utf8trans_SOURCES = utf8trans.c mtable.c mtable.h strings_buffer.c strings_buffer.h docbook2X-0.8.8/utf8trans/Makefile.in0000644000175000017500000003357310572275765014340 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am,v 1.2 2004/05/16 22:25:05 stevecheng Exp $ # # This Makefile builds utf8trans. # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : bin_PROGRAMS = utf8trans$(EXEEXT) subdir = utf8trans DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/config.h.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(bindir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_utf8trans_OBJECTS = utf8trans.$(OBJEXT) mtable.$(OBJEXT) \ strings_buffer.$(OBJEXT) utf8trans_OBJECTS = $(am_utf8trans_OBJECTS) utf8trans_LDADD = $(LDADD) DEFAULT_INCLUDES = -I. -I$(srcdir) -I. depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(utf8trans_SOURCES) DIST_SOURCES = $(utf8trans_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GROFF = @GROFF@ HAVE_GROFF_FALSE = @HAVE_GROFF_FALSE@ HAVE_GROFF_TRUE = @HAVE_GROFF_TRUE@ HAVE_HTML_XSL_FALSE = @HAVE_HTML_XSL_FALSE@ HAVE_HTML_XSL_TRUE = @HAVE_HTML_XSL_TRUE@ HAVE_TIDY_FALSE = @HAVE_TIDY_FALSE@ HAVE_TIDY_TRUE = @HAVE_TIDY_TRUE@ HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@ HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@ ICONV = @ICONV@ INSTALLED_CHARMAP_ROFF = @INSTALLED_CHARMAP_ROFF@ INSTALLED_CHARMAP_TEXI = @INSTALLED_CHARMAP_TEXI@ INSTALLED_DB2X_MANXML = @INSTALLED_DB2X_MANXML@ INSTALLED_DB2X_TEXIXML = @INSTALLED_DB2X_TEXIXML@ INSTALLED_DB2X_XSLTPROC = @INSTALLED_DB2X_XSLTPROC@ INSTALLED_SGML2XML_ISOENT = @INSTALLED_SGML2XML_ISOENT@ INSTALLED_STYLESHEETS_CATALOG = @INSTALLED_STYLESHEETS_CATALOG@ INSTALLED_UTF8TRANS = @INSTALLED_UTF8TRANS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA = @JAVA@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ OSX = @OSX@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RESOLVER_JARS = @RESOLVER_JARS@ SAXON_JARS = @SAXON_JARS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SX = @SX@ TIDY = @TIDY@ VERSION = @VERSION@ XALAN_JARS = @XALAN_JARS@ XMLLINT = @XMLLINT@ XSLTPROC = @XSLTPROC@ XSLT_PROCESSOR = @XSLT_PROCESSOR@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ utf8trans_SOURCES = utf8trans.c mtable.c mtable.h strings_buffer.c strings_buffer.h all: config.h $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu utf8trans/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu utf8trans/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status utf8trans/config.h $(srcdir)/config.h.in: $(am__configure_deps) cd $(top_srcdir) && $(AUTOHEADER) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) utf8trans$(EXEEXT): $(utf8trans_OBJECTS) $(utf8trans_DEPENDENCIES) @rm -f utf8trans$(EXEEXT) $(LINK) $(utf8trans_LDFLAGS) $(utf8trans_OBJECTS) $(utf8trans_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mtable.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strings_buffer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utf8trans.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) config.h installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic ctags distclean distclean-compile \ distclean-generic distclean-hdr distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: docbook2X-0.8.8/utf8trans/utf8trans.c0000644000175000017500000003002410570336062014343 00000000000000/* vim: sta et sw=4 */ /* * $Id: utf8trans.c,v 1.12 2006/04/13 01:00:01 stevecheng Exp $ * * (C) 2001 Steve Cheng * * See ../COPYING for the copyright status of this software. * */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #define _GNU_SOURCE /* For getline */ #include #include #include #include #ifdef HAVE_UNISTD_H #include #endif #include "mtable.h" #include "strings_buffer.h" /* UCS-4 character */ typedef unsigned int CHAR; #ifdef HAVE_GETOPT_H #include #endif #ifdef HAVE_GETOPT_LONG /* Long-option specification */ struct option long_options[] = { { "version", 0, 0, 'v' }, { "help", 0, 0, 'h' }, { "modify", 0, 0, 'm' }, { 0, 0, 0, 0 } }; #endif const char *prog_name; const char *charmap_filename = NULL; mtable_t charmap_table; static int charmap_table_exponents[] = { 8, 8, 8, 8, 0 }; strings_buffer_t charmap_strings; int modify_in_place = 0; int do_options(int argc, char *argv[]); void print_version(void); void print_usage(); void add_translation(CHAR codepoint, char *translation); void parse_charmap(FILE *stream); char *encode_utf8(CHAR codepoint); void translate(FILE *in, FILE *out); #ifndef HAVE_GETLINE ssize_t getline(char **lineptr, size_t *n, FILE *stream); #endif int main(int argc, char *argv[]) { FILE *charmap_f; int optind; prog_name = argv[0]; optind = do_options(argc, argv); charmap_table = mtable_new(charmap_table_exponents); charmap_strings = strings_buffer_new(4096); /* Read translation spec */ charmap_filename = argv[optind]; charmap_f = fopen(charmap_filename, "r"); if(!charmap_f) { fprintf(stderr, "%s:%s: %s\n", prog_name, charmap_filename, strerror(errno)); exit(1); } parse_charmap(charmap_f); fclose(charmap_f); optind++; if(!argv[optind]) { translate(stdin, stdout); } else { int i; FILE *f, *out; for(i = optind; argv[i]; i++) { out = stdout; f = fopen(argv[i], "r"); if(!f) { fprintf(stderr, "%s:%s: %s\n", prog_name, argv[i], strerror(errno)); exit(1); } #ifdef HAVE_UNISTD_H if(modify_in_place) { if(unlink(argv[i]) < 0) { fprintf(stderr, "%s:%s: %s\n", prog_name, argv[i], strerror(errno)); fclose(f); continue; } out = fopen(argv[i], "w"); if(!out) { fprintf(stderr, "%s:%s: %s\n", prog_name, argv[i], strerror(errno)); fclose(f); continue; } } #endif translate(f, out); fclose(f); if(modify_in_place) fclose(out); } } mtable_delete(charmap_table); strings_buffer_delete(charmap_strings); return 0; } void print_version(void) { puts("utf8trans (part of docbook2X" #ifdef HAVE_CONFIG_H VERSION #endif ")"); puts("$Revision: 1.12 $ $Date: 2006/04/13 01:00:01 $"); puts("\n"); puts("Copyright (C) 2000-2004 Steve Cheng\n" "This is free software; see the source for copying conditions.\n" "There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR\n" "A PARTICULAR PURPOSE."); } void print_usage() { printf("Usage: %s [options] CHARMAP [FILES...]\n", prog_name); puts("Transliterate UTF-8 characters according to a table.\n"); #ifdef HAVE_UNISTD_H #ifdef HAVE_GETOPT_LONG puts(" -m, --modify modify given files in-place\n" " -v, --version display version information and exit\n" " -h, --help display this usage information\n"); #else puts(" -m modify given files in-place\n" " -v display version information and exit\n" " -h display this usage information\n"); #endif #endif puts("See utf8trans(1) for details on this program.\n"); } int do_options(int argc, char *argv[]) { #ifdef HAVE_UNISTD_H /* On a Unix, so have some version of getopt */ int optc; #ifdef HAVE_GETOPT_LONG while((optc = getopt_long(argc, argv, "vhm", long_options, NULL)) != -1) #else while((optc = getopt(argc, argv, "vhm")) != -1) #endif /* HAVE_GETOPT_LONG */ { switch(optc) { /* --version */ case 'v': print_version(); exit(0); /* --help */ case 'h': print_usage(); exit(0); /* --modify */ case 'm': modify_in_place = 1; break; case '?': default: exit(1); } } if(optind > argc-1) { fprintf(stderr, "%s: must specify charmap\n", prog_name); exit(1); } return optind; #else /* No getopt, so don't process any options. They are all trivial, so that justifies ignoring them. */ if(argc < 2) { fprintf(stderr, "%s: must specify charmap\n", prog_name); exit(1); } return 1; #endif } void add_translation(CHAR codepoint, char *translation) { char *s = strings_buffer_add(&charmap_strings, translation); mtable_set(charmap_table, codepoint, s); } char * get_translation(CHAR codepoint) { char *translation = mtable_get(charmap_table, codepoint); if(translation != NULL) return translation; else return encode_utf8(codepoint); } char * encode_utf8(CHAR c) { static char buf[7]; char *p = buf; if(c < 0x80) { *p++ = c; *p++ = '\0'; } else if(c < 0x800) { *p++ = 0xC0 | (c>>6); *p++ = 0x80 | (c & 0x3F); *p++ = '\0'; } else if(c < 0x10000) { *p++ = 0xE0 | (c>>12); *p++ = 0x80 | ((c>>6) & 0x3F); *p++ = 0x80 | (c & 0x3F); *p++ = '\0'; } else if (c < 0x200000) { *p++ = 0xF0 | (c>>18); *p++ = 0x80 | ((c>>12) & 0x3F); *p++ = 0x80 | ((c>>6) & 0x3F); *p++ = 0x80 | (c & 0x3F); *p++ = '\0'; } else if (c < 0x4000000) { *p++ = 0xF8 | (c>>24); *p++ = 0x80 | ((c>>18) & 0x3F); *p++ = 0x80 | ((c>>12) & 0x3F); *p++ = 0x80 | ((c>>6) & 0x3F); *p++ = 0x80 | (c & 0x3F); *p++ = '\0'; } else if (c < 0x80000000) { *p++ = 0xFC | (c>>30); *p++ = 0x80 | ((c>>24) & 0x3F); *p++ = 0x80 | ((c>>18) & 0x3F); *p++ = 0x80 | ((c>>12) & 0x3F); *p++ = 0x80 | ((c>>6) & 0x3F); *p++ = 0x80 | (c & 0x3F); *p++ = '\0'; } else { /* Oops */ abort(); } return buf; } /* 0 to 9, a to f, A to F */ #define IS_HEXDIGIT(c) (((c) >= 48 && (c) <= 57) || \ ((c) >= 97 && (c) <= 102) || \ ((c) >= 65 && (c) <= 70)) #define IS_SPACE(c) ((c) == ' ' || (c) == '\t') void parse_charmap(FILE *stream) { char *buf = NULL; size_t bufsize = 0; char *p, *c, *t; int linecount = 0; CHAR codepoint; while(!feof(stream)) { linecount++; if(getline(&buf, &bufsize, stream) == -1) { if(!feof(stream)) { fprintf(stderr, "%s:%s: %s", prog_name, charmap_filename, strerror(errno)); exit(2); } goto nextline; } /* Chomp newline */ p = buf + (strlen(buf)-1); if(*p == '\n') *p = '\0'; /* Skip to codepoint */ for(c = buf; *c && IS_SPACE(*c); c++); /* Skip empty lines and comment lines */ if(*c == '\0' || *c == '#') goto nextline; t = NULL; /* Parse the codepoint (a number in hex) */ for(p = c; *p; p++) { if(!IS_HEXDIGIT(*p)) { if(!IS_SPACE(*p)) { fprintf(stderr, "%s:%s:%d: %s", prog_name, charmap_filename, linecount, "(parsing codepoint) invalid hex number\n"); goto nextline; } *p = '\0'; if(sscanf(c, "%x", &codepoint) != 1) { fprintf(stderr, "%s:%s:%d: %s", prog_name, charmap_filename, linecount, "(parsing codepoint) invalid hex number\n"); goto nextline; } t = ++p; break; } } if(t) { add_translation(codepoint, t); } else { /* No translation text */ if(sscanf(c, "%x", &codepoint) != 1) { fprintf(stderr, "%s:%s:%d: %s", prog_name, charmap_filename, linecount, "(parsing codepoint) invalid hex number\n"); goto nextline; } add_translation(codepoint, ""); } nextline: ; } if(buf) free(buf); } CHAR read_utf8_char(FILE *stream) { CHAR character; int b, n, i; b = fgetc(stream); if(b == EOF) return 0xFFFFFFFF; /* UTF-8 sequence leading byte */ if((b & 0xC0) == 0xC0) { /* Count bytes and eat lead bits */ for(n = 0; b & 0x80; b<<=1, n++); b = (b & 0xFF) >> n; if(n > 6 || n < 2) return 0xFFFD; switch(n) { case 6: b <<= 6; case 5: b <<= 6; case 4: b <<= 6; case 3: b <<= 6; case 2: b <<= 6; } character = b; for(i = n; i>1; i--) { b = fgetc(stream); if(b == EOF) return 0xFFFD; if((b & 0xC0) != 0x80) return 0xFFFD; b &= 0x3F; switch(i) { case 6: b <<= 6; case 5: b <<= 6; case 4: b <<= 6; case 3: b <<= 6; case 2: ; } character |= b; } /* Check for overlong sequences */ switch(n) { case 6: if(character < 0x4000000) return 0xFFFD; case 5: if(character < 0x200000) return 0xFFFD; case 4: if(character < 0x10000) return 0xFFFD; case 3: if(character < 0x800) return 0xFFFD; case 2: if(character < 0x80) return 0xFFFD; } return character; } /* UTF-8 sequence continuation byte */ else if((b & 0xC0) == 0x80) { return 0xFFFD; } /* ASCII character */ else { return (CHAR)b; } } void translate(FILE *in, FILE *out) { CHAR character; while(!feof(in)) { character = read_utf8_char(in); if(character == 0xFFFFFFFF) break; /* Don't lose null characters in input */ if(character == 0 && !mtable_get(charmap_table, 0)) fputc(0, out); else fputs(get_translation(character), out); } } #if !HAVE_GETLINE ssize_t getline(char **lineptr, size_t *n, FILE *stream) { ssize_t k = 0; int c; if(!*lineptr) { *lineptr = malloc(256); if(!*lineptr) return -1; *n = 256; } do { c = fgetc(stream); if(c == EOF) { if(k == 0) { (*lineptr)[0] = 0; return -1; } break; } if(k == *n - 1) { char *p = realloc(*lineptr, *n *2); if(!p) return -1; *lineptr = p; } (*lineptr)[k++] = c; } while(c != '\n'); (*lineptr)[k] = 0; return k; } #endif docbook2X-0.8.8/utf8trans/config.h.in0000644000175000017500000000312110572276003014262 00000000000000/* utf8trans/config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if you have the `getline' function. */ #undef HAVE_GETLINE /* Define to 1 if you have the header file. */ #undef HAVE_GETOPT_H /* Define to 1 if you have the `getopt_long' function. */ #undef HAVE_GETOPT_LONG /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION docbook2X-0.8.8/ChangeLog0000644000175000017500000000024210077253342012055 00000000000000The CVS change log is quite large and is not included in the release package. If you really want to see it, please use cvs2cl on the docbook2X CVS repository. docbook2X-0.8.8/COPYING0000644000175000017500000000457010107143311011332 00000000000000Copyright (C) 2000-2004 Steve Cheng Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALNGS IN THE SOFTWARE. Some parts of docbook2X have been derived from Norman Walsh's DocBook XSL stylesheets, whose licensing terms are the same as the above but with two more additional conditions: Copyright (C) 1999, 2000, 2001, 2002 Norman Walsh Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ``Software''), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in al copies or substantial portions of the Software. Except as contained in this notice, the names of individuals credited with contribution to this software shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the individuals in question. Any stylesheet derived from this Software that is publically distributed will be identified with a different name and the version strings in any derived Software will be changed s that no possibility of confusion between the derived package and this Software will exist.