texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[no subject]


From: Patrice Dumas
Date: Tue, 24 Dec 2024 07:52:26 -0500 (EST)

branch: master
commit 723294ed02fe8572363a0c0227ebba022551606d
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Thu Oct 31 01:30:03 2024 +0100

    Implement INFO_MATH_IMAGES in Info
    
    * tp/Texinfo/Convert/LaTeX.pm (_enc_usepackage, _latex_header):
    separate _enc_usepackage to setup the usepackage related to encoding.
    
    * tp/Texinfo/Convert/LaTeX.pm (convert_math_to_images): call
    _enc_usepackage and encode output.
    
    * tp/Texinfo/Convert/Info.pm (format_image_element),
    tp/Texinfo/Convert/Plaintext.pm (format_image_element): rename
    format_image as format_image_element.
    
    * tp/Texinfo/Convert/Info.pm (format_image, format_image_element),
    tp/Texinfo/Convert/Plaintext.pm (format_image): add format_image, to
    do the low level formatting of image only.  Note that the Plaintext
    format_image is not called.
    
    * tp/Texinfo/options_data.txt (INFO_MATH_IMAGES): add.
    
    * TODO, tp/Texinfo/Convert/Plaintext.pm (conversion_initialization)
    (_insert_image, _convert): implement INFO_MATH_IMAGES.  Push a count
    for @math and @displaymath with INFO_MATH_IMAGES to capture content.
    Add _insert_image to output an image in case it is needed outside of
    @image formatting, and use it for INFO_MATH_IMAGES @math and
    @displaymath formatting.
---
 ChangeLog                              |  34 +++-
 TODO                                   |   5 +
 tp/Texinfo/Convert/Info.pm             |  55 +++---
 tp/Texinfo/Convert/LaTeX.pm            |  48 +++--
 tp/Texinfo/Convert/Plaintext.pm        | 141 +++++++++++++--
 tp/Texinfo/Options.pm                  |   1 +
 tp/Texinfo/XS/main/options_data.h      |   3 +-
 tp/Texinfo/XS/main/options_defaults.c  |   2 +
 tp/Texinfo/XS/main/options_init_free.c | 317 +++++++++++++++++----------------
 tp/Texinfo/options_data.txt            |   1 +
 10 files changed, 402 insertions(+), 205 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index fde9a77d96..41fbc33afb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+2024-09-03  Patrice Dumas  <pertusus@free.fr>
+
+       Implement INFO_MATH_IMAGES in Info
+
+       * tp/Texinfo/Convert/LaTeX.pm (_enc_usepackage, _latex_header):
+       separate _enc_usepackage to setup the usepackage related to encoding.
+
+       * tp/Texinfo/Convert/LaTeX.pm (convert_math_to_images): call
+       _enc_usepackage and encode output.
+
+       * tp/Texinfo/Convert/Info.pm (format_image_element),
+       tp/Texinfo/Convert/Plaintext.pm (format_image_element): rename
+       format_image as format_image_element.
+
+       * tp/Texinfo/Convert/Info.pm (format_image, format_image_element),
+       tp/Texinfo/Convert/Plaintext.pm (format_image): add format_image, to
+       do the low level formatting of image only.  Note that the Plaintext
+       format_image is not called.
+
+       * tp/Texinfo/options_data.txt (INFO_MATH_IMAGES): add.
+
+       * TODO, tp/Texinfo/Convert/Plaintext.pm (conversion_initialization)
+       (_insert_image, _convert): implement INFO_MATH_IMAGES.  Push a count
+       for @math and @displaymath with INFO_MATH_IMAGES to capture content.
+       Add _insert_image to output an image in case it is needed outside of
+       @image formatting, and use it for INFO_MATH_IMAGES @math and
+       @displaymath formatting.
+
 2024-09-01  Patrice Dumas  <pertusus@free.fr>
 
        * tp/Texinfo/Convert/Plaintext.pm (conversion_initialization)
@@ -5269,7 +5297,7 @@
 2024-08-17  Patrice Dumas  <pertusus@free.fr>
 
        * tp/Texinfo/XS/convert/texinfo.c (txi_converter_setup): use
-       add_option_string_value with txi_base_sorted_options instead of 
+       add_option_string_value with txi_base_sorted_options instead of
        add_new_option_value to get the option type based on the name.
 
 2024-08-17  Patrice Dumas  <pertusus@free.fr>
@@ -6738,7 +6766,7 @@
        (html_converter_initialize): add html_converter_initialize with
        code in Perl converter_initialize function that does not need
        customization information from Perl.  set html_converter_initialize in
-       converter_format_data.  Separate code in Perl converter_initialize 
+       converter_format_data.  Separate code in Perl converter_initialize
        that is already called in html_converter_initialize and put it in a
        conditional at the beginning of the function.
 
@@ -8732,7 +8760,7 @@
        (convert_tree_new_formatting_context, _set_multiple_conversions)
        (_unset_multiple_conversions), tp/Texinfo/XS/convert/convert_html.c
        (html_set_multiple_conversions, html_unset_multiple_conversions)
-       (convert_tree_new_formatting_context, html_internal_command_text): 
+       (convert_tree_new_formatting_context, html_internal_command_text):
        add multiple pass string argument to set_multiple_conversions,
        push on multiple_pass stack in the function and pop in
        unset_multiple_conversions.  Add html_set_multiple_conversions and
diff --git a/TODO b/TODO
index 2f74e7d97c..1a21887198 100644
--- a/TODO
+++ b/TODO
@@ -76,6 +76,11 @@ If you are interested in working on any of these, email 
bug-texinfo@gnu.org.
   - Info: render math as png and include as an image.  Using LaTeX preview
     package and dvipng could be the best option.  Rahguzar for SageMath
     (https://lists.gnu.org/archive/html/help-texinfo/2024-08/msg00001.html)
+    This is implemented, questions/issues that remains:
+    * add to NEWS and documentation
+    * images are too big.  Ask AUCTeX dev for help?
+    * Displaymath images look ok when opened directly as images by emacs but
+      are not shown in emacs.  Ask AUCTeX/Emacs Info for help/tests?
 
 * TeX:
   - should we turn off @set txicodevaristt?
diff --git a/tp/Texinfo/Convert/Info.pm b/tp/Texinfo/Convert/Info.pm
index bd1beceb17..b0d0f2395b 100644
--- a/tp/Texinfo/Convert/Info.pm
+++ b/tp/Texinfo/Convert/Info.pm
@@ -124,7 +124,7 @@ sub output($$)
   my $output_units = Texinfo::OutputUnits::split_by_node($document);
 
   my $elements_images;
-  if (0) {
+  if ($self->get_conf('INFO_MATH_IMAGES')) {
     require Texinfo::Convert::LaTeX;
     Texinfo::Convert::LaTeX->import;
     my $math_images_dir;
@@ -134,7 +134,7 @@ sub output($$)
     } else {
       $math_images_dir = $destination_directory;
     }
-    $elements_images
+    $self->{'elements_images'}
      = Texinfo::Convert::LaTeX::convert_math_to_images($self, $document,
                                                     $document_name.'_info',
                                                     $math_images_dir);
@@ -925,8 +925,37 @@ sub format_node($$)
   return;
 }
 
+sub format_image($$$;$)
+{
+  my $self = shift;
+  my $image_file = shift;
+  my $text = shift;
+  my $alt = shift;
+
+  my $result = '';
+  if (defined($image_file)) {
+    $image_file =~ s/\\/\\\\/g;
+    $image_file =~ s/\"/\\\"/g;
+  } else {
+    $image_file = '';
+  }
+  $result = "\x{00}\x{08}[image src=\"$image_file\"";
+
+  if (defined($alt) and $alt ne '') {
+    $alt =~ s/\\/\\\\/g;
+    $alt =~ s/\"/\\\"/g;
+    $result .= " alt=\"$alt\"";
+  }
+  if (defined($text)) {
+    $text =~ s/\\/\\\\/g;
+    $text =~ s/\"/\\\"/g;
+    $result .= " text=\"$text\"";
+  }
+  $result .= "\x{00}\x{08}]";
+}
+
 my @image_files_extensions = ('.png', '.jpg');
-sub format_image($$)
+sub format_image_element($$)
 {
   my $self = shift;
   my $element = shift;
@@ -986,25 +1015,7 @@ sub format_image($$)
     my $result;
 
     if (defined($image_file) or (defined($text) and defined($alt))) {
-      if (defined($image_file)) {
-        $image_file =~ s/\\/\\\\/g;
-        $image_file =~ s/\"/\\\"/g;
-      } else {
-        $image_file = '';
-      }
-      $result = "\x{00}\x{08}[image src=\"$image_file\"";
-
-      if (defined($alt) and $alt ne '') {
-        $alt =~ s/\\/\\\\/g;
-        $alt =~ s/\"/\\\"/g;
-        $result .= " alt=\"$alt\"";
-      }
-      if (defined($text)) {
-        $text =~ s/\\/\\\\/g;
-        $text =~ s/\"/\\\"/g;
-        $result .= " text=\"$text\"";
-      }
-      $result .= "\x{00}\x{08}]";
+      $result = $self->format_image($image_file, $text, $alt);
       if ($self->{'formatters'}->[-1]->{'_top_formatter'}) {
         $result .= "\n";
       }
diff --git a/tp/Texinfo/Convert/LaTeX.pm b/tp/Texinfo/Convert/LaTeX.pm
index 7d24d82bb2..78badadb23 100644
--- a/tp/Texinfo/Convert/LaTeX.pm
+++ b/tp/Texinfo/Convert/LaTeX.pm
@@ -1332,6 +1332,24 @@ my $fancyhdr_preamble =
 # TODO translation
 my $default_title = 'No Title';
 
+sub _enc_usepackage($)
+{
+  my $output_encoding = shift;
+
+  my $usepackages = '';
+  my $fontenc = 'T1';
+  if ($output_encoding) {
+    my $encoding = $output_encoding;
+    if (defined($LaTeX_encoding_names_map{$output_encoding})) {
+      ($encoding, $fontenc) = @{$LaTeX_encoding_names_map{$output_encoding}};
+    }
+    $usepackages .= "\\usepackage[$encoding]{inputenc}\n";
+  }
+  $usepackages .= "\\usepackage[$fontenc]{fontenc}\n";
+
+  return $usepackages;
+}
+
 sub _latex_header() {
   my $self = shift;
   # LaTeX code appearing after packages.  Do it first to be able to
@@ -1595,16 +1613,8 @@ roundcorner=10pt}
 \usepackage{etoolbox}
 \usepackage{titleps}
 ';
-    my $fontenc = 'T1';
-    if ($self->{'output_encoding_name'}) {
-      my $output_encoding = $self->{'output_encoding_name'};
-      my $encoding = $output_encoding;
-      if (defined($LaTeX_encoding_names_map{$output_encoding})) {
-        ($encoding, $fontenc) = @{$LaTeX_encoding_names_map{$output_encoding}};
-      }
-      $class_and_usepackage_begin .= "\\usepackage[$encoding]{inputenc}\n";
-    }
-    $class_and_usepackage_begin .= "\\usepackage[$fontenc]{fontenc}\n";
+    my $enc_usepackages = _enc_usepackage($self->{'output_encoding_name'});
+    $class_and_usepackage_begin .= $enc_usepackages;
   }
   my $usepackage_end = $self->get_conf('END_USEPACKAGE');
   if (!defined($usepackage_end)) {
@@ -4587,6 +4597,12 @@ sub convert_math_to_images($$$;$)
       }
       $fh = *MATH2IMG_TEXFILE;
 
+      my $output_perl_encoding
+        = $self->get_conf('OUTPUT_PERL_ENCODING');
+      if (defined($output_perl_encoding)) {
+        binmode($fh, ":encoding($output_perl_encoding)");
+      }
+
       print $fh "% Automatically generated by Texinfo math to image code\n";
 
       # TODO customization of the packages loaded
@@ -4612,16 +4628,22 @@ sub convert_math_to_images($$$;$)
 % Package amstext omitted
 % Package hyperref omitted
 ';
-      print $fh '
+      my $class_and_usepackage_begin = '
 \documentclass{minimal}
-\usepackage{amsmath}
+';
+      my $enc_usepackages
+        = _enc_usepackage($self->get_conf('OUTPUT_ENCODING_NAME'));
+      $class_and_usepackage_begin .= $enc_usepackages;
+
+      $class_and_usepackage_begin .= '\usepackage{amsmath}
 \usepackage{amsthm}
 \usepackage{amssymb}
 \usepackage{bm}
 \usepackage[active,tightpage]{preview}
 \pagestyle{empty}
 \begin{document}
-'
+';
+      print $fh $class_and_usepackage_begin;
     }
     my $text;
     $text = convert_to_latex_math($latex_converter, $tree, undef);
diff --git a/tp/Texinfo/Convert/Plaintext.pm b/tp/Texinfo/Convert/Plaintext.pm
index 6111755eef..2a6f3674bd 100644
--- a/tp/Texinfo/Convert/Plaintext.pm
+++ b/tp/Texinfo/Convert/Plaintext.pm
@@ -428,8 +428,6 @@ sub conversion_initialization($;$)
                                      'result' => ''
   };
 
-  # setting to 1 ensures that nothing is done, as there is
-  # something done (a newline added) if equal to 0.
   $self->{'seenmenus'} = {};
   $self->{'index_entries_line_location'} = {};
 
@@ -439,6 +437,9 @@ sub conversion_initialization($;$)
   $self->{'index_entries_no_node'} = {};
   $self->{'seen_node_descriptions'} = {};
 
+  # for INFO_MATH_IMAGES
+  $self->{'elements_images'} = undef;
+
   %{$self->{'style_map'}} = %style_map;
 
   Texinfo::Convert::Utils::output_files_disable_output_encoding
@@ -1149,7 +1150,7 @@ sub _decode($$)
   }
 }
 
-# Occassionally, we need to find the width of a string after it has
+# Occasionally, we need to find the width of a string after it has
 # already been encoded.  Use of this should be minimised for performance.
 sub _string_width_encoded($$)
 {
@@ -2222,7 +2223,7 @@ sub image_formatted_text($$$$)
   return $result;
 }
 
-sub format_image($$)
+sub format_image_element($$)
 {
   my ($self, $element) = @_;
 
@@ -2252,6 +2253,72 @@ sub format_image($$)
   return ('', 0);
 }
 
+# should not be called, only the Info format counterpart should be called
+# since it is not called by Plaintext format_image_element and is only
+# called for INFO_MATH_IMAGES, which should do nothing in Plaintext.
+sub format_image($$$;$)
+{
+  my $self = shift;
+  my $image_file = shift;
+  my $image_text = shift;
+  my $alt_text = shift;
+
+  return $image_text;
+}
+
+# insert an image, but not as part of @image formatting.  It is better
+# to have a different code, as there is no .txt file read, instead the
+# $IMAGE_TEXT argument is used.
+sub _insert_image($$$)
+{
+  my $self = shift;
+  # character strings
+  my $image_file = shift;
+  my $image_text = shift;
+
+  # NOTE no alt info set, not clear to what it could be set?
+
+  chomp($image_text);
+
+  # setup a text handle to separate lines.  Seems convoluted, but it is the
+  # same as what is done in ParserNonXS.
+  # Text handle works with bytes
+  my $image_bytes = Encode::encode('utf-8', $image_text);
+  my $texthandle = do { local *FH };
+  if (!open($texthandle, '<', \$image_bytes)) {
+    my $error_message = $!;
+    # Better die now than later reading on a closed filehandle.
+    die "BUG? open on a reference for image test failed: $error_message\n";
+  }
+
+  my $lines_count = -1;
+  my $width = 0;
+  while (1) {
+    my $next_line = <$texthandle>;
+    if (defined($next_line)) {
+      $next_line = Encode::decode('utf-8', $next_line);
+      $lines_count++;
+      my $line_width = Texinfo::Convert::Unicode::string_width($next_line);
+      $width = $line_width
+        if ($line_width > $width);
+    } else {
+      last;
+    }
+  }
+  close($texthandle);
+
+  my $result = $self->format_image($image_file, $image_text);
+
+  # the last line is part of the image but do not have a new line,
+  # so 1 is added to $lines_count to have the number of lines of
+  # the image
+  $self->add_image(undef, $lines_count+1, $width);
+
+  $lines_count = 0 if ($lines_count < 0);
+
+  return ($result, $lines_count);
+}
+
 my %underline_symbol = (
   0 => '*',
   1 => '*',
@@ -2988,8 +3055,8 @@ sub _convert($$)
                        add_pending_word($formatter->{'container'}, 1),
                        $formatter->{'container'});
         # add an empty word so that following spaces aren't lost
-        add_next($formatter->{'container'},'');
-        my ($image, $lines_count) = $self->format_image($element);
+        add_next($formatter->{'container'}, '');
+        my ($image, $lines_count) = $self->format_image_element($element);
         _add_lines_count($self, $lines_count);
         _stream_output($self, $image);
         return;
@@ -3196,18 +3263,49 @@ sub _convert($$)
         return;
         # condition should actually be that the $cmdname is inline
       } elsif ($math_commands{$cmdname}) {
-        push @{$self->{'context'}}, $cmdname;
         if ($element->{'args'}) {
+          push @{$self->{'context'}}, $cmdname;
+          if ($self->{'elements_images'}
+              and $self->{'elements_images'}->{$element}) {
+            # flush before @math, including spaces
+            _stream_output($self,
+                       add_pending_word($formatter->{'container'}, 1),
+                       $formatter->{'container'});
+            # TODO same as @image code.  Does not seems to have any effect,
+            # leading spaces in @math are lost anyway (which is not important).
+            # add an empty word so that following spaces aren't lost
+            add_next($formatter->{'container'}, '');
+            # math rendered as an image, push a count to capture content
+            push @{$self->{'count_context'}}, {'lines' => 0, 'bytes' => 0,
+                                               'encoding_disabled' => 1,
+                                                   'locations' => []};
+          }
           _convert($self, {'type' => 'frenchspacing',
                'contents' => [{'type' => '_code',
                               'contents' => [$element->{'args'}->[0]]}]});
+          if ($self->{'elements_images'}
+              and $self->{'elements_images'}->{$element}) {
+            # flush @math, including spaces
+            _stream_output($self,
+                       add_pending_word($formatter->{'container'}, 1),
+                       $formatter->{'container'});
+            my $result = _stream_result($self);
+            # TODO add locations in counts to current counts context?
+            # (see _align_environment)
+            my $counts = pop @{$self->{'count_context'}};
+            my ($image, $lines_count)
+               = _insert_image($self, $self->{'elements_images'}->{$element},
+                               $result);
+            _add_lines_count($self, $lines_count);
+            _stream_output($self, $image);
+          }
+          my $old_context = pop @{$self->{'context'}};
+          die if ($old_context ne $cmdname);
         }
-        my $old_context = pop @{$self->{'context'}};
-        die if ($old_context ne $cmdname);
         return;
       } elsif ($cmdname eq 'titlefont') {
         if ($element->{'args'}) {
-          my $result = _text_heading($self, 
+          my $result = _text_heading($self,
                           {'extra' => {'section_level' => 0},
                            'cmdname' => 'titlefont'},
                             $element->{'args'}->[0],
@@ -3339,6 +3437,14 @@ sub _convert($$)
             and ! $format_raw_commands{$cmdname}) {
           $preformatted = $self->new_formatter('unfilled');
           push @{$self->{'formatters'}}, $preformatted;
+          # displaymath rendered as an image, push a count to capture
+          # formatted content
+          if ($self->{'elements_images'}
+              and $self->{'elements_images'}->{$element}) {
+            push @{$self->{'count_context'}}, {'lines' => 0, 'bytes' => 0,
+                                               'encoding_disabled' => 1,
+                                                   'locations' => []};
+          }
         }
       }
       if ($cmdname eq 'quotation' or $cmdname eq 'smallquotation') {
@@ -4189,6 +4295,8 @@ sub _convert($$)
     }
     pop @{$self->{'formatters'}};
     delete $self->{'text_element_context'}->[-1]->{'counter'};
+  # may have been opened for a block commands, @menu, raw output
+  # format, @verbatim..., or for (raw)preformatted type
   } elsif ($preformatted) {
     _stream_output($self,
                Texinfo::Convert::Paragraph::end($preformatted->{'container'}),
@@ -4200,6 +4308,19 @@ sub _convert($$)
       $result = _align_environment($self, $result,
                       $self->{'text_element_context'}->[-1]->{'max'}, 'right');
       _stream_output_encoded($self, $result);
+    } elsif ($self->{'context'}->[-1] eq 'displaymath'
+             and $self->{'elements_images'}
+             and $self->{'elements_images'}->{$element}) {
+      my $result = _stream_result($self);
+      my $counts = pop @{$self->{'count_context'}};
+      # TODO add locations in counts to current counts context?
+      # (see _align_environment)
+      my ($image, $lines_count)
+         = _insert_image($self, $self->{'elements_images'}->{$element},
+                         $result);
+      _add_lines_count($self, $lines_count);
+      _stream_output($self, $image);
+      _ensure_end_of_line($self);
     }
     pop @{$self->{'formatters'}};
     # We assume that, upon closing the preformatted we are at the
diff --git a/tp/Texinfo/Options.pm b/tp/Texinfo/Options.pm
index 68b02449c8..74099ef8bc 100644
--- a/tp/Texinfo/Options.pm
+++ b/tp/Texinfo/Options.pm
@@ -90,6 +90,7 @@ our %converter_customization_options = (
   'INFO_JS_DIR'                      => undef,
   'INFO_SPECIAL_CHARS_QUOTE'         => undef,
   'INFO_SPECIAL_CHARS_WARNING'       => undef,
+  'INFO_MATH_IMAGES'                 => undef,
   'IGNORE_REF_TO_TOP_NODE_UP'        => undef,
   'INLINE_CSS_STYLE'                 => undef,
   'INPUT_FILE_NAME_ENCODING'         => undef,
diff --git a/tp/Texinfo/XS/main/options_data.h 
b/tp/Texinfo/XS/main/options_data.h
index f61f5bc019..ca0ef699fd 100644
--- a/tp/Texinfo/XS/main/options_data.h
+++ b/tp/Texinfo/XS/main/options_data.h
@@ -14,7 +14,7 @@
 #undef PACKAGE_URL
 #undef PACKAGE_VERSION
 
-#define TXI_OPTIONS_NR 233
+#define TXI_OPTIONS_NR 234
 
 typedef struct OPTIONS {
     size_t BIT_user_function_number;
@@ -108,6 +108,7 @@ typedef struct OPTIONS {
     OPTION INFO_JS_DIR;
     OPTION INFO_SPECIAL_CHARS_QUOTE;
     OPTION INFO_SPECIAL_CHARS_WARNING;
+    OPTION INFO_MATH_IMAGES;
     OPTION IGNORE_REF_TO_TOP_NODE_UP;
     OPTION INLINE_CSS_STYLE;
     OPTION INPUT_FILE_NAME_ENCODING;
diff --git a/tp/Texinfo/XS/main/options_defaults.c 
b/tp/Texinfo/XS/main/options_defaults.c
index bcda5e9ef7..c7b04efbec 100644
--- a/tp/Texinfo/XS/main/options_defaults.c
+++ b/tp/Texinfo/XS/main/options_defaults.c
@@ -149,6 +149,7 @@ set_converter_customization_options_defaults (OPTIONS 
*options)
   option_set_conf (&options->INFO_JS_DIR, -2, 0);
   option_set_conf (&options->INFO_SPECIAL_CHARS_QUOTE, -2, 0);
   option_set_conf (&options->INFO_SPECIAL_CHARS_WARNING, -1, 0);
+  option_set_conf (&options->INFO_MATH_IMAGES, -1, 0);
   option_set_conf (&options->IGNORE_REF_TO_TOP_NODE_UP, -1, 0);
   option_set_conf (&options->INLINE_CSS_STYLE, -1, 0);
   option_set_conf (&options->INPUT_FILE_NAME_ENCODING, -2, 0);
@@ -294,6 +295,7 @@ add_converter_customization_options_defaults (OPTIONS_LIST 
*options_list)
   add_option_value (options_list, "INFO_JS_DIR", -2, 0);
   add_option_value (options_list, "INFO_SPECIAL_CHARS_QUOTE", -2, 0);
   add_option_value (options_list, "INFO_SPECIAL_CHARS_WARNING", -1, 0);
+  add_option_value (options_list, "INFO_MATH_IMAGES", -1, 0);
   add_option_value (options_list, "IGNORE_REF_TO_TOP_NODE_UP", -1, 0);
   add_option_value (options_list, "INLINE_CSS_STYLE", -1, 0);
   add_option_value (options_list, "INPUT_FILE_NAME_ENCODING", -2, 0);
diff --git a/tp/Texinfo/XS/main/options_init_free.c 
b/tp/Texinfo/XS/main/options_init_free.c
index 9af9404a88..a67b59f2ee 100644
--- a/tp/Texinfo/XS/main/options_init_free.c
+++ b/tp/Texinfo/XS/main/options_init_free.c
@@ -105,6 +105,7 @@ initialize_options (OPTIONS *options)
   initialize_option (&options->INFO_JS_DIR, GOT_char, "INFO_JS_DIR", 0);
   initialize_option (&options->INFO_SPECIAL_CHARS_QUOTE, GOT_char, 
"INFO_SPECIAL_CHARS_QUOTE", 0);
   initialize_option (&options->INFO_SPECIAL_CHARS_WARNING, GOT_integer, 
"INFO_SPECIAL_CHARS_WARNING", 0);
+  initialize_option (&options->INFO_MATH_IMAGES, GOT_integer, 
"INFO_MATH_IMAGES", 0);
   initialize_option (&options->IGNORE_REF_TO_TOP_NODE_UP, GOT_integer, 
"IGNORE_REF_TO_TOP_NODE_UP", 0);
   initialize_option (&options->INLINE_CSS_STYLE, GOT_integer, 
"INLINE_CSS_STYLE", 0);
   initialize_option (&options->INPUT_FILE_NAME_ENCODING, GOT_char, 
"INPUT_FILE_NAME_ENCODING", OF_parser_option);
@@ -370,6 +371,7 @@ free_options (OPTIONS *options)
   free_option (&options->INFO_JS_DIR);
   free_option (&options->INFO_SPECIAL_CHARS_QUOTE);
   free_option (&options->INFO_SPECIAL_CHARS_WARNING);
+  free_option (&options->INFO_MATH_IMAGES);
   free_option (&options->IGNORE_REF_TO_TOP_NODE_UP);
   free_option (&options->INLINE_CSS_STYLE);
   free_option (&options->INPUT_FILE_NAME_ENCODING);
@@ -636,6 +638,7 @@ clear_options (OPTIONS *options)
   clear_option (&options->INFO_JS_DIR);
   clear_option (&options->INFO_SPECIAL_CHARS_QUOTE);
   clear_option (&options->INFO_SPECIAL_CHARS_WARNING);
+  clear_option (&options->INFO_MATH_IMAGES);
   clear_option (&options->IGNORE_REF_TO_TOP_NODE_UP);
   clear_option (&options->INLINE_CSS_STYLE);
   clear_option (&options->INPUT_FILE_NAME_ENCODING);
@@ -902,6 +905,7 @@ copy_options (OPTIONS *destination, const OPTIONS *source)
   copy_option (&destination->INFO_JS_DIR, &source->INFO_JS_DIR);
   copy_option (&destination->INFO_SPECIAL_CHARS_QUOTE, 
&source->INFO_SPECIAL_CHARS_QUOTE);
   copy_option (&destination->INFO_SPECIAL_CHARS_WARNING, 
&source->INFO_SPECIAL_CHARS_WARNING);
+  copy_option (&destination->INFO_MATH_IMAGES, &source->INFO_MATH_IMAGES);
   copy_option (&destination->IGNORE_REF_TO_TOP_NODE_UP, 
&source->IGNORE_REF_TO_TOP_NODE_UP);
   copy_option (&destination->INLINE_CSS_STYLE, &source->INLINE_CSS_STYLE);
   copy_option (&destination->INPUT_FILE_NAME_ENCODING, 
&source->INPUT_FILE_NAME_ENCODING);
@@ -1154,162 +1158,163 @@ setup_sortable_options (OPTION **to_sort, OPTIONS 
*options)
   to_sort[74] = &options->INDEX_ENTRY_COLON;   /* converter_customization */
   to_sort[75] = &options->INDEX_SPECIAL_CHARS_WARNING;   /* 
converter_customization */
   to_sort[76] = &options->INFO_JS_DIR;   /* converter_customization */
-  to_sort[77] = &options->INFO_SPECIAL_CHARS_QUOTE;   /* 
converter_customization */
-  to_sort[78] = &options->INFO_SPECIAL_CHARS_WARNING;   /* 
converter_customization */
-  to_sort[79] = &options->INLINE_CSS_STYLE;   /* converter_customization */
-  to_sort[80] = &options->INPUT_FILE_NAME_ENCODING;   /* 
converter_customization */
-  to_sort[81] = &options->INTERNAL_LINKS;   /* program_cmdline */
-  to_sort[82] = &options->JS_WEBLABELS;   /* converter_customization */
-  to_sort[83] = &options->JS_WEBLABELS_FILE;   /* converter_customization */
-  to_sort[84] = &options->L2H_CLEAN;   /* converter_customization */
-  to_sort[85] = &options->L2H_FILE;   /* converter_customization */
-  to_sort[86] = &options->L2H_HTML_VERSION;   /* converter_customization */
-  to_sort[87] = &options->L2H_L2H;   /* converter_customization */
-  to_sort[88] = &options->L2H_SKIP;   /* converter_customization */
-  to_sort[89] = &options->L2H_TMP;   /* converter_customization */
-  to_sort[90] = &options->LATEX_FLOATS_FILE_EXTENSION;   /* 
converter_customization */
-  to_sort[91] = &options->LINKS_BUTTONS;   /* converter_other */
-  to_sort[92] = &options->LOCALE_ENCODING;   /* converter_customization */
-  to_sort[93] = &options->MACRO_EXPAND;   /* program_cmdline */
-  to_sort[94] = &options->MATHJAX_CONFIGURATION;   /* converter_customization 
*/
-  to_sort[95] = &options->MATHJAX_SCRIPT;   /* converter_customization */
-  to_sort[96] = &options->MATHJAX_SOURCE;   /* converter_customization */
-  to_sort[97] = &options->MAX_HEADER_LEVEL;   /* converter_customization */
-  to_sort[98] = &options->MAX_MACRO_CALL_NESTING;   /* parser */
-  to_sort[99] = &options->MENU_ENTRY_COLON;   /* converter_customization */
-  to_sort[100] = &options->MENU_SYMBOL;   /* converter_customization */
-  to_sort[101] = &options->MESSAGE_ENCODING;   /* converter_customization */
-  to_sort[102] = &options->MISC_BUTTONS;   /* converter_other */
-  to_sort[103] = &options->MONOLITHIC;   /* converter_customization */
-  to_sort[104] = &options->NODE_FILES;   /* converter_cmdline */
-  to_sort[105] = &options->NODE_FOOTER_BUTTONS;   /* converter_other */
-  to_sort[106] = &options->NODE_NAME_IN_INDEX;   /* converter_customization */
-  to_sort[107] = &options->NODE_NAME_IN_MENU;   /* converter_customization */
-  to_sort[108] = &options->NO_CSS;   /* converter_customization */
-  to_sort[109] = &options->NO_CUSTOM_HTML_ATTRIBUTE;   /* 
converter_customization */
-  to_sort[110] = &options->NO_INDEX;   /* parser */
-  to_sort[111] = &options->NO_NUMBER_FOOTNOTE_SYMBOL;   /* 
converter_customization */
-  to_sort[112] = &options->NO_TOP_NODE_OUTPUT;   /* converter_customization */
-  to_sort[113] = &options->NO_USER_COMMANDS;   /* parser */
-  to_sort[114] = &options->NO_WARN;   /* program_cmdline */
-  to_sort[115] = &options->NUMBER_FOOTNOTES;   /* converter_cmdline */
-  to_sort[116] = &options->NUMBER_SECTIONS;   /* converter_cmdline */
-  to_sort[117] = &options->OPEN_DOUBLE_QUOTE_SYMBOL;   /* 
converter_customization */
-  to_sort[118] = &options->OPEN_QUOTE_SYMBOL;   /* converter_customization */
-  to_sort[119] = &options->OUTFILE;   /* converter_cmdline */
-  to_sort[120] = &options->OUTPUT_CHARACTERS;   /* converter_customization */
-  to_sort[121] = &options->OUTPUT_ENCODING_NAME;   /* converter_customization 
*/
-  to_sort[122] = &options->OUTPUT_FILE_NAME_ENCODING;   /* 
converter_customization */
-  to_sort[123] = &options->OUTPUT_PERL_ENCODING;   /* converter_customization 
*/
-  to_sort[124] = &options->PACKAGE;   /* converter_customization */
-  to_sort[125] = &options->PACKAGE_AND_VERSION;   /* converter_customization */
-  to_sort[126] = &options->PACKAGE_NAME;   /* converter_customization */
-  to_sort[127] = &options->PACKAGE_URL;   /* converter_customization */
-  to_sort[128] = &options->PACKAGE_VERSION;   /* converter_customization */
-  to_sort[129] = &options->PASSIVE_ICONS;   /* converter_other */
-  to_sort[130] = &options->PREFIX;   /* converter_customization */
-  to_sort[131] = &options->PRE_BODY_CLOSE;   /* converter_customization */
-  to_sort[132] = &options->PROGRAM;   /* converter_customization */
-  to_sort[133] = &options->PROGRAM_NAME_IN_ABOUT;   /* converter_customization 
*/
-  to_sort[134] = &options->PROGRAM_NAME_IN_FOOTER;   /* 
converter_customization */
-  to_sort[135] = &options->SECTION_BUTTONS;   /* converter_other */
-  to_sort[136] = &options->SECTION_FOOTER_BUTTONS;   /* converter_other */
-  to_sort[137] = &options->SECTION_NAME_IN_TITLE;   /* converter_customization 
*/
-  to_sort[138] = &options->SHORT_TOC_LINK_TO_TOC;   /* converter_customization 
*/
-  to_sort[139] = &options->SHOW_BUILTIN_CSS_RULES;   /* program_customization 
*/
-  to_sort[140] = &options->SHOW_TITLE;   /* converter_customization */
-  to_sort[141] = &options->SORT_ELEMENT_COUNT;   /* program_customization */
-  to_sort[142] = &options->SORT_ELEMENT_COUNT_WORDS;   /* 
program_customization */
-  to_sort[143] = &options->SPLIT;   /* converter_cmdline */
-  to_sort[144] = &options->SPLIT_SIZE;   /* converter_cmdline */
-  to_sort[145] = &options->SUBDIR;   /* converter_cmdline */
-  to_sort[146] = &options->T4H_LATEX_CONVERSION;   /* converter_customization 
*/
-  to_sort[147] = &options->T4H_MATH_CONVERSION;   /* converter_customization */
-  to_sort[148] = &options->T4H_TEX_CONVERSION;   /* converter_customization */
-  to_sort[149] = &options->TEST;   /* converter_customization */
-  to_sort[150] = &options->TEXI2DVI;   /* program_customization */
-  to_sort[151] = &options->TEXI2HTML;   /* converter_customization */
-  to_sort[152] = &options->TEXINFO_DTD_VERSION;   /* converter_customization */
-  to_sort[153] = &options->TEXINFO_LANGUAGE_DIRECTORIES;   /* array_cmdline */
-  to_sort[154] = &options->TEXINFO_OUTPUT_FORMAT;   /* converter_customization 
*/
-  to_sort[155] = &options->TEXTCONTENT_COMMENT;   /* converter_customization */
-  to_sort[156] = &options->TOC_LINKS;   /* converter_customization */
-  to_sort[157] = &options->TOP_BUTTONS;   /* converter_other */
-  to_sort[158] = &options->TOP_FILE;   /* converter_customization */
-  to_sort[159] = &options->TOP_FOOTER_BUTTONS;   /* converter_other */
-  to_sort[160] = &options->TOP_NODE_FILE_TARGET;   /* converter_customization 
*/
-  to_sort[161] = &options->TOP_NODE_UP;   /* converter_customization */
-  to_sort[162] = &options->TOP_NODE_UP_URL;   /* converter_customization */
-  to_sort[163] = &options->TRACE_INCLUDES;   /* program_cmdline */
-  to_sort[164] = &options->TRANSLITERATE_FILE_NAMES;   /* converter_cmdline */
-  to_sort[165] = &options->TREE_TRANSFORMATIONS;   /* program_customization */
-  to_sort[166] = &options->TXI_MARKUP_NO_SECTION_EXTENT;   /* 
converter_customization */
-  to_sort[167] = &options->USE_ACCESSKEY;   /* converter_customization */
-  to_sort[168] = &options->USE_ISO;   /* converter_customization */
-  to_sort[169] = &options->USE_LINKS;   /* converter_customization */
-  to_sort[170] = &options->USE_NEXT_HEADING_FOR_LONE_NODE;   /* 
converter_customization */
-  to_sort[171] = &options->USE_NODES;   /* converter_customization */
-  to_sort[172] = &options->USE_NODE_DIRECTIONS;   /* converter_customization */
-  to_sort[173] = &options->USE_NUMERIC_ENTITY;   /* converter_customization */
-  to_sort[174] = &options->USE_REL_REV;   /* converter_customization */
-  to_sort[175] = &options->USE_SETFILENAME_EXTENSION;   /* 
converter_customization */
-  to_sort[176] = &options->USE_TITLEPAGE_FOR_TITLE;   /* 
converter_customization */
-  to_sort[177] = &options->USE_UNICODE_COLLATION;   /* converter_customization 
*/
-  to_sort[178] = &options->USE_UNIDECODE;   /* converter_customization */
-  to_sort[179] = &options->USE_XML_SYNTAX;   /* converter_customization */
-  to_sort[180] = &options->VERBOSE;   /* converter_cmdline */
-  to_sort[181] = &options->VERTICAL_HEAD_NAVIGATION;   /* 
converter_customization */
-  to_sort[182] = &options->WORDS_IN_PAGE;   /* converter_customization */
-  to_sort[183] = &options->XREF_USE_FLOAT_LABEL;   /* converter_customization 
*/
-  to_sort[184] = &options->XREF_USE_NODE_NAME_ARG;   /* 
converter_customization */
-  to_sort[185] = &options->XS_EXTERNAL_CONVERSION;   /* 
converter_customization */
-  to_sort[186] = &options->XS_EXTERNAL_FORMATTING;   /* 
converter_customization */
-  to_sort[187] = &options->XS_STRXFRM_COLLATION_LOCALE;   /* 
converter_customization */
-  to_sort[188] = &options->_INLINE_STYLE_WIDTH;   /* converter_customization */
-  to_sort[189] = &options->afivepaper;   /* unique_at_command */
-  to_sort[190] = &options->afourlatex;   /* unique_at_command */
-  to_sort[191] = &options->afourpaper;   /* unique_at_command */
-  to_sort[192] = &options->afourwide;   /* unique_at_command */
-  to_sort[193] = &options->allowcodebreaks;   /* multiple_at_command */
-  to_sort[194] = &options->bsixpaper;   /* unique_at_command */
-  to_sort[195] = &options->clickstyle;   /* multiple_at_command */
-  to_sort[196] = &options->codequotebacktick;   /* multiple_at_command */
-  to_sort[197] = &options->codequoteundirected;   /* multiple_at_command */
-  to_sort[198] = &options->contents;   /* multiple_at_command */
-  to_sort[199] = &options->deftypefnnewline;   /* multiple_at_command */
-  to_sort[200] = &options->documentdescription;   /* unique_at_command */
-  to_sort[201] = &options->documentencoding;   /* multiple_at_command */
-  to_sort[202] = &options->documentlanguage;   /* multiple_at_command */
-  to_sort[203] = &options->evenfooting;   /* multiple_at_command */
-  to_sort[204] = &options->evenfootingmarks;   /* unique_at_command */
-  to_sort[205] = &options->evenheading;   /* multiple_at_command */
-  to_sort[206] = &options->evenheadingmarks;   /* unique_at_command */
-  to_sort[207] = &options->everyfooting;   /* multiple_at_command */
-  to_sort[208] = &options->everyfootingmarks;   /* unique_at_command */
-  to_sort[209] = &options->everyheading;   /* multiple_at_command */
-  to_sort[210] = &options->everyheadingmarks;   /* unique_at_command */
-  to_sort[211] = &options->exampleindent;   /* multiple_at_command */
-  to_sort[212] = &options->firstparagraphindent;   /* multiple_at_command */
-  to_sort[213] = &options->fonttextsize;   /* unique_at_command */
-  to_sort[214] = &options->footnotestyle;   /* unique_at_command */
-  to_sort[215] = &options->frenchspacing;   /* multiple_at_command */
-  to_sort[216] = &options->headings;   /* multiple_at_command */
-  to_sort[217] = &options->kbdinputstyle;   /* multiple_at_command */
-  to_sort[218] = &options->microtype;   /* multiple_at_command */
-  to_sort[219] = &options->novalidate;   /* unique_at_command */
-  to_sort[220] = &options->oddfooting;   /* multiple_at_command */
-  to_sort[221] = &options->oddfootingmarks;   /* unique_at_command */
-  to_sort[222] = &options->oddheading;   /* multiple_at_command */
-  to_sort[223] = &options->oddheadingmarks;   /* unique_at_command */
-  to_sort[224] = &options->pagesizes;   /* unique_at_command */
-  to_sort[225] = &options->paragraphindent;   /* multiple_at_command */
-  to_sort[226] = &options->setchapternewpage;   /* unique_at_command */
-  to_sort[227] = &options->setfilename;   /* unique_at_command */
-  to_sort[228] = &options->shortcontents;   /* multiple_at_command */
-  to_sort[229] = &options->smallbook;   /* unique_at_command */
-  to_sort[230] = &options->summarycontents;   /* multiple_at_command */
-  to_sort[231] = &options->urefbreakstyle;   /* multiple_at_command */
-  to_sort[232] = &options->xrefautomaticsectiontitle;   /* multiple_at_command 
*/
+  to_sort[77] = &options->INFO_MATH_IMAGES;   /* converter_customization */
+  to_sort[78] = &options->INFO_SPECIAL_CHARS_QUOTE;   /* 
converter_customization */
+  to_sort[79] = &options->INFO_SPECIAL_CHARS_WARNING;   /* 
converter_customization */
+  to_sort[80] = &options->INLINE_CSS_STYLE;   /* converter_customization */
+  to_sort[81] = &options->INPUT_FILE_NAME_ENCODING;   /* 
converter_customization */
+  to_sort[82] = &options->INTERNAL_LINKS;   /* program_cmdline */
+  to_sort[83] = &options->JS_WEBLABELS;   /* converter_customization */
+  to_sort[84] = &options->JS_WEBLABELS_FILE;   /* converter_customization */
+  to_sort[85] = &options->L2H_CLEAN;   /* converter_customization */
+  to_sort[86] = &options->L2H_FILE;   /* converter_customization */
+  to_sort[87] = &options->L2H_HTML_VERSION;   /* converter_customization */
+  to_sort[88] = &options->L2H_L2H;   /* converter_customization */
+  to_sort[89] = &options->L2H_SKIP;   /* converter_customization */
+  to_sort[90] = &options->L2H_TMP;   /* converter_customization */
+  to_sort[91] = &options->LATEX_FLOATS_FILE_EXTENSION;   /* 
converter_customization */
+  to_sort[92] = &options->LINKS_BUTTONS;   /* converter_other */
+  to_sort[93] = &options->LOCALE_ENCODING;   /* converter_customization */
+  to_sort[94] = &options->MACRO_EXPAND;   /* program_cmdline */
+  to_sort[95] = &options->MATHJAX_CONFIGURATION;   /* converter_customization 
*/
+  to_sort[96] = &options->MATHJAX_SCRIPT;   /* converter_customization */
+  to_sort[97] = &options->MATHJAX_SOURCE;   /* converter_customization */
+  to_sort[98] = &options->MAX_HEADER_LEVEL;   /* converter_customization */
+  to_sort[99] = &options->MAX_MACRO_CALL_NESTING;   /* parser */
+  to_sort[100] = &options->MENU_ENTRY_COLON;   /* converter_customization */
+  to_sort[101] = &options->MENU_SYMBOL;   /* converter_customization */
+  to_sort[102] = &options->MESSAGE_ENCODING;   /* converter_customization */
+  to_sort[103] = &options->MISC_BUTTONS;   /* converter_other */
+  to_sort[104] = &options->MONOLITHIC;   /* converter_customization */
+  to_sort[105] = &options->NODE_FILES;   /* converter_cmdline */
+  to_sort[106] = &options->NODE_FOOTER_BUTTONS;   /* converter_other */
+  to_sort[107] = &options->NODE_NAME_IN_INDEX;   /* converter_customization */
+  to_sort[108] = &options->NODE_NAME_IN_MENU;   /* converter_customization */
+  to_sort[109] = &options->NO_CSS;   /* converter_customization */
+  to_sort[110] = &options->NO_CUSTOM_HTML_ATTRIBUTE;   /* 
converter_customization */
+  to_sort[111] = &options->NO_INDEX;   /* parser */
+  to_sort[112] = &options->NO_NUMBER_FOOTNOTE_SYMBOL;   /* 
converter_customization */
+  to_sort[113] = &options->NO_TOP_NODE_OUTPUT;   /* converter_customization */
+  to_sort[114] = &options->NO_USER_COMMANDS;   /* parser */
+  to_sort[115] = &options->NO_WARN;   /* program_cmdline */
+  to_sort[116] = &options->NUMBER_FOOTNOTES;   /* converter_cmdline */
+  to_sort[117] = &options->NUMBER_SECTIONS;   /* converter_cmdline */
+  to_sort[118] = &options->OPEN_DOUBLE_QUOTE_SYMBOL;   /* 
converter_customization */
+  to_sort[119] = &options->OPEN_QUOTE_SYMBOL;   /* converter_customization */
+  to_sort[120] = &options->OUTFILE;   /* converter_cmdline */
+  to_sort[121] = &options->OUTPUT_CHARACTERS;   /* converter_customization */
+  to_sort[122] = &options->OUTPUT_ENCODING_NAME;   /* converter_customization 
*/
+  to_sort[123] = &options->OUTPUT_FILE_NAME_ENCODING;   /* 
converter_customization */
+  to_sort[124] = &options->OUTPUT_PERL_ENCODING;   /* converter_customization 
*/
+  to_sort[125] = &options->PACKAGE;   /* converter_customization */
+  to_sort[126] = &options->PACKAGE_AND_VERSION;   /* converter_customization */
+  to_sort[127] = &options->PACKAGE_NAME;   /* converter_customization */
+  to_sort[128] = &options->PACKAGE_URL;   /* converter_customization */
+  to_sort[129] = &options->PACKAGE_VERSION;   /* converter_customization */
+  to_sort[130] = &options->PASSIVE_ICONS;   /* converter_other */
+  to_sort[131] = &options->PREFIX;   /* converter_customization */
+  to_sort[132] = &options->PRE_BODY_CLOSE;   /* converter_customization */
+  to_sort[133] = &options->PROGRAM;   /* converter_customization */
+  to_sort[134] = &options->PROGRAM_NAME_IN_ABOUT;   /* converter_customization 
*/
+  to_sort[135] = &options->PROGRAM_NAME_IN_FOOTER;   /* 
converter_customization */
+  to_sort[136] = &options->SECTION_BUTTONS;   /* converter_other */
+  to_sort[137] = &options->SECTION_FOOTER_BUTTONS;   /* converter_other */
+  to_sort[138] = &options->SECTION_NAME_IN_TITLE;   /* converter_customization 
*/
+  to_sort[139] = &options->SHORT_TOC_LINK_TO_TOC;   /* converter_customization 
*/
+  to_sort[140] = &options->SHOW_BUILTIN_CSS_RULES;   /* program_customization 
*/
+  to_sort[141] = &options->SHOW_TITLE;   /* converter_customization */
+  to_sort[142] = &options->SORT_ELEMENT_COUNT;   /* program_customization */
+  to_sort[143] = &options->SORT_ELEMENT_COUNT_WORDS;   /* 
program_customization */
+  to_sort[144] = &options->SPLIT;   /* converter_cmdline */
+  to_sort[145] = &options->SPLIT_SIZE;   /* converter_cmdline */
+  to_sort[146] = &options->SUBDIR;   /* converter_cmdline */
+  to_sort[147] = &options->T4H_LATEX_CONVERSION;   /* converter_customization 
*/
+  to_sort[148] = &options->T4H_MATH_CONVERSION;   /* converter_customization */
+  to_sort[149] = &options->T4H_TEX_CONVERSION;   /* converter_customization */
+  to_sort[150] = &options->TEST;   /* converter_customization */
+  to_sort[151] = &options->TEXI2DVI;   /* program_customization */
+  to_sort[152] = &options->TEXI2HTML;   /* converter_customization */
+  to_sort[153] = &options->TEXINFO_DTD_VERSION;   /* converter_customization */
+  to_sort[154] = &options->TEXINFO_LANGUAGE_DIRECTORIES;   /* array_cmdline */
+  to_sort[155] = &options->TEXINFO_OUTPUT_FORMAT;   /* converter_customization 
*/
+  to_sort[156] = &options->TEXTCONTENT_COMMENT;   /* converter_customization */
+  to_sort[157] = &options->TOC_LINKS;   /* converter_customization */
+  to_sort[158] = &options->TOP_BUTTONS;   /* converter_other */
+  to_sort[159] = &options->TOP_FILE;   /* converter_customization */
+  to_sort[160] = &options->TOP_FOOTER_BUTTONS;   /* converter_other */
+  to_sort[161] = &options->TOP_NODE_FILE_TARGET;   /* converter_customization 
*/
+  to_sort[162] = &options->TOP_NODE_UP;   /* converter_customization */
+  to_sort[163] = &options->TOP_NODE_UP_URL;   /* converter_customization */
+  to_sort[164] = &options->TRACE_INCLUDES;   /* program_cmdline */
+  to_sort[165] = &options->TRANSLITERATE_FILE_NAMES;   /* converter_cmdline */
+  to_sort[166] = &options->TREE_TRANSFORMATIONS;   /* program_customization */
+  to_sort[167] = &options->TXI_MARKUP_NO_SECTION_EXTENT;   /* 
converter_customization */
+  to_sort[168] = &options->USE_ACCESSKEY;   /* converter_customization */
+  to_sort[169] = &options->USE_ISO;   /* converter_customization */
+  to_sort[170] = &options->USE_LINKS;   /* converter_customization */
+  to_sort[171] = &options->USE_NEXT_HEADING_FOR_LONE_NODE;   /* 
converter_customization */
+  to_sort[172] = &options->USE_NODES;   /* converter_customization */
+  to_sort[173] = &options->USE_NODE_DIRECTIONS;   /* converter_customization */
+  to_sort[174] = &options->USE_NUMERIC_ENTITY;   /* converter_customization */
+  to_sort[175] = &options->USE_REL_REV;   /* converter_customization */
+  to_sort[176] = &options->USE_SETFILENAME_EXTENSION;   /* 
converter_customization */
+  to_sort[177] = &options->USE_TITLEPAGE_FOR_TITLE;   /* 
converter_customization */
+  to_sort[178] = &options->USE_UNICODE_COLLATION;   /* converter_customization 
*/
+  to_sort[179] = &options->USE_UNIDECODE;   /* converter_customization */
+  to_sort[180] = &options->USE_XML_SYNTAX;   /* converter_customization */
+  to_sort[181] = &options->VERBOSE;   /* converter_cmdline */
+  to_sort[182] = &options->VERTICAL_HEAD_NAVIGATION;   /* 
converter_customization */
+  to_sort[183] = &options->WORDS_IN_PAGE;   /* converter_customization */
+  to_sort[184] = &options->XREF_USE_FLOAT_LABEL;   /* converter_customization 
*/
+  to_sort[185] = &options->XREF_USE_NODE_NAME_ARG;   /* 
converter_customization */
+  to_sort[186] = &options->XS_EXTERNAL_CONVERSION;   /* 
converter_customization */
+  to_sort[187] = &options->XS_EXTERNAL_FORMATTING;   /* 
converter_customization */
+  to_sort[188] = &options->XS_STRXFRM_COLLATION_LOCALE;   /* 
converter_customization */
+  to_sort[189] = &options->_INLINE_STYLE_WIDTH;   /* converter_customization */
+  to_sort[190] = &options->afivepaper;   /* unique_at_command */
+  to_sort[191] = &options->afourlatex;   /* unique_at_command */
+  to_sort[192] = &options->afourpaper;   /* unique_at_command */
+  to_sort[193] = &options->afourwide;   /* unique_at_command */
+  to_sort[194] = &options->allowcodebreaks;   /* multiple_at_command */
+  to_sort[195] = &options->bsixpaper;   /* unique_at_command */
+  to_sort[196] = &options->clickstyle;   /* multiple_at_command */
+  to_sort[197] = &options->codequotebacktick;   /* multiple_at_command */
+  to_sort[198] = &options->codequoteundirected;   /* multiple_at_command */
+  to_sort[199] = &options->contents;   /* multiple_at_command */
+  to_sort[200] = &options->deftypefnnewline;   /* multiple_at_command */
+  to_sort[201] = &options->documentdescription;   /* unique_at_command */
+  to_sort[202] = &options->documentencoding;   /* multiple_at_command */
+  to_sort[203] = &options->documentlanguage;   /* multiple_at_command */
+  to_sort[204] = &options->evenfooting;   /* multiple_at_command */
+  to_sort[205] = &options->evenfootingmarks;   /* unique_at_command */
+  to_sort[206] = &options->evenheading;   /* multiple_at_command */
+  to_sort[207] = &options->evenheadingmarks;   /* unique_at_command */
+  to_sort[208] = &options->everyfooting;   /* multiple_at_command */
+  to_sort[209] = &options->everyfootingmarks;   /* unique_at_command */
+  to_sort[210] = &options->everyheading;   /* multiple_at_command */
+  to_sort[211] = &options->everyheadingmarks;   /* unique_at_command */
+  to_sort[212] = &options->exampleindent;   /* multiple_at_command */
+  to_sort[213] = &options->firstparagraphindent;   /* multiple_at_command */
+  to_sort[214] = &options->fonttextsize;   /* unique_at_command */
+  to_sort[215] = &options->footnotestyle;   /* unique_at_command */
+  to_sort[216] = &options->frenchspacing;   /* multiple_at_command */
+  to_sort[217] = &options->headings;   /* multiple_at_command */
+  to_sort[218] = &options->kbdinputstyle;   /* multiple_at_command */
+  to_sort[219] = &options->microtype;   /* multiple_at_command */
+  to_sort[220] = &options->novalidate;   /* unique_at_command */
+  to_sort[221] = &options->oddfooting;   /* multiple_at_command */
+  to_sort[222] = &options->oddfootingmarks;   /* unique_at_command */
+  to_sort[223] = &options->oddheading;   /* multiple_at_command */
+  to_sort[224] = &options->oddheadingmarks;   /* unique_at_command */
+  to_sort[225] = &options->pagesizes;   /* unique_at_command */
+  to_sort[226] = &options->paragraphindent;   /* multiple_at_command */
+  to_sort[227] = &options->setchapternewpage;   /* unique_at_command */
+  to_sort[228] = &options->setfilename;   /* unique_at_command */
+  to_sort[229] = &options->shortcontents;   /* multiple_at_command */
+  to_sort[230] = &options->smallbook;   /* unique_at_command */
+  to_sort[231] = &options->summarycontents;   /* multiple_at_command */
+  to_sort[232] = &options->urefbreakstyle;   /* multiple_at_command */
+  to_sort[233] = &options->xrefautomaticsectiontitle;   /* multiple_at_command 
*/
 }
 
 
diff --git a/tp/Texinfo/options_data.txt b/tp/Texinfo/options_data.txt
index 0541434918..ec7b5c6d85 100644
--- a/tp/Texinfo/options_data.txt
+++ b/tp/Texinfo/options_data.txt
@@ -266,6 +266,7 @@ INDEX_SPECIAL_CHARS_WARNING        converter_customization 
undef   integer
 INFO_JS_DIR                        converter_customization undef   char
 INFO_SPECIAL_CHARS_QUOTE           converter_customization undef   char
 INFO_SPECIAL_CHARS_WARNING         converter_customization undef   integer
+INFO_MATH_IMAGES                   converter_customization undef   integer
 IGNORE_REF_TO_TOP_NODE_UP          converter_customization undef   integer
 INLINE_CSS_STYLE                   converter_customization undef   integer
 INPUT_FILE_NAME_ENCODING           converter_customization undef   char



reply via email to

[Prev in Thread] Current Thread [Next in Thread]