texinfo (7.1)
This is texi2any_internals.info, produced by texi2any version 7.1+dev
from texi2any_internals.texi.
INFO-DIR-SECTION Texinfo documentation system
START-INFO-DIR-ENTRY
* texi2any modules: (texi2any_internals).
Texinfo Perl modules used in texi2any
END-INFO-DIR-ENTRY
File: texi2any_internals.info, Node: Top, Next: Texinfo::Commands, Up: (dir)
Texinfo modules documentation
*****************************
* Menu:
* Texinfo::Commands::
* Texinfo::Common::
* Texinfo::Parser::
* Texinfo::Structuring::
* Texinfo::Report::
* Texinfo::Translations::
* Texinfo::Transformations::
* Texinfo::Convert::Texinfo::
* Texinfo::Convert::Utils::
* Texinfo::Convert::Unicode::
* Texinfo::Convert::NodeNameNormalization::
* Texinfo::Convert::Text::
* Texinfo::Convert::Converter::
* Texinfo::Convert::Info::
* Texinfo::Convert::HTML::
* Texinfo::Convert::DocBook::
* Texinfo::Convert::TexinfoMarkup::
* Texinfo::Convert::TexinfoXML::
* Texinfo::Convert::Plaintext::
-- The Detailed Node Listing --
Texinfo::Commands
* Texinfo::Commands NAME::
* Texinfo::Commands SYNOPSIS::
* Texinfo::Commands NOTES::
* Texinfo::Commands DESCRIPTION::
* Texinfo::Commands @-COMMAND INFORMATION::
* Texinfo::Commands @-COMMAND CLASSES::
* Texinfo::Commands SEE ALSO::
* Texinfo::Commands AUTHOR::
* Texinfo::Commands COPYRIGHT AND LICENSE::
Texinfo::Common
* Texinfo::Common NAME::
* Texinfo::Common SYNOPSIS::
* Texinfo::Common NOTES::
* Texinfo::Common DESCRIPTION::
* Texinfo::Common MISC INFORMATION::
* Texinfo::Common @-COMMAND INFORMATION::
* Texinfo::Common METHODS::
* Texinfo::Common SEE ALSO::
* Texinfo::Common AUTHOR::
* Texinfo::Common COPYRIGHT AND LICENSE::
Texinfo::Parser
* Texinfo::Parser NAME::
* Texinfo::Parser SYNOPSIS::
* Texinfo::Parser NOTES::
* Texinfo::Parser DESCRIPTION::
* Texinfo::Parser METHODS::
* Texinfo::Parser TEXINFO TREE::
* Texinfo::Parser SEE ALSO::
* Texinfo::Parser AUTHOR::
* Texinfo::Parser COPYRIGHT AND LICENSE::
Texinfo::Parser METHODS
* Texinfo::Parser Initialization::
* Texinfo::Parser Parsing Texinfo text::
* Texinfo::Parser Getting information on the document::
TEXINFO TREE
* Texinfo::Parser Element keys::
* Texinfo::Parser Element types::
* Texinfo::Parser Information available in the info key::
* Texinfo::Parser Information available in the extra key::
Element types
* Texinfo::Parser Types for command elements::
* Texinfo::Parser Types for text elements::
* Texinfo::Parser Tree container elements::
* Texinfo::Parser Types of container elements::
Information available in the ‘extra’ key
* Texinfo::Parser Extra keys available for more than one @-command::
* Texinfo::Parser Extra keys specific of certain @-commands or containers::
Texinfo::Structuring
* Texinfo::Structuring NAME::
* Texinfo::Structuring SYNOPSIS::
* Texinfo::Structuring NOTES::
* Texinfo::Structuring DESCRIPTION::
* Texinfo::Structuring METHODS::
* Texinfo::Structuring SEE ALSO::
* Texinfo::Structuring AUTHOR::
* Texinfo::Structuring COPYRIGHT AND LICENSE::
Texinfo::Report
* Texinfo::Report NAME::
* Texinfo::Report SYNOPSIS::
* Texinfo::Report NOTES::
* Texinfo::Report DESCRIPTION::
* Texinfo::Report METHODS::
* Texinfo::Report AUTHOR::
* Texinfo::Report COPYRIGHT AND LICENSE::
Texinfo::Translations
* Texinfo::Translations NAME::
* Texinfo::Translations SYNOPSIS::
* Texinfo::Translations NOTES::
* Texinfo::Translations DESCRIPTION::
* Texinfo::Translations METHODS::
* Texinfo::Translations AUTHOR::
* Texinfo::Translations COPYRIGHT AND LICENSE::
Texinfo::Transformations
* Texinfo::Transformations NAME::
* Texinfo::Transformations NOTES::
* Texinfo::Transformations DESCRIPTION::
* Texinfo::Transformations METHODS::
* Texinfo::Transformations SEE ALSO::
* Texinfo::Transformations AUTHOR::
* Texinfo::Transformations COPYRIGHT AND LICENSE::
Texinfo::Convert::Texinfo
* Texinfo::Convert::Texinfo NAME::
* Texinfo::Convert::Texinfo SYNOPSIS::
* Texinfo::Convert::Texinfo NOTES::
* Texinfo::Convert::Texinfo DESCRIPTION::
* Texinfo::Convert::Texinfo METHODS::
* Texinfo::Convert::Texinfo AUTHOR::
* Texinfo::Convert::Texinfo COPYRIGHT AND LICENSE::
Texinfo::Convert::Utils
* Texinfo::Convert::Utils NAME::
* Texinfo::Convert::Utils SYNOPSIS::
* Texinfo::Convert::Utils NOTES::
* Texinfo::Convert::Utils DESCRIPTION::
* Texinfo::Convert::Utils METHODS::
* Texinfo::Convert::Utils SEE ALSO::
* Texinfo::Convert::Utils AUTHOR::
* Texinfo::Convert::Utils COPYRIGHT AND LICENSE::
Texinfo::Convert::Unicode
* Texinfo::Convert::Unicode NAME::
* Texinfo::Convert::Unicode SYNOPSIS::
* Texinfo::Convert::Unicode NOTES::
* Texinfo::Convert::Unicode DESCRIPTION::
* Texinfo::Convert::Unicode METHODS::
* Texinfo::Convert::Unicode AUTHOR::
* Texinfo::Convert::Unicode COPYRIGHT AND LICENSE::
Texinfo::Convert::NodeNameNormalization
* Texinfo::Convert::NodeNameNormalization NAME::
* Texinfo::Convert::NodeNameNormalization SYNOPSIS::
* Texinfo::Convert::NodeNameNormalization NOTES::
* Texinfo::Convert::NodeNameNormalization DESCRIPTION::
* Texinfo::Convert::NodeNameNormalization METHODS::
* Texinfo::Convert::NodeNameNormalization AUTHOR::
* Texinfo::Convert::NodeNameNormalization COPYRIGHT AND LICENSE::
Texinfo::Convert::Text
* Texinfo::Convert::Text NAME::
* Texinfo::Convert::Text SYNOPSIS::
* Texinfo::Convert::Text NOTES::
* Texinfo::Convert::Text DESCRIPTION::
* Texinfo::Convert::Text METHODS::
* Texinfo::Convert::Text AUTHOR::
* Texinfo::Convert::Text COPYRIGHT AND LICENSE::
Texinfo::Convert::Converter
* Texinfo::Convert::Converter NAME::
* Texinfo::Convert::Converter SYNOPSIS::
* Texinfo::Convert::Converter NOTES::
* Texinfo::Convert::Converter DESCRIPTION::
* Texinfo::Convert::Converter METHODS::
* Texinfo::Convert::Converter SEE ALSO::
* Texinfo::Convert::Converter AUTHOR::
* Texinfo::Convert::Converter COPYRIGHT AND LICENSE::
Texinfo::Convert::Converter METHODS
* Texinfo::Convert::Converter Initialization::
* Texinfo::Convert::Converter Getting and setting customization variables::
* Texinfo::Convert::Converter Conversion to XML::
* Texinfo::Convert::Converter Helper methods::
Texinfo::Convert::Info
* Texinfo::Convert::Info NAME::
* Texinfo::Convert::Info SYNOPSIS::
* Texinfo::Convert::Info NOTES::
* Texinfo::Convert::Info DESCRIPTION::
* Texinfo::Convert::Info METHODS::
* Texinfo::Convert::Info AUTHOR::
* Texinfo::Convert::Info COPYRIGHT AND LICENSE::
Texinfo::Convert::HTML
* Texinfo::Convert::HTML NAME::
* Texinfo::Convert::HTML SYNOPSIS::
* Texinfo::Convert::HTML NOTES::
* Texinfo::Convert::HTML DESCRIPTION::
* Texinfo::Convert::HTML METHODS::
* Texinfo::Convert::HTML AUTHOR::
* Texinfo::Convert::HTML COPYRIGHT AND LICENSE::
Texinfo::Convert::DocBook
* Texinfo::Convert::DocBook NAME::
* Texinfo::Convert::DocBook SYNOPSIS::
* Texinfo::Convert::DocBook NOTES::
* Texinfo::Convert::DocBook DESCRIPTION::
* Texinfo::Convert::DocBook METHODS::
* Texinfo::Convert::DocBook AUTHOR::
* Texinfo::Convert::DocBook COPYRIGHT AND LICENSE::
Texinfo::Convert::TexinfoMarkup
* Texinfo::Convert::TexinfoMarkup NAME::
* Texinfo::Convert::TexinfoMarkup SYNOPSIS::
* Texinfo::Convert::TexinfoMarkup NOTES::
* Texinfo::Convert::TexinfoMarkup DESCRIPTION::
* Texinfo::Convert::TexinfoMarkup METHODS::
* Texinfo::Convert::TexinfoMarkup AUTHOR::
* Texinfo::Convert::TexinfoMarkup SEE ALSO::
* Texinfo::Convert::TexinfoMarkup COPYRIGHT AND LICENSE::
Texinfo::Convert::TexinfoMarkup METHODS
* Texinfo::Convert::TexinfoMarkup Markup formatting methods defined by subclasses::
* Texinfo::Convert::TexinfoMarkup Formatting state information::
Texinfo::Convert::TexinfoXML
* Texinfo::Convert::TexinfoXML NAME::
* Texinfo::Convert::TexinfoXML SYNOPSIS::
* Texinfo::Convert::TexinfoXML NOTES::
* Texinfo::Convert::TexinfoXML DESCRIPTION::
* Texinfo::Convert::TexinfoXML METHODS::
* Texinfo::Convert::TexinfoXML AUTHOR::
* Texinfo::Convert::TexinfoXML COPYRIGHT AND LICENSE::
Texinfo::Convert::Plaintext
* Texinfo::Convert::Plaintext NAME::
* Texinfo::Convert::Plaintext SYNOPSIS::
* Texinfo::Convert::Plaintext NOTES::
* Texinfo::Convert::Plaintext DESCRIPTION::
* Texinfo::Convert::Plaintext METHODS::
* Texinfo::Convert::Plaintext AUTHOR::
* Texinfo::Convert::Plaintext COPYRIGHT AND LICENSE::
* Index::
File: texi2any_internals.info, Node: Texinfo::Commands, Next: Texinfo::Common, Prev: Top, Up: Top
1 Texinfo::Commands
*******************
* Menu:
* Texinfo::Commands NAME::
* Texinfo::Commands SYNOPSIS::
* Texinfo::Commands NOTES::
* Texinfo::Commands DESCRIPTION::
* Texinfo::Commands @-COMMAND INFORMATION::
* Texinfo::Commands @-COMMAND CLASSES::
* Texinfo::Commands SEE ALSO::
* Texinfo::Commands AUTHOR::
* Texinfo::Commands COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Commands NAME, Next: Texinfo::Commands SYNOPSIS, Up: Texinfo::Commands
1.1 Texinfo::Commands NAME
==========================
Texinfo::Commands - Classification of commands
File: texi2any_internals.info, Node: Texinfo::Commands SYNOPSIS, Next: Texinfo::Commands NOTES, Prev: Texinfo::Commands NAME, Up: Texinfo::Commands
1.2 Texinfo::Commands SYNOPSIS
==============================
use Texinfo::Commands;
if ($Texinfo::Commands::accent_commands{$a_command}) {
print STDERR "$a_command is an accent command\n";
}
File: texi2any_internals.info, Node: Texinfo::Commands NOTES, Next: Texinfo::Commands DESCRIPTION, Prev: Texinfo::Commands SYNOPSIS, Up: Texinfo::Commands
1.3 Texinfo::Commands NOTES
===========================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Commands DESCRIPTION, Next: Texinfo::Commands @-COMMAND INFORMATION, Prev: Texinfo::Commands NOTES, Up: Texinfo::Commands
1.4 Texinfo::Commands DESCRIPTION
=================================
Texinfo::Commands holds a few hashes with information on @-commands and
hashes classifying Texinfo @-commands.
File: texi2any_internals.info, Node: Texinfo::Commands @-COMMAND INFORMATION, Next: Texinfo::Commands @-COMMAND CLASSES, Prev: Texinfo::Commands DESCRIPTION, Up: Texinfo::Commands
1.5 @-COMMAND INFORMATION
=========================
Hashes are defined as ‘our’ variables, and are therefore available
outside of the module.
%index_names
Hash describing the default Texinfo indices. The format of this
hash is described in *note ‘Texinfo::Parser::indices_information’:
Texinfo::Parser $indices_information =
$parser->indices_information().
File: texi2any_internals.info, Node: Texinfo::Commands @-COMMAND CLASSES, Next: Texinfo::Commands SEE ALSO, Prev: Texinfo::Commands @-COMMAND INFORMATION, Up: Texinfo::Commands
1.6 @-COMMAND CLASSES
=====================
Hashes are defined as ‘our’ variables, and are therefore available
outside of the module.
The key of the hashes are @-command names without the @. The
following hashes are available:
%accent_commands
Accent @-commands taking an argument, like ‘@'’ or ‘@ringaccent’,
including ‘@dotless’ and ‘@tieaccent’.
%block_commands
Commands delimiting a block with a closing ‘@end’. The values are:
_conditional_
‘@if*’ commands;
_def_
Definition commands like ‘@deffn’;
_float_
‘@float’;
_format_raw_
raw output format commands such as ‘@html’ or ‘@info’;
_item_container_
commands with ‘@item’ containing any content, ‘@itemize’ and
‘@enumerate’;
_item_line_
commands like ‘@table’ in which the ‘@item’ argument is on its
line;
_menu_
menu @-commands, ‘@menu’, ‘@detailmenu’ and ‘@direntry’;
_math_
Math block commands, like ‘@displaymath’.
_multitable_
‘@multitable’;
_other_
The remaining block commands.
_preformatted_
Commands whose content should not be filled, like ‘@example’
or ‘@display’.
_quotation_
Commands like ‘@quotation’.
_raw_
@-commands that have no expansion of @-commands in their
bodies (‘@macro’, ‘@verbatim’ and ‘@ignore’);
_region_
Commands delimiting a region of the document out of the main
processing: ‘@titlepage’, ‘@copying’, ‘@documentdescription’.
%blockitem_commands
Block commands containing ‘@item’ with possible content before an
‘@item’, like ‘@itemize’, ‘@table’ or ‘@multitable’.
%brace_code_commands
Brace commands that have their argument in code style, like
‘@code’.
%brace_commands
The commands that take braces. Value is _noarg_ for brace commands
without argument such as ‘@AA’, ‘@TeX’, or ‘@equiv’. Other values
include _accent_, _arguments_, _context_ and other values.
%close_paragraph_commands
Commands that stop a paragraph. Root commands are not specified
here, but they also close paragraphs.
%commands_args_number
Set to the number of arguments separated by commas that may appear
in braces or on the @-command line. That means 0 or unset for most
block commands, including ‘@example’ which has an unlimited
(variadic) number of arguments, 1 for ‘@quotation’, 2 for ‘@float’,
1 for most brace commands, 2 for ‘@email’ and ‘@abbr’, 5 for
‘@image’ and ‘@ref’.
Values are not necessarily set for all the commands, as commands
are also classified by type of command, some type of commands
implying a number of arguments, and the number of arguments may not
be set if it corresponds to the default (0 for block commands, 1
for other commands that take arguments).
%contain_basic_inline_commands
Commands containing simple text only, much like paragraph text, but
without ‘@ref’, ‘@footnote’, ‘@titlefont’, ‘@anchor’ nor ‘@verb’.
%contain_plain_text_commands
Commands accepting only plain text with accent, symbol and glyph
commands.
%def_commands
Definition commands.
%default_index_commands
Index entry commands corresponding to default indices. For example
‘@cindex’.
%explained_commands
@-commands whose second argument explain first argument and further
@-command call without first argument, as ‘@abbr’ and ‘@acronym’.
%formattable_line_commands
Line commands which may be formatted as text, but that require
constructing some replacement text, for example ‘@printindex’,
‘@need’ or ‘@verbatiminclude’. ‘@contents’ and ‘@shortcontents’
are not in this hash, since they are in a corresponding situation
only when the tables of contents are formatted where the commands
are.
%formatted_nobrace_commands
Commands not taking brace formatted as text or with text in the
main document body, corresponding to symbol commands such as ‘@@’
or ‘@:’ and commands such as ‘@item’. @-commands appearing only in
headers are not in this hash, but in in
‘%in_heading_spec_commands’.
%formatted_line_commands
Line commands which arguments may be formatted as text, such as
‘@center’, ‘@author’, ‘@item’, ‘@node’, ‘@chapter’ and other.
Index commands may be formatted as text too, but they may be added
with ‘@def*index’, therefore they are not in that hash. Also, in
general, they are not formatted as text where they appear, only
when an index is printed.
%heading_spec_commands
@-commands used to specify custom headings, like ‘@everyheading’.
%in_heading_spec_commands
Special @-commands appearing in custom headings, such as
‘@thischapter’, ‘@thistitle’ or ‘@|’.
%in_index_commands
@-commands only valid in index entries, such as ‘@sortas’ or
‘@subentry’.
%inline_conditional_commands
%inline_format_commands
Inline conditional commands, like ‘@inlineifclear’, and inline
format commands like ‘@inlineraw’ and ‘@inlinefmt’.
%letter_no_arg_commands
@-commands with braces but no argument corresponding to letters,
like ‘@AA{}’ or ‘@ss{}’ or ‘@o{}’.
%math_commands
@-commands which contains math, like ‘@math’ or ‘@displaymath’.
%line_commands
Commands that do not take braces, take arguments on the command
line and are not block commands either, like ‘@node’, ‘@chapter’,
‘@cindex’, ‘@deffnx’, ‘@end’, ‘@footnotestyle’, ‘@set’,
‘@settitle’, ‘@itemx’, ‘@definfoenclose’, ‘@comment’ and many
others.
Note that ‘@item’ is in ‘%line_commands’ for its role in ‘@table’
and similar @-commands.
%no_paragraph_commands
Commands that do not start a paragraph.
%nobrace_commands
Command that do not take braces, do not have argument on their line
and are not block commands either. The value is _symbol_ for
single character non-alphabetical @-commands such as ‘@@’, ‘@ ’ or
‘@:’. Other commands in that hash include ‘@indent’, ‘@tab’ or
‘@thissection’.
Note that ‘@item’ is in ‘%nobrace_commands’ for its role in
‘@multitable’, ‘@itemize’ and ‘@enumerate’.
%non_formatted_block_commands
Block commands not formatted as text, such as ‘@ignore’ or
‘@macro’.
%preamble_commands
@-commands that do not stop the preamble.
%preformatted_commands
%preformatted_code_commands
_%preformatted_commands_ is for commands whose content should not
be filled, like ‘@example’ or ‘@display’. If the command is meant
for code, it is also in _%preformatted_code_commands_, like
‘@example’.
%ref_commands
Cross reference @-command referencing nodes, like ‘@xref’ or
‘@link’.
%root_commands
Commands that are at the root of a Texinfo document, namely ‘@node’
and sectioning commands, except heading commands like ‘@heading’.
%sectioning_heading_commands
All the sectioning and heading commands.
%variadic_commands
Commands with unlimited arguments, like ‘@example’.
File: texi2any_internals.info, Node: Texinfo::Commands SEE ALSO, Next: Texinfo::Commands AUTHOR, Prev: Texinfo::Commands @-COMMAND CLASSES, Up: Texinfo::Commands
1.7 Texinfo::Commands SEE ALSO
==============================
*note Texinfo::Parser: Texinfo::Parser NAME.
File: texi2any_internals.info, Node: Texinfo::Commands AUTHOR, Next: Texinfo::Commands COPYRIGHT AND LICENSE, Prev: Texinfo::Commands SEE ALSO, Up: Texinfo::Commands
1.8 Texinfo::Commands AUTHOR
============================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Commands COPYRIGHT AND LICENSE, Prev: Texinfo::Commands AUTHOR, Up: Texinfo::Commands
1.9 Texinfo::Commands COPYRIGHT AND LICENSE
===========================================
Copyright 2010- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Texinfo::Common, Next: Texinfo::Parser, Prev: Texinfo::Commands, Up: Top
2 Texinfo::Common
*****************
* Menu:
* Texinfo::Common NAME::
* Texinfo::Common SYNOPSIS::
* Texinfo::Common NOTES::
* Texinfo::Common DESCRIPTION::
* Texinfo::Common MISC INFORMATION::
* Texinfo::Common @-COMMAND INFORMATION::
* Texinfo::Common METHODS::
* Texinfo::Common SEE ALSO::
* Texinfo::Common AUTHOR::
* Texinfo::Common COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Common NAME, Next: Texinfo::Common SYNOPSIS, Up: Texinfo::Common
2.1 Texinfo::Common NAME
========================
Texinfo::Common - Texinfo modules common data and miscellaneous methods
File: texi2any_internals.info, Node: Texinfo::Common SYNOPSIS, Next: Texinfo::Common NOTES, Prev: Texinfo::Common NAME, Up: Texinfo::Common
2.2 Texinfo::Common SYNOPSIS
============================
use Texinfo::Common;
my @commands_to_collect = ('math');
my $collected_commands
= Texinfo::Common::collect_commands_in_tree($document_root,
\@commands_to_collect);
File: texi2any_internals.info, Node: Texinfo::Common NOTES, Next: Texinfo::Common DESCRIPTION, Prev: Texinfo::Common SYNOPSIS, Up: Texinfo::Common
2.3 Texinfo::Common NOTES
=========================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Common DESCRIPTION, Next: Texinfo::Common MISC INFORMATION, Prev: Texinfo::Common NOTES, Up: Texinfo::Common
2.4 Texinfo::Common DESCRIPTION
===============================
Texinfo::Common holds hashes with miscellaneous information and some
hashes with information on Texinfo @-commands, as well as miscellaneous
methods.
File: texi2any_internals.info, Node: Texinfo::Common MISC INFORMATION, Next: Texinfo::Common @-COMMAND INFORMATION, Prev: Texinfo::Common DESCRIPTION, Up: Texinfo::Common
2.5 MISC INFORMATION
====================
Hashes are defined as ‘our’ variables, and are therefore available
outside of the module.
TODO: undocumented %null_device_file
%default_parser_customization_values
%document_settable_multiple_at_commands
%document_settable_unique_at_commands
%default_converter_command_line_options
%default_main_program_customization_options
%default_converter_customization @variable_string_settables
%document_settable_at_commands %def_map %command_structuring_level
%level_to_structuring_command %encoding_name_conversion_map
%texinfo_output_formats
Cannonical output formats that have associated conditionals. In
practice corresponds to ‘format_raw’ ‘%block_commands’ plus ‘info’
and ‘plaintext’.
File: texi2any_internals.info, Node: Texinfo::Common @-COMMAND INFORMATION, Next: Texinfo::Common METHODS, Prev: Texinfo::Common MISC INFORMATION, Up: Texinfo::Common
2.6 @-COMMAND INFORMATION
=========================
Hashes are defined as ‘our’ variables, and are therefore available
outside of the module.
The key of the hashes are @-command names without the @. The
following hashes are available:
%all_commands
All the @-commands.
%def_aliases
%def_no_var_arg_commands
‘%def_aliases’ associates an aliased command to the original
command, for example ‘defun’ is associated to ‘deffn’.
‘%def_no_var_arg_commands’ associates a definition command name
with a true value if the _argument_ on the definition command line
can contain non-metasyntactic variables. For instance, it is true
for ‘deftypevr’ but false for ‘defun’, since ‘@defun’ _argument_ is
supposed to contain metasyntactic variables only.
%nobrace_symbol_text
Values are ASCII representation of single character
non-alphabetical commands without brace such as ‘*’ or ‘:’. The
value may be an empty string.
%non_formatted_brace_commands
Brace commands that are not immediately replaced with text, such as
‘anchor’, ‘caption’, ‘errormsg’ and others.
%small_block_associated_command
Associate small command like ‘smallexample’ to the regular command
‘example’.
File: texi2any_internals.info, Node: Texinfo::Common METHODS, Next: Texinfo::Common SEE ALSO, Prev: Texinfo::Common @-COMMAND INFORMATION, Up: Texinfo::Common
2.7 Texinfo::Common METHODS
===========================
Two methods are exported in the default case for Texinfo modules
messages translation in the Uniforum gettext framework, ‘__’ and ‘__p’.
The Texinfo tree and Texinfo tree elements used in argument of some
functions are documented in *note Texinfo::Parser TEXINFO TREE::. When
customization information is needed, an object that defines ‘set_conf’
and/or ‘get_conf’ is expected, for example a converter inheriting from
‘Texinfo::Convert::Converter’, see *note Texinfo::Convert::Converter
Getting and setting customization variables::.
$translated_string = __($msgid)
$translated_string = __p($msgctxt, $msgid)
Returns the _$msgid_ string translated in the Texinfo messages text
domain. ‘__p’ can be used instead of ‘__’ to pass a _$msgctxt_
context string to provide translators with information on the
string context when the string is short or if the translation could
depend on the context. ‘__’ corresponds to the ‘gettext’ function
and ‘__p’ to the ‘pgettext’ function.
It is not advised to use those functions in user-defined code. It
is not practical either, as the translatable strings marked by ‘__’
or ‘__p’ need to be collected and added to the Texinfo messages
domain. This facility could only be used in user-defined code with
translatable strings already present in the domain anyway. In
fact, these functions are documented mainly because they are
automatically exported.
See *note (libintl-perl)::, ‘gettext’ C interface
(https://www.gnu.org/software/gettext/manual/html_node/gettext.html),
Perl in GNU Gettext
(https://www.gnu.org/software/gettext/manual/html_node/Perl.html).
For translation of strings in output, see *note
Texinfo::Translations: Texinfo::Translations NAME.
collect_commands_in_tree($tree, $commands_list)
Returns a hash reference with keys @-commands names specified in
the _$commands_list_ array reference and values arrays of tree
elements corresponding to those @-command found in _$tree_ by
traversing the tree.
collect_commands_list_in_tree($tree, $commands_list)
Return a list reference containing the tree elements corresponding
to the @-commands names specified in the _$commands_list_ found in
_$tree_ by traversing the tree. The order of the @-commands should
be kept.
$encoding_name = element_associated_processing_encoding($element)
Returns the encoding name that can be used for decoding derived
from the encoding that was set where _$element_ appeared.
$result = element_is_inline($element, $check_current)
Return true if the element passed in argument is in running text
context. If the optional _$check_current_ argument is set, check
the element itself, in addition to the parent context.
($encoded_file_name, $encoding) = encode_file_name($file_name, $input_encoding)
Encode the _$file_name_ text string to a binary string
_$encoded_file_name_ based on _$input_encoding_. Also returns the
_$encoding_ name actually used which may have undergone some
normalization. This function is mostly a wrapper around *note
Encode::encode: (Encode)encode. which avoids calling the module if
not needed. Do nothing if _$input_encoding_ is ‘undef’.
$text = enumerate_item_representation($specification, $number)
This function returns the number or letter correponding to item
number _$number_ for an ‘@enumerate’ specification
_$specification_, appearing on an ‘@enumerate’ line. For example
enumerate_item_representation('c', 3)
is ‘e’.
$command = find_parent_root_command($object, $tree_element)
Find the parent root command (sectioning command or node) of a tree
element. The _$object_ argument is optional, its ‘global_commands’
field is used to continue through ‘@insertcopying’ if in a
‘@copying’.
$entry_content_element = index_content_element($element, $prefer_reference_element)
Return a Texinfo tree element corresponding to the content of the
index entry associated to _$element_. If
_$prefer_reference_element_ is set, prefer an untranslated element.
If the element is an index command like ‘@cindex’ or an ‘@ftable’
‘@item’, the content element is the argument of the command. If
the element is a definition line, the index entry element is based
on the name and class.
$result = is_content_empty($tree, $do_not_ignore_index_entries)
Return true if the _$tree_ has content that could be formatted.
_$do_not_ignore_index_entries_ is optional. If set, index entries
are considered to be formatted.
$file = locate_include_file($customization_information, file_path)
Locate _$file_path_. If _$file_path_ is an absolute path or has
‘.’ or ‘..’ in the path directories it is checked that the path
exists and is a file. Otherwise, the file name in _$file_path_ is
located in include directories also used to find texinfo files
included in Texinfo documents. _$file_path_ should be a binary
string. ‘undef’ is returned if the file was not found, otherwise
the file found is returned as a binary string.
($index_entry, $index_info) = lookup_index_entry($index_entry_info, $indices_information)
Returns an _$index_entry_ hash based on the _$index_entry_info_ and
_$indices_information_. Also returns the _$index_info_ hash with
information on the index associated to the index entry.
_$index_entry_info_ should be an array reference with an index name
as first element and the index entry number in that index (1-based)
as second element. In general, the _$index_entry_info_ is an *note
‘extra’ _index_entry_: Texinfo::Parser index_entry. associated to
an element.
The _$index_entry_ hash is described in *note Texinfo::Parser
index_entries::. The _$index_info_ hash is described in L*note
‘Texinfo::Parser::indices_information’: Texinfo::Parser
$indices_information = $parser->indices_information().
move_index_entries_after_items_in_tree($tree)
In ‘@enumerate’ and ‘@itemize’ from the tree, move index entries
appearing just before ‘@item’ after the ‘@item’. Comment lines
between index entries are moved too.
relate_index_entries_to_table_items_in_tree($tree)
In tables, relate index entries preceding and following an entry
with said item. Reference one of them in the entry's
‘entry_associated_element’.
$normalized_name = normalize_top_node_name($node_string)
Normalize the node name string given in argument, by normalizing
Top node case.
protect_colon_in_tree($tree)
protect_node_after_label_in_tree($tree)
Protect colon with ‘protect_colon_in_tree’ and characters that are
special in node names after a label in menu entries (tab dot and
comma) with ‘protect_node_after_label_in_tree’. The protection is
achieved by putting protected characters in ‘@asis{}’.
protect_comma_in_tree($tree)
Protect comma characters, replacing ‘,’ with @comma{} in tree.
$contents_result = protect_first_parenthesis($contents)
Return a contents array reference with first parenthesis in the
contents array reference protected. If _$contents_ is undef a
fatal error with a backtrace will be emitted.
$level = section_level($section)
Return numbered level of the tree sectioning element _$section_, as
modified by raise/lowersections.
$element = set_global_document_command($customization_information, $global_commands_information, $cmdname, $command_location)
Set the Texinfo customization variable corresponding to _$cmdname_
in _$customization_information_. The
_$global_commands_information_ should contain information about
global commands in a Texinfo document, typically obtained from a
parser *note $parser->global_commands_information():
Texinfo::Parser $commands = global_commands_information($parser).
_$command_location_ specifies where in the document the value
should be taken from, for commands that may appear more than once.
The possibilities are:
last
Set to the last value for the command.
preamble
Set sequentially to the values in the Texinfo preamble.
preamble_or_first
Set to the first value of the command if the first command is
not in the Texinfo preamble, else set as with _preamble_,
sequentially to the values in the Texinfo preamble.
The _$element_ returned is the last element that was used to set
the customization value, or ‘undef’ if no customization value was
found.
Notice that the only effect of this function is to set a
customization variable value, no @-command side effects are run, no
associated customization variables are set.
$status = set_informative_command_value($customization_information, $element)
Set the Texinfo customization option corresponding to the tree
element _$element_. The command associated to the tree element
should be a command that sets some information, such as
‘@documentlanguage’, ‘@contents’ or ‘@footnotestyle’ for example.
Return true if the command argument was found and the customization
variable was set.
set_output_encodings($customization_information, $parser_information)
If not already set, set ‘OUTPUT_ENCODING_NAME’ based on input file
encoding. Also set ‘OUTPUT_PERL_ENCODING’ accordingly which is
used to output in the correct encoding. In general,
‘OUTPUT_PERL_ENCODING’ should not be set directly by user-defined
code such that it corresponds to ‘OUTPUT_ENCODING_NAME’.
$split_contents = split_custom_heading_command_contents($contents)
Split the _$contents_ array reference at ‘@|’ in at max three
parts. Return an array reference containing the split parts. The
_$contents_ array reference is supposed to be
‘$element->{'args'}->[0]->{'contents'}’ of
‘%Texinfo::Commands::heading_spec_commands’ commands such as
‘@everyheading’.
trim_spaces_comment_from_content($contents)
Remove empty spaces after commands or braces at begin and spaces
and comments at end from a content array, modifying it.
$status = valid_customization_option($name)
Return true if the _$name_ is a known customization option.
$status = valid_tree_transformation($name)
Return true if the _$name_ is a known tree transformation name that
may be passed with ‘TREE_TRANSFORMATIONS’ to modify a texinfo tree.
File: texi2any_internals.info, Node: Texinfo::Common SEE ALSO, Next: Texinfo::Common AUTHOR, Prev: Texinfo::Common METHODS, Up: Texinfo::Common
2.8 Texinfo::Common SEE ALSO
============================
*note Texinfo::Parser: Texinfo::Parser NAME, *note
Texinfo::Convert::Converter: Texinfo::Convert::Converter NAME. and *note
Texinfo::Report: Texinfo::Report NAME.
File: texi2any_internals.info, Node: Texinfo::Common AUTHOR, Next: Texinfo::Common COPYRIGHT AND LICENSE, Prev: Texinfo::Common SEE ALSO, Up: Texinfo::Common
2.9 Texinfo::Common AUTHOR
==========================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Common COPYRIGHT AND LICENSE, Prev: Texinfo::Common AUTHOR, Up: Texinfo::Common
2.10 Texinfo::Common COPYRIGHT AND LICENSE
==========================================
Copyright 2010- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Texinfo::Parser, Next: Texinfo::Structuring, Prev: Texinfo::Common, Up: Top
3 Texinfo::Parser
*****************
* Menu:
* Texinfo::Parser NAME::
* Texinfo::Parser SYNOPSIS::
* Texinfo::Parser NOTES::
* Texinfo::Parser DESCRIPTION::
* Texinfo::Parser METHODS::
* Texinfo::Parser TEXINFO TREE::
* Texinfo::Parser SEE ALSO::
* Texinfo::Parser AUTHOR::
* Texinfo::Parser COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Parser NAME, Next: Texinfo::Parser SYNOPSIS, Up: Texinfo::Parser
3.1 Texinfo::Parser NAME
========================
Texinfo::Parser - Parse Texinfo code into a Perl tree
File: texi2any_internals.info, Node: Texinfo::Parser SYNOPSIS, Next: Texinfo::Parser NOTES, Prev: Texinfo::Parser NAME, Up: Texinfo::Parser
3.2 Texinfo::Parser SYNOPSIS
============================
use Texinfo::Parser;
my $parser = Texinfo::Parser::parser();
my $tree = $parser->parse_texi_file("somefile.texi");
# a Texinfo::Report object in which the errors and warnings
# encountered while parsing are registered.
my $registrar = $parser->registered_errors();
my ($errors, $errors_count) = $registrar->errors();
foreach my $error_message (@$errors) {
warn $error_message->{'error_line'};
}
my $indices_information = $parser->indices_information();
my $float_types_arrays = $parser->floats_information();
my $internal_references_array
= $parser->internal_references_information();
# $labels_information is an hash reference on normalized node/float/anchor names.
my ($labels_information, $targets_list, $nodes_list) = $parser->labels_information();
# A hash reference, keys are @-command names, value is an
# array reference holding all the corresponding @-commands.
my $global_commands_information = $parser->global_commands_information();
# a hash reference on document information (encodings,
# input file name, dircategory and direntry list, for example).
my $global_information = $parser->global_information();
File: texi2any_internals.info, Node: Texinfo::Parser NOTES, Next: Texinfo::Parser DESCRIPTION, Prev: Texinfo::Parser SYNOPSIS, Up: Texinfo::Parser
3.3 Texinfo::Parser NOTES
=========================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Parser DESCRIPTION, Next: Texinfo::Parser METHODS, Prev: Texinfo::Parser NOTES, Up: Texinfo::Parser
3.4 Texinfo::Parser DESCRIPTION
===============================
‘Texinfo::Parser’ will parse Texinfo text into a Perl tree. In one pass
it expands user-defined @-commands, conditionals (‘@ifset’,
‘@ifinfo’...) and ‘@value’ and constructs the tree. Some extra
information is gathered while doing the tree: for example, the
‘@quotation’ associated to an ‘@author’ command, the number of columns
in a multitable, or the node associated with a section.
File: texi2any_internals.info, Node: Texinfo::Parser METHODS, Next: Texinfo::Parser TEXINFO TREE, Prev: Texinfo::Parser DESCRIPTION, Up: Texinfo::Parser
3.5 Texinfo::Parser METHODS
===========================
No method is exported in the default case. The module allows both an
object-oriented syntax, or traditional function, with the parser as an
opaque data structure given as an argument to every function.
* Menu:
* Texinfo::Parser Initialization::
* Texinfo::Parser Parsing Texinfo text::
* Texinfo::Parser Getting information on the document::
File: texi2any_internals.info, Node: Texinfo::Parser Initialization, Next: Texinfo::Parser Parsing Texinfo text, Up: Texinfo::Parser METHODS
3.5.1 Initialization
--------------------
The following method is used to construct a new ‘Texinfo::Parser’
object:
$parser = Texinfo::Parser::parser($options);
This method creates a new parser. The options may be provided as a
hash reference. Most of those options correspond to Texinfo
customization options described in the Texinfo manual.
CPP_LINE_DIRECTIVES
Handle cpp like synchronization lines if set. Set in the
default case.
EXPANDED_FORMATS
An array reference of the output formats for which
‘@if_FORMAT_’ conditional blocks should be expanded. Default
is empty.
FORMAT_MENU
Possible values are ‘nomenu’, ‘menu’ and ‘sectiontoc’. Only
report menu-related errors for ‘menu’.
INCLUDE_DIRECTORIES
An array reference of directories in which ‘@include’ files
should be searched for. Default contains the working
directory, ‘.’.
IGNORE_SPACE_AFTER_BRACED_COMMAND_NAME
If set, spaces after an @-command name that take braces are
ignored. Default on.
MAX_MACRO_CALL_NESTING
Maximal number of nested user-defined macro calls. Default is
100000.
documentlanguage
A string corresponding to a document language set by
‘@documentlanguage’. It overrides the document
‘@documentlanguage’ information, if present.
registrar
*note Texinfo::Report: Texinfo::Report NAME. object reused by
the parser to register errors.
values
A hash reference. Keys are names, values are the
corresponding values. Same as values set by ‘@set’.
File: texi2any_internals.info, Node: Texinfo::Parser Parsing Texinfo text, Next: Texinfo::Parser Getting information on the document, Prev: Texinfo::Parser Initialization, Up: Texinfo::Parser METHODS
3.5.2 Parsing Texinfo text
--------------------------
Different methods may be called to parse some Texinfo code:
‘parse_texi_line’ for a line, ‘parse_texi_piece’ for a fragment of
Texinfo, ‘parse_texi_text’ for a string corresponding to a full document
and ‘parse_texi_file’ for a file.
For all those functions, if the _$parser_ argument is undef, a new
parser object is generated to parse the line. Otherwise the parser
given as an argument is used to parse into a tree.
When ‘parse_texi_line’ is used, the resulting tree is rooted at a
‘root_line’ type container. Otherwise, the resulting tree should be
rooted at a ‘document_root’ type container.
$tree = parse_texi_line($parser, $text, $first_line_number)
This function is used to parse a short fragment of Texinfo code.
_$text_ is the string containing the texinfo line.
_$first_line_number_ is the line number of the line, if undef, it
will be set to 1.
$tree = parse_texi_piece($parser, $text, $first_line_number)
This function is used to parse Texinfo fragments.
_$text_ is the string containing the texinfo text.
_$first_line_number_ is the line number of the first text line, if
undef, it will be set to 1.
$tree = parse_texi_text($parser, $text, $first_line_number)
This function is used to parse a text as a whole document.
_$text_ is the string containing the texinfo text.
_$first_line_number_ is the line number of the first text line, if
undef, it will be set to 1.
$tree = parse_texi_file($parser, $file_name)
The file with name _$file_name_ is considered to be a Texinfo file
and is parsed into a tree. _$file_name_ should be a binary string.
undef is returned if the file couldn't be read.
The errors collected during the tree parsing are registered in a
*note Texinfo::Report: Texinfo::Report NAME. object. This object is
available with ‘registered_errors’. The errors registered in the
‘Texinfo::Report’ object are available through the ‘errors’ method.
This method is described in *note Texinfo::Report::errors:
Texinfo::Report ($error_warnings_list, $error_count) =
errors($registrar).
$registrar = registered_errors($parser)
_$registrar_ is a *note Texinfo::Report: Texinfo::Report NAME.
object in which the errors and warnings encountered while parsing
are registered. If a _registrar_ is passed to the parser
initialization options, it is reused, otherwise a new one is
created.
File: texi2any_internals.info, Node: Texinfo::Parser Getting information on the document, Prev: Texinfo::Parser Parsing Texinfo text, Up: Texinfo::Parser METHODS
3.5.3 Getting information on the document
-----------------------------------------
After parsing some information about the Texinfo code that was processed
is available from the parser.
Some global information is available through ‘global_information’:
$info = global_information($parser)
The _$info_ returned is a hash reference. The possible keys are
dircategory_direntry
An array of successive ‘@dircategory’ and ‘@direntry’ as they
appear in the document.
input_encoding_name
input_perl_encoding
‘input_encoding_name’ string is the encoding name used for the
Texinfo code. ‘input_perl_encoding’ string is a corresponding
Perl encoding name.
input_file_name
input_directory
The name of the main Texinfo input file and the associated
directory. Binary strings. In ‘texi2any’, they should come
from the command line (and can be decoded with the encoding in
the customization variable ‘COMMAND_LINE_ENCODING’).
Some command lists are available, such that it is possible to go
through the corresponding tree elements without walking the tree. They
are available through ‘global_commands_information’:
$commands = global_commands_information($parser)
_$commands_ is an hash reference. The keys are @-command names.
The associated values are array references containing all the
corresponding tree elements.
All the @-commands that have an associated label (so can be the
target of cross references) -- ‘@node’, ‘@anchor’ and ‘@float’ with
label -- have a normalized name associated, constructed as described in
the _HTML Xref_ node in the Texinfo documentation. Those normalized
labels and the association with @-commands is available through
‘labels_information’:
$labels_information, $targets_list, $nodes_list = labels_information($parser)
_$labels_information_ is a hash reference whose keys are normalized
labels, and the associated value is the corresponding @-command.
_$targets_list_ is a list of labels @-command. Using
_$labels_information_ is preferred. _$nodes_list_ is a list of all
the nodes appearing in the document.
Information on ‘@float’ is also available, grouped by type of floats,
each type corresponding to potential ‘@listoffloats’. This information
is available through the method ‘floats_information’.
$float_types = floats_information($parser)
_$float_types_ is a hash reference whose keys are normalized float
types (the first float argument, or the ‘@listoffloats’ argument).
The normalization is the same as for the first step of node names
normalization. The value is the list of float tree elements
appearing in the texinfo document.
Internal references, that is, @-commands that refer to node, anchors
or floats within the document are also available:
$internal_references_array = internal_references_information($parser)
The function returns a list of cross-reference commands referring
to the same document.
Information about defined indices, merged indices and index entries
is also available through the ‘indices_information’ method.
$indices_information = $parser->indices_information()
_$indices_information_ is a hash reference. The keys are
in_code
1 if the index entries should be formatted as code, 0 in the
opposite case.
name
The index name.
prefix
An array reference of prefix associated to the index.
merged_in
In case the index is merged to another index, this key holds
the name of the index the index is merged into. It takes into
account indirectly merged indices.
contained_indices
An hash reference holding names of indices that are merged
into the index, including itself. It also contains indirectly
merged indices. This key is removed if the index is itself
later merged to another index.
index_entries
An array reference containing index entry structures for index
entries associated with the index. The index entry could be
associated to @-commands like ‘@cindex’, or ‘@item’ in
‘@vtable’, or definition commands entries like ‘@deffn’.
The keys of the index entry structures are
index_name
The index name associated to the command. Not modified
if the corresponding index is merged in another index
(with ‘@synindex’, for example).
entry_element
The element in the parsed tree associated with the
@-command holding the index entry.
entry_number
The number of the index entry.
The following shows the references corresponding to the default
indexes _cp_ and _fn_, the _fn_ index having its entries formatted
as code and the indices corresponding to the following texinfo
@defindex some
@defcodeindex code
$index_names = {'cp' => {'name' => 'cp', 'in_code' => 0, },
'fn' => {'name' => 'fn', 'in_code' => 1, },
'some' => {'in_code' => 0},
'code' => {'in_code' => 1}};
If ‘name’ is not set, it is set to the index name.
File: texi2any_internals.info, Node: Texinfo::Parser TEXINFO TREE, Next: Texinfo::Parser SEE ALSO, Prev: Texinfo::Parser METHODS, Up: Texinfo::Parser
3.6 TEXINFO TREE
================
A Texinfo tree element (called element because node is overloaded in the
Texinfo world) is an hash reference. There are three main categories of
tree element. Tree elements associated with an @-command have a
‘cmdname’ key holding the @-command name. Tree elements corresponding
to text fragments have a ‘text’ key holding the corresponding text.
Finally, the last category is other elements, which in most cases have a
‘type’ key holding their name. Text fragments and @-command elements
may also have an associated type when such information is needed.
The children of an @-command or of other container element are in the
array referred to with the ‘args’ key or with the ‘contents’ key. The
‘args’ key is for arguments of @-commands, either in braces or on the
rest of the line after the command, depending on the type of command.
The ‘contents’ key array holds the contents of the texinfo code
appearing within a block @-command, within a container, or within a
‘@node’ or sectioning @-command.
Another important key for the elements is the ‘extra’ key which is
associated to a hash reference and holds all kinds of information that
is gathered during the parsing and may help with the conversion.
You can see examples of the tree structure by running makeinfo like
this:
makeinfo -c DUMP_TREE=1 -c TEXINFO_OUTPUT_FORMAT=parse document.texi
For a simpler, more regular representation of the tree structure, you
can do:
makeinfo -c TEXINFO_OUTPUT_FORMAT=debugtree document.texi
* Menu:
* Texinfo::Parser Element keys::
* Texinfo::Parser Element types::
* Texinfo::Parser Information available in the info key::
* Texinfo::Parser Information available in the extra key::
File: texi2any_internals.info, Node: Texinfo::Parser Element keys, Next: Texinfo::Parser Element types, Up: Texinfo::Parser TEXINFO TREE
3.6.1 Element keys
------------------
cmdname
The command name of @-command elements.
text
The text fragment of text elements.
type
The type of element considered, in general a container. Frequent
types encountered are _paragraph_ for a paragraph container,
_brace_command_arg_ for the container holding the brace @-commands
contents, _line_arg_ and _block_line_arg_ contain the arguments
appearing on the line of @-commands. Text fragments may have a
type to give an information of the kind of text fragment, for
example _spaces_before_paragraph_ is associated to spaces appearing
before a paragraph beginning. Most @-commands elements do not have
a type associated.
args
Arguments in braces or on @-command line. An array reference.
contents
The Texinfo appearing in the element. For block commands, other
containers, ‘@node’ and sectioning commands. An array reference.
parent
The parent element.
source_info
An hash reference corresponding to information on the location of
the element in the Texinfo input manual. It should mainly be
available for @-command elements, and only for @-commands that are
considered to be complex enough that the location in the document
is needed, for example to prepare an error message.
The keys of the line number hash references are
line_nr
The line number of the @-command.
file_name
The file name where @-command appeared.
macro
The user macro name the @-command is expanded from.
info
A hash reference holding any other information that cannot be
obtained otherwise from the tree. See *note Information available
in the ‘info’ key: Texinfo::Parser Information available in the
info key.
extra
A hash reference holding information that could also be obtained
from the tree, but is directly associated to the element to
simplify downstream code. See *note Information available in the
‘extra’ key: Texinfo::Parser Information available in the extra
key.
File: texi2any_internals.info, Node: Texinfo::Parser Element types, Next: Texinfo::Parser Information available in the info key, Prev: Texinfo::Parser Element keys, Up: Texinfo::Parser TEXINFO TREE
3.6.2 Element types
-------------------
* Menu:
* Texinfo::Parser Types for command elements::
* Texinfo::Parser Types for text elements::
* Texinfo::Parser Tree container elements::
* Texinfo::Parser Types of container elements::
File: texi2any_internals.info, Node: Texinfo::Parser Types for command elements, Next: Texinfo::Parser Types for text elements, Up: Texinfo::Parser Element types
3.6.2.1 Types for command elements
..................................
Some types can be associated with @-commands (in addition to ‘cmdname’),
although usually there will be no type at all. The following are the
possible values of ‘type’ for tree elements for @-commands.
command_as_argument
This is the type of a command given in argument of ‘@itemize’,
‘@table’, ‘@vtable’ or ‘@ftable’. For example in
@itemize @bullet
@item item
@end itemize
the element corresponding with bullet has the following keys:
'cmdname' => 'bullet'
'type' => 'command_as_argument'
The parent @-command has an entry in ‘extra’ for the
_command_as_argument_ element:
'cmdname' => 'itemize'
'extra' => {'command_as_argument' => $command_element_as_argument}
def_line
This type may be associated with a definition command with a x
form, like ‘@defunx’, ‘@defvrx’. For the form without x, the
associated _def_line_ is the first ‘contents’ element. It is
described in more details below.
definfoenclose_command
This type is set for an @-command that is redefined by
‘@definfoenclose’. The beginning is in ‘{'extra'}->{'begin'}’ and
the end in ‘{'extra'}->{'end'}’.
index_entry_command
This is the type of index entry command like ‘@cindex’, and, more
importantly user-defined index entry commands. So for example if
there is:
@defindex foo
...
@fooindex index entry
the ‘@fooindex’ @-command element will have the
_index_entry_command_ type.
File: texi2any_internals.info, Node: Texinfo::Parser Types for text elements, Next: Texinfo::Parser Tree container elements, Prev: Texinfo::Parser Types for command elements, Up: Texinfo::Parser Element types
3.6.2.2 Types for text elements
...............................
The text elements may have the following types (or may have no type at
all):
after_menu_description_line
space_at_end_menu_node
Space after a node in the menu entry, when there is no description,
and space appearing after the description line.
empty_line
An empty line (possibly containing whitespace characters only).
ignorable_spaces_after_command
spaces appearing after an @-command without braces that does not
take takes argument on the line, but which is followed by ignorable
spaces, such as ‘@item’ in ‘@itemize’ or ‘@multitable’, or
‘@noindent’.
spaces_after_close_brace
Spaces appearing after a closing brace, for some rare commands for
which this space should be ignorable (like ‘@caption’ or
‘@sortas’).
spaces_before_paragraph
Space appearing before a paragraph beginning.
raw
Text in an environment where it should be kept as is (in
‘@verbatim’, ‘@verb’, ‘@macro’ body).
rawline_arg
Used for the arguments to some special line commands whose
arguments aren't subject to the usual macro expansion. For example
‘@set’, ‘@clickstyle’, ‘@unmacro’, ‘@comment’. The argument is
associated to the _text_ key.
spaces_at_end
Space within an index @-command before an @-command interrupting
the index command.
text_after_end
Text appearing after @bye.
text_before_beginning
Text appearing before real content, including the ‘\input
texinfo.tex’.
untranslated
English text added by the parser that may need to be translated
during conversion. Happens for ‘@def*’ @-commands aliases that
leads to prepending text such as 'Function'.
File: texi2any_internals.info, Node: Texinfo::Parser Tree container elements, Next: Texinfo::Parser Types of container elements, Prev: Texinfo::Parser Types for text elements, Up: Texinfo::Parser Element types
3.6.2.3 Tree container elements
...............................
Some types of element are containers of portions of the tree, either for
the whole tree, or for contents appearing before ‘@node’ and sectioning
commands.
before_node_section
Content before nodes and sectioning commands at the beginning of
‘document_root’.
document_root
root_line
‘root_line’ is the type of the root tree when parsing Texinfo line
fragments using ‘parse_texi_line’. ‘document_root’ is the document
root otherwise.
‘document_root’ first content should be ‘before_node_section’, then
nodes and sections @-commands elements, ‘@bye’ element and
‘postamble_after_end’.
postamble_after_end
This container holds everything appearing after @bye.
preamble_before_beginning
This container holds everything appearing before the first content,
including the ‘\input texinfo.tex’ line and following blank lines.
preamble_before_setfilename
This container holds everything that appears before ‘@setfilename’.
preamble_before_content
This container holds everything appearing before the first
formatted content, corresponding to the _preamble_ in the Texinfo
documentation.
File: texi2any_internals.info, Node: Texinfo::Parser Types of container elements, Prev: Texinfo::Parser Tree container elements, Up: Texinfo::Parser Element types
3.6.2.4 Types of container elements
...................................
The other types of element are containers with other elements appearing
in their ‘contents’. The ‘paragraph’ container holds normal text from
the Texinfo manual outside of any @-commands, and within @-commands with
blocks of text (‘@footnote’, ‘@itemize’ ‘@item’, ‘@quotation’ for
example). The ‘preformatted’ container holds the content appearing in
@-commands like ‘@example’ and the ‘rawpreformatted’ container holds the
content appearing in format commands such as ‘@html’. The other
containers are more specific.
The types of container element are the following:
balanced_braces
Special type containing balanced braces content (braces included)
in the context where they are valid, and where balanced braces need
to be collected to know when a top-level brace command is closed.
In ‘@math’, in raw output format brace commands and within brace
@-commands in raw output format block commands.
before_item
A container for content before the first ‘@item’ of block
@-commands with items (‘@table’, ‘@multitable’, ‘@enumerate’...).
brace_command_arg
brace_command_context
line_arg
block_line_arg
following_arg
Those containers occur within the ‘args’ array of @-commands taking
an argument. _brace_command_arg_ is used for the arguments to
commands taking arguments surrounded by braces (and in some cases
separated by commas). _brace_command_context_ is used for
@-commands with braces that start a new context (‘@footnote’,
‘@caption’, ‘@math’).
_line_arg_ is used for commands that take the texinfo code on the
rest of the line as their argument, such as ‘@settitle’, ‘@node’,
‘@section’. _block_line_arg_ is similar but is used for commands
that start a new block (which is to be ended with ‘@end’).
_following_arg_ is used for the accent @-commands argument that did
not use braces but instead followed the @-command, possibly after a
space, as
@~n
@ringaccent A
For example
@code{in code}
leads to
{'cmdname' => 'code',
'args' => [{'type' => 'brace_command_arg',
'contents' => [{'text' => 'in code'}]}]}
As an exception, ‘@value’ flag argument is directly in the _args_
array reference, not in a _brace_command_arg_ container. Note that
only ‘@value’ commands that are not expanded because there is no
corresponding value set are present as elements in the tree.
bracketed_arg
Bracketed argument. On definition command and on ‘@multitable’
line.
bracketed_linemacro_arg
Argument of a user defined linemacro call in bracket. It holds
directly the argument text (which does not contain the braces) and
does not contain other elements. It should not appear directly in
the tree as the user defined linemacro call is replaced by the
linemacro body.
def_aggregate
Contains several elements that together are a single unit on a
@def* line.
def_line
def_item
inter_def_item
The _def_line_ type is either associated with a container within a
definition command, or is the type of a definition command with a x
form, like ‘@deffnx’, or ‘@defline’. It holds the definition line
arguments. The container with type _def_item_ holds the definition
text content. Content appearing before a definition command with a
x form is in an _inter_def_item_ container.
macro_call
rmacro_call
linemacro_call
Container holding the arguments of a user defined macro, linemacro
or rmacro. It should not appear directly in the tree as the user
defined call is expanded. The name of the macro, rmacro or
linemacro is the the info _command_name_ value.
macro_name
macro_arg
Taken from ‘@macro’ definition and put in the ‘args’ key array of
the macro, _macro_name_ is the type of the text fragment
corresponding to the macro name, _macro_arg_ is the type of the
text fragments corresponding to macro formal arguments.
menu_comment
The _menu_comment_ container holds what is between menu entries in
menus. For example, in:
@menu
Menu title
* entry::
Between entries
* other::
@end menu
Both
Menu title
and
Between entries
will be in a _menu_comment_.
menu_entry
menu_entry_leading_text
menu_entry_name
menu_entry_separator
menu_entry_node
menu_entry_description
A _menu_entry_ holds a full menu entry, like
* node:: description.
The different elements of the menu entry are in the _menu_entry_
‘contents’ array reference.
_menu_entry_leading_text_ holds the star and following spaces.
_menu_entry_name_ is the menu entry name (if present),
_menu_entry_node_ corresponds to the node in the menu entry,
_menu_entry_separator_ holds the text after the node and before the
description, in most cases ‘:: ’. Lastly, _menu_entry_description_
is for the description.
multitable_head
multitable_body
row
In ‘@multitable’, a _multitable_head_ container contains all the
rows with ‘@headitem’, while _multitable_body_ contains the rows
associated with ‘@item’. A _row_ container contains the ‘@item’
and ‘@tab’ forming a row.
paragraph
A paragraph. The ‘contents’ of a paragraph (like other container
elements for Texinfo content) are elements representing the
contents of the paragraph in the order they occur, such as text
elements without a ‘cmdname’ or ‘type’, or @-command elements for
commands appearing in the paragraph.
preformatted
Texinfo code within a format that is not filled. Happens within
some block commands like ‘@example’, but also in menu (in menu
descriptions, menu comments...).
rawpreformatted
Texinfo code within raw output format block commands such as ‘@tex’
or ‘@html’.
table_entry
table_term
table_definition
inter_item
Those containers appear in ‘@table’, ‘@ftable’ and ‘@vtable’. A
_table_entry_ container contains an entire row of the table. It
contains a _table_term_ container, which holds all the ‘@item’ and
‘@itemx’ lines. This is followed by a _table_definition_
container, which holds the content that is to go into the second
column of the table.
If there is any content before an ‘@itemx’ (normally only comments,
empty lines or maybe index entries are allowed), it will be in a
container with type _inter_item_ at the same level of ‘@item’ and
‘@itemx’, in a _table_term_.
File: texi2any_internals.info, Node: Texinfo::Parser Information available in the info key, Next: Texinfo::Parser Information available in the extra key, Prev: Texinfo::Parser Element types, Up: Texinfo::Parser TEXINFO TREE
3.6.3 Information available in the ‘info’ key
---------------------------------------------
arg_line
The string correspond to the line after the @-command for
@-commands that have special arguments on their line, and for
‘@macro’ line.
command_name
The name of the user defined macro, rmacro or linemacro called
associated with the element holding the arguments of the user
defined command call.
delimiter
‘@verb’ delimiter is in _delimiter_.
spaces_after_argument
A reference to an element containing the spaces after @-command
arguments before a comma, a closing brace or at end of line, for
some @-commands and bracketed content type with opening brace, and
line commands and block command lines taking Texinfo as argument
and comma delimited arguments. Depending on the @-command, the
_spaces_after_argument_ is associated with the @-command element,
or with each argument element.
spaces_after_cmd_before_arg
For accent commands with spaces following the @-command, like:
@ringaccent A
@^ u
there is a _spaces_after_cmd_before_arg_ key linking to an element
containing the spaces appearing after the command in _text_.
Space between a brace @-command name and its opening brace also
ends up in _spaces_after_cmd_before_arg_. It is not recommended to
leave space between an @-command name and its opening brace.
spaces_before_argument
A reference to an element containing the spaces following the
opening brace of some @-commands with braces and bracketed content
type, spaces following @-commands for line commands and block
command taking Texinfo as argument, and spaces following comma
delimited arguments. For context brace commands, line commands and
block commands, _spaces_before_argument_ is associated with the
@-command element, for other brace commands and for spaces after
comma, it is associated with each argument element.
File: texi2any_internals.info, Node: Texinfo::Parser Information available in the extra key, Prev: Texinfo::Parser Information available in the info key, Up: Texinfo::Parser TEXINFO TREE
3.6.4 Information available in the ‘extra’ key
----------------------------------------------
* Menu:
* Texinfo::Parser Extra keys available for more than one @-command::
* Texinfo::Parser Extra keys specific of certain @-commands or containers::
File: texi2any_internals.info, Node: Texinfo::Parser Extra keys available for more than one @-command, Next: Texinfo::Parser Extra keys specific of certain @-commands or containers, Up: Texinfo::Parser Information available in the extra key
3.6.4.1 Extra keys available for more than one @-command
........................................................
element_node
The node element in the parsed tree containing the element. Set
for @-commands elements that have an associated index entry and for
‘@nodedescription’.
element_region
The region command (‘@copying’, ‘@titlepage’) containing the
element, if it is in such an environement. Set for @-commands
elements that have an associated index entry and for @anchor.
index_entry
The index entry information is associated to @-commands that have
an associated index entry. The associated information should not
be directly accessed, instead *note
‘Texinfo::Common::lookup_index_entry’: Texinfo::Common
($index_entry, $index_info) = lookup_index_entry($index_entry_info,
$indices_information). should be called on the ‘extra’
_index_entry_ value. The _$indices_information_ is the information
on a Texinfo manual indices obtained from *note
‘Texinfo::Parser::indices_information’: Texinfo::Parser
$indices_information = $parser->indices_information(). The index
entry information hash returned by
‘Texinfo::Common::lookup_index_entry’ is described in *note
index_entries: Texinfo::Parser index_entries.
Currently, the _index_entry_ value is an array reference with an
index name as first element and the index entry number in that
index (1-based) as second element.
index_ignore_chars
A string containing the characters flagged as ignored in key
sorting in the document by setting flags such as
_txiindexbackslashignore_. Set, if not empty, for @-commands
elements that have an associated index entry.
misc_args
An array holding strings, the arguments of @-commands taking simple
textual arguments as arguments, like ‘@everyheadingmarks’,
‘@frenchspacing’, ‘@alias’, ‘@synindex’, ‘@columnfractions’.
missing_argument
Set for some @-commands with line arguments and a missing argument.
text_arg
The string correspond to the line after the @-command for
@-commands that have an argument interpreted as simple text, like
‘@setfilename’, ‘@end’ or ‘@documentencoding’.
File: texi2any_internals.info, Node: Texinfo::Parser Extra keys specific of certain @-commands or containers, Prev: Texinfo::Parser Extra keys available for more than one @-command, Up: Texinfo::Parser Information available in the extra key
3.6.4.2 Extra keys specific of certain @-commands or containers
...............................................................
‘@abbr’
‘@acronym’
The first argument normalized is in _normalized_.
‘@anchor’
‘@float’
@-commands that are targets for cross-references have a
_normalized_ key for the normalized label, built as specified in
the Texinfo documentation in the _HTML Xref_ node. There is also a
_node_content_ key for an array holding the corresponding content.
‘@author’
If in a ‘@titlepage’, the titlepage is in _titlepage_, if in
‘@quotation’ or ‘@smallquotation’, the corresponding tree element
is in _quotation_.
The author tree element is in the _authors_ array of the
‘@titlepage’ or the ‘@quotation’ or ‘@smallquotation’ it is
associated with.
‘@click’
In _clickstyle_ there is the current clickstyle command.
definition command
_def_command_ holds the command name, without x if it is an x form
of a definition command. _original_def_cmdname_ is the original
def command.
If it is an x form, it has _not_after_command_ set if not appearing
after the definition command without x.
‘def_line’
For each element in a ‘def_line’, the key _def_role_ holds a string
describing the meaning of the element. It is one of _category_,
_name_, _class_, _type_, _arg_, _typearg_, _spaces_ or _delimiter_,
depending on the definition.
The _def_index_element_ is a Texinfo tree element corresponding to
the index entry associated to the definition line, based on the
name and class. If needed this element is based on translated
strings. In that case, if ‘@documentlanguage’ is defined where the
‘def_line’ is located, _documentlanguage_ holds the
documentlanguage value. _def_index_ref_element_ is similar, but
not translated, and only set if there could have been a
translation.
The _omit_def_name_space_ key value is set and true if the Texinfo
variable ‘txidefnamenospace’ was set for the ‘def_line’, signaling
that the space between function definition name and arguments
should be omitted.
‘@definfoenclose’ defined commands
_begin_ holds the string beginning the ‘@definfoenclose’, _end_
holds the string ending the ‘@definfoenclose’.
‘@documentencoding’
The argument, normalized is in _input_encoding_name_.
‘@enumerate’
The _enumerate_specification_ ‘extra’ key contains the enumerate
argument.
‘@float’
‘@listoffloats’
If ‘@float’ has a first argument, and for ‘@listoffloats’ argument
there is a _float_type_ key with the normalized float type.
_caption_ and _shortcaption_ hold the corresponding tree elements
associated to a ‘@float’. The ‘@caption’ or ‘@shortcaption’ have
the float tree element stored in _float_.
index entry @-command
‘@subentry’
If an index entry @-command, such as ‘@cindex’, or a ‘@subentry’
contains a ‘@sortas’ command, _sortas_ holds the ‘@sortas’ command
content formatted as plain text.
_subentry_ links to the next level ‘@subentry’ element.
Index entry @-command (but not ‘@subentry’) can also have _seentry_
and _seealso_ keys that link to the corresponding @-commands
elements.
‘@inlinefmt’
‘@inlineraw’
‘@inlinefmtifelse’
‘@inlineifclear’
‘@inlineifset’
The first argument is in _format_. If an argument has been
determined as being expanded by the Parser, the index of this
argument is in _expand_index_. Index numbering begins at 0, but
the first argument is always the format or flag name, so, if set,
it should be 1 or 2 for ‘@inlinefmtifelse’, and 1 for other
commands.
‘@item’ in ‘@enumerate’ or ‘@itemize’
The _item_number_ ‘extra’ key holds the number of this item.
‘@item’ and ‘@tab’ in ‘@multitable’
The _cell_number_ index key holds the index of the column of the
cell.
‘@itemize’
‘@table’
‘@vtable’
‘@ftable’
The _command_as_argument_ ‘extra’ key points to the @-command on as
argument on the @-command line.
If the command in argument for ‘@table’, ‘@vtable’ or ‘@ftable’ is
‘@kbd’ and the context and ‘@kbdinputstyle’ is such that ‘@kbd’
should be formatted as code, the _command_as_argument_kbd_code_
‘extra’ key is set to 1.
‘@kbd’
_code_ is set depending on the context and ‘@kbdinputstyle’.
‘@macro’
_invalid_syntax_ is set if there was an error on the ‘@macro’ line.
‘info’ key hash _arg_line_ holds the line after ‘@macro’.
‘menu_entry_node’
Extra keys with information about the node entry label same as
those appearing in the ‘@node’ _line_arg_ explicit directions
arguments ‘extra’ hash labels information.
‘@multitable’
The key _max_columns_ holds the maximal number of columns. If
there is a ‘@columnfractions’ as argument, then the
_columnfractions_ key is associated with the element for the
@columnfractions command.
‘@node’
Explicit directions labels information is in the _line_arg_
arguments ‘extra’ node direction ‘@node’ arguments. They consist
in a hash with the _node_content_ key for an array holding the
corresponding content, a _manual_content_ key if there is an
associated external manual name, and a _normalized_ key for the
normalized label, built as specified in the _HTML Xref_ Texinfo
documentation node.
An _associated_section_ key holds the tree element of the
sectioning command that follows the node. An _node_preceding_part_
key holds the tree element of the ‘@part’ that precedes the node,
if there is no sectioning command between the ‘@part’ and the node.
A _node_description_ key holds the first ‘@nodedescription’
associated to the node.
A node containing a menu have a _menus_ key which refers to an
array of references to menu elements occuring in the node.
The first node containing a ‘@printindex’ @-command has the
_isindex_ key set.
‘paragraph’
The _indent_ or _noindent_ key value is set if the corresponding
@-commands are associated with that paragraph.
‘@part’
The next sectioning command tree element is in
_part_associated_section_. The following node tree element is in
_part_following_node_ if there is no sectioning command between the
‘@part’ and the node.
‘@ref’
‘@xref’
‘@pxref’
‘@inforef’
The node argument _brace_command_arg_ holds information on the
label, like the one appearing in the ‘@node’ _line_arg_ explicit
directions arguments ‘extra’ hash labels information.
‘row’
The _row_number_ index key holds the index of the row in the
‘@multitable’.
sectioning command
The node preceding the command is in _associated_node_. The part
preceding the command is in _associated_part_. If the level of the
document was modified by ‘@raisections’ or ‘@lowersections’, the
differential level is in _sections_level_.
‘untranslated’
_documentlanguage_ holds the ‘@documentlanguage’ value. If there
is a translation context, it should be in _translation_context_.
File: texi2any_internals.info, Node: Texinfo::Parser SEE ALSO, Next: Texinfo::Parser AUTHOR, Prev: Texinfo::Parser TEXINFO TREE, Up: Texinfo::Parser
3.7 Texinfo::Parser SEE ALSO
============================
Texinfo manual (http://www.gnu.org/software/texinfo/manual/texinfo/).
File: texi2any_internals.info, Node: Texinfo::Parser AUTHOR, Next: Texinfo::Parser COPYRIGHT AND LICENSE, Prev: Texinfo::Parser SEE ALSO, Up: Texinfo::Parser
3.8 Texinfo::Parser AUTHOR
==========================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Parser COPYRIGHT AND LICENSE, Prev: Texinfo::Parser AUTHOR, Up: Texinfo::Parser
3.9 Texinfo::Parser COPYRIGHT AND LICENSE
=========================================
Copyright 2010- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Texinfo::Structuring, Next: Texinfo::Report, Prev: Texinfo::Parser, Up: Top
4 Texinfo::Structuring
**********************
* Menu:
* Texinfo::Structuring NAME::
* Texinfo::Structuring SYNOPSIS::
* Texinfo::Structuring NOTES::
* Texinfo::Structuring DESCRIPTION::
* Texinfo::Structuring METHODS::
* Texinfo::Structuring SEE ALSO::
* Texinfo::Structuring AUTHOR::
* Texinfo::Structuring COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Structuring NAME, Next: Texinfo::Structuring SYNOPSIS, Up: Texinfo::Structuring
4.1 Texinfo::Structuring NAME
=============================
Texinfo::Structuring - information on Texinfo::Parser tree
File: texi2any_internals.info, Node: Texinfo::Structuring SYNOPSIS, Next: Texinfo::Structuring NOTES, Prev: Texinfo::Structuring NAME, Up: Texinfo::Structuring
4.2 Texinfo::Structuring SYNOPSIS
=================================
use Texinfo::Structuring qw(sectioning_structure nodes_tree number_floats
associate_internal_references split_by_node split_by_section split_pages
merge_indices sort_indices elements_directions elements_file_directions);
# $tree is a Texinfo document tree. $parser is a Texinfo::Parser object.
# $config is an object implementing the get_conf() method.
my $registrar = $parser->registered_errors();
my $sections_root = sectioning_structure ($registrar, $config, $tree);
my ($labels, $targets_list, $nodes_list) = $parser->labels_information();
my $parser_information = $parser->global_information();
my $global_commands = $parser->global_commands_information();
set_menus_node_directions($registrar, $config, $parser_information,
$global_commands, $nodes_list, $labels);
my $top_node = nodes_tree($registrar, $config, $parser_information,
$nodes_list, $labels);
complete_node_tree_with_menus($registrar, $config, $nodes_list, $top_node);
my $refs = $parser->internal_references_information();
check_nodes_are_referenced($registrar, $config, $nodes_list, $top_node,
$labels, $refs);
associate_internal_references($registrar, $parser, $parser_information,
$labels, $refs);
number_floats($parser->floats_information());
my $tree_units;
if ($split_at_nodes) {
$tree_units = split_by_node($tree);
} else {
$tree_units = split_by_section($tree);
}
split_pages($tree_units, $split);
elements_directions($config, $labels, $tree_units);
elements_file_directions($tree_units);
my $indices_information = $parser->indices_information();
my $merged_index_entries
= merge_indices($indices_information);
my $index_entries_sorted;
if ($sort_by_letter) {
$index_entries_sorted = sort_indices($registrar, $config,
$merged_index_entries, $indices_information,
'by_letter');
} else {
$index_entries_sorted = sort_indices($registrar, $config,
$merged_index_entries,
$indices_information);
}
File: texi2any_internals.info, Node: Texinfo::Structuring NOTES, Next: Texinfo::Structuring DESCRIPTION, Prev: Texinfo::Structuring SYNOPSIS, Up: Texinfo::Structuring
4.3 Texinfo::Structuring NOTES
==============================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Structuring DESCRIPTION, Next: Texinfo::Structuring METHODS, Prev: Texinfo::Structuring NOTES, Up: Texinfo::Structuring
4.4 Texinfo::Structuring DESCRIPTION
====================================
Texinfo::Structuring first allows to collect information on a Texinfo
tree. In most case, it also requires information from a parser object
to do that job. Thanks to ‘sectioning_structure’ the hierarchy of
sectioning commands is determined. The directions implied by menus are
determined with ‘set_menus_node_directions’. The node tree is analysed
with ‘nodes_tree’. Nodes directions are completed with menu directions
with ‘complete_node_tree_with_menus’. Floats get their standard
numbering with ‘number_floats’ and internal references are matched up
with nodes, floats or anchors with ‘associate_internal_references’.
The following methods depend on the output format, so are usually
called from converters.
It is also possible to associate top-level contents of the tree,
which consist in nodes and sectioning commands with tree unit elements
that group together a node and the next sectioning element. With
‘split_by_node’ nodes are considered to be the main sectioning elements,
while with ‘split_by_section’ the sectioning command elements are the
main elements. The first mode is typical of Info format, while the
second corresponds to a traditional book. The elements may be further
split in _pages_, which are not pages as in book pages, but more like
web pages, and hold series of tree unit elements.
The elements may have directions to other elements prepared by
‘elements_directions’. ‘elements_file_directions’ should also set
direction related to files, provided files are associated with elements
by the user.
‘merge_indices’ may be used to merge indices, which may be sorted
with ‘sort_indices’.
File: texi2any_internals.info, Node: Texinfo::Structuring METHODS, Next: Texinfo::Structuring SEE ALSO, Prev: Texinfo::Structuring DESCRIPTION, Up: Texinfo::Structuring
4.5 Texinfo::Structuring METHODS
================================
No method is exported in the default case.
Most methods takes a *note Texinfo::Report: Texinfo::Report NAME.
‘$registrar’ as argument for error reporting. Most also require Texinfo
customization variables information, which means an object implementing
the ‘get_conf’ method, in practice the main program configuration or a
converter (*note Texinfo::Convert::Converter Getting and setting
customization variables::). Other common input arguments such as parser
information, labels or refs are obtained from a parser, see *note
Texinfo::Parser: Texinfo::Parser NAME.
associate_internal_references($registrar, $customization_information, $parser_information, $labels, $refs)
Verify that internal references (‘@ref’ and similar without fourth
of fifth argument and menu entries) have an associated node, anchor
or float. Set the ‘normalized’ key in the ‘extra’ hash
‘menu_entry_node’ hash for menu entries and in the first argument
‘extra’ hash for internal references ‘@ref’ and similar @-commands.
Register errors in _$registrar_.
check_nodes_are_referenced($registrar, $customization_information, $nodes_list, $top_node, $labels, $refs)
Check that all the nodes are referenced (in menu, @*ref or node
direction). Register errors in _$registrar_.
Should be called after ‘complete_node_tree_with_menus’ in order to
have the autogenerated menus available.
complete_node_tree_with_menus($registrar, $customization_information, $nodes_list, $top_node)
Complete nodes directions with menu directions. Check consistency
of menus, sectionning and nodes direction structures. Register
errors in _$registrar_.
elements_directions($customization_information, $labels, $tree_units)
Directions are set up for the tree unit elements in the array
reference _$tree_units_ given in argument. The corresponding hash
is in ‘{'structure'}->{'directions'}’ and keys correspond to
directions while values are elements.
The following directions are set up:
This
The element itself.
Forward
Element next.
Back
Previous element.
NodeForward
Following node element in reading order. It is the next node,
or the first in menu or the next of the up node.
NodeBack
Preceding node element.
NodeUp
NodeNext
NodePrev
The up, next and previous node elements.
Up
Next
Prev
The up, next and previous section elements.
FastBack
For top level elements, the previous top level element. For
other elements the up top level element. For example, for a
chapter element it is the previous chapter, for a subsection
element it is the chapter element that contains the
subsection.
FastForward
The next top level section element.
elements_file_directions($tree_units)
In the directions reference described above for
‘elements_directions’, sets the _PrevFile_ and _NextFile_
directions to the elements in previous and following files.
It also sets _FirstInFile*_ directions for all the elements by
using the directions of the first element in file. So, for
example, _FirstInFileNodeNext_ is the next node of the first
element in the file of each element.
The API for association of pages/elements to files is not defined
yet.
@nodes_list = get_node_node_childs_from_sectioning($node)
_$node_ is a node tree element. Find the node _$node_ children
based on the sectioning structure. For the node associated with
‘@top’ sectioning command, the sections associated with parts are
considered.
$entry_key = index_entry_sort_string($main_entry, $entry_tree_element, $sortas, $options)
Return a string suitable as a sort string, for index entries. The
index entry processed is _$entry_tree_element_, and can be a
‘@subentry’. _$main_entry_ is the main index entry tree element
that can be used to gather information. _$sortas_ can be given to
override the sort string (typically obtained from ‘@sortas’). The
_$options_ are options used for Texinfo to text conversion for the
generation of the sort string, typically obtained from *note
setup_index_entry_keys_formatting: Texinfo::Structuring $option =
setup_index_entry_keys_formatting($customization_information).
$merged_entries = merge_indices($indices_information)
Using information returned by *note
‘Texinfo::Parser::indices_information’: Texinfo::Parser
$indices_information = $parser->indices_information(), a structure
holding all the index entries by index name is returned, with all
the entries of merged indices merged with those of the indice
merged into.
The _$merged_entries_ returned is a hash reference whose keys are
the index names and values arrays of index entry structures
described in details in *note Texinfo::Parser index_entries::.
$new_block = new_block_command($content, $parent, $command_name)
Returns the texinfo tree corresponding to a block command named
_$command_name_ with contents _$content_ and parent in tree
_$parent_.
$new_menu = new_complete_node_menu($node, $use_sections)
Returns a texinfo tree menu for node _$node_, pointing to the
children of the node obtained with the sectioning structure. If
_$use_sections_ is set, use section names for the menu entry names.
$detailmenu = new_master_menu($translations, $labels, $menus)
Returns a detailmenu tree element formatted as a master node.
_$translations_, if defined, should be a *note
Texinfo::Translations: Texinfo::Translations NAME. object and
should also hold customization information. _$menus_ is an array
reference containing the regular menus of the Top node.
$entry = new_node_menu_entry($node, $use_sections)
Returns the texinfo tree corresponding to a single menu entry
pointing to _$node_. If _$use_sections_ is set, use the section
name for the menu entry name. Returns ‘undef’ if the node argument
is missing.
$top_node = nodes_tree($registrar, $customization_information, $parser_information, $nodes_list, $labels)
Goes through nodes and set directions. Returns the top node.
Register errors in _$registrar_.
This functions sets, in the ‘structure’ node element hash:
node_up
node_prev
node_next
Up, next and previous directions for the node.
number_floats($float_information)
Number the floats as described in the Texinfo manual. Sets the
_number_ key in the ‘structure’ hash of the float tree elements.
$command_name = section_level_adjusted_command_name($element)
Return the sectioning command name corresponding to the sectioning
element _$element_, adjusted in order to take into account raised
and lowered sections, when needed.
$sections_root, $sections_list = sectioning_structure($registrar, $customization_information, $tree)
This function goes through the tree and gather information on the
document structure for sectioning commands. It returns
_$sections_root_ the root of the sectioning commands tree and a
reference on the sections elements list. Errors are registered in
_$registrar_.
It sets section elements ‘structure’ hash values:
section_level
The level in the sectioning tree hierarchy. 0 is for ‘@top’
or ‘@part’, 1 for ‘@chapter’, ‘@appendix’... This level is
corrected by ‘@raisesections’ and ‘@lowersections’.
section_number
The sectioning element number.
section_childs
An array holding sectioning elements children of the element.
section_up
section_prev
section_next
The up, previous and next sectioning elements.
toplevel_next
toplevel_prev
toplevel_up
The next and previous and up sectioning elements of toplevel
sectioning elements (like ‘@top’, ‘@chapter’, ‘@appendix’),
not taking into account ‘@part’ elements.
set_menus_node_directions($registrar, $customization_information, $parser_information, $global_commands, $nodes_list, $labels);
Goes through menu and set directions. Register errors in
_$registrar_.
This functions sets, in the ‘structure’ node element hash
reference:
menu_child
The first child in the menu of the node.
menu_up
menu_next
menu_prev
Up, next and previous directions as set in menus.
$option = setup_index_entry_keys_formatting($customization_information)
Return options for conversion of Texinfo to text relevant for index
keys sorting.
($index_entries_sorted, $index_entries_sort_strings) = sort_indices($registrar, $customization_information, $merged_index_entries, $indices_information, $sort_by_letter)
If _$sort_by_letter_ is set, sort by letter, otherwise sort all
entries together. In both cases, a hash reference with index names
as keys _$index_entries_sorted_ is returned.
When sorting by letter, an array reference of letter hash
references is associated with each index name. Each letter hash
reference has two keys, a _letter_ key with the letter, and an
_entries_ key with an array reference of sorted index entries
beginning with the letter.
When simply sorting, the array of the sorted index entries is
associated with the index name.
_$index_entries_sort_strings_ is a hash reference associating the
index entries with the strings that were used to sort them.
Register errors in _$registrar_.
$tree_units = split_by_node($tree)
Returns a reference array of tree units where a node is associated
to the following sectioning commands. Sectioning commands without
nodes are also with the previous node, while nodes without
sectioning commands are alone in their tree units.
Tree units are regular tree elements with type _unit_, the
associated nodes and sectioning tree elements are in the array
associated with the ‘contents’ key. The associated elements have a
_associated_unit_ key set in the ‘structure’ hash that points to
the associated tree unit.
Tree units have directions in the ‘structure’ hash reference,
namely _unit_next_ and _unit_prev_ pointing to the previous and the
next tree unit.
In the ‘extra’ hash reference, tree units have:
unit_command
The node command associated with the element.
$tree_units = split_by_section($tree)
Similarly with ‘split_by_node’, returns an array of tree units.
This time, lone nodes are associated with the previous sections and
lone sections makes up a tree unit.
The ‘structure’ and ‘extra’ hash keys set are the same, except that
_unit_command_ is the sectioning command associated with the
element.
$pages = split_pages($tree_units, $split)
The tree units from the array reference argument have an extra
_first_in_page_ value set in the ‘structure’ hash reference to the
first tree unit in the group, and based on the value of _$split_.
The possible values for _$split_ are
chapter
The tree units are split at chapter or other toplevel
sectioning tree units.
node
Each element has its own page.
section
The tree units are split at sectioning commands below chapter.
value evaluating to false
No splitting, only one page is returned, holding all the tree
units.
warn_non_empty_parts($registrar, $customization_information, $global_commands)
Register a warning in _$registrar_ for each ‘@part’ that is not
empty in _$global_commands_ information (typically obtained by
calling ‘global_commands_information()’ on a parser).
File: texi2any_internals.info, Node: Texinfo::Structuring SEE ALSO, Next: Texinfo::Structuring AUTHOR, Prev: Texinfo::Structuring METHODS, Up: Texinfo::Structuring
4.6 Texinfo::Structuring SEE ALSO
=================================
Texinfo manual (http://www.gnu.org/s/texinfo/manual/texinfo/), *note
Texinfo::Parser: Texinfo::Parser NAME.
File: texi2any_internals.info, Node: Texinfo::Structuring AUTHOR, Next: Texinfo::Structuring COPYRIGHT AND LICENSE, Prev: Texinfo::Structuring SEE ALSO, Up: Texinfo::Structuring
4.7 Texinfo::Structuring AUTHOR
===============================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Structuring COPYRIGHT AND LICENSE, Prev: Texinfo::Structuring AUTHOR, Up: Texinfo::Structuring
4.8 Texinfo::Structuring COPYRIGHT AND LICENSE
==============================================
Copyright 2010- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Texinfo::Report, Next: Texinfo::Translations, Prev: Texinfo::Structuring, Up: Top
5 Texinfo::Report
*****************
* Menu:
* Texinfo::Report NAME::
* Texinfo::Report SYNOPSIS::
* Texinfo::Report NOTES::
* Texinfo::Report DESCRIPTION::
* Texinfo::Report METHODS::
* Texinfo::Report AUTHOR::
* Texinfo::Report COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Report NAME, Next: Texinfo::Report SYNOPSIS, Up: Texinfo::Report
5.1 Texinfo::Report NAME
========================
Texinfo::Report - Error storing for Texinfo modules
File: texi2any_internals.info, Node: Texinfo::Report SYNOPSIS, Next: Texinfo::Report NOTES, Prev: Texinfo::Report NAME, Up: Texinfo::Report
5.2 Texinfo::Report SYNOPSIS
============================
use Texinfo::Report;
my $registrar = Texinfo::Report::new();
if ($warning_happened) {
$registrar->line_warn($converter, sprintf(__("\@%s is wrongly used"),
$current->{'cmdname'}), $current->{'source_info'});
}
my ($errors, $errors_count) = $registrar->errors();
foreach my $error_message (@$errors) {
warn $error_message->{'error_line'};
}
File: texi2any_internals.info, Node: Texinfo::Report NOTES, Next: Texinfo::Report DESCRIPTION, Prev: Texinfo::Report SYNOPSIS, Up: Texinfo::Report
5.3 Texinfo::Report NOTES
=========================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Report DESCRIPTION, Next: Texinfo::Report METHODS, Prev: Texinfo::Report NOTES, Up: Texinfo::Report
5.4 Texinfo::Report DESCRIPTION
===============================
The ‘Texinfo::Report’ module helps with error handling. It is used by
the Texinfo modules *note Texinfo::Parser: Texinfo::Parser NAME. and
*note Texinfo::Convert::Converter: Texinfo::Convert::Converter NAME. To
use this module, either create a new ‘Texinfo::Report’ object or
initialize another object such as to be able to call ‘Texinfo::Report’
methods. In any case, ‘Texinfo::Report::new()’ is called to setup the
module.
Besides the ‘new’ method, ‘errors’ is used for reporting errors, and
the other methods to store errors (and warnings).
File: texi2any_internals.info, Node: Texinfo::Report METHODS, Next: Texinfo::Report AUTHOR, Prev: Texinfo::Report DESCRIPTION, Up: Texinfo::Report
5.5 Texinfo::Report METHODS
===========================
No method is exported in the default case.
The ‘new’ method initializes ‘Texinfo::Report’ related fields. The
errors collected are available through the ‘errors’ method, the other
methods allow registering errors and warnings.
my $registrar = Texinfo::Report::new()
$converter->Texinfo::Report::new()
If called without argument, a ‘Texinfo::Report’ object is
initialized and returned. This is how the module is used in the
Texinfo Parsers, as a separate object.
If called on a ‘$converter’, the ‘$converter’ is initialized itself
such as to be able to call ‘Texinfo::Report’ methods. It is how it
is used in the Converters.
($error_warnings_list, $error_count) = errors($registrar)
This function returns as _$error_count_ the count of errors since
calling ‘new’. The _$error_warnings_list_ is an array of hash
references one for each error, warning or error line continuation.
Each of these has the following keys:
type
May be ‘warning’, or ‘error’.
text
The text of the error.
error_line
The text of the error formatted with the file name, line
number and macro name, as needed.
line_nr
The line number of the error or warning.
file_name
The file name where the error or warning occurs.
macro
The user macro name that is expanded at the location of the
error or warning.
$registrar->line_warn($text, $configuration_information, $error_location_info, $continuation, $silent)
$registrar->line_error($text, $configuration_information, $error_location_info, $continuation, $silent)
Register a warning or an error. The _$text_ is the text of the
error or warning. The _$configuration_information_ object gives
some information that can modify the messages or their delivery.
The optional _$error_location_info_ holds the information on the
error or warning location. The _$error_location_info_ reference on
hash may be obtained from Texinfo elements _source_info_ keys. It
may also be setup to point to a file name, using the ‘file_name’
key and to a line number, using the ‘line_nr’ key. The ‘file_name’
key value should be a binary string.
The _$continuation_ optional arguments, if true, conveys that the
line is a continuation line of a message.
The _$silent_ optional arguments, if true, suppresses the output of
a message that is output immediatly if debugging is set.
The _source_info_ key of Texinfo tree elements is described in more
details in *note Texinfo::Parser source_info::.
$registrar->document_warn($configuration_information, $text, $continuation)
$registrar->document_error($configuration_information, $text, $continuation)
Register a document-wide error or warning. _$text_ is the error or
warning message. The _$configuration_information_ object gives
some information that can modify the messages or their delivery.
The _$continuation_ optional arguments, if true, conveys that the
line is a continuation line of a message.
File: texi2any_internals.info, Node: Texinfo::Report AUTHOR, Next: Texinfo::Report COPYRIGHT AND LICENSE, Prev: Texinfo::Report METHODS, Up: Texinfo::Report
5.6 Texinfo::Report AUTHOR
==========================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Report COPYRIGHT AND LICENSE, Prev: Texinfo::Report AUTHOR, Up: Texinfo::Report
5.7 Texinfo::Report COPYRIGHT AND LICENSE
=========================================
Copyright 2010- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Texinfo::Translations, Next: Texinfo::Transformations, Prev: Texinfo::Report, Up: Top
6 Texinfo::Translations
***********************
* Menu:
* Texinfo::Translations NAME::
* Texinfo::Translations SYNOPSIS::
* Texinfo::Translations NOTES::
* Texinfo::Translations DESCRIPTION::
* Texinfo::Translations METHODS::
* Texinfo::Translations AUTHOR::
* Texinfo::Translations COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Translations NAME, Next: Texinfo::Translations SYNOPSIS, Up: Texinfo::Translations
6.1 Texinfo::Translations NAME
==============================
Texinfo::Translations - Translations of output documents strings for
Texinfo modules
File: texi2any_internals.info, Node: Texinfo::Translations SYNOPSIS, Next: Texinfo::Translations NOTES, Prev: Texinfo::Translations NAME, Up: Texinfo::Translations
6.2 Texinfo::Translations SYNOPSIS
==================================
@ISA = qw(Texinfo::Translations);
my $tree_translated = $converter->gdt('See {reference} in @cite{{book}}',
{'reference' => $tree_reference,
'book' => {'text' => $book_name}});
File: texi2any_internals.info, Node: Texinfo::Translations NOTES, Next: Texinfo::Translations DESCRIPTION, Prev: Texinfo::Translations SYNOPSIS, Up: Texinfo::Translations
6.3 Texinfo::Translations NOTES
===============================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Translations DESCRIPTION, Next: Texinfo::Translations METHODS, Prev: Texinfo::Translations NOTES, Up: Texinfo::Translations
6.4 Texinfo::Translations DESCRIPTION
=====================================
The ‘Texinfo::Translations’ module helps with translations in output
documents.
Translation of error messages uses another interface, which is the
classical gettext based perl interface. It is not described as it is
described in details elsewhere, some elements are in *note
Texinfo::Common ‘__’ and ‘__p’: Texinfo::Common $translated_string =
__($msgid).
File: texi2any_internals.info, Node: Texinfo::Translations METHODS, Next: Texinfo::Translations AUTHOR, Prev: Texinfo::Translations DESCRIPTION, Up: Texinfo::Translations
6.5 Texinfo::Translations METHODS
=================================
No method is exported.
The ‘gdt’ and ‘pgdt’ methods are used to translate strings to be
output in converted documents, and returns, in general, a Texinfo tree.
The ‘replace_convert_substrings’ method is called by ‘gdt’ to
substitute replaced substrings in a translated string and convert to a
Texinfo tree. It may be especially useful when overriding or
reimplementing ‘gdt’.
$tree = $object->gdt($string, $replaced_substrings, $translation_context, $mode, $lang)
The _$string_ is a string to be translated. In the default case,
the function returns a Texinfo tree, as the string is interpreted
as Texinfo code after translation. _$replaced_substrings_ is an
optional hash reference specifying some substitution to be done
after the translation. The key of the _$replaced_substrings_ hash
reference identifies what is to be substituted, and the value is
some string, texinfo tree or array content that is substituted in
the resulting texinfo tree. In the string to be translated word in
brace matching keys of _$replaced_substrings_ are replaced.
The _$object_ is typically a converter, but can be any object that
implements ‘get_conf’, or undefined (‘undef’). If not undefined,
the information in the _$object_ is used to determine the encoding,
the documentlanguage and get some customization information.
The _$translation_context_ is optional. If not ‘undef’ this is a
translation context string for _$string_. It is the first argument
of ‘pgettext’ in the C API of Gettext. _$lang_ is optional. If
set, it overrides the documentlanguage.
For example, in the following call, the string ‘See {reference} in
@cite{{book}}’ is translated, then parsed as a Texinfo string, with
_{reference}_ substituted by _$tree_reference_ in the resulting
tree, and _{book}_ replaced by the associated texinfo tree text
element:
$tree = $converter->gdt('See {reference} in @cite{{book}}',
{'reference' => $tree_reference,
'book' => {'text' => $book_name}});
‘gdt’ uses a gettext-like infrastructure to retrieve the translated
strings, using the _texinfo_document_ domain.
_$mode_ is an optional string which may modify how the function
behaves. The possible values are:
translated_text
In that case the string is not considered to be Texinfo, a
plain string that is returned after translation and
substitution. The substitutions may only be strings in that
case.
$tree = $object->pgdt($translation_context, $string, $replaced_substrings, $mode, $lang)
Same to ‘gdt’ except that the _$translation_context_ is not
optional. Calls ‘gdt’. This function is useful to mark strings
with a translation context for translation. This function is
similar to pgettext in the Gettext C API.
$tree = $object->replace_convert_substrings($translated_string, $replaced_substrings, $mode)
_$translated_string_ is a string already translated.
_$replaced_substrings_ is an optional hash reference specifying
some substitution to be done. _$mode_ is an optional string which
may modify how the function behaves, and in particular whether the
translated string should be converted to a Texinfo tree. _$object_
is typically a converter, but can be any object that implements
‘get_conf’, or undefined (‘undef’). If not undefined, the
information in the _$object_ is used to get some customization
information.
The function performs the substitutions of substrings in the
translated string and converts to a Texinfo tree if needed. It is
called from ‘gdt’ after the retrieval of the translated string.
File: texi2any_internals.info, Node: Texinfo::Translations AUTHOR, Next: Texinfo::Translations COPYRIGHT AND LICENSE, Prev: Texinfo::Translations METHODS, Up: Texinfo::Translations
6.6 Texinfo::Translations AUTHOR
================================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Translations COPYRIGHT AND LICENSE, Prev: Texinfo::Translations AUTHOR, Up: Texinfo::Translations
6.7 Texinfo::Translations COPYRIGHT AND LICENSE
===============================================
Copyright 2010- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Texinfo::Transformations, Next: Texinfo::Convert::Texinfo, Prev: Texinfo::Translations, Up: Top
7 Texinfo::Transformations
**************************
* Menu:
* Texinfo::Transformations NAME::
* Texinfo::Transformations NOTES::
* Texinfo::Transformations DESCRIPTION::
* Texinfo::Transformations METHODS::
* Texinfo::Transformations SEE ALSO::
* Texinfo::Transformations AUTHOR::
* Texinfo::Transformations COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Transformations NAME, Next: Texinfo::Transformations NOTES, Up: Texinfo::Transformations
7.1 Texinfo::Transformations NAME
=================================
Texinfo::Transformations - transformations of Texinfo Perl tree
File: texi2any_internals.info, Node: Texinfo::Transformations NOTES, Next: Texinfo::Transformations DESCRIPTION, Prev: Texinfo::Transformations NAME, Up: Texinfo::Transformations
7.2 Texinfo::Transformations NOTES
==================================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Transformations DESCRIPTION, Next: Texinfo::Transformations METHODS, Prev: Texinfo::Transformations NOTES, Up: Texinfo::Transformations
7.3 Texinfo::Transformations DESCRIPTION
========================================
Includes miscellaneous methods ‘set_menus_to_simple_menu’ and
‘menu_to_simple_menu’ to change the menu texinfo tree, as well as
‘insert_nodes_for_sectioning_commands’ that adds nodes for sectioning
commands without nodes and ‘complete_tree_nodes_menus’ and
‘complete_tree_nodes_missing_menu’ that completes the node menus based
on the sectioning tree.
File: texi2any_internals.info, Node: Texinfo::Transformations METHODS, Next: Texinfo::Transformations SEE ALSO, Prev: Texinfo::Transformations DESCRIPTION, Up: Texinfo::Transformations
7.4 Texinfo::Transformations METHODS
====================================
No method is exported in the default case.
complete_tree_nodes_menus($tree, $add_section_names_in_entries)
Add menu entries or whole menus for nodes associated with sections,
based on the sectioning tree. If the optional
‘$add_section_names_in_entries’ argument is set, a menu entry name
is added using the section name. This function should be called
after *note sectioning_structure: Texinfo::Structuring
$sections_root, $sections_list = sectioning_structure($registrar,
$customization_information, $tree).
complete_tree_nodes_missing_menu($tree, $use_section_names_in_entries)
Add whole menus for nodes associated with sections and without
menu, based on the sectioning tree. If the optional
‘$add_section_names_in_entries’ argument is set, a menu entry name
is added using the section name. This function should be called
after *note sectioning_structure: Texinfo::Structuring
$sections_root, $sections_list = sectioning_structure($registrar,
$customization_information, $tree).
($root_content, $added_sections) = fill_gaps_in_sectioning($tree)
This function adds empty ‘@unnumbered’ and similar commands in a
tree to fill gaps in sectioning. This may be used, for example,
when converting from a format that can handle gaps in sectioning.
_$tree_ is the tree root. An array reference is returned,
containing the root contents with added sectioning commands, as
well as an array reference containing the added sectioning
commands.
If the sectioning commands are lowered or raised (with
‘@raisesections’, ‘@lowersection’) the tree may be modified with
‘@raisesections’ or ‘@lowersection’ added to some tree elements.
($root_content, $added_nodes) = insert_nodes_for_sectioning_commands($tree, $nodes_list, $targets_list, $labels)
Insert nodes for sectioning commands without node in ‘$tree’. Add
nodes to the labels used as targets for references ‘$labels’ and
‘$targets_list’ and to ‘$nodes_list’.
An array reference is returned, containing the root contents with
added nodes, as well as an array reference containing the added
nodes.
menu_to_simple_menu($menu)
set_menus_to_simple_menu($nodes_list)
‘menu_to_simple_menu’ transforms the tree of a menu tree element.
‘set_menus_to_simple_menu’ calls ‘menu_to_simple_menu’ for all the
menus of the nodes in ‘$nodes_list’.
A simple menu has no _menu_comment_, _menu_entry_ or
_menu_entry_description_ container anymore, their content are
merged directly in the menu in _preformatted_ container.
protect_hashchar_at_line_beginning($registrar, $customization_information, $tree)
Protect hash (#) character at the beginning of line such that they
would not be considered as lines to be processed by the CPP
processor. The _$registrar_ and _$customization_information_
arguments may be undef. If defined, the _$registrar_ argument
should be a *note Texinfo::Report: Texinfo::Report NAME. object in
which the errors and warnings encountered while parsing are
registered. If defined, _$customization_information_ should give
access to customization through ‘get_conf’. If both _$registrar_
and _$customization_information_ are defined they are used for
error reporting in case an hash character could not be protected
because it appeared in a raw environment.
$modified_tree = reference_to_arg_in_tree($tree)
Modify _$tree_ by converting reference @-commands to simple text
using one of the arguments. This transformation can be used, for
example, to remove reference @-command from constructed node names
trees, as node names cannot contain reference @-command while there
could be some in the tree used in input for the node name tree.
regenerate_master_menu($translations, $labels)
Regenerate the Top node master menu, replacing the first detailmenu
in Top node menus or appending at the end of the Top node menu.
_$translations_, if defined, should be a *note
Texinfo::Translations: Texinfo::Translations NAME. object and
should also hold customization information.
File: texi2any_internals.info, Node: Texinfo::Transformations SEE ALSO, Next: Texinfo::Transformations AUTHOR, Prev: Texinfo::Transformations METHODS, Up: Texinfo::Transformations
7.5 Texinfo::Transformations SEE ALSO
=====================================
Texinfo manual (http://www.gnu.org/s/texinfo/manual/texinfo/), *note
Texinfo::Parser: Texinfo::Parser NAME.
File: texi2any_internals.info, Node: Texinfo::Transformations AUTHOR, Next: Texinfo::Transformations COPYRIGHT AND LICENSE, Prev: Texinfo::Transformations SEE ALSO, Up: Texinfo::Transformations
7.6 Texinfo::Transformations AUTHOR
===================================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Transformations COPYRIGHT AND LICENSE, Prev: Texinfo::Transformations AUTHOR, Up: Texinfo::Transformations
7.7 Texinfo::Transformations COPYRIGHT AND LICENSE
==================================================
Copyright 2010- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Texinfo::Convert::Texinfo, Next: Texinfo::Convert::Utils, Prev: Texinfo::Transformations, Up: Top
8 Texinfo::Convert::Texinfo
***************************
* Menu:
* Texinfo::Convert::Texinfo NAME::
* Texinfo::Convert::Texinfo SYNOPSIS::
* Texinfo::Convert::Texinfo NOTES::
* Texinfo::Convert::Texinfo DESCRIPTION::
* Texinfo::Convert::Texinfo METHODS::
* Texinfo::Convert::Texinfo AUTHOR::
* Texinfo::Convert::Texinfo COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Convert::Texinfo NAME, Next: Texinfo::Convert::Texinfo SYNOPSIS, Up: Texinfo::Convert::Texinfo
8.1 Texinfo::Convert::Texinfo NAME
==================================
Texinfo::Convert::Texinfo - Convert a Texinfo tree to Texinfo code
File: texi2any_internals.info, Node: Texinfo::Convert::Texinfo SYNOPSIS, Next: Texinfo::Convert::Texinfo NOTES, Prev: Texinfo::Convert::Texinfo NAME, Up: Texinfo::Convert::Texinfo
8.2 Texinfo::Convert::Texinfo SYNOPSIS
======================================
use Texinfo::Convert::Texinfo qw(convert_to_texinfo);
my $texinfo_text = convert_to_texinfo($tree);
File: texi2any_internals.info, Node: Texinfo::Convert::Texinfo NOTES, Next: Texinfo::Convert::Texinfo DESCRIPTION, Prev: Texinfo::Convert::Texinfo SYNOPSIS, Up: Texinfo::Convert::Texinfo
8.3 Texinfo::Convert::Texinfo NOTES
===================================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Convert::Texinfo DESCRIPTION, Next: Texinfo::Convert::Texinfo METHODS, Prev: Texinfo::Convert::Texinfo NOTES, Up: Texinfo::Convert::Texinfo
8.4 Texinfo::Convert::Texinfo DESCRIPTION
=========================================
‘Texinfo::Convert::Texinfo’ converts a Texinfo tree (described in *note
Texinfo::Parser: Texinfo::Parser NAME.) to Texinfo code. If the Texinfo
tree results from parsing some Texinfo document, The converted Texinfo
code should be exactly the same as the initial document, except that
user defined @-macros and ‘@value’ are expanded, and some invalid code
is discarded.
File: texi2any_internals.info, Node: Texinfo::Convert::Texinfo METHODS, Next: Texinfo::Convert::Texinfo AUTHOR, Prev: Texinfo::Convert::Texinfo DESCRIPTION, Up: Texinfo::Convert::Texinfo
8.5 Texinfo::Convert::Texinfo METHODS
=====================================
$texinfo_text = convert_to_texinfo($tree)
Converts the Texinfo tree _$tree_ to Texinfo code.
File: texi2any_internals.info, Node: Texinfo::Convert::Texinfo AUTHOR, Next: Texinfo::Convert::Texinfo COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::Texinfo METHODS, Up: Texinfo::Convert::Texinfo
8.6 Texinfo::Convert::Texinfo AUTHOR
====================================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Convert::Texinfo COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::Texinfo AUTHOR, Up: Texinfo::Convert::Texinfo
8.7 Texinfo::Convert::Texinfo COPYRIGHT AND LICENSE
===================================================
Copyright 2010- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Texinfo::Convert::Utils, Next: Texinfo::Convert::Unicode, Prev: Texinfo::Convert::Texinfo, Up: Top
9 Texinfo::Convert::Utils
*************************
* Menu:
* Texinfo::Convert::Utils NAME::
* Texinfo::Convert::Utils SYNOPSIS::
* Texinfo::Convert::Utils NOTES::
* Texinfo::Convert::Utils DESCRIPTION::
* Texinfo::Convert::Utils METHODS::
* Texinfo::Convert::Utils SEE ALSO::
* Texinfo::Convert::Utils AUTHOR::
* Texinfo::Convert::Utils COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Convert::Utils NAME, Next: Texinfo::Convert::Utils SYNOPSIS, Up: Texinfo::Convert::Utils
9.1 Texinfo::Convert::Utils NAME
================================
Texinfo::Convert::Utils - miscellaneous functions usable in all
converters
File: texi2any_internals.info, Node: Texinfo::Convert::Utils SYNOPSIS, Next: Texinfo::Convert::Utils NOTES, Prev: Texinfo::Convert::Utils NAME, Up: Texinfo::Convert::Utils
9.2 Texinfo::Convert::Utils SYNOPSIS
====================================
use Texinfo::Convert::Utils;
my $today_tree = Texinfo::Convert::Utils::expand_today($converter);
my $verbatiminclude_tree
= Texinfo::Convert::Utils::expand_verbatiminclude(undef, $converter,
$verbatiminclude);
File: texi2any_internals.info, Node: Texinfo::Convert::Utils NOTES, Next: Texinfo::Convert::Utils DESCRIPTION, Prev: Texinfo::Convert::Utils SYNOPSIS, Up: Texinfo::Convert::Utils
9.3 Texinfo::Convert::Utils NOTES
=================================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Convert::Utils DESCRIPTION, Next: Texinfo::Convert::Utils METHODS, Prev: Texinfo::Convert::Utils NOTES, Up: Texinfo::Convert::Utils
9.4 Texinfo::Convert::Utils DESCRIPTION
=======================================
miscellaneous methods that may be useful for backends converting texinfo
trees. This module contains the methods that can be used in converters
which do not inherit from *note Texinfo::Convert::Converter:
Texinfo::Convert::Converter NAME.
File: texi2any_internals.info, Node: Texinfo::Convert::Utils METHODS, Next: Texinfo::Convert::Utils SEE ALSO, Prev: Texinfo::Convert::Utils DESCRIPTION, Up: Texinfo::Convert::Utils
9.5 Texinfo::Convert::Utils METHODS
===================================
No method is exported in the default case.
Most methods takes a _$converter_ as argument, in some cases
optionally, to get some information, see *note
Texinfo::Convert::Converter Getting and setting customization
variables:: and use methods for error reporting, see *note
Texinfo::Convert::Converter: Texinfo::Convert::Converter NAME. and *note
Texinfo::Report: Texinfo::Report NAME, and for strings translations, see
*note Texinfo::Translations: Texinfo::Translations NAME.
Even when the caller does not inherit from *note
Texinfo::Convert::Converter: Texinfo::Convert::Converter NAME, it could
implement the required interfaces and could also have a converter
available in some cases, to call the functions which require a
converter.
$result = add_heading_number($converter, $heading_element, $heading_text, $do_number)
The _$converter_ argument may be undef. _$heading_element_ is a
heading command tree element. _$heading_text_ is the already
formatted heading text. if the _$do_number_ optional argument is
defined and false, no number is used and the text is returned as
is. This function returns the heading with a number and the
appendix part if needed. If _$converter_ is not defined, the
resulting string won't be translated.
($category, $class, $type, $name, $arguments) = definition_arguments_content($element)
_$element_ should be a ‘@def*’ Texinfo tree element. The
_$category_, _$class_, _$type_, _$name_ are elements corresponding
to the definition @-command line. Texinfo elements on the
@-command line corresponding to arguments in the function
definition are returned in the _$arguments_ array reference.
Arguments correspond to text following the other elements on the
@-command line. If there is no argument, _$arguments_ will be
‘undef’.
$tree = definition_category_tree($converter, $def_line)
The _$converter_ argument may be undef. _$def_line_ is a
‘def_line’ texinfo tree container. This function returns a texinfo
tree corresponding to the category of the _$def_line_ taking the
class into account, if there is one. If _$converter_ is not
defined, the resulting string won't be translated.
($encoded_name, $encoding) = $converter->encoded_input_file_name($converter, $character_string_name, $input_file_encoding)
($encoded_name, $encoding) = $converter->encoded_output_file_name($converter, $character_string_name)
Encode _$character_string_name_ in the same way as other file names
are encoded in converters, based on customization variables, and
possibly on the input file encoding. Return the encoded name and
the encoding used to encode the name. The
‘encoded_input_file_name’ and ‘encoded_output_file_name’ functions
use different customization variables to determine the encoding.
The _$converter_ argument is not optional and is used both to
access to customization variables and to access to parser
information.
The <$input_file_encoding> argument is optional. If set, it is
used for the input file encoding. It is useful if there is more
precise information on the input file encoding where the file name
appeared.
$tree = expand_today($converter)
Expand today's date, as a texinfo tree with translations. The
_$converter_ argument is not optional and is used both to retrieve
customization information and to translate strings.
$tree = expand_verbatiminclude($registrar, $customization_information, $verbatiminclude)
The _$registrar_ argument may be undef. The
_$customization_information_ argument is required and is used to
retrieve customization information *note
Texinfo::Convert::Converter Getting and setting customization
variables::. _$verbatiminclude_ is a ‘@verbatiminclude’ tree
element. This function returns a ‘@verbatim’ tree elements after
finding the included file and reading it. If _$registrar_ is not
defined, error messages are not registered.
(\@contents, \@accent_commands) = find_innermost_accent_contents($element)
_$element_ should be an accent command Texinfo tree element.
Returns an array reference containing the innermost accent
@-command contents, normally a text element with one or two letter,
and an array reference containing the accent commands nested in
_$element_ (including _$element_).
$heading_element = find_root_command_next_heading_command($element, $expanded_format_raw, $do_not_ignore_contents, $do_not_ignore_index_entries)
Return an heading element found in the _$element_ contents if it
appears before contents that could be formatted.
_$expanded_format_raw_ is a hash reference with raw output formats
(html, docbook, xml...) as keys, associated value should be set
for expanded raw output formats. _$do_not_ignore_contents_ is
optional. If set, ‘@contents’ and ‘@shortcontents’ are considered
to be formatted. _$do_not_ignore_index_entries_ is optional. If
set, index entries are considered to be formatted.
Only heading elements corresponding to ‘@heading’, ‘@subheading’
and similar @-commands that are not associated to nodes in general
are found, not sectioning commands.
File: texi2any_internals.info, Node: Texinfo::Convert::Utils SEE ALSO, Next: Texinfo::Convert::Utils AUTHOR, Prev: Texinfo::Convert::Utils METHODS, Up: Texinfo::Convert::Utils
9.6 Texinfo::Convert::Utils SEE ALSO
====================================
*note Texinfo::Convert::Converter: Texinfo::Convert::Converter NAME. and
*note Texinfo::Translations: Texinfo::Translations NAME.
File: texi2any_internals.info, Node: Texinfo::Convert::Utils AUTHOR, Next: Texinfo::Convert::Utils COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::Utils SEE ALSO, Up: Texinfo::Convert::Utils
9.7 Texinfo::Convert::Utils AUTHOR
==================================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Convert::Utils COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::Utils AUTHOR, Up: Texinfo::Convert::Utils
9.8 Texinfo::Convert::Utils COPYRIGHT AND LICENSE
=================================================
Copyright 2010- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Texinfo::Convert::Unicode, Next: Texinfo::Convert::NodeNameNormalization, Prev: Texinfo::Convert::Utils, Up: Top
10 Texinfo::Convert::Unicode
****************************
* Menu:
* Texinfo::Convert::Unicode NAME::
* Texinfo::Convert::Unicode SYNOPSIS::
* Texinfo::Convert::Unicode NOTES::
* Texinfo::Convert::Unicode DESCRIPTION::
* Texinfo::Convert::Unicode METHODS::
* Texinfo::Convert::Unicode AUTHOR::
* Texinfo::Convert::Unicode COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Convert::Unicode NAME, Next: Texinfo::Convert::Unicode SYNOPSIS, Up: Texinfo::Convert::Unicode
10.1 Texinfo::Convert::Unicode NAME
===================================
Texinfo::Convert::Unicode - Representation as Unicode characters
File: texi2any_internals.info, Node: Texinfo::Convert::Unicode SYNOPSIS, Next: Texinfo::Convert::Unicode NOTES, Prev: Texinfo::Convert::Unicode NAME, Up: Texinfo::Convert::Unicode
10.2 Texinfo::Convert::Unicode SYNOPSIS
=======================================
use Texinfo::Convert::Unicode qw(unicode_accent encoded_accents
unicode_text);
use Texinfo::Convert::Text qw(convert_to_text);
my ($innermost_contents, $stack)
= Texinfo::Convert::Utils::find_innermost_accent_contents($accent);
my $formatted_accents = encoded_accents ($converter,
convert_to_text($innermost_contents), $stack, $encoding,
\&Texinfo::Text::ascii_accent_fallback);
my $accent_text = unicode_accent('e', $accent_command);
File: texi2any_internals.info, Node: Texinfo::Convert::Unicode NOTES, Next: Texinfo::Convert::Unicode DESCRIPTION, Prev: Texinfo::Convert::Unicode SYNOPSIS, Up: Texinfo::Convert::Unicode
10.3 Texinfo::Convert::Unicode NOTES
====================================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Convert::Unicode DESCRIPTION, Next: Texinfo::Convert::Unicode METHODS, Prev: Texinfo::Convert::Unicode NOTES, Up: Texinfo::Convert::Unicode
10.4 Texinfo::Convert::Unicode DESCRIPTION
==========================================
‘Texinfo::Convert::Unicode’ provides methods dealing with Unicode
representation and conversion of Unicode code points, to be used in
converters.
When an encoding supported in Texinfo is given as argument of a
method of the module, the accented letters or characters returned by the
method should only be represented by Unicode code points if it is known
that Perl should manage to convert the Unicode code points to encoded
characters in the encoding character set. Note that the actual
conversion is done by Perl, not by the module.
File: texi2any_internals.info, Node: Texinfo::Convert::Unicode METHODS, Next: Texinfo::Convert::Unicode AUTHOR, Prev: Texinfo::Convert::Unicode DESCRIPTION, Up: Texinfo::Convert::Unicode
10.5 Texinfo::Convert::Unicode METHODS
======================================
$result = brace_no_arg_command($command_name, $encoding)
Return the Unicode representation of a command with brace and no
argument _$command_name_ (like ‘@bullet{}’, ‘@aa{}’ or
‘@guilsinglleft{}’), or ‘undef’ if the Unicode representation
cannot be converted to encoding _$encoding_.
$possible_conversion = check_unicode_point_conversion($arg, $output_debug)
Check that it is possible to output actual UTF-8 binary bytes
corresponding to the Unicode code point string _$arg_ (such as
‘201D’). Perl gives a warning and will not output UTF-8 for
Unicode non-characters such as U+10FFFF. If the optional
_$output_debug_ argument is set, a debugging output warning is
emitted if the test of the conversion failed. Returns 1 if the
conversion is possible and can be attempted, 0 otherwise.
$result = encoded_accents($converter, $text, $stack, $encoding, $format_accent, $set_case)
_$encoding_ is the encoding the accented characters should be
encoded to. If _$encoding_ not set, _$result_ is set to ‘undef’.
Nested accents and their content are passed with _$text_ and
_$stack_. _$text_ is the text appearing within nested accent
commands. _$stack_ is an array reference holding the nested
accents texinfo tree elements. In general, _$text_ is the
formatted contents and _$stack_ the stack returned by *note
Texinfo::Convert::Utils::find_innermost_accent_contents:
Texinfo::Convert::Utils (\@contents, \@accent_commands) =
find_innermost_accent_contents($element). The function tries to
convert as much as possible the accents to _$encoding_ starting
from the innermost accent.
_$format_accent_ is a function reference that is used to format the
accent commands if there is no encoded character available at some
point of the conversion of the _$stack_. _$converter_ is a
converter object optionaly used by _$format_accent_. It may be
‘undef’ if there is no need of converter object in
_$format_accent_.
If _$set_case_ is positive, the result is upper-cased, while if it
is negative, the result is lower-cased.
$width = string_width($string)
Return the string width, taking into account the fact that some
characters have a zero width (like composing accents) while some
have a width of 2 (most chinese characters, for example).
$result = unicode_accent($text, $accent_command)
_$text_ is the text appearing within an accent command.
_$accent_command_ should be a Texinfo tree element corresponding to
an accent command taking an argument. The function returns the
Unicode representation of the accented character.
$is_decoded = unicode_point_decoded_in_encoding($encoding, $unicode_point)
Return true if the _$unicode_point_ will be encoded in the encoding
_$encoding_. The _$unicode_point_ should be specified as a four
letter string describing an hexadecimal number with letters in
upper case (such as ‘201D’). Tables are used to determine if the
_$unicode_point_ will be encoded, when the encoding does not cover
the whole Unicode range.
If the encoding is not supported in Texinfo, the result will always
be false.
$result = unicode_text($text, $in_code)
Return _$text_ with dashes and quotes corresponding, for example to
‘---’ or ‘'’, represented as Unicode code points. If _$in_code_ is
set, the text is considered to be in code style.
File: texi2any_internals.info, Node: Texinfo::Convert::Unicode AUTHOR, Next: Texinfo::Convert::Unicode COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::Unicode METHODS, Up: Texinfo::Convert::Unicode
10.6 Texinfo::Convert::Unicode AUTHOR
=====================================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Convert::Unicode COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::Unicode AUTHOR, Up: Texinfo::Convert::Unicode
10.7 Texinfo::Convert::Unicode COPYRIGHT AND LICENSE
====================================================
Copyright 2010- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Texinfo::Convert::NodeNameNormalization, Next: Texinfo::Convert::Text, Prev: Texinfo::Convert::Unicode, Up: Top
11 Texinfo::Convert::NodeNameNormalization
******************************************
* Menu:
* Texinfo::Convert::NodeNameNormalization NAME::
* Texinfo::Convert::NodeNameNormalization SYNOPSIS::
* Texinfo::Convert::NodeNameNormalization NOTES::
* Texinfo::Convert::NodeNameNormalization DESCRIPTION::
* Texinfo::Convert::NodeNameNormalization METHODS::
* Texinfo::Convert::NodeNameNormalization AUTHOR::
* Texinfo::Convert::NodeNameNormalization COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Convert::NodeNameNormalization NAME, Next: Texinfo::Convert::NodeNameNormalization SYNOPSIS, Up: Texinfo::Convert::NodeNameNormalization
11.1 Texinfo::Convert::NodeNameNormalization NAME
=================================================
Texinfo::Convert::NodeNameNormalization - Normalize and transliterate
Texinfo trees
File: texi2any_internals.info, Node: Texinfo::Convert::NodeNameNormalization SYNOPSIS, Next: Texinfo::Convert::NodeNameNormalization NOTES, Prev: Texinfo::Convert::NodeNameNormalization NAME, Up: Texinfo::Convert::NodeNameNormalization
11.2 Texinfo::Convert::NodeNameNormalization SYNOPSIS
=====================================================
use Texinfo::Convert::NodeNameNormalization qw(normalize_node
normalize_transliterate_texinfo);
my $normalized = normalize_node({'contents' => $node_contents});
my $file_name = normalize_transliterate_texinfo({'contents'
=> $section_contents});
File: texi2any_internals.info, Node: Texinfo::Convert::NodeNameNormalization NOTES, Next: Texinfo::Convert::NodeNameNormalization DESCRIPTION, Prev: Texinfo::Convert::NodeNameNormalization SYNOPSIS, Up: Texinfo::Convert::NodeNameNormalization
11.3 Texinfo::Convert::NodeNameNormalization NOTES
==================================================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Convert::NodeNameNormalization DESCRIPTION, Next: Texinfo::Convert::NodeNameNormalization METHODS, Prev: Texinfo::Convert::NodeNameNormalization NOTES, Up: Texinfo::Convert::NodeNameNormalization
11.4 Texinfo::Convert::NodeNameNormalization DESCRIPTION
========================================================
‘Texinfo::Convert::NodeNameNormalization’ allows to normalize node
names, with ‘normalize_node’ following the specification described in
the Texinfo manual _HTML Xref_ node. This is useful whenever one want a
unique identifier for Texinfo content, which is only composed of letter,
digits, ‘-’ and ‘_’. In *note Texinfo::Parser: Texinfo::Parser NAME,
‘normalize_node’ is used for ‘@node’, ‘@float’ and ‘@anchor’ names
normalization, but also ‘@float’ types and ‘@acronym’ and ‘@abbr’ first
argument.
It is also possible to transliterate non-ASCII letters, instead of
mangling them, with ‘normalize_transliterate_texinfo’, losing the
uniqueness feature of normalized node names.
Another method, ‘transliterate_protect_file_name’ transliterates
non-ASCII letters and protect characters that should not appear on file
names.
File: texi2any_internals.info, Node: Texinfo::Convert::NodeNameNormalization METHODS, Next: Texinfo::Convert::NodeNameNormalization AUTHOR, Prev: Texinfo::Convert::NodeNameNormalization DESCRIPTION, Up: Texinfo::Convert::NodeNameNormalization
11.5 Texinfo::Convert::NodeNameNormalization METHODS
====================================================
$partially_normalized = convert_to_normalized($tree)
The Texinfo _$tree_ is returned as a string, with @-commands and
spaces normalized as described in the Texinfo manual _HTML Xref_
node. ASCII 7-bit characters other than spaces and non-ASCII
characters are left as is in the resulting string.
$normalized = normalize_node($tree)
The Texinfo _$tree_ is returned as a string, normalized as
described in the Texinfo manual _HTML Xref_ node.
The result will be poor for Texinfo trees which are not @-command
arguments (on an @-command line or in braces), for instance if the
tree contains ‘@node’ or block commands.
$transliterated = normalize_transliterate_texinfo($tree, $no_unidecode)
The Texinfo _$tree_ is returned as a string, with non-ASCII letters
transliterated as ASCII, but otherwise similar with
‘normalize_node’ output. If the optional _$no_unidecode_ argument
is set, ‘Text::Unidecode’ is not used for characters whose
transliteration is not built-in.
$transliterated = transliterate_texinfo($tree, $no_unidecode)
The Texinfo _$tree_ is returned as a string, with non-ASCII letters
transliterated as ASCII. If the optional _$no_unidecode_ argument
is set, ‘Text::Unidecode’ is not used for characters whose
transliteration is not built-in.
$file_name = transliterate_protect_file_name($string, $no_unidecode)
The string _$string_ is returned with non-ASCII letters
transliterated as ASCII, and ASCII characters not safe in file
names protected as in node normalization. If the optional
_$no_unidecode_ argument is set, ‘Text::Unidecode’ is not used for
characters whose transliteration is not built-in.
File: texi2any_internals.info, Node: Texinfo::Convert::NodeNameNormalization AUTHOR, Next: Texinfo::Convert::NodeNameNormalization COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::NodeNameNormalization METHODS, Up: Texinfo::Convert::NodeNameNormalization
11.6 Texinfo::Convert::NodeNameNormalization AUTHOR
===================================================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Convert::NodeNameNormalization COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::NodeNameNormalization AUTHOR, Up: Texinfo::Convert::NodeNameNormalization
11.7 Texinfo::Convert::NodeNameNormalization COPYRIGHT AND LICENSE
==================================================================
Copyright 2010- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Texinfo::Convert::Text, Next: Texinfo::Convert::Converter, Prev: Texinfo::Convert::NodeNameNormalization, Up: Top
12 Texinfo::Convert::Text
*************************
* Menu:
* Texinfo::Convert::Text NAME::
* Texinfo::Convert::Text SYNOPSIS::
* Texinfo::Convert::Text NOTES::
* Texinfo::Convert::Text DESCRIPTION::
* Texinfo::Convert::Text METHODS::
* Texinfo::Convert::Text AUTHOR::
* Texinfo::Convert::Text COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Convert::Text NAME, Next: Texinfo::Convert::Text SYNOPSIS, Up: Texinfo::Convert::Text
12.1 Texinfo::Convert::Text NAME
================================
Texinfo::Convert::Text - Convert Texinfo tree to simple text
File: texi2any_internals.info, Node: Texinfo::Convert::Text SYNOPSIS, Next: Texinfo::Convert::Text NOTES, Prev: Texinfo::Convert::Text NAME, Up: Texinfo::Convert::Text
12.2 Texinfo::Convert::Text SYNOPSIS
====================================
use Texinfo::Convert::Text qw(convert_to_text ascii_accent text_accents);
my $result = convert_to_text($tree);
my $result_encoded = convert_to_text($tree,
{'enabled_encoding' => 'utf-8'});
my $result_converter = convert_to_text($tree,
{'converter' => $converter});
my $result_accent_text = ascii_accent('e', $accent_command);
my $accents_text = text_accents($accents, 'utf-8');
File: texi2any_internals.info, Node: Texinfo::Convert::Text NOTES, Next: Texinfo::Convert::Text DESCRIPTION, Prev: Texinfo::Convert::Text SYNOPSIS, Up: Texinfo::Convert::Text
12.3 Texinfo::Convert::Text NOTES
=================================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Convert::Text DESCRIPTION, Next: Texinfo::Convert::Text METHODS, Prev: Texinfo::Convert::Text NOTES, Up: Texinfo::Convert::Text
12.4 Texinfo::Convert::Text DESCRIPTION
=======================================
‘Texinfo::Convert::Text’ is a simple backend that converts a Texinfo
tree to simple text. It is used in converters, especially for file
names. The converter is very simple, and, in the default case, cannot
handle output strings translation or error handling.
File: texi2any_internals.info, Node: Texinfo::Convert::Text METHODS, Next: Texinfo::Convert::Text AUTHOR, Prev: Texinfo::Convert::Text DESCRIPTION, Up: Texinfo::Convert::Text
12.5 Texinfo::Convert::Text METHODS
===================================
$result = convert_to_text($tree, $options)
Convert a Texinfo tree to simple text. _$options_ is a hash
reference of options. The converter is very simple, and has almost
no internal state besides the options. It cannot handle as is
output strings translation or error storing.
If the _converter_ option is set, some additional features may be
available for the conversion of some @-commands, like output
strings translation or error reporting.
The following options may be set:
enabled_encoding
If set, the value is considered to be the encoding name
texinfo accented letters should be converted to. This option
being set corresponds to the ‘--enable-encoding’ option, or
the ‘ENABLE_ENCODING’ customization variable for Info and
Plaintext and for some conversion to text in other formats.
For file names in HTML and LaTeX, and for DocBook or Texinfo
XML, this variable should in general be set unless the output
encoding is US-ASCII.
sc
If set, the text is upper-cased.
code
If set the text is in code style. (mostly ‘--’, ‘---’, ‘''’
and ‘``’ are kept as is).
NUMBER_SECTIONS
If set, sections are numbered when output.
sort_string
A somehow internal option to convert to text more suitable for
alphabetical sorting rather than presentation.
converter
If this converter object is passed to the function, some
features of this object may be used during conversion. Mostly
error reporting and strings translation, as the converter
object is also supposed to be a *note Texinfo::Report:
Texinfo::Report NAME. objet. See also *note
Texinfo::Convert::Converter: Texinfo::Convert::Converter NAME.
expanded_formats_hash
A reference on a hash. The keys should be format names (like
‘html’, ‘tex’), and if the corresponding value is set, the
format is expanded.
$result_accent_text = ascii_accent($text, $accent_command)
_$text_ is the text appearing within an accent command.
_$accent_command_ should be a Texinfo tree element corresponding to
an accent command taking an argument. The function returns a
transliteration of the accented character.
$result_accent_text = ascii_accent_fallback($converter, $text, $accent_command)
Same as ‘ascii_accent’ but with an additional first argument
converter, which is ignored, but needed if this function is to be
in argument of functions that need a fallback for accents
conversion.
$accents_text = text_accents($accents, $encoding, $set_case)
_$accents_ is an accent command that may contain other nested
accent commands. The function will format the whole stack of
nested accent commands and the innermost text. If _$encoding_ is
set, the formatted text is converted to this encoding as much as
possible instead of being converted as simple ASCII. If _$set_case_
is positive, the result is meant to be upper-cased, if it is
negative, the result is to be lower-cased.
File: texi2any_internals.info, Node: Texinfo::Convert::Text AUTHOR, Next: Texinfo::Convert::Text COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::Text METHODS, Up: Texinfo::Convert::Text
12.6 Texinfo::Convert::Text AUTHOR
==================================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Convert::Text COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::Text AUTHOR, Up: Texinfo::Convert::Text
12.7 Texinfo::Convert::Text COPYRIGHT AND LICENSE
=================================================
Copyright 2010- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Texinfo::Convert::Converter, Next: Texinfo::Convert::Info, Prev: Texinfo::Convert::Text, Up: Top
13 Texinfo::Convert::Converter
******************************
* Menu:
* Texinfo::Convert::Converter NAME::
* Texinfo::Convert::Converter SYNOPSIS::
* Texinfo::Convert::Converter NOTES::
* Texinfo::Convert::Converter DESCRIPTION::
* Texinfo::Convert::Converter METHODS::
* Texinfo::Convert::Converter SEE ALSO::
* Texinfo::Convert::Converter AUTHOR::
* Texinfo::Convert::Converter COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Convert::Converter NAME, Next: Texinfo::Convert::Converter SYNOPSIS, Up: Texinfo::Convert::Converter
13.1 Texinfo::Convert::Converter NAME
=====================================
Texinfo::Convert::Converter - Parent class for Texinfo tree converters
File: texi2any_internals.info, Node: Texinfo::Convert::Converter SYNOPSIS, Next: Texinfo::Convert::Converter NOTES, Prev: Texinfo::Convert::Converter NAME, Up: Texinfo::Convert::Converter
13.2 Texinfo::Convert::Converter SYNOPSIS
=========================================
package Texinfo::Convert::MyConverter;
use Texinfo::Convert::Converter;
@ISA = qw(Texinfo::Convert::Converter);
sub converter_defaults ($$) {
return %myconverter_defaults;
}
sub converter_initialize($) {
my $self = shift;
$self->{'document_context'} = [{}];
}
sub convert($$) {
...
}
sub convert_tree($$) {
...
}
sub output($$) {
...
}
# end of Texinfo::Convert::MyConverter
my $converter = Texinfo::Convert::MyConverter->converter(
{'parser' => $parser});
$converter->output($texinfo_tree);
File: texi2any_internals.info, Node: Texinfo::Convert::Converter NOTES, Next: Texinfo::Convert::Converter DESCRIPTION, Prev: Texinfo::Convert::Converter SYNOPSIS, Up: Texinfo::Convert::Converter
13.3 Texinfo::Convert::Converter NOTES
======================================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Convert::Converter DESCRIPTION, Next: Texinfo::Convert::Converter METHODS, Prev: Texinfo::Convert::Converter NOTES, Up: Texinfo::Convert::Converter
13.4 Texinfo::Convert::Converter DESCRIPTION
============================================
‘Texinfo::Convert::Converter’ is a super class that can be used to
simplify converters initialization. The class also provide some useful
methods.
In turn, the converter should define some methods. Two are optional,
‘converter_defaults’, ‘converter_initialize’ and used for
initialization, to give information to ‘Texinfo::Convert::Converter’.
The ‘convert_tree’ method is mandatory and should convert portions of
Texinfo tree. The ‘output’ method is used by converters as entry point
for conversion to a file with headers and so on. Although it is is not
called from other modules, it should in general be implemented by
converters. ‘output’ is called from ‘texi2any’. ‘convert’ is not
required, but customarily used by converters as entry point for a
conversion of a whole Texinfo tree without the headers done when
outputting to a file.
Existing backends may be used as examples that implement those
methods. ‘Texinfo::Convert::Texinfo’ together with
‘Texinfo::Convert::PlainTexinfo’, as well as
‘Texinfo::Convert::TextContent’ are trivial examples.
‘Texinfo::Convert::Text’ is less trivial, although still simple, while
‘Texinfo::Convert::DocBook’ is a real converter that is also not too
complex.
The documentation of *note Texinfo::Common: Texinfo::Common NAME,
*note Texinfo::Convert::Unicode: Texinfo::Convert::Unicode NAME. and
*note Texinfo::Report: Texinfo::Report NAME. describes modules or
additional function that may be useful for backends, while the parsed
Texinfo tree is described in *note Texinfo::Parser: Texinfo::Parser
NAME.
File: texi2any_internals.info, Node: Texinfo::Convert::Converter METHODS, Next: Texinfo::Convert::Converter SEE ALSO, Prev: Texinfo::Convert::Converter DESCRIPTION, Up: Texinfo::Convert::Converter
13.5 Texinfo::Convert::Converter METHODS
========================================
* Menu:
* Texinfo::Convert::Converter Initialization::
* Texinfo::Convert::Converter Getting and setting customization variables::
* Texinfo::Convert::Converter Conversion to XML::
* Texinfo::Convert::Converter Helper methods::
File: texi2any_internals.info, Node: Texinfo::Convert::Converter Initialization, Next: Texinfo::Convert::Converter Getting and setting customization variables, Up: Texinfo::Convert::Converter METHODS
13.5.1 Initialization
---------------------
A module subclassing ‘Texinfo::Convert::Converter’ is created by calling
the ‘converter’ method that should be inherited from
‘Texinfo::Convert::Converter’.
$converter = MyConverter->converter($options)
The _$options_ hash reference holds options for the converter. In
this option hash reference a *note parser object: Texinfo::Parser
NAME. may be associated with the _parser_ key. The other options
are Texinfo customization options and a few other options that can
be passed to the converter. Most of the customization options are
described in the Texinfo manual. Those customization options, when
appropriate, override the document content. *TODO what about the
other options (all are used in converters; 'structuring' is
available in HTML $converter->get_info()?* The parser should not
be available directly anymore after getting the associated
information. *TODO document this associated information
('parser_info', 'indices_information', 'floats'..., most available
in HTML converter, either through $converter->get_info() or
label_command())*
The ‘converter’ function returns a converter object (a blessed hash
reference) after checking the options and performing some
initializations, especially when a parser is given among the
options. The converter is also initialized as a *note
Texinfo::Report: Texinfo::Report NAME.
To help with these initializations, the modules subclassing
‘Texinfo::Convert::Converter’ can define two methods:
%defaults = $converter->converter_defaults($options)
The module can provide a defaults hash for converter customization
options. The _$options_ hash reference holds options for the
converter.
converter_initialize
This method is called at the end of the
‘Texinfo::Convert::Converter’ converter initialization.
File: texi2any_internals.info, Node: Texinfo::Convert::Converter Getting and setting customization variables, Next: Texinfo::Convert::Converter Conversion to XML, Prev: Texinfo::Convert::Converter Initialization, Up: Texinfo::Convert::Converter METHODS
13.5.2 Getting and setting customization variables
--------------------------------------------------
‘Texinfo::Convert::Converter’ implements a simple interface to set and
retrieve Texinfo customization variables. Helper functions from diverse
Texinfo modules needing customization information expect an object
implementing ‘get_conf’ and/or ‘set_conf’. The converter itself can
therefore be used in such cases.
$converter->force_conf($variable_name, $variable_value)
Set the Texinfo customization option _$variable_name_ to
_$variable_value_. This should rarely be used, but the purpose of
this method is to be able to revert a customization that is always
wrong for a given output format, like the splitting for example.
$converter->get_conf($variable_name)
Returns the value of the Texinfo customization variable
_$variable_name_.
$status = $converter->set_conf($variable_name, $variable_value)
Set the Texinfo customization option _$variable_name_ to
_$variable_value_ if not set as a converter option. Returns false
if the customization options was not set.
File: texi2any_internals.info, Node: Texinfo::Convert::Converter Conversion to XML, Next: Texinfo::Convert::Converter Helper methods, Prev: Texinfo::Convert::Converter Getting and setting customization variables, Up: Texinfo::Convert::Converter METHODS
13.5.3 Conversion to XML
------------------------
Some ‘Texinfo::Convert::Converter’ methods target conversion to XML.
Most methods take a _$converter_ as argument to get some information and
use methods for error reporting.
$formatted_text = $converter->xml_format_text_with_numeric_entities($text)
Replace quotation marks and hyphens used to represent dash in
Texinfo text with numeric XML entities.
$protected_text = $converter->xml_protect_text($text)
Protect special XML characters (&, <, >, ") of _$text_.
$comment = $converter->xml_comment($text)
Returns an XML comment for _$text_.
$result = xml_accent($text, $accent_command, $in_upper_case, $use_numeric_entities)
_$text_ is the text appearing within an accent command.
_$accent_command_ should be a Texinfo tree element corresponding to
an accent command taking an argument. _$in_upper_case_ is
optional, and, if set, the text is put in upper case. The function
returns the accented letter as XML named entity if possible,
falling back to numeric entities if there is no named entity and to
an ASCII transliteration as last resort. _$use_numeric_entities_
is optional. If set, numerical entities are used instead of named
entities if possible.
$result = $converter->xml_accents($accent_command, $in_upper_case)
_$accent_command_ is an accent command, which may have other accent
commands nested. If _$in_upper_case_ is set, the result should be
upper cased. The function returns the accents formatted as XML.
$result = xml_numeric_entity_accent($accent_command_name, $text)
_$accent_command_name_ is the name of an accent command. _$text_
is the text appearing within the accent command. Returns the
accented letter as XML numeric entity, or ‘undef’ is there is no
such entity.
File: texi2any_internals.info, Node: Texinfo::Convert::Converter Helper methods, Prev: Texinfo::Convert::Converter Conversion to XML, Up: Texinfo::Convert::Converter METHODS
13.5.4 Helper methods
---------------------
The module provides methods that may be useful for converter. Most
methods take a _$converter_ as argument to get some information and use
methods for error reporting, see *note Texinfo::Report: Texinfo::Report
NAME. Also to translate strings, see *note Texinfo::Translations:
Texinfo::Translations NAME. For useful methods that need a converter
optionally and can be used in converters that do not inherit from
‘Texinfo::Convert::Converter’, see *note Texinfo::Convert::Utils:
Texinfo::Convert::Utils NAME.
$contents_element = $converter->comma_index_subentries_tree($entry, $separator)
_$entry_ is a Texinfo tree index entry element. The function sets
up an array with the ‘@subentry’ contents. The result is returned
as ‘contents’ in the _$contents_element_ element, or ‘undef’ if
there is no such content. _$separator_ is an optional separator
argument used, if given, instead of the default: a comma followed
by a space.
$result = $converter->convert_accents($accent_command, \&format_accents, $output_encoded_characters, $in_upper_case)
_$accent_command_ is an accent command, which may have other accent
commands nested. The function returns the accents formatted either
as encoded letters if _$output_encoded_characters_ is set, or
formatted using _\&format_accents_. If _$in_upper_case_ is set,
the result should be uppercased.
$result = $converter->convert_document_sections($root, $file_handler)
This method splits the _$root_ Texinfo tree at sections and calls
‘convert_tree’ on the elements. If the optional _$file_handler_ is
given in argument, the result are output in _$file_handler_,
otherwise the resulting string is returned.
$succeeded = $converter->create_destination_directory($destination_directory_path, $destination_directory_name)
Create destination directory _$destination_directory_path_.
_$destination_directory_path_ should be a binary string, while
_$destination_directory_name_ should be a character string, that
can be used in error messages. _$succeeded_ is true if the
creation was successful or uneeded, false otherwise.
($output_file, $destination_directory, $output_filename, $document_name, $input_basefile) = $converter->determine_files_and_directory($output_format)
Determine output file and directory, as well as names related to
files. The result depends on the presence of ‘@setfilename’, on
the Texinfo input file name, and on customization options such as
‘OUTPUT’, ‘SUBDIR’ or ‘SPLIT’, as described in the Texinfo manual.
_$output_format_ is optional. If it is not set the current output
format, if defined, is used instead. If not an empty string,
‘_$output_format’ is prepended to the default directory name.
_$output_file_ is mainly relevant when not split and should be used
as the output file name. In general, if not split and
_$output_file_ is an empty string, it means that text should be
returned by the converter instead of being written to an output
file. This is used in the test suite. _$destination_directory_ is
either the directory _$output_file_ is in, or if split, the
directory where the files should be created. _$output_filename_
is, in general, the file name portion of _$output_file_ (without
directory) but can also be set based on ‘@setfilename’, in
particular when _$output_file_ is an empty string.
_$document_name_ is _$output_filename_ without extension.
_$input_basefile_ is based on the input texinfo file name, with the
file name portion only (without directory).
The strings returned are text strings.
($encoded_name, $encoding) = $converter->encoded_input_file_name($character_string_name, $input_file_encoding)
($encoded_name, $encoding) = $converter->encoded_output_file_name($character_string_name)
Encode _$character_string_name_ in the same way as other file names
are encoded in the converter, based on customization variables, and
possibly on the input file encoding. Return the encoded name and
the encoding used to encode the name. The
‘encoded_input_file_name’ and ‘encoded_output_file_name’ functions
use different customization variables to determine the encoding.
The <$input_file_encoding> argument is optional. If set, it is
used for the input file encoding. It is useful if there is more
precise information on the input file encoding where the file name
appeared.
Note that ‘encoded_output_file_name’ is a wrapper around the
function with the same name in *note
Texinfo::Convert::Utils::encoded_output_file_name:
Texinfo::Convert::Utils ($encoded_name, $encoding) =
$converter->encoded_output_file_name($converter,
$character_string_name), and ‘encoded_input_file_name’ is a wrapper
around the function with the same name in *note
Texinfo::Convert::Utils::encoded_input_file_name:
Texinfo::Convert::Utils ($encoded_name, $encoding) =
$converter->encoded_input_file_name($converter,
$character_string_name, $input_file_encoding).
($caption, $prepended) = $converter->float_name_caption($float)
_$float_ is a texinfo tree ‘@float’ element. This function returns
the caption element that should be used for the float formatting
and the _$prepended_ texinfo tree combining the type and label of
the float.
$tree = $converter->float_type_number($float)
_$float_ is a texinfo tree ‘@float’ element. This function returns
the type and number of the float as a texinfo tree with
translations.
$end_line = $converter->format_comment_or_return_end_line($element)
Format comment at end of line or return the end of line associated
with the element. In many cases, converters ignore comments and
output is better formatted with new lines added independently of
the presence of newline or comment in the initial Texinfo line, so
most converters are better off not using this method.
$filename = sub $converter->node_information_filename($normalized, $node_contents)
Returns the normalized file name corresponding to the _$normalized_
node name and to the _$node_contents_ node name contents.
($normalized_name, $filename) = $converter->normalized_sectioning_command_filename($element)
Returns a normalized name _$normalized_name_ corresponding to a
sectioning command tree element _$element_, expanding the command
argument using transliteration and characters protection. Also
returns _$filename_ the corresponding filename based on
_$normalized_name_ taking into account additional constraint on
file names and adding a file extension.
$converter->present_bug_message($message, $element)
Show a bug message using _$message_ text. Use information on
_$element_ tree element if given in argument.
$converter->set_global_document_commands($commands_location, $selected_commands)
Set the Texinfo customization options for @-commands.
_$selected_commands_ is an optional array reference containing the
@-commands set, if not given all the global informative @-commands
are set. _$commands_location_ specifies where in the document the
value should be taken from. The possibilities are:
before
Set to the values before document conversion, from defaults
and command-line.
last
Set to the last value for the command.
preamble
Set sequentially to the values in the Texinfo preamble.
preamble_or_first
Set to the first value of the command if the first command is
not in the Texinfo preamble, else set as with _preamble_,
sequentially to the values in the Texinfo preamble.
Notice that the only effect of this function is to set a
customization variable value, no @-command side effects are run, no
associated customization variables are set.
For more information on the function used to set the value for each
of the command, see *note Texinfo::Common
set_global_document_command: Texinfo::Common $element =
set_global_document_command($customization_information,
$global_commands_information, $cmdname, $command_location).
$table_item_tree = $converter->table_item_content_tree($element, $contents)
_$element_ should be an ‘@item’ or ‘@itemx’ tree element,
_$contents_ should be corresponding texinfo tree contents. Returns
a tree in which the @-command in argument of ‘@*table’ of the
_$element_ has been applied to _$contents_.
$result = $converter->top_node_filename($document_name)
Returns a file name for the Top node file using either ‘TOP_FILE’
customization value, or ‘EXTENSION’ customization value and
_$document_name_.
Finally, there is:
$result = $converter->output_internal_links()
At this level, the method just returns undef. It is used in the
HTML output, following the ‘--internal-links’ option of ‘texi2any’
specification.
File: texi2any_internals.info, Node: Texinfo::Convert::Converter SEE ALSO, Next: Texinfo::Convert::Converter AUTHOR, Prev: Texinfo::Convert::Converter METHODS, Up: Texinfo::Convert::Converter
13.6 Texinfo::Convert::Converter SEE ALSO
=========================================
*note Texinfo::Common: Texinfo::Common NAME, *note
Texinfo::Convert::Unicode: Texinfo::Convert::Unicode NAME, *note
Texinfo::Report: Texinfo::Report NAME, *note Texinfo::Translations:
Texinfo::Translations NAME, *note Texinfo::Convert::Utils:
Texinfo::Convert::Utils NAME. and *note Texinfo::Parser: Texinfo::Parser
NAME.
File: texi2any_internals.info, Node: Texinfo::Convert::Converter AUTHOR, Next: Texinfo::Convert::Converter COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::Converter SEE ALSO, Up: Texinfo::Convert::Converter
13.7 Texinfo::Convert::Converter AUTHOR
=======================================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Convert::Converter COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::Converter AUTHOR, Up: Texinfo::Convert::Converter
13.8 Texinfo::Convert::Converter COPYRIGHT AND LICENSE
======================================================
Copyright 2011- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Texinfo::Convert::Info, Next: Texinfo::Convert::HTML, Prev: Texinfo::Convert::Converter, Up: Top
14 Texinfo::Convert::Info
*************************
* Menu:
* Texinfo::Convert::Info NAME::
* Texinfo::Convert::Info SYNOPSIS::
* Texinfo::Convert::Info NOTES::
* Texinfo::Convert::Info DESCRIPTION::
* Texinfo::Convert::Info METHODS::
* Texinfo::Convert::Info AUTHOR::
* Texinfo::Convert::Info COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Convert::Info NAME, Next: Texinfo::Convert::Info SYNOPSIS, Up: Texinfo::Convert::Info
14.1 Texinfo::Convert::Info NAME
================================
Texinfo::Convert::Info - Convert Texinfo tree to Info
File: texi2any_internals.info, Node: Texinfo::Convert::Info SYNOPSIS, Next: Texinfo::Convert::Info NOTES, Prev: Texinfo::Convert::Info NAME, Up: Texinfo::Convert::Info
14.2 Texinfo::Convert::Info SYNOPSIS
====================================
my $converter
= Texinfo::Convert::Info->converter({'parser' => $parser});
$converter->output($tree);
$converter->convert($tree);
$converter->convert_tree($tree);
File: texi2any_internals.info, Node: Texinfo::Convert::Info NOTES, Next: Texinfo::Convert::Info DESCRIPTION, Prev: Texinfo::Convert::Info SYNOPSIS, Up: Texinfo::Convert::Info
14.3 Texinfo::Convert::Info NOTES
=================================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Convert::Info DESCRIPTION, Next: Texinfo::Convert::Info METHODS, Prev: Texinfo::Convert::Info NOTES, Up: Texinfo::Convert::Info
14.4 Texinfo::Convert::Info DESCRIPTION
=======================================
Texinfo::Convert::Info converts a Texinfo tree to Info.
File: texi2any_internals.info, Node: Texinfo::Convert::Info METHODS, Next: Texinfo::Convert::Info AUTHOR, Prev: Texinfo::Convert::Info DESCRIPTION, Up: Texinfo::Convert::Info
14.5 Texinfo::Convert::Info METHODS
===================================
$converter = Texinfo::Convert::Info->converter($options)
Initialize converter from Texinfo to Info.
The _$options_ hash reference holds options for the converter. In
this option hash reference a *note parser object: Texinfo::Parser
NAME. may be associated with the _parser_ key. The other options
are Texinfo customization options and a few other options that can
be passed to the converter. Most of the customization options are
described in the Texinfo manual. Those customization options, when
appropriate, override the document content. The parser should not
be available directly anymore after getting the associated
information.
See *note Texinfo::Convert::Converter: Texinfo::Convert::Converter
NAME. for more information.
$converter->output($tree)
Convert a Texinfo tree _$tree_ and output the result in files as
described in the Texinfo manual.
$result = $converter->convert($tree)
Convert a Texinfo tree _$tree_ and return the resulting output.
$result = $converter->convert_tree($tree)
Convert a Texinfo tree portion _$tree_ and return the resulting
output. This function does not try to output a full document but
only portions. For a full document use ‘convert’.
File: texi2any_internals.info, Node: Texinfo::Convert::Info AUTHOR, Next: Texinfo::Convert::Info COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::Info METHODS, Up: Texinfo::Convert::Info
14.6 Texinfo::Convert::Info AUTHOR
==================================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Convert::Info COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::Info AUTHOR, Up: Texinfo::Convert::Info
14.7 Texinfo::Convert::Info COPYRIGHT AND LICENSE
=================================================
Copyright 2010- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Texinfo::Convert::HTML, Next: Texinfo::Convert::DocBook, Prev: Texinfo::Convert::Info, Up: Top
15 Texinfo::Convert::HTML
*************************
* Menu:
* Texinfo::Convert::HTML NAME::
* Texinfo::Convert::HTML SYNOPSIS::
* Texinfo::Convert::HTML NOTES::
* Texinfo::Convert::HTML DESCRIPTION::
* Texinfo::Convert::HTML METHODS::
* Texinfo::Convert::HTML AUTHOR::
* Texinfo::Convert::HTML COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Convert::HTML NAME, Next: Texinfo::Convert::HTML SYNOPSIS, Up: Texinfo::Convert::HTML
15.1 Texinfo::Convert::HTML NAME
================================
Texinfo::Convert::HTML - Convert Texinfo tree to HTML
File: texi2any_internals.info, Node: Texinfo::Convert::HTML SYNOPSIS, Next: Texinfo::Convert::HTML NOTES, Prev: Texinfo::Convert::HTML NAME, Up: Texinfo::Convert::HTML
15.2 Texinfo::Convert::HTML SYNOPSIS
====================================
my $converter
= Texinfo::Convert::HTML->converter({'parser' => $parser});
$converter->output($tree);
$converter->convert($tree);
$converter->convert_tree($tree);
$converter->output_internal_links(); # HTML only
File: texi2any_internals.info, Node: Texinfo::Convert::HTML NOTES, Next: Texinfo::Convert::HTML DESCRIPTION, Prev: Texinfo::Convert::HTML SYNOPSIS, Up: Texinfo::Convert::HTML
15.3 Texinfo::Convert::HTML NOTES
=================================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Convert::HTML DESCRIPTION, Next: Texinfo::Convert::HTML METHODS, Prev: Texinfo::Convert::HTML NOTES, Up: Texinfo::Convert::HTML
15.4 Texinfo::Convert::HTML DESCRIPTION
=======================================
Texinfo::Convert::HTML converts a Texinfo tree to HTML.
File: texi2any_internals.info, Node: Texinfo::Convert::HTML METHODS, Next: Texinfo::Convert::HTML AUTHOR, Prev: Texinfo::Convert::HTML DESCRIPTION, Up: Texinfo::Convert::HTML
15.5 Texinfo::Convert::HTML METHODS
===================================
$converter = Texinfo::Convert::HTML->converter($options)
Initialize converter from Texinfo to HTML.
The _$options_ hash reference holds options for the converter. In
this option hash reference a *note parser object: Texinfo::Parser
NAME. may be associated with the _parser_ key. The other options
are Texinfo customization options and a few other options that can
be passed to the converter. Most of the customization options are
described in the Texinfo manual. Those customization options, when
appropriate, override the document content. The parser should not
be available directly anymore after getting the associated
information.
See *note Texinfo::Convert::Converter: Texinfo::Convert::Converter
NAME. for more information.
$converter->output($tree)
Convert a Texinfo tree _$tree_ and output the result in files as
described in the Texinfo manual.
$result = $converter->convert($tree)
Convert a Texinfo tree _$tree_ and return the resulting output.
$result = $converter->convert_tree($tree)
Convert a Texinfo tree portion _$tree_ and return the resulting
output. This function does not try to output a full document but
only portions. For a full document use ‘convert’.
$result = $converter->output_internal_links()
Returns text representing the links in the document. The format
should follow the ‘--internal-links’ option of the ‘texi2any’
specification. This is only supported in (and relevant for) HTML.
File: texi2any_internals.info, Node: Texinfo::Convert::HTML AUTHOR, Next: Texinfo::Convert::HTML COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::HTML METHODS, Up: Texinfo::Convert::HTML
15.6 Texinfo::Convert::HTML AUTHOR
==================================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Convert::HTML COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::HTML AUTHOR, Up: Texinfo::Convert::HTML
15.7 Texinfo::Convert::HTML COPYRIGHT AND LICENSE
=================================================
Copyright 2010- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Texinfo::Convert::DocBook, Next: Texinfo::Convert::TexinfoMarkup, Prev: Texinfo::Convert::HTML, Up: Top
16 Texinfo::Convert::DocBook
****************************
* Menu:
* Texinfo::Convert::DocBook NAME::
* Texinfo::Convert::DocBook SYNOPSIS::
* Texinfo::Convert::DocBook NOTES::
* Texinfo::Convert::DocBook DESCRIPTION::
* Texinfo::Convert::DocBook METHODS::
* Texinfo::Convert::DocBook AUTHOR::
* Texinfo::Convert::DocBook COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Convert::DocBook NAME, Next: Texinfo::Convert::DocBook SYNOPSIS, Up: Texinfo::Convert::DocBook
16.1 Texinfo::Convert::DocBook NAME
===================================
Texinfo::Convert::DocBook - Convert Texinfo tree to DocBook
File: texi2any_internals.info, Node: Texinfo::Convert::DocBook SYNOPSIS, Next: Texinfo::Convert::DocBook NOTES, Prev: Texinfo::Convert::DocBook NAME, Up: Texinfo::Convert::DocBook
16.2 Texinfo::Convert::DocBook SYNOPSIS
=======================================
my $converter
= Texinfo::Convert::DocBook->converter({'parser' => $parser});
$converter->output($tree);
$converter->convert($tree);
$converter->convert_tree($tree);
File: texi2any_internals.info, Node: Texinfo::Convert::DocBook NOTES, Next: Texinfo::Convert::DocBook DESCRIPTION, Prev: Texinfo::Convert::DocBook SYNOPSIS, Up: Texinfo::Convert::DocBook
16.3 Texinfo::Convert::DocBook NOTES
====================================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Convert::DocBook DESCRIPTION, Next: Texinfo::Convert::DocBook METHODS, Prev: Texinfo::Convert::DocBook NOTES, Up: Texinfo::Convert::DocBook
16.4 Texinfo::Convert::DocBook DESCRIPTION
==========================================
Texinfo::Convert::DocBook converts a Texinfo tree to DocBook.
File: texi2any_internals.info, Node: Texinfo::Convert::DocBook METHODS, Next: Texinfo::Convert::DocBook AUTHOR, Prev: Texinfo::Convert::DocBook DESCRIPTION, Up: Texinfo::Convert::DocBook
16.5 Texinfo::Convert::DocBook METHODS
======================================
$converter = Texinfo::Convert::DocBook->converter($options)
Initialize converter from Texinfo to DocBook.
The _$options_ hash reference holds options for the converter. In
this option hash reference a *note parser object: Texinfo::Parser
NAME. may be associated with the _parser_ key. The other options
are Texinfo customization options and a few other options that can
be passed to the converter. Most of the customization options are
described in the Texinfo manual. Those customization options, when
appropriate, override the document content. The parser should not
be available directly anymore after getting the associated
information.
See *note Texinfo::Convert::Converter: Texinfo::Convert::Converter
NAME. for more information.
$converter->output($tree)
Convert a Texinfo tree _$tree_ and output the result in files as
described in the Texinfo manual.
$result = $converter->convert($tree)
Convert a Texinfo tree _$tree_ and return the resulting output.
$result = $converter->convert_tree($tree)
Convert a Texinfo tree portion _$tree_ and return the resulting
output. This function does not try to output a full document but
only portions. For a full document use ‘convert’.
File: texi2any_internals.info, Node: Texinfo::Convert::DocBook AUTHOR, Next: Texinfo::Convert::DocBook COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::DocBook METHODS, Up: Texinfo::Convert::DocBook
16.6 Texinfo::Convert::DocBook AUTHOR
=====================================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Convert::DocBook COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::DocBook AUTHOR, Up: Texinfo::Convert::DocBook
16.7 Texinfo::Convert::DocBook COPYRIGHT AND LICENSE
====================================================
Copyright 2010- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoMarkup, Next: Texinfo::Convert::TexinfoXML, Prev: Texinfo::Convert::DocBook, Up: Top
17 Texinfo::Convert::TexinfoMarkup
**********************************
* Menu:
* Texinfo::Convert::TexinfoMarkup NAME::
* Texinfo::Convert::TexinfoMarkup SYNOPSIS::
* Texinfo::Convert::TexinfoMarkup NOTES::
* Texinfo::Convert::TexinfoMarkup DESCRIPTION::
* Texinfo::Convert::TexinfoMarkup METHODS::
* Texinfo::Convert::TexinfoMarkup AUTHOR::
* Texinfo::Convert::TexinfoMarkup SEE ALSO::
* Texinfo::Convert::TexinfoMarkup COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoMarkup NAME, Next: Texinfo::Convert::TexinfoMarkup SYNOPSIS, Up: Texinfo::Convert::TexinfoMarkup
17.1 Texinfo::Convert::TexinfoMarkup NAME
=========================================
Texinfo::Convert::TexinfoMarkup - Convert Texinfo tree to element and
attribute markup
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoMarkup SYNOPSIS, Next: Texinfo::Convert::TexinfoMarkup NOTES, Prev: Texinfo::Convert::TexinfoMarkup NAME, Up: Texinfo::Convert::TexinfoMarkup
17.2 Texinfo::Convert::TexinfoMarkup SYNOPSIS
=============================================
package Texinfo::Convert::TexinfoMyMarkup;
use Texinfo::Convert::TexinfoMarkup;
@ISA = qw(Texinfo::Convert::TexinfoMarkup);
sub converter_defaults ($$) {
return %myconverter_defaults;
}
sub txi_markup_protect_text($$)
{
my $self = shift;
....
}
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoMarkup NOTES, Next: Texinfo::Convert::TexinfoMarkup DESCRIPTION, Prev: Texinfo::Convert::TexinfoMarkup SYNOPSIS, Up: Texinfo::Convert::TexinfoMarkup
17.3 Texinfo::Convert::TexinfoMarkup NOTES
==========================================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoMarkup DESCRIPTION, Next: Texinfo::Convert::TexinfoMarkup METHODS, Prev: Texinfo::Convert::TexinfoMarkup NOTES, Up: Texinfo::Convert::TexinfoMarkup
17.4 Texinfo::Convert::TexinfoMarkup DESCRIPTION
================================================
‘Texinfo::Convert::TexinfoMarkup’ converts a Texinfo tree to the Texinfo
Markup Language which is based on nested elements with attributes,
similar to XML. All the information present in the Texinfo tree, after
expansion of ‘@macro’, ‘@value’ and inclusion of include files is kept.
‘Texinfo::Convert::TexinfoMarkup’ is an abstract class, to be used as a
super class for modules implementing specific markup formatting
functions called by ‘Texinfo::Convert::TexinfoMarkup’.
The Texinfo Markup Language elements and attributes are not
documented, but the Texinfo XML output by the
‘Texinfo::Convert::TexinfoXML’ subclass (*note
Texinfo::Convert::TexinfoXML: Texinfo::Convert::TexinfoXML NAME.) is a
straightforward formatting as XML, and is described by the texinfo DTD.
Therefore the texinfo DTD can be used as a description of the structure
of both Texinfo XML and of the more abstract Texinfo Markup Language.
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoMarkup METHODS, Next: Texinfo::Convert::TexinfoMarkup AUTHOR, Prev: Texinfo::Convert::TexinfoMarkup DESCRIPTION, Up: Texinfo::Convert::TexinfoMarkup
17.5 Texinfo::Convert::TexinfoMarkup METHODS
============================================
* Menu:
* Texinfo::Convert::TexinfoMarkup Markup formatting methods defined by subclasses::
* Texinfo::Convert::TexinfoMarkup Formatting state information::
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoMarkup Markup formatting methods defined by subclasses, Next: Texinfo::Convert::TexinfoMarkup Formatting state information, Up: Texinfo::Convert::TexinfoMarkup METHODS
17.5.1 Markup formatting methods defined by subclasses
------------------------------------------------------
The following methods should be implemented by the modules inheriting
from ‘Texinfo::Convert::TexinfoMarkup’:
$result = $converter->txi_markup_atom($atom)
Format the _$atom_ symbol string in a simpler way than with an
element. For example in XML the formatting of the symbol is
achieved with an entity.
$result = $converter->txi_markup_comment($comment_string)
Format _$comment_string_ as a comment.
$result = $converter->txi_markup_convert_text($element)
Called to format the Texinfo tree _$element_ text, which is a
reference on a hash. The _$element_ text is in the ‘text’ key.
The ‘type’ key value may also be set to distinguish the type of
text (*note Texinfo::Parser Types for text elements::). Texinfo
tree elements are described in details in *note Texinfo::Parser
TEXINFO TREE::.
$result = $converter->txi_markup_element($format_element, $attributes)
$result = $converter->txi_markup_open_element($format_element, $attributes)
$result = $converter->txi_markup_close_element($format_element, $attributes)
‘txi_markup_element’ is called for the formatting of empty
elements. Otherwise, ‘txi_markup_open_element’ is called when an
element is opened, and ‘txi_markup_close_element’ is called when an
element is closed. _$format_element_ is the element name,
_$attributes_ is a reference on an array containing references on
arrays of pairs, one pair for each attribute, with the attribute
name as the first item of the pair and the attribute text as the
second item of the pair.
$result = $converter->txi_markup_header()
Called to format a header at the beginning of output files.
$result = $converter->txi_markup_protect_text($string)
Protect special character in text for text fragments out of text
texinfo tree elements. For example, for spaces at end of line that
are ignorable in most output formats, for ‘@set’ or ‘@macro’
arguments.
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoMarkup Formatting state information, Prev: Texinfo::Convert::TexinfoMarkup Markup formatting methods defined by subclasses, Up: Texinfo::Convert::TexinfoMarkup METHODS
17.5.2 Formatting state information
-----------------------------------
A method is available for subclasses to gather information on the
formatting state:
$converter->in_monospace()
Return 1 if in a context where spacing should be kept and ‘---’ or
‘''’ left as is, for example in ‘@code’, ‘@example’.
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoMarkup AUTHOR, Next: Texinfo::Convert::TexinfoMarkup SEE ALSO, Prev: Texinfo::Convert::TexinfoMarkup METHODS, Up: Texinfo::Convert::TexinfoMarkup
17.6 Texinfo::Convert::TexinfoMarkup AUTHOR
===========================================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoMarkup SEE ALSO, Next: Texinfo::Convert::TexinfoMarkup COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::TexinfoMarkup AUTHOR, Up: Texinfo::Convert::TexinfoMarkup
17.7 Texinfo::Convert::TexinfoMarkup SEE ALSO
=============================================
*note Texinfo::Convert::Converter: Texinfo::Convert::Converter NAME.
*note Texinfo::Convert::TexinfoXML: Texinfo::Convert::TexinfoXML NAME.
The ‘Texinfo::Convert::TexinfoSXML’ is another subclass, which outputs
SXML. It is not much documented.
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoMarkup COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::TexinfoMarkup SEE ALSO, Up: Texinfo::Convert::TexinfoMarkup
17.8 Texinfo::Convert::TexinfoMarkup COPYRIGHT AND LICENSE
==========================================================
Copyright 2010- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoXML, Next: Texinfo::Convert::Plaintext, Prev: Texinfo::Convert::TexinfoMarkup, Up: Top
18 Texinfo::Convert::TexinfoXML
*******************************
* Menu:
* Texinfo::Convert::TexinfoXML NAME::
* Texinfo::Convert::TexinfoXML SYNOPSIS::
* Texinfo::Convert::TexinfoXML NOTES::
* Texinfo::Convert::TexinfoXML DESCRIPTION::
* Texinfo::Convert::TexinfoXML METHODS::
* Texinfo::Convert::TexinfoXML AUTHOR::
* Texinfo::Convert::TexinfoXML COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoXML NAME, Next: Texinfo::Convert::TexinfoXML SYNOPSIS, Up: Texinfo::Convert::TexinfoXML
18.1 Texinfo::Convert::TexinfoXML NAME
======================================
Texinfo::Convert::TexinfoXML - Convert Texinfo tree to TexinfoXML
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoXML SYNOPSIS, Next: Texinfo::Convert::TexinfoXML NOTES, Prev: Texinfo::Convert::TexinfoXML NAME, Up: Texinfo::Convert::TexinfoXML
18.2 Texinfo::Convert::TexinfoXML SYNOPSIS
==========================================
my $converter
= Texinfo::Convert::TexinfoXML->converter({'parser' => $parser});
$converter->output($tree);
$converter->convert($tree);
$converter->convert_tree($tree);
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoXML NOTES, Next: Texinfo::Convert::TexinfoXML DESCRIPTION, Prev: Texinfo::Convert::TexinfoXML SYNOPSIS, Up: Texinfo::Convert::TexinfoXML
18.3 Texinfo::Convert::TexinfoXML NOTES
=======================================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoXML DESCRIPTION, Next: Texinfo::Convert::TexinfoXML METHODS, Prev: Texinfo::Convert::TexinfoXML NOTES, Up: Texinfo::Convert::TexinfoXML
18.4 Texinfo::Convert::TexinfoXML DESCRIPTION
=============================================
Texinfo::Convert::TexinfoXML converts a Texinfo tree to TexinfoXML.
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoXML METHODS, Next: Texinfo::Convert::TexinfoXML AUTHOR, Prev: Texinfo::Convert::TexinfoXML DESCRIPTION, Up: Texinfo::Convert::TexinfoXML
18.5 Texinfo::Convert::TexinfoXML METHODS
=========================================
$converter = Texinfo::Convert::TexinfoXML->converter($options)
Initialize converter from Texinfo to TexinfoXML.
The _$options_ hash reference holds options for the converter. In
this option hash reference a *note parser object: Texinfo::Parser
NAME. may be associated with the _parser_ key. The other options
are Texinfo customization options and a few other options that can
be passed to the converter. Most of the customization options are
described in the Texinfo manual. Those customization options, when
appropriate, override the document content. The parser should not
be available directly anymore after getting the associated
information.
See *note Texinfo::Convert::Converter: Texinfo::Convert::Converter
NAME. for more information.
$converter->output($tree)
Convert a Texinfo tree _$tree_ and output the result in files as
described in the Texinfo manual.
$result = $converter->convert($tree)
Convert a Texinfo tree _$tree_ and return the resulting output.
$result = $converter->convert_tree($tree)
Convert a Texinfo tree portion _$tree_ and return the resulting
output. This function does not try to output a full document but
only portions. For a full document use ‘convert’.
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoXML AUTHOR, Next: Texinfo::Convert::TexinfoXML COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::TexinfoXML METHODS, Up: Texinfo::Convert::TexinfoXML
18.6 Texinfo::Convert::TexinfoXML AUTHOR
========================================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Convert::TexinfoXML COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::TexinfoXML AUTHOR, Up: Texinfo::Convert::TexinfoXML
18.7 Texinfo::Convert::TexinfoXML COPYRIGHT AND LICENSE
=======================================================
Copyright 2010- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Texinfo::Convert::Plaintext, Next: Index, Prev: Texinfo::Convert::TexinfoXML, Up: Top
19 Texinfo::Convert::Plaintext
******************************
* Menu:
* Texinfo::Convert::Plaintext NAME::
* Texinfo::Convert::Plaintext SYNOPSIS::
* Texinfo::Convert::Plaintext NOTES::
* Texinfo::Convert::Plaintext DESCRIPTION::
* Texinfo::Convert::Plaintext METHODS::
* Texinfo::Convert::Plaintext AUTHOR::
* Texinfo::Convert::Plaintext COPYRIGHT AND LICENSE::
File: texi2any_internals.info, Node: Texinfo::Convert::Plaintext NAME, Next: Texinfo::Convert::Plaintext SYNOPSIS, Up: Texinfo::Convert::Plaintext
19.1 Texinfo::Convert::Plaintext NAME
=====================================
Texinfo::Convert::Plaintext - Convert Texinfo tree to Plaintext
File: texi2any_internals.info, Node: Texinfo::Convert::Plaintext SYNOPSIS, Next: Texinfo::Convert::Plaintext NOTES, Prev: Texinfo::Convert::Plaintext NAME, Up: Texinfo::Convert::Plaintext
19.2 Texinfo::Convert::Plaintext SYNOPSIS
=========================================
my $converter
= Texinfo::Convert::Plaintext->converter({'parser' => $parser});
$converter->output($tree);
$converter->convert($tree);
$converter->convert_tree($tree);
File: texi2any_internals.info, Node: Texinfo::Convert::Plaintext NOTES, Next: Texinfo::Convert::Plaintext DESCRIPTION, Prev: Texinfo::Convert::Plaintext SYNOPSIS, Up: Texinfo::Convert::Plaintext
19.3 Texinfo::Convert::Plaintext NOTES
======================================
The Texinfo Perl module main purpose is to be used in ‘texi2any’ to
convert Texinfo to other formats. There is no promise of API stability.
File: texi2any_internals.info, Node: Texinfo::Convert::Plaintext DESCRIPTION, Next: Texinfo::Convert::Plaintext METHODS, Prev: Texinfo::Convert::Plaintext NOTES, Up: Texinfo::Convert::Plaintext
19.4 Texinfo::Convert::Plaintext DESCRIPTION
============================================
Texinfo::Convert::Plaintext converts a Texinfo tree to Plaintext.
File: texi2any_internals.info, Node: Texinfo::Convert::Plaintext METHODS, Next: Texinfo::Convert::Plaintext AUTHOR, Prev: Texinfo::Convert::Plaintext DESCRIPTION, Up: Texinfo::Convert::Plaintext
19.5 Texinfo::Convert::Plaintext METHODS
========================================
$converter = Texinfo::Convert::Plaintext->converter($options)
Initialize converter from Texinfo to Plaintext.
The _$options_ hash reference holds options for the converter. In
this option hash reference a *note parser object: Texinfo::Parser
NAME. may be associated with the _parser_ key. The other options
are Texinfo customization options and a few other options that can
be passed to the converter. Most of the customization options are
described in the Texinfo manual. Those customization options, when
appropriate, override the document content. The parser should not
be available directly anymore after getting the associated
information.
See *note Texinfo::Convert::Converter: Texinfo::Convert::Converter
NAME. for more information.
$converter->output($tree)
Convert a Texinfo tree _$tree_ and output the result in files as
described in the Texinfo manual.
$result = $converter->convert($tree)
Convert a Texinfo tree _$tree_ and return the resulting output.
$result = $converter->convert_tree($tree)
Convert a Texinfo tree portion _$tree_ and return the resulting
output. This function does not try to output a full document but
only portions. For a full document use ‘convert’.
File: texi2any_internals.info, Node: Texinfo::Convert::Plaintext AUTHOR, Next: Texinfo::Convert::Plaintext COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::Plaintext METHODS, Up: Texinfo::Convert::Plaintext
19.6 Texinfo::Convert::Plaintext AUTHOR
=======================================
Patrice Dumas, <pertusus@free.fr>
File: texi2any_internals.info, Node: Texinfo::Convert::Plaintext COPYRIGHT AND LICENSE, Prev: Texinfo::Convert::Plaintext AUTHOR, Up: Texinfo::Convert::Plaintext
19.7 Texinfo::Convert::Plaintext COPYRIGHT AND LICENSE
======================================================
Copyright 2010- Free Software Foundation, Inc. See the source file for
all copyright years.
This library 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 3 of the License, or (at your
option) any later version.
File: texi2any_internals.info, Node: Index, Prev: Texinfo::Convert::Plaintext, Up: Top
Appendix A Index
****************
[index ]
* Menu:
* %accent_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 13)
* %all_commands: Texinfo::Common @-COMMAND INFORMATION.
(line 13)
* %block_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 18)
* %blockitem_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 83)
* %brace_code_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 88)
* %brace_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 93)
* %close_paragraph_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 99)
* %commands_args_number: Texinfo::Commands @-COMMAND CLASSES.
(line 104)
* %contain_basic_inline_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 119)
* %contain_plain_text: Texinfo::Commands @-COMMAND CLASSES.
(line 124)
* %def_aliases: Texinfo::Common @-COMMAND INFORMATION.
(line 19)
* %def_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 129)
* %def_no_var_arg_commands: Texinfo::Common @-COMMAND INFORMATION.
(line 19)
* %default_index_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 133)
* %explained_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 138)
* %formattable_line_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 143)
* %formatted_line_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 160)
* %formatted_nobrace_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 152)
* %heading_spec_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 169)
* %in_heading_spec_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 173)
* %index_names: Texinfo::Commands @-COMMAND INFORMATION.
(line 10)
* %inline_conditional_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 185)
* %inline_format_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 185)
* %letter_no_arg_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 190)
* %line_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 199)
* %math_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 195)
* %no_paragraph_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 210)
* %nobrace_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 214)
* %nobrace_symbol_text: Texinfo::Common @-COMMAND INFORMATION.
(line 30)
* %non_formatted_block_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 225)
* %preamble_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 230)
* %preformatted_code_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 236)
* %preformatted_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 236)
* %ref_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 243)
* %root_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 248)
* %sectioning_heading_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 253)
* %small_block_associated_command: Texinfo::Common @-COMMAND INFORMATION.
(line 41)
* %texinfo_output_formats: Texinfo::Common MISC INFORMATION.
(line 20)
* %variadic_commands: Texinfo::Commands @-COMMAND CLASSES.
(line 257)
* add_heading_number: Texinfo::Convert::Utils METHODS.
(line 23)
* ascii_accent: Texinfo::Convert::Text METHODS.
(line 64)
* ascii_accent_fallback: Texinfo::Convert::Text METHODS.
(line 71)
* associate_internal_references: Texinfo::Structuring METHODS.
(line 18)
* brace_no_arg_command: Texinfo::Convert::Unicode METHODS.
(line 7)
* check_nodes_are_referenced: Texinfo::Structuring METHODS.
(line 27)
* check_unicode_point_conversion: Texinfo::Convert::Unicode METHODS.
(line 14)
* collect_commands_in_tree: Texinfo::Common METHODS.
(line 43)
* collect_commands_list_in_tree: Texinfo::Common METHODS.
(line 50)
* comma_index_subentries_tree: Texinfo::Convert::Converter Helper methods.
(line 16)
* complete_node_tree_with_menus: Texinfo::Structuring METHODS.
(line 35)
* complete_tree_nodes_menus: Texinfo::Transformations METHODS.
(line 9)
* complete_tree_nodes_missing_menu: Texinfo::Transformations METHODS.
(line 19)
* convert: Texinfo::Convert::Converter DESCRIPTION.
(line 14)
* convert_accents: Texinfo::Convert::Converter Helper methods.
(line 25)
* convert_document_sections: Texinfo::Convert::Converter Helper methods.
(line 33)
* convert_to_normalized: Texinfo::Convert::NodeNameNormalization METHODS.
(line 7)
* convert_to_texinfo: Texinfo::Convert::Texinfo METHODS.
(line 7)
* convert_to_text: Texinfo::Convert::Text METHODS.
(line 7)
* convert_tree: Texinfo::Convert::Converter DESCRIPTION.
(line 14)
* converter: Texinfo::Convert::Converter Initialization.
(line 6)
* converter_defaults: Texinfo::Convert::Converter Initialization.
(line 37)
* converter_initialize: Texinfo::Convert::Converter Initialization.
(line 43)
* create_destination_directory: Texinfo::Convert::Converter Helper methods.
(line 40)
* definition_arguments_content: Texinfo::Convert::Utils METHODS.
(line 33)
* definition_category_tree: Texinfo::Convert::Utils METHODS.
(line 44)
* determine_files_and_directory: Texinfo::Convert::Converter Helper methods.
(line 48)
* document_error: Texinfo::Report METHODS.
(line 83)
* document_warn: Texinfo::Report METHODS.
(line 83)
* element_associated_processing_encoding: Texinfo::Common METHODS.
(line 57)
* element_is_inline: Texinfo::Common METHODS.
(line 62)
* elements_directions: Texinfo::Structuring METHODS.
(line 41)
* elements_file_directions: Texinfo::Structuring METHODS.
(line 99)
* encoded_accents: Texinfo::Convert::Unicode METHODS.
(line 24)
* encoded_input_file_name: Texinfo::Convert::Utils METHODS.
(line 54)
* encoded_input_file_name <1>: Texinfo::Convert::Converter Helper methods.
(line 76)
* encoded_output_file_name: Texinfo::Convert::Utils METHODS.
(line 54)
* encoded_output_file_name <1>: Texinfo::Convert::Converter Helper methods.
(line 76)
* enumerate_item_representation: Texinfo::Common METHODS.
(line 77)
* errors: Texinfo::Report METHODS.
(line 25)
* expand_today: Texinfo::Convert::Utils METHODS.
(line 71)
* expand_verbatiminclude: Texinfo::Convert::Utils METHODS.
(line 77)
* fill_gaps_in_sectioning: Texinfo::Transformations METHODS.
(line 29)
* find_innermost_accent_contents: Texinfo::Convert::Utils METHODS.
(line 88)
* find_parent_root_command: Texinfo::Common METHODS.
(line 87)
* float_name_caption: Texinfo::Convert::Converter Helper methods.
(line 102)
* float_type_number: Texinfo::Convert::Converter Helper methods.
(line 109)
* floats_information: Texinfo::Parser Getting information on the document.
(line 67)
* force_conf: Texinfo::Convert::Converter Getting and setting customization variables.
(line 13)
* format_comment_or_return_end_line: Texinfo::Convert::Converter Helper methods.
(line 115)
* gdt: Texinfo::Translations METHODS.
(line 17)
* get_conf: Texinfo::Convert::Converter Getting and setting customization variables.
(line 20)
* get_node_node_childs_from_sectioning: Texinfo::Structuring METHODS.
(line 113)
* global_commands_information: Texinfo::Parser Getting information on the document.
(line 42)
* global_information: Texinfo::Parser Getting information on the document.
(line 12)
* index_entry_sort_string: Texinfo::Structuring METHODS.
(line 120)
* indices_information: Texinfo::Parser Getting information on the document.
(line 86)
* insert_nodes_for_sectioning_commands: Texinfo::Transformations METHODS.
(line 43)
* internal_references_information: Texinfo::Parser Getting information on the document.
(line 78)
* is_content_empty: Texinfo::Common METHODS.
(line 104)
* labels_information: Texinfo::Parser Getting information on the document.
(line 55)
* line_error: Texinfo::Report METHODS.
(line 60)
* line_warn: Texinfo::Report METHODS.
(line 60)
* locate_include_file: Texinfo::Common METHODS.
(line 110)
* menu_to_simple_menu: Texinfo::Transformations METHODS.
(line 55)
* merge_indices: Texinfo::Structuring METHODS.
(line 132)
* move_index_entries_after_items_in_tree: Texinfo::Common METHODS.
(line 136)
* new_block_command: Texinfo::Structuring METHODS.
(line 145)
* new_complete_node_menu: Texinfo::Structuring METHODS.
(line 151)
* new_master_menu: Texinfo::Structuring METHODS.
(line 157)
* new_node_menu_entry: Texinfo::Structuring METHODS.
(line 165)
* node_information_filename: Texinfo::Convert::Converter Helper methods.
(line 123)
* nodes_tree: Texinfo::Structuring METHODS.
(line 172)
* normalize_node: Texinfo::Convert::NodeNameNormalization METHODS.
(line 14)
* normalize_top_node_name: Texinfo::Common METHODS.
(line 148)
* normalize_transliterate_texinfo: Texinfo::Convert::NodeNameNormalization METHODS.
(line 23)
* normalized_sectioning_command_filename: Texinfo::Convert::Converter Helper methods.
(line 128)
* number_floats: Texinfo::Structuring METHODS.
(line 187)
* output: Texinfo::Convert::Converter DESCRIPTION.
(line 14)
* output_internal_links: Texinfo::Convert::Converter Helper methods.
(line 194)
* output_internal_links <1>: Texinfo::Convert::HTML METHODS.
(line 39)
* parse_texi_file: Texinfo::Parser Parsing Texinfo text.
(line 44)
* parse_texi_line: Texinfo::Parser Parsing Texinfo text.
(line 20)
* parse_texi_piece: Texinfo::Parser Parsing Texinfo text.
(line 28)
* parse_texi_text: Texinfo::Parser Parsing Texinfo text.
(line 36)
* Parser initialization: Texinfo::Parser Initialization.
(line 10)
* pgdt: Texinfo::Translations METHODS.
(line 62)
* present_bug_message: Texinfo::Convert::Converter Helper methods.
(line 137)
* protect_colon_in_tree: Texinfo::Common METHODS.
(line 155)
* protect_comma_in_tree: Texinfo::Common METHODS.
(line 162)
* protect_first_parenthesis: Texinfo::Common METHODS.
(line 166)
* protect_hashchar_at_line_beginning: Texinfo::Transformations METHODS.
(line 65)
* protect_node_after_label_in_tree: Texinfo::Common METHODS.
(line 155)
* reference_to_arg_in_tree: Texinfo::Transformations METHODS.
(line 79)
* regenerate_master_menu: Texinfo::Transformations METHODS.
(line 87)
* registered_errors: Texinfo::Parser Parsing Texinfo text.
(line 59)
* relate_index_entries_to_table_items_in_tree: Texinfo::Common METHODS.
(line 142)
* replace_convert_substrings: Texinfo::Translations METHODS.
(line 69)
* section_level: Texinfo::Common METHODS.
(line 172)
* section_level_adjusted_command_name: Texinfo::Structuring METHODS.
(line 192)
* sectioning_structure: Texinfo::Structuring METHODS.
(line 198)
* set_conf: Texinfo::Convert::Converter Getting and setting customization variables.
(line 25)
* set_global_document_command: Texinfo::Common METHODS.
(line 177)
* set_global_document_commands: Texinfo::Convert::Converter Helper methods.
(line 142)
* set_informative_command_value: Texinfo::Common METHODS.
(line 211)
* set_menus_node_directions: Texinfo::Structuring METHODS.
(line 240)
* set_menus_to_simple_menu: Texinfo::Transformations METHODS.
(line 55)
* set_output_encodings: Texinfo::Common METHODS.
(line 220)
* setup_index_entry_keys_formatting: Texinfo::Structuring METHODS.
(line 260)
* sort_indices: Texinfo::Structuring METHODS.
(line 265)
* split_by_node: Texinfo::Structuring METHODS.
(line 285)
* split_by_section: Texinfo::Structuring METHODS.
(line 308)
* split_custom_heading_command_contents: Texinfo::Common METHODS.
(line 228)
* split_pages: Texinfo::Structuring METHODS.
(line 318)
* string_width: Texinfo::Convert::Unicode METHODS.
(line 49)
* table_item_content_tree: Texinfo::Convert::Converter Helper methods.
(line 179)
* Texinfo tree element extra key: Texinfo::Parser Information available in the extra key.
(line 6)
* Texinfo tree element structure: Texinfo::Parser Element keys.
(line 6)
* Texinfo tree elements: Texinfo::Parser TEXINFO TREE.
(line 6)
* Texinfo::Convert::Converter initialization: Texinfo::Convert::Converter Initialization.
(line 6)
* Texinfo::Parser::parser: Texinfo::Parser Initialization.
(line 10)
* Texinfo::Report::new: Texinfo::Report METHODS.
(line 15)
* text_accents: Texinfo::Convert::Text METHODS.
(line 78)
* top_node_filename: Texinfo::Convert::Converter Helper methods.
(line 186)
* transliterate_protect_file_name: Texinfo::Convert::NodeNameNormalization METHODS.
(line 38)
* transliterate_texinfo: Texinfo::Convert::NodeNameNormalization METHODS.
(line 31)
* trim_spaces_comment_from_content: Texinfo::Common METHODS.
(line 237)
* unicode_accent: Texinfo::Convert::Unicode METHODS.
(line 55)
* unicode_point_decoded_in_encoding: Texinfo::Convert::Unicode METHODS.
(line 62)
* unicode_text: Texinfo::Convert::Unicode METHODS.
(line 74)
* valid_option: Texinfo::Common METHODS.
(line 242)
* valid_tree_transformation: Texinfo::Common METHODS.
(line 246)
* warn_non_empty_parts: Texinfo::Structuring METHODS.
(line 343)
* xml_accent: Texinfo::Convert::Converter Conversion to XML.
(line 24)
* xml_accents: Texinfo::Convert::Converter Conversion to XML.
(line 36)
* xml_comment: Texinfo::Convert::Converter Conversion to XML.
(line 20)
* xml_format_text_with_numeric_entities: Texinfo::Convert::Converter Conversion to XML.
(line 11)
* xml_numeric_entity_accent: Texinfo::Convert::Converter Conversion to XML.
(line 42)
* xml_protect_text: Texinfo::Convert::Converter Conversion to XML.
(line 16)
Tag Table:
Node: Top300
Node: Texinfo::Commands8222
Node: Texinfo::Commands NAME8686
Node: Texinfo::Commands SYNOPSIS8912
Node: Texinfo::Commands NOTES9271
Node: Texinfo::Commands DESCRIPTION9636
Node: Texinfo::Commands @-COMMAND INFORMATION9992
Ref: Texinfo::Commands %index_names10340
Node: Texinfo::Commands @-COMMAND CLASSES10571
Ref: Texinfo::Commands %accent_commands11010
Ref: Texinfo::Commands %block_commands11159
Ref: Texinfo::Commands _conditional_11257
Ref: Texinfo::Commands _def_11301
Ref: Texinfo::Commands _float_11365
Ref: Texinfo::Commands _format_raw_11409
Ref: Texinfo::Commands _item_container_11506
Ref: Texinfo::Commands _item_line_11632
Ref: Texinfo::Commands _menu_11743
Ref: Texinfo::Commands _math_11836
Ref: Texinfo::Commands _multitable_11912
Ref: Texinfo::Commands _other_11956
Ref: Texinfo::Commands _preformatted_12018
Ref: Texinfo::Commands _quotation_12141
Ref: Texinfo::Commands _raw_12196
Ref: Texinfo::Commands _region_12347
Ref: Texinfo::Commands %blockitem_commands12524
Ref: Texinfo::Commands %brace_code_commands12696
Ref: Texinfo::Commands %brace_commands12797
Ref: Texinfo::Commands %close_paragraph_commands13046
Ref: Texinfo::Commands %commands_args_number13183
Ref: Texinfo::Commands %contain_basic_inline_commands13946
Ref: Texinfo::Commands %contain_plain_text_commands14141
Ref: Texinfo::Commands %def_commands14242
Ref: Texinfo::Commands %default_index_commands14294
Ref: Texinfo::Commands %explained_commands14409
Ref: Texinfo::Commands %formattable_line_commands14590
Ref: Texinfo::Commands %formatted_nobrace_commands14998
Ref: Texinfo::Commands %formatted_line_commands15333
Ref: Texinfo::Commands %heading_spec_commands15761
Ref: Texinfo::Commands %in_heading_spec_commands15864
Ref: Texinfo::Commands %in_index_commands16002
Ref: Texinfo::Commands %inline_conditional_commands16125
Ref: Texinfo::Commands %inline_format_commands16150
Ref: Texinfo::Commands %letter_no_arg_commands16313
Ref: Texinfo::Commands %math_commands16452
Ref: Texinfo::Commands %line_commands16546
Ref: Texinfo::Commands %no_paragraph_commands17009
Ref: Texinfo::Commands %nobrace_commands17074
Ref: Texinfo::Commands %non_formatted_block_commands17567
Ref: Texinfo::Commands %preamble_commands17675
Ref: Texinfo::Commands %preformatted_commands17747
Ref: Texinfo::Commands %preformatted_code_commands17776
Ref: Texinfo::Commands %ref_commands18029
Ref: Texinfo::Commands %root_commands18134
Ref: Texinfo::Commands %sectioning_heading_commands18317
Ref: Texinfo::Commands %variadic_commands18384
Node: Texinfo::Commands SEE ALSO18447
Node: Texinfo::Commands AUTHOR18727
Node: Texinfo::Commands COPYRIGHT AND LICENSE18994
Node: Texinfo::Common19559
Node: Texinfo::Common NAME20040
Node: Texinfo::Common SYNOPSIS20281
Node: Texinfo::Common NOTES20709
Node: Texinfo::Common DESCRIPTION21062
Node: Texinfo::Common MISC INFORMATION21440
Ref: Texinfo::Common %texinfo_output_formats22207
Node: Texinfo::Common @-COMMAND INFORMATION22389
Ref: Texinfo::Common %all_commands22823
Ref: Texinfo::Common %def_aliases22863
Ref: Texinfo::Common %def_no_var_arg_commands22889
Ref: Texinfo::Common %nobrace_symbol_text23408
Ref: Texinfo::Common %non_formatted_brace_commands23610
Ref: Texinfo::Common %small_block_associated_command23778
Node: Texinfo::Common METHODS23876
Ref: Texinfo::Common $translated_string = __($msgid)24695
Ref: Texinfo::Common $translated_string = __p($msgctxt, $msgid)24739
Ref: Texinfo::Common collect_commands_in_tree($tree, $commands_list)26012
Ref: Texinfo::Common collect_commands_list_in_tree($tree, $commands_list)26298
Ref: Texinfo::Common $encoding_name = element_associated_processing_encoding($element)26597
Ref: Texinfo::Common $result = element_is_inline($element, $check_current)26785
Ref: Texinfo::Common ($encoded_file_name, $encoding) = encode_file_name($file_name, $input_encoding)27068
Ref: Texinfo::Common $text = enumerate_item_representation($specification, $number)27539
Ref: Texinfo::Common $command = find_parent_root_command($object, $tree_element)27869
Ref: Texinfo::Common $entry_content_element = index_content_element($element, $prefer_reference_element)28194
Ref: Texinfo::Common $result = is_content_empty($tree, $do_not_ignore_index_entries)28704
Ref: Texinfo::Common $file = locate_include_file($customization_information, file_path)28951
Ref: Texinfo::Common ($index_entry, $index_info) = lookup_index_entry($index_entry_info, $indices_information)29526
Ref: Texinfo::Common move_index_entries_after_items_in_tree($tree)30356
Ref: Texinfo::Common relate_index_entries_to_table_items_in_tree($tree)30606
Ref: Texinfo::Common $normalized_name = normalize_top_node_name($node_string)30831
Ref: Texinfo::Common protect_colon_in_tree($tree)30952
Ref: Texinfo::Common protect_node_after_label_in_tree($tree)30993
Ref: Texinfo::Common protect_comma_in_tree($tree)31310
Ref: Texinfo::Common $contents_result = protect_first_parenthesis($contents)31440
Ref: Texinfo::Common $level = section_level($section)31663
Ref: Texinfo::Common $element = set_global_document_command($customization_information, $global_commands_information, $cmdname, $command_location)31902
Ref: Texinfo::Common last32464
Ref: Texinfo::Common preamble32529
Ref: Texinfo::Common preamble_or_first32620
Ref: Texinfo::Common $status = set_informative_command_value($customization_information, $element)33245
Ref: Texinfo::Common set_output_encodings($customization_information, $parser_information)33694
Ref: Texinfo::Common $split_contents = split_custom_heading_command_contents($contents)34111
Ref: Texinfo::Common trim_spaces_comment_from_content($contents)34499
Ref: Texinfo::Common $status = valid_customization_option($name)34676
Ref: Texinfo::Common $status = valid_tree_transformation($name)34786
Node: Texinfo::Common SEE ALSO34938
Node: Texinfo::Common AUTHOR35318
Node: Texinfo::Common COPYRIGHT AND LICENSE35573
Node: Texinfo::Parser36130
Node: Texinfo::Parser NAME36568
Node: Texinfo::Parser SYNOPSIS36791
Node: Texinfo::Parser NOTES38167
Node: Texinfo::Parser DESCRIPTION38520
Node: Texinfo::Parser METHODS39151
Node: Texinfo::Parser Initialization39714
Ref: Texinfo::Parser $parser = Texinfo::Parser::parser($options);40028
Ref: Texinfo::Parser CPP_LINE_DIRECTIVES40254
Ref: Texinfo::Parser EXPANDED_FORMATS40370
Ref: Texinfo::Parser FORMAT_MENU40546
Ref: Texinfo::Parser INCLUDE_DIRECTORIES40709
Ref: Texinfo::Parser IGNORE_SPACE_AFTER_BRACED_COMMAND_NAME40923
Ref: Texinfo::Parser MAX_MACRO_CALL_NESTING41055
Ref: Texinfo::Parser documentlanguage41170
Ref: Texinfo::Parser registrar41371
Ref: Texinfo::Parser values41500
Node: Texinfo::Parser Parsing Texinfo text41629
Ref: Texinfo::Parser $tree = parse_texi_line($parser, $text, $first_line_number)42587
Ref: Texinfo::Parser $tree = parse_texi_piece($parser, $text, $first_line_number)42871
Ref: Texinfo::Parser $tree = parse_texi_text($parser, $text, $first_line_number)43150
Ref: Texinfo::Parser $tree = parse_texi_file($parser, $file_name)43423
Ref: Texinfo::Parser $registrar = registered_errors($parser)44088
Node: Texinfo::Parser Getting information on the document44374
Ref: Texinfo::Parser $info = global_information($parser)44842
Ref: Texinfo::Parser dircategory_direntry44940
Ref: Texinfo::Parser input_encoding_name45081
Ref: Texinfo::Parser input_perl_encoding45107
Ref: Texinfo::Parser input_file_name45314
Ref: Texinfo::Parser input_directory45336
Ref: Texinfo::Parser $commands = global_commands_information($parser)45869
Ref: Texinfo::Parser $labels_information, $targets_list, $nodes_list = labels_information($parser)46499
Ref: Texinfo::Parser $float_types = floats_information($parser)47073
Ref: Texinfo::Parser $internal_references_array = internal_references_information($parser)47593
Ref: Texinfo::Parser $indices_information = $parser->indices_information()47883
Ref: Texinfo::Parser in_code47961
Ref: Texinfo::Parser name48069
Ref: Texinfo::Parser prefix48109
Ref: Texinfo::Parser merged_in48190
Ref: Texinfo::Parser contained_indices48404
Ref: Texinfo::Parser index_entries48678
Ref: Texinfo::Parser index_name49047
Ref: Texinfo::Parser entry_element49265
Ref: Texinfo::Parser entry_number49406
Node: Texinfo::Parser TEXINFO TREE50017
Node: Texinfo::Parser Element keys51949
Ref: Texinfo::Parser cmdname52139
Ref: Texinfo::Parser text52191
Ref: Texinfo::Parser type52239
Ref: Texinfo::Parser args52830
Ref: Texinfo::Parser contents52909
Ref: Texinfo::Parser parent53063
Ref: Texinfo::Parser source_info53102
Ref: Texinfo::Parser line_nr53509
Ref: Texinfo::Parser file_name53570
Ref: Texinfo::Parser macro53633
Ref: Texinfo::Parser info53702
Ref: Texinfo::Parser extra53937
Node: Texinfo::Parser Element types54228
Node: Texinfo::Parser Types for command elements54667
Ref: Texinfo::Parser command_as_argument55138
Ref: Texinfo::Parser def_line55689
Ref: Texinfo::Parser definfoenclose_command55966
Ref: Texinfo::Parser index_entry_command56170
Node: Texinfo::Parser Types for text elements56490
Ref: Texinfo::Parser after_menu_description_line56877
Ref: Texinfo::Parser space_at_end_menu_node56901
Ref: Texinfo::Parser empty_line57040
Ref: Texinfo::Parser ignorable_spaces_after_command57142
Ref: Texinfo::Parser spaces_after_close_brace57410
Ref: Texinfo::Parser spaces_before_paragraph57595
Ref: Texinfo::Parser raw57652
Ref: Texinfo::Parser rawline_arg57783
Ref: Texinfo::Parser spaces_at_end58056
Ref: Texinfo::Parser text_after_end58167
Ref: Texinfo::Parser text_before_beginning58223
Ref: Texinfo::Parser untranslated58324
Node: Texinfo::Parser Tree container elements58518
Ref: Texinfo::Parser before_node_section58980
Ref: Texinfo::Parser document_root59092
Ref: Texinfo::Parser root_line59103
Ref: Texinfo::Parser postamble_after_end59485
Ref: Texinfo::Parser preamble_before_beginning59572
Ref: Texinfo::Parser preamble_before_setfilename59751
Ref: Texinfo::Parser preamble_before_content59854
Node: Texinfo::Parser Types of container elements60011
Ref: Texinfo::Parser balanced_braces60885
Ref: Texinfo::Parser before_item61241
Ref: Texinfo::Parser brace_command_arg61411
Ref: Texinfo::Parser brace_command_context61434
Ref: Texinfo::Parser line_arg61444
Ref: Texinfo::Parser block_line_arg61460
Ref: Texinfo::Parser following_arg61475
Ref: Texinfo::Parser bracketed_arg62849
Ref: Texinfo::Parser bracketed_linemacro_arg62959
Ref: Texinfo::Parser def_aggregate63277
Ref: Texinfo::Parser def_line 163373
Ref: Texinfo::Parser def_item63383
Ref: Texinfo::Parser inter_def_item63399
Ref: Texinfo::Parser macro_call63832
Ref: Texinfo::Parser rmacro_call63845
Ref: Texinfo::Parser linemacro_call63861
Ref: Texinfo::Parser macro_name64135
Ref: Texinfo::Parser macro_arg64146
Ref: Texinfo::Parser menu_comment64432
Ref: Texinfo::Parser menu_entry64764
Ref: Texinfo::Parser menu_entry_leading_text64789
Ref: Texinfo::Parser menu_entry_name64806
Ref: Texinfo::Parser menu_entry_separator64828
Ref: Texinfo::Parser menu_entry_node64845
Ref: Texinfo::Parser menu_entry_description64869
Ref: Texinfo::Parser multitable_head65452
Ref: Texinfo::Parser multitable_body65469
Ref: Texinfo::Parser row65474
Ref: Texinfo::Parser paragraph65747
Ref: Texinfo::Parser preformatted66092
Ref: Texinfo::Parser rawpreformatted66290
Ref: Texinfo::Parser table_entry66402
Ref: Texinfo::Parser table_term66414
Ref: Texinfo::Parser table_definition66432
Ref: Texinfo::Parser inter_item66444
Node: Texinfo::Parser Information available in the info key67098
Ref: Texinfo::Parser arg_line67435
Ref: Texinfo::Parser command_name67604
Ref: Texinfo::Parser delimiter67778
Ref: Texinfo::Parser spaces_after_argument67848
Ref: Texinfo::Parser spaces_after_cmd_before_arg68335
Ref: Texinfo::Parser spaces_before_argument68808
Node: Texinfo::Parser Information available in the extra key69353
Node: Texinfo::Parser Extra keys available for more than one @-command69800
Ref: Texinfo::Parser element_node70175
Ref: Texinfo::Parser element_region70364
Ref: Texinfo::Parser index_entry70587
Ref: Texinfo::Parser index_ignore_chars71599
Ref: Texinfo::Parser misc_args71849
Ref: Texinfo::Parser missing_argument72091
Ref: Texinfo::Parser text_arg72175
Node: Texinfo::Parser Extra keys specific of certain @-commands or containers72375
Ref: Texinfo::Parser @abbr72763
Ref: Texinfo::Parser @acronym72779
Ref: Texinfo::Parser @anchor72850
Ref: Texinfo::Parser @float72864
Ref: Texinfo::Parser @author73156
Ref: Texinfo::Parser @click73506
Ref: Texinfo::Parser definition command73589
Ref: Texinfo::Parser def_line 273885
Ref: Texinfo::Parser @definfoenclose defined commands74921
Ref: Texinfo::Parser @documentencoding75076
Ref: Texinfo::Parser @enumerate75154
Ref: Texinfo::Parser @float 175258
Ref: Texinfo::Parser @listoffloats75279
Ref: Texinfo::Parser index entry @-command75650
Ref: Texinfo::Parser @subentry75667
Ref: Texinfo::Parser @inlinefmt76107
Ref: Texinfo::Parser @inlineraw76125
Ref: Texinfo::Parser @inlinefmtifelse76149
Ref: Texinfo::Parser @inlineifclear76171
Ref: Texinfo::Parser @inlineifset76191
Ref: Texinfo::Parser @item in @enumerate or @itemize76600
Ref: Texinfo::Parser @item and @tab in @multitable76720
Ref: Texinfo::Parser @itemize76818
Ref: Texinfo::Parser @table76832
Ref: Texinfo::Parser @vtable76847
Ref: Texinfo::Parser @ftable76862
Ref: Texinfo::Parser @kbd77258
Ref: Texinfo::Parser @macro77343
Ref: Texinfo::Parser menu_entry_node 177515
Ref: Texinfo::Parser @multitable77726
Ref: Texinfo::Parser @node77966
Ref: Texinfo::Parser paragraph 179039
Ref: Texinfo::Parser @part79175
Ref: Texinfo::Parser @ref79415
Ref: Texinfo::Parser @xref79428
Ref: Texinfo::Parser @pxref79442
Ref: Texinfo::Parser @inforef79458
Ref: Texinfo::Parser row 179675
Ref: Texinfo::Parser sectioning command79786
Ref: Texinfo::Parser untranslated 180077
Node: Texinfo::Parser SEE ALSO80224
Node: Texinfo::Parser AUTHOR80510
Node: Texinfo::Parser COPYRIGHT AND LICENSE80765
Node: Texinfo::Structuring81320
Node: Texinfo::Structuring NAME81775
Node: Texinfo::Structuring SYNOPSIS82028
Node: Texinfo::Structuring NOTES84480
Node: Texinfo::Structuring DESCRIPTION84863
Node: Texinfo::Structuring METHODS86799
Ref: Texinfo::Structuring associate_internal_references($registrar, $customization_information, $parser_information, $labels, $refs)87736
Ref: Texinfo::Structuring check_nodes_are_referenced($registrar, $customization_information, $nodes_list, $top_node, $labels, $refs)88257
Ref: Texinfo::Structuring complete_node_tree_with_menus($registrar, $customization_information, $nodes_list, $top_node)88595
Ref: Texinfo::Structuring elements_directions($customization_information, $labels, $tree_units)88837
Ref: Texinfo::Structuring This89144
Ref: Texinfo::Structuring Forward89189
Ref: Texinfo::Structuring Back89225
Ref: Texinfo::Structuring NodeForward89272
Ref: Texinfo::Structuring NodeBack89420
Ref: Texinfo::Structuring NodeUp89468
Ref: Texinfo::Structuring NodeNext89483
Ref: Texinfo::Structuring NodePrev89498
Ref: Texinfo::Structuring Up89559
Ref: Texinfo::Structuring Next89570
Ref: Texinfo::Structuring Prev89581
Ref: Texinfo::Structuring FastBack89651
Ref: Texinfo::Structuring FastForward89967
Ref: Texinfo::Structuring elements_file_directions($tree_units)90053
Ref: Texinfo::Structuring @nodes_list = get_node_node_childs_from_sectioning($node)90622
Ref: Texinfo::Structuring $entry_key = index_entry_sort_string($main_entry, $entry_tree_element, $sortas, $options)90945
Ref: Texinfo::Structuring $merged_entries = merge_indices($indices_information)91638
Ref: Texinfo::Structuring $new_block = new_block_command($content, $parent, $command_name)92248
Ref: Texinfo::Structuring $new_menu = new_complete_node_menu($node, $use_sections)92457
Ref: Texinfo::Structuring $detailmenu = new_master_menu($translations, $labels, $menus)92731
Ref: Texinfo::Structuring $entry = new_node_menu_entry($node, $use_sections)93104
Ref: Texinfo::Structuring $top_node = nodes_tree($registrar, $customization_information, $parser_information, $nodes_list, $labels)93443
Ref: Texinfo::Structuring node_up93632
Ref: Texinfo::Structuring node_prev93648
Ref: Texinfo::Structuring node_next93664
Ref: Texinfo::Structuring number_floats($float_information)93757
Ref: Texinfo::Structuring $command_name = section_level_adjusted_command_name($element)93964
Ref: Texinfo::Structuring $sections_root, $sections_list = sectioning_structure($registrar, $customization_information, $tree)94250
Ref: Texinfo::Structuring section_level94623
Ref: Texinfo::Structuring section_number94872
Ref: Texinfo::Structuring section_childs94935
Ref: Texinfo::Structuring section_up95025
Ref: Texinfo::Structuring section_prev95044
Ref: Texinfo::Structuring section_next95063
Ref: Texinfo::Structuring toplevel_next95141
Ref: Texinfo::Structuring toplevel_prev95161
Ref: Texinfo::Structuring toplevel_up95179
Ref: Texinfo::Structuring set_menus_node_directions($registrar, $customization_information, $parser_information, $global_commands, $nodes_list, $labels);95518
Ref: Texinfo::Structuring menu_child95702
Ref: Texinfo::Structuring menu_up95768
Ref: Texinfo::Structuring menu_next95784
Ref: Texinfo::Structuring menu_prev95800
Ref: Texinfo::Structuring $option = setup_index_entry_keys_formatting($customization_information)95934
Ref: Texinfo::Structuring ($index_entries_sorted, $index_entries_sort_strings) = sort_indices($registrar, $customization_information, $merged_index_entries, $indices_information, $sort_by_letter)96198
Ref: Texinfo::Structuring $tree_units = split_by_node($tree)97009
Ref: Texinfo::Structuring unit_command97832
Ref: Texinfo::Structuring $tree_units = split_by_section($tree)97928
Ref: Texinfo::Structuring $pages = split_pages($tree_units, $split)98321
Ref: Texinfo::Structuring chapter98593
Ref: Texinfo::Structuring node98702
Ref: Texinfo::Structuring section98758
Ref: Texinfo::Structuring value evaluating to false98864
Ref: Texinfo::Structuring warn_non_empty_parts($registrar, $customization_information, $global_commands)99034
Node: Texinfo::Structuring SEE ALSO99240
Node: Texinfo::Structuring AUTHOR99591
Node: Texinfo::Structuring COPYRIGHT AND LICENSE99876
Node: Texinfo::Report100456
Node: Texinfo::Report NAME100838
Node: Texinfo::Report SYNOPSIS101059
Node: Texinfo::Report NOTES101658
Node: Texinfo::Report DESCRIPTION102011
Node: Texinfo::Report METHODS102808
Ref: Texinfo::Report my $registrar = Texinfo::Report::new()103303
Ref: Texinfo::Report $converter->Texinfo::Report::new()103339
Ref: Texinfo::Report ($error_warnings_list, $error_count) = errors($registrar)103771
Ref: Texinfo::Report type104041
Ref: Texinfo::Report text104101
Ref: Texinfo::Report error_line104152
Ref: Texinfo::Report line_nr104278
Ref: Texinfo::Report file_name104346
Ref: Texinfo::Report macro104418
Ref: Texinfo::Report $registrar->line_warn($text, $configuration_information, $error_location_info, $continuation, $silent)104621
Ref: Texinfo::Report $registrar->line_error($text, $configuration_information, $error_location_info, $continuation, $silent)104726
Ref: Texinfo::Report $registrar->document_warn($configuration_information, $text, $continuation)105809
Ref: Texinfo::Report $registrar->document_error($configuration_information, $text, $continuation)105887
Node: Texinfo::Report AUTHOR106219
Node: Texinfo::Report COPYRIGHT AND LICENSE106473
Node: Texinfo::Translations107028
Node: Texinfo::Translations NAME107468
Node: Texinfo::Translations SYNOPSIS107752
Node: Texinfo::Translations NOTES108225
Node: Texinfo::Translations DESCRIPTION108614
Node: Texinfo::Translations METHODS109244
Ref: Texinfo::Translations $tree = $object->gdt($string, $replaced_substrings, $translation_context, $mode, $lang)109985
Ref: Texinfo::Translations translated_text111935
Ref: Texinfo::Translations $tree = $object->pgdt($translation_context, $string, $replaced_substrings, $mode, $lang)112244
Ref: Texinfo::Translations $tree = $object->replace_convert_substrings($translated_string, $replaced_substrings, $mode)112596
Node: Texinfo::Translations AUTHOR113381
Node: Texinfo::Translations COPYRIGHT AND LICENSE113671
Node: Texinfo::Transformations114256
Node: Texinfo::Transformations NAME114733
Node: Texinfo::Transformations NOTES115008
Node: Texinfo::Transformations DESCRIPTION115411
Node: Texinfo::Transformations METHODS116056
Ref: Texinfo::Transformations complete_tree_nodes_menus($tree, $add_section_names_in_entries)116431
Ref: Texinfo::Transformations complete_tree_nodes_missing_menu($tree, $use_section_names_in_entries)116949
Ref: Texinfo::Transformations ($root_content, $added_sections) = fill_gaps_in_sectioning($tree)117463
Ref: Texinfo::Transformations ($root_content, $added_nodes) = insert_nodes_for_sectioning_commands($tree, $nodes_list, $targets_list, $labels)118222
Ref: Texinfo::Transformations menu_to_simple_menu($menu)118605
Ref: Texinfo::Transformations set_menus_to_simple_menu($nodes_list)118644
Ref: Texinfo::Transformations protect_hashchar_at_line_beginning($registrar, $customization_information, $tree)119117
Ref: Texinfo::Transformations $modified_tree = reference_to_arg_in_tree($tree)119910
Ref: Texinfo::Transformations regenerate_master_menu($translations, $labels)120314
Node: Texinfo::Transformations SEE ALSO120628
Node: Texinfo::Transformations AUTHOR121003
Node: Texinfo::Transformations COPYRIGHT AND LICENSE121312
Node: Texinfo::Convert::Texinfo121912
Node: Texinfo::Convert::Texinfo NAME122400
Node: Texinfo::Convert::Texinfo SYNOPSIS122686
Node: Texinfo::Convert::Texinfo NOTES123058
Node: Texinfo::Convert::Texinfo DESCRIPTION123471
Node: Texinfo::Convert::Texinfo METHODS124130
Ref: Texinfo::Convert::Texinfo $texinfo_text = convert_to_texinfo($tree)124443
Node: Texinfo::Convert::Texinfo AUTHOR124501
Node: Texinfo::Convert::Texinfo COPYRIGHT AND LICENSE124815
Node: Texinfo::Convert::Utils125420
Node: Texinfo::Convert::Utils NAME125928
Node: Texinfo::Convert::Utils SYNOPSIS126212
Node: Texinfo::Convert::Utils NOTES126746
Node: Texinfo::Convert::Utils DESCRIPTION127147
Node: Texinfo::Convert::Utils METHODS127656
Ref: Texinfo::Convert::Utils $result = add_heading_number($converter, $heading_element, $heading_text, $do_number)128758
Ref: Texinfo::Convert::Utils ($category, $class, $type, $name, $arguments) = definition_arguments_content($element)129301
Ref: Texinfo::Convert::Utils $tree = definition_category_tree($converter, $def_line)129847
Ref: Texinfo::Convert::Utils ($encoded_name, $encoding) = $converter->encoded_input_file_name($converter, $character_string_name, $input_file_encoding)130304
Ref: Texinfo::Convert::Utils ($encoded_name, $encoding) = $converter->encoded_output_file_name($converter, $character_string_name)130407
Ref: Texinfo::Convert::Utils $tree = expand_today($converter)131229
Ref: Texinfo::Convert::Utils $tree = expand_verbatiminclude($registrar, $customization_information, $verbatiminclude)131517
Ref: Texinfo::Convert::Utils (\@contents, \@accent_commands) = find_innermost_accent_contents($element)132095
Ref: Texinfo::Convert::Utils $heading_element = find_root_command_next_heading_command($element, $expanded_format_raw, $do_not_ignore_contents, $do_not_ignore_index_entries)132554
Node: Texinfo::Convert::Utils SEE ALSO133289
Node: Texinfo::Convert::Utils AUTHOR133682
Node: Texinfo::Convert::Utils COPYRIGHT AND LICENSE133985
Node: Texinfo::Convert::Unicode134580
Node: Texinfo::Convert::Unicode NAME135085
Node: Texinfo::Convert::Unicode SYNOPSIS135371
Node: Texinfo::Convert::Unicode NOTES136172
Node: Texinfo::Convert::Unicode DESCRIPTION136587
Node: Texinfo::Convert::Unicode METHODS137412
Ref: Texinfo::Convert::Unicode $result = brace_no_arg_command($command_name, $encoding)137742
Ref: Texinfo::Convert::Unicode $possible_conversion = check_unicode_point_conversion($arg, $output_debug)138082
Ref: Texinfo::Convert::Unicode $result = encoded_accents($converter, $text, $stack, $encoding, $format_accent, $set_case)138642
Ref: Texinfo::Convert::Unicode $width = string_width($string)139926
Ref: Texinfo::Convert::Unicode $result = unicode_accent($text, $accent_command)140179
Ref: Texinfo::Convert::Unicode $is_decoded = unicode_point_decoded_in_encoding($encoding, $unicode_point)140514
Ref: Texinfo::Convert::Unicode $result = unicode_text($text, $in_code)141033
Node: Texinfo::Convert::Unicode AUTHOR141243
Node: Texinfo::Convert::Unicode COPYRIGHT AND LICENSE141559
Node: Texinfo::Convert::NodeNameNormalization142166
Node: Texinfo::Convert::NodeNameNormalization NAME142796
Node: Texinfo::Convert::NodeNameNormalization SYNOPSIS143171
Node: Texinfo::Convert::NodeNameNormalization NOTES143861
Node: Texinfo::Convert::NodeNameNormalization DESCRIPTION144360
Node: Texinfo::Convert::NodeNameNormalization METHODS145611
Ref: Texinfo::Convert::NodeNameNormalization $partially_normalized = convert_to_normalized($tree)146021
Ref: Texinfo::Convert::NodeNameNormalization $normalized = normalize_node($tree)146322
Ref: Texinfo::Convert::NodeNameNormalization $transliterated = normalize_transliterate_texinfo($tree, $no_unidecode)146709
Ref: Texinfo::Convert::NodeNameNormalization $transliterated = transliterate_texinfo($tree, $no_unidecode)147085
Ref: Texinfo::Convert::NodeNameNormalization $file_name = transliterate_protect_file_name($string, $no_unidecode)147406
Node: Texinfo::Convert::NodeNameNormalization AUTHOR147732
Node: Texinfo::Convert::NodeNameNormalization COPYRIGHT AND LICENSE148132
Node: Texinfo::Convert::Text148809
Node: Texinfo::Convert::Text NAME149288
Node: Texinfo::Convert::Text SYNOPSIS149555
Node: Texinfo::Convert::Text NOTES150224
Node: Texinfo::Convert::Text DESCRIPTION150621
Node: Texinfo::Convert::Text METHODS151149
Ref: Texinfo::Convert::Text $result = convert_to_text($tree, $options)151447
Ref: Texinfo::Convert::Text enabled_encoding151951
Ref: Texinfo::Convert::Text sc152490
Ref: Texinfo::Convert::Text code152545
Ref: Texinfo::Convert::Text NUMBER_SECTIONS152691
Ref: Texinfo::Convert::Text sort_string152763
Ref: Texinfo::Convert::Text converter152910
Ref: Texinfo::Convert::Text expanded_formats_hash153344
Ref: Texinfo::Convert::Text $result_accent_text = ascii_accent($text, $accent_command)153584
Ref: Texinfo::Convert::Text $result_accent_text = ascii_accent_fallback($converter, $text, $accent_command)153915
Ref: Texinfo::Convert::Text $accents_text = text_accents($accents, $encoding, $set_case)154199
Node: Texinfo::Convert::Text AUTHOR154663
Node: Texinfo::Convert::Text COPYRIGHT AND LICENSE154961
Node: Texinfo::Convert::Converter155553
Node: Texinfo::Convert::Converter NAME156101
Node: Texinfo::Convert::Converter SYNOPSIS156403
Node: Texinfo::Convert::Converter NOTES157284
Node: Texinfo::Convert::Converter DESCRIPTION157711
Node: Texinfo::Convert::Converter METHODS159638
Node: Texinfo::Convert::Converter Initialization160155
Ref: Texinfo::Convert::Converter $converter = MyConverter->converter($options)160622
Ref: Texinfo::Convert::Converter %defaults = $converter->converter_defaults($options)162036
Ref: Texinfo::Convert::Converter converter_initialize162214
Node: Texinfo::Convert::Converter Getting and setting customization variables162326
Ref: Texinfo::Convert::Converter $converter->force_conf($variable_name, $variable_value)163071
Ref: Texinfo::Convert::Converter $converter->get_conf($variable_name)163386
Ref: Texinfo::Convert::Converter $status = $converter->set_conf($variable_name, $variable_value)163536
Node: Texinfo::Convert::Converter Conversion to XML163719
Ref: Texinfo::Convert::Converter $formatted_text = $converter->xml_format_text_with_numeric_entities($text)164285
Ref: Texinfo::Convert::Converter $protected_text = $converter->xml_protect_text($text)164453
Ref: Texinfo::Convert::Converter $comment = $converter->xml_comment($text)164558
Ref: Texinfo::Convert::Converter $result = xml_accent($text, $accent_command, $in_upper_case, $use_numeric_entities)164685
Ref: Texinfo::Convert::Converter $result = $converter->xml_accents($accent_command, $in_upper_case)165334
Ref: Texinfo::Convert::Converter $result = xml_numeric_entity_accent($accent_command_name, $text)165616
Node: Texinfo::Convert::Converter Helper methods165848
Ref: Texinfo::Convert::Converter $contents_element = $converter->comma_index_subentries_tree($entry, $separator)166673
Ref: Texinfo::Convert::Converter $result = $converter->convert_accents($accent_command, \&format_accents, $output_encoded_characters, $in_upper_case)167175
Ref: Texinfo::Convert::Converter $result = $converter->convert_document_sections($root, $file_handler)167568
Ref: Texinfo::Convert::Converter $succeeded = $converter->create_destination_directory($destination_directory_path, $destination_directory_name)167945
Ref: Texinfo::Convert::Converter ($output_file, $destination_directory, $output_filename, $document_name, $input_basefile) = $converter->determine_files_and_directory($output_format)168423
Ref: Texinfo::Convert::Converter ($encoded_name, $encoding) = $converter->encoded_input_file_name($character_string_name, $input_file_encoding)169949
Ref: Texinfo::Convert::Converter ($encoded_name, $encoding) = $converter->encoded_output_file_name($character_string_name)170040
Ref: Texinfo::Convert::Converter ($caption, $prepended) = $converter->float_name_caption($float)171385
Ref: Texinfo::Convert::Converter $tree = $converter->float_type_number($float)171667
Ref: Texinfo::Convert::Converter $end_line = $converter->format_comment_or_return_end_line($element)171894
Ref: Texinfo::Convert::Converter $filename = sub $converter->node_information_filename($normalized, $node_contents)172322
Ref: Texinfo::Convert::Converter ($normalized_name, $filename) = $converter->normalized_sectioning_command_filename($element)172553
Ref: Texinfo::Convert::Converter $converter->present_bug_message($message, $element)172991
Ref: Texinfo::Convert::Converter $converter->set_global_document_commands($commands_location, $selected_commands)173192
Ref: Texinfo::Convert::Converter before173538
Ref: Texinfo::Convert::Converter last173648
Ref: Texinfo::Convert::Converter preamble173713
Ref: Texinfo::Convert::Converter preamble_or_first173804
Ref: Texinfo::Convert::Converter $table_item_tree = $converter->table_item_content_tree($element, $contents)174581
Ref: Texinfo::Convert::Converter $result = $converter->top_node_filename($document_name)174903
Ref: Texinfo::Convert::Converter $result = $converter->output_internal_links()175141
Node: Texinfo::Convert::Converter SEE ALSO175313
Node: Texinfo::Convert::Converter AUTHOR175932
Node: Texinfo::Convert::Converter COPYRIGHT AND LICENSE176261
Node: Texinfo::Convert::Info176878
Node: Texinfo::Convert::Info NAME177340
Node: Texinfo::Convert::Info SYNOPSIS177600
Node: Texinfo::Convert::Info NOTES178026
Node: Texinfo::Convert::Info DESCRIPTION178423
Node: Texinfo::Convert::Info METHODS178742
Ref: Texinfo::Convert::Info $converter = Texinfo::Convert::Info->converter($options)179054
Ref: Texinfo::Convert::Info $converter->output($tree)179824
Ref: Texinfo::Convert::Info $result = $converter->convert($tree)179971
Ref: Texinfo::Convert::Info $result = $converter->convert_tree($tree)180084
Node: Texinfo::Convert::Info AUTHOR180286
Node: Texinfo::Convert::Info COPYRIGHT AND LICENSE180584
Node: Texinfo::Convert::HTML181176
Node: Texinfo::Convert::HTML NAME181636
Node: Texinfo::Convert::HTML SYNOPSIS181896
Node: Texinfo::Convert::HTML NOTES182373
Node: Texinfo::Convert::HTML DESCRIPTION182770
Node: Texinfo::Convert::HTML METHODS183089
Ref: Texinfo::Convert::HTML $converter = Texinfo::Convert::HTML->converter($options)183401
Ref: Texinfo::Convert::HTML $converter->output($tree)184171
Ref: Texinfo::Convert::HTML $result = $converter->convert($tree)184318
Ref: Texinfo::Convert::HTML $result = $converter->convert_tree($tree)184431
Ref: Texinfo::Convert::HTML $result = $converter->output_internal_links()184679
Node: Texinfo::Convert::HTML AUTHOR184898
Node: Texinfo::Convert::HTML COPYRIGHT AND LICENSE185196
Node: Texinfo::Convert::DocBook185788
Node: Texinfo::Convert::DocBook NAME186284
Node: Texinfo::Convert::DocBook SYNOPSIS186565
Node: Texinfo::Convert::DocBook NOTES187012
Node: Texinfo::Convert::DocBook DESCRIPTION187427
Node: Texinfo::Convert::DocBook METHODS187770
Ref: Texinfo::Convert::DocBook $converter = Texinfo::Convert::DocBook->converter($options)188103
Ref: Texinfo::Convert::DocBook $converter->output($tree)188876
Ref: Texinfo::Convert::DocBook $result = $converter->convert($tree)189023
Ref: Texinfo::Convert::DocBook $result = $converter->convert_tree($tree)189136
Node: Texinfo::Convert::DocBook AUTHOR189338
Node: Texinfo::Convert::DocBook COPYRIGHT AND LICENSE189654
Node: Texinfo::Convert::TexinfoMarkup190261
Node: Texinfo::Convert::TexinfoMarkup NAME190862
Node: Texinfo::Convert::TexinfoMarkup SYNOPSIS191200
Node: Texinfo::Convert::TexinfoMarkup NOTES191782
Node: Texinfo::Convert::TexinfoMarkup DESCRIPTION192233
Node: Texinfo::Convert::TexinfoMarkup METHODS193492
Node: Texinfo::Convert::TexinfoMarkup Markup formatting methods defined by subclasses193960
Ref: Texinfo::Convert::TexinfoMarkup $result = $converter->txi_markup_atom($atom)194467
Ref: Texinfo::Convert::TexinfoMarkup $result = $converter->txi_markup_comment($comment_string)194691
Ref: Texinfo::Convert::TexinfoMarkup $result = $converter->txi_markup_convert_text($element)194793
Ref: Texinfo::Convert::TexinfoMarkup $result = $converter->txi_markup_element($format_element, $attributes)195243
Ref: Texinfo::Convert::TexinfoMarkup $result = $converter->txi_markup_open_element($format_element, $attributes)195320
Ref: Texinfo::Convert::TexinfoMarkup $result = $converter->txi_markup_close_element($format_element, $attributes)195398
Ref: Texinfo::Convert::TexinfoMarkup $result = $converter->txi_markup_header()195967
Ref: Texinfo::Convert::TexinfoMarkup $result = $converter->txi_markup_protect_text($string)196089
Node: Texinfo::Convert::TexinfoMarkup Formatting state information196324
Ref: Texinfo::Convert::TexinfoMarkup $converter->in_monospace()196745
Node: Texinfo::Convert::TexinfoMarkup AUTHOR196893
Node: Texinfo::Convert::TexinfoMarkup SEE ALSO197232
Node: Texinfo::Convert::TexinfoMarkup COPYRIGHT AND LICENSE197807
Node: Texinfo::Convert::TexinfoXML198446
Node: Texinfo::Convert::TexinfoXML NAME198977
Node: Texinfo::Convert::TexinfoXML SYNOPSIS199279
Node: Texinfo::Convert::TexinfoXML NOTES199747
Node: Texinfo::Convert::TexinfoXML DESCRIPTION200180
Node: Texinfo::Convert::TexinfoXML METHODS200547
Ref: Texinfo::Convert::TexinfoXML $converter = Texinfo::Convert::TexinfoXML->converter($options)200901
Ref: Texinfo::Convert::TexinfoXML $converter->output($tree)201677
Ref: Texinfo::Convert::TexinfoXML $result = $converter->convert($tree)201824
Ref: Texinfo::Convert::TexinfoXML $result = $converter->convert_tree($tree)201937
Node: Texinfo::Convert::TexinfoXML AUTHOR202139
Node: Texinfo::Convert::TexinfoXML COPYRIGHT AND LICENSE202473
Node: Texinfo::Convert::Plaintext203095
Node: Texinfo::Convert::Plaintext NAME203591
Node: Texinfo::Convert::Plaintext SYNOPSIS203886
Node: Texinfo::Convert::Plaintext NOTES204347
Node: Texinfo::Convert::Plaintext DESCRIPTION204774
Node: Texinfo::Convert::Plaintext METHODS205133
Ref: Texinfo::Convert::Plaintext $converter = Texinfo::Convert::Plaintext->converter($options)205480
Ref: Texinfo::Convert::Plaintext $converter->output($tree)206255
Ref: Texinfo::Convert::Plaintext $result = $converter->convert($tree)206402
Ref: Texinfo::Convert::Plaintext $result = $converter->convert_tree($tree)206515
Node: Texinfo::Convert::Plaintext AUTHOR206717
Node: Texinfo::Convert::Plaintext COPYRIGHT AND LICENSE207045
Node: Index207662
End Tag Table
Local Variables:
coding: utf-8
End: