texinfo-commits
[Top][All Lists]
Advanced

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

texinfo/tp TODO Texinfo/Convert/Line.pm Texinfo...


From: Patrice Dumas
Subject: texinfo/tp TODO Texinfo/Convert/Line.pm Texinfo...
Date: Tue, 18 Oct 2011 20:13:30 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        11/10/18 20:13:30

Modified files:
        tp             : TODO 
        tp/Texinfo/Convert: Line.pm Paragraph.pm Plaintext.pm 
                            UnFilled.pm 
        tp/maintain    : regenerate_file_lists.pl 
        tp/t           : paragraph.t plaintext_tests.t 
        tp/t/results/info_tests: error_in_footnote.pl 
        tp/t/results/plaintext_tests: characters_and_commands_in_var.pl 
        tp/t/results/test_count: commands.pl 
Added files:
        tp/t/results/plaintext_tests: code_commands_and_punctuation.pl 
                                      command_brace_no_arg_punctuation.pl 
                                      punctuation_and_upper_case_commands.pl 
                                      
punctuation_and_upper_case_commands_utf8.pl 
                                      transparent_text.pl 

Log message:
        Many fixes for space after sentences.  For that add transparent text.
        Also add underlying text, the text used to determine whether there is an
        upper case letter before the sentence or not.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/TODO?cvsroot=texinfo&r1=1.191&r2=1.192
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Line.pm?cvsroot=texinfo&r1=1.22&r2=1.23
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Paragraph.pm?cvsroot=texinfo&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Plaintext.pm?cvsroot=texinfo&r1=1.172&r2=1.173
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/UnFilled.pm?cvsroot=texinfo&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/maintain/regenerate_file_lists.pl?cvsroot=texinfo&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/paragraph.t?cvsroot=texinfo&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/plaintext_tests.t?cvsroot=texinfo&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/info_tests/error_in_footnote.pl?cvsroot=texinfo&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/plaintext_tests/characters_and_commands_in_var.pl?cvsroot=texinfo&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/plaintext_tests/code_commands_and_punctuation.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/plaintext_tests/command_brace_no_arg_punctuation.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/plaintext_tests/punctuation_and_upper_case_commands.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/plaintext_tests/punctuation_and_upper_case_commands_utf8.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/plaintext_tests/transparent_text.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/test_count/commands.pl?cvsroot=texinfo&r1=1.24&r2=1.25

Patches:
Index: TODO
===================================================================
RCS file: /sources/texinfo/texinfo/tp/TODO,v
retrieving revision 1.191
retrieving revision 1.192
diff -u -b -r1.191 -r1.192
--- TODO        16 Oct 2011 23:02:56 -0000      1.191
+++ TODO        18 Oct 2011 20:13:28 -0000      1.192
@@ -1,9 +1,3 @@
-In Info @var{aa} leads to aa being capitalized.  Right now, if there is a
-punctuation after the @var, the rule for capitalized word apply, ie, no
-doubling of spaces.  Same with @sc.  It is certainly wrong, especially
-for @var. In TeX, there is a doubling of space for both @var (which is not 
-capitalized) and @sc.
-
 export XML_CATALOG_FILES=~/src/texinfo/tp/catalog.xml
 perl -w t/02coverage.t -o
 xmllint --nonet --noout --valid commands.xml

Index: Texinfo/Convert/Line.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Line.pm,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- Texinfo/Convert/Line.pm     26 Sep 2011 17:15:46 -0000      1.22
+++ Texinfo/Convert/Line.pm     18 Oct 2011 20:13:28 -0000      1.23
@@ -55,10 +55,16 @@
 {
   my $self = shift;
   my $word = 'UNDEF';
-  $word = $self->{'word'} if (defined($self->{'word'}));
+  my $underlying = '';
+  if (defined($self->{'word'})) {
+    $word = $self->{'word'};
+    if ($self->{'word'} ne $self->{'underlying_word'}) {
+      $underlying = ", underlying_word: $self->{'underlying_word'},";
+    }
+  }
   my $end_sentence = 'UNDEF';
   $end_sentence = $self->{'end_sentence'} if 
(defined($self->{'end_sentence'}));
-  print STDERR "line ($self->{'line_beginning'},$self->{'counter'}) word: 
$word, space `$self->{'space'}' end_sentence: $end_sentence\n"; 
+  print STDERR "line ($self->{'line_beginning'},$self->{'counter'}) word: 
$word, space `$self->{'space'}'${underlying} end_sentence: $end_sentence\n"; 
 }
 
 sub end_line($)
@@ -132,6 +138,7 @@
       $result .= $line->{'word'};
       print STDERR "ADD_WORD.L[$line->{'word'}]\n" if ($line->{'DEBUG'});
       $line->{'word'} = undef;
+      $line->{'underlying_word'} = undef;
     }
   }
   return $result;
@@ -148,28 +155,34 @@
   return $result;
 }
 
-sub add_next($;$$$)
+sub add_next($;$$$$)
 {
   my $line = shift;
   my $word = shift;
   my $space = shift;
   my $end_sentence = shift;
+  my $transparent = shift;
   $line->{'end_line_count'} = 0;
-  return $line->_add_next($word, $space, $end_sentence);
+  return $line->_add_next($word, undef, $space, $end_sentence, $transparent);
 }
 
 # add a word and/or spaces and end of sentence.
-sub _add_next($;$$$)
+sub _add_next($;$$$$$)
 {
   my $line = shift;
   my $word = shift;
+  my $underlying_word = shift;
   my $space = shift;
   my $end_sentence = shift;
+  my $transparent = shift;
   my $result = '';
 
+  $underlying_word = $word if (!defined($underlying_word));
+
   if (defined($word)) {
     if (!defined($line->{'word'})) {
       $line->{'word'} = '';
+      $line->{'underlying_word'} = '';
       if ($line->{'end_sentence'}
           and $line->{'end_sentence'} > 0
           and !$line->{'frenchspacing'}
@@ -181,7 +194,11 @@
       }
     }
     $line->{'word'} .= $word;
-    print STDERR "WORD+.L $word -> $line->{'word'}\n" if ($line->{'DEBUG'});
+    $line->{'underlying_word'} .= $underlying_word unless ($transparent);
+    if ($line->{'DEBUG'}) {
+      print STDERR "WORD+.L $word -> $line->{'word'}\n";
+      print STDERR "WORD+.L $underlying_word -> $line->{'underlying_word'}\n";
+    }
   }
   if (defined($space)) {
     if ($line->{'protect_spaces'}) {
@@ -237,10 +254,12 @@
 my $after_punctuation_characters = quotemeta('"\')]');
 
 # wrap a text.
-sub add_text($$)
+sub add_text($$;$)
 {
   my $line = shift;
   my $text = shift;
+  my $underlying_text = shift;
+  $underlying_text = $text if (!defined($underlying_text));
   $line->{'end_line_count'} = 0;
   my $result = '';
 
@@ -251,10 +270,12 @@
       print STDERR "s `$line->{'space'}', w `$word'\n";
     }
     if ($text =~ s/^([^\S\n]+)//) {
+      $underlying_text =~ s/^([^\S\n]+)//;
       my $spaces = $1;
       print STDERR "SPACES.L\n" if ($line->{'DEBUG'});
       if ($line->{'protect_spaces'}) {
         $line->{'word'} .= $spaces;
+        $line->{'underlying_word'} .= $spaces;
       } else {
         my $added_word = $line->{'word'};
         $result .= $line->_add_pending_word();
@@ -276,13 +297,16 @@
       }
     } elsif ($text =~ s/^([^\s\p{Unicode::EastAsianWidth::InFullwidth}]+)//) {
       my $added_word = $1;
-      $result .= $line->_add_next($added_word);
+      $underlying_text =~ 
s/^([^\s\p{Unicode::EastAsianWidth::InFullwidth}]+)//;
+      my $underlying_added_word = $1;
+
+      $result .= $line->_add_next($added_word, $underlying_added_word);
       # now check if it is considered as an end of sentence
       if (defined($line->{'end_sentence'}) and 
         $added_word =~ /^[$after_punctuation_characters]*$/) {
         # do nothing in the case of a continuation of 
after_punctuation_characters
-      } elsif ($line->{'word'} =~ 
/[$end_sentence_character][$after_punctuation_characters]*$/
-           and $line->{'word'} !~ 
/[[:upper:]][$end_sentence_character][$after_punctuation_characters]*$/) {
+      } elsif ($line->{'underlying_word'} =~ 
/[$end_sentence_character][$after_punctuation_characters]*$/
+           and $line->{'underlying_word'} !~ 
/[[:upper:]][$end_sentence_character$after_punctuation_characters]*$/) {
         if ($line->{'frenchspacing'}) {
           $line->{'end_sentence'} = -1;
         } else {
@@ -295,12 +319,19 @@
         delete $line->{'end_sentence'};
       }
     } elsif ($text =~ s/^\n//) {
+      $underlying_text =~ s/^\n//;
       $result .= $line->_end_line();
     } elsif ($text =~ s/^(\p{Unicode::EastAsianWidth::InFullwidth})//) {
       my $added = $1;
+      $underlying_text =~ s/^(\p{Unicode::EastAsianWidth::InFullwidth})//;
+      my $underlying_added = $1;
       print STDERR "EAST_ASIAN.L\n" if ($line->{'DEBUG'});
-      $line->{'word'} = '' if (!defined($line->{'word'}));
+      if (!defined($line->{'word'})) {
+        $line->{'word'} = '';
+        $line->{'underlying_word'} = '';
+      }
       $line->{'word'} .= $added;
+      $line->{'underlying_word'} .= $underlying_added; 
       $result .= $line->_add_pending_word();
       delete $line->{'end_sentence'};
       $line->{'space'} = '';

Index: Texinfo/Convert/Paragraph.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Paragraph.pm,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- Texinfo/Convert/Paragraph.pm        26 Sep 2011 17:15:46 -0000      1.23
+++ Texinfo/Convert/Paragraph.pm        18 Oct 2011 20:13:28 -0000      1.24
@@ -50,10 +50,16 @@
 {
   my $self = shift;
   my $word = 'UNDEF';
-  $word = $self->{'word'} if (defined($self->{'word'}));
+  my $underlying = '';
+  if (defined($self->{'word'})) {
+    $word = $self->{'word'};
+    if ($self->{'word'} ne $self->{'underlying_word'}) {
+      $underlying = ", underlying_word: $self->{'underlying_word'},";
+    }
+  }
   my $end_sentence = 'UNDEF';
   $end_sentence = $self->{'end_sentence'} if 
(defined($self->{'end_sentence'}));
-  print STDERR "para ($self->{'counter'}+$self->{'word_counter'}) word: $word, 
space `$self->{'space'}' end_sentence: $end_sentence\n"; 
+  print STDERR "para ($self->{'counter'}+$self->{'word_counter'}) word: $word, 
space `$self->{'space'}'${underlying} end_sentence: $end_sentence\n"; 
 }
 
 sub _cut_line($)
@@ -139,6 +145,7 @@
       print STDERR 
"ADD_WORD[$paragraph->{'word'}]+$paragraph->{'word_counter'} 
($paragraph->{'counter'})\n"
         if ($paragraph->{'DEBUG'});
       $paragraph->{'word'} = undef;
+      $paragraph->{'underlying_word'} = undef;
       $paragraph->{'word_counter'} = 0;
     }
     $paragraph->{'space'} = '';
@@ -161,32 +168,40 @@
   return $result;
 }
 
-sub add_next($;$$$)
+sub add_next($;$$$$)
 {
   my $paragraph = shift;
   my $word = shift;
   my $space = shift;
   my $end_sentence = shift;
+  my $transparent = shift;
   $paragraph->{'end_line_count'} = 0;
-  return $paragraph->_add_next($word, $space, $end_sentence);
+  return $paragraph->_add_next($word, undef, $space, $end_sentence, 
+                               $transparent);
 }
 
 # add a word and/or spaces and end of sentence.
-sub _add_next($;$$$)
+sub _add_next($;$$$$$)
 {
   my $paragraph = shift;
   my $word = shift;
+  my $underlying_word = shift;
   my $space = shift;
   my $end_sentence = shift;
+  my $transparent = shift;
   my $result = '';
 
+  $underlying_word = $word if (!defined($underlying_word));
+
   if (defined($word)) {
     if (!defined($paragraph->{'word'})) {
       $paragraph->{'word'} = '';
+      $paragraph->{'underlying_word'} = '';
       if ($paragraph->{'end_sentence'} 
            and $paragraph->{'end_sentence'} > 0
            and !$paragraph->{'frenchspacing'}
            and $paragraph->{'counter'} != 0 and $paragraph->{'space'}) {
+        # do not to double space if there are leading spaces in word
         if ($word !~ /^\s/) {
           $paragraph->{'space'} = '  ';
         }
@@ -195,8 +210,12 @@
     }
     
     $paragraph->{'word'} .= $word;
+    $paragraph->{'underlying_word'} .= $underlying_word unless($transparent);
     $paragraph->{'word_counter'} += length($word);
-    print STDERR "WORD+ $word -> $paragraph->{'word'}\n" if 
($paragraph->{'DEBUG'});
+    if ($paragraph->{'DEBUG'}) {
+      print STDERR "WORD+ $word -> $paragraph->{'word'}\n";
+      print STDERR "UNDERLYING_WORD+ $underlying_word -> 
$paragraph->{'underlying_word'}\n";
+    }
     # The $paragraph->{'counter'} != 0 is here to avoid having an
     # additional line output when the text is longer than the max.
     if ($paragraph->{'counter'} != 0 and 
@@ -263,10 +282,12 @@
 my $after_punctuation_characters = quotemeta('"\')]');
 
 # wrap a text.
-sub add_text($$)
+sub add_text($$;$)
 {
   my $paragraph = shift;
   my $text = shift;
+  my $underlying_text = shift;
+  $underlying_text = $text if (!defined($underlying_text));
   $paragraph->{'end_line_count'} = 0;
   my $result = '';
 
@@ -278,11 +299,12 @@
     }
     if ($text =~ s/^(\s+)//) {
       my $spaces = $1;
+      $underlying_text =~ s/^(\s+)//;
       print STDERR "SPACES($paragraph->{'counter'})\n" if 
($paragraph->{'DEBUG'});
-      my $added_word = $paragraph->{'word'};
+      #my $added_word = $paragraph->{'word'};
       if ($paragraph->{'protect_spaces'}) {
-        
         $paragraph->{'word'} .= $spaces;
+        $paragraph->{'underlying_word'} .= $spaces;
         $paragraph->{'word_counter'} += length($spaces);
         #$paragraph->{'space'} .= $spaces;
         if ($paragraph->{'word'} =~ s/\n/ /g 
@@ -292,6 +314,7 @@
           $paragraph->{'word'} =~ /(\s*)$/;
           if (length($1) < 2) {
             $paragraph->{'word'} =~ s/(\s*)$/  /;
+            $paragraph->{'underlying_word'} =~ s/(\s*)$/  /;
             my $removed = $1;
             $paragraph->{'word_counter'} += length('  ') - length($removed);
           }
@@ -332,9 +355,16 @@
       }
     } elsif ($text =~ s/^(\p{Unicode::EastAsianWidth::InFullwidth})//) {
       my $added = $1;
+      $underlying_text =~ s/^(\p{Unicode::EastAsianWidth::InFullwidth})//;
+      my $underlying_added = $1;
+      
       print STDERR "EAST_ASIAN\n" if ($paragraph->{'DEBUG'});
-      $paragraph->{'word'} = '' if (!defined($paragraph->{'word'}));
+      if (!defined($paragraph->{'word'})) {
+        $paragraph->{'word'} = '';
+        $paragraph->{'underlying_word'} = '';
+      }
       $paragraph->{'word'} .= $added;
+      $paragraph->{'underlying_word'} .= $underlying_added; 
       $paragraph->{'word_counter'} += 2;
       if ($paragraph->{'counter'} != 0 and
           $paragraph->{'counter'} + $paragraph->{'word_counter'} 
@@ -346,13 +376,17 @@
       $paragraph->{'space'} = '';
     } elsif ($text =~ s/^([^\s\p{Unicode::EastAsianWidth::InFullwidth}]+)//) {
       my $added_word = $1;
-      $result .= $paragraph->_add_next($added_word);
+      $underlying_text =~ 
s/^([^\s\p{Unicode::EastAsianWidth::InFullwidth}]+)//;
+      my $underlying_added_word = $1;
+
+      $result .= $paragraph->_add_next($added_word, $underlying_added_word);
+
       # now check if it is considered as an end of sentence
       if (defined($paragraph->{'end_sentence'})
-          and $added_word =~ /^[$after_punctuation_characters]*$/) {
+          and $underlying_added_word =~ /^[$after_punctuation_characters]*$/) {
         # do nothing in the case of a continuation of 
after_punctuation_characters
-      } elsif ($paragraph->{'word'} =~ 
/[$end_sentence_character][$after_punctuation_characters]*$/
-           and $paragraph->{'word'} !~ 
/[[:upper:]][$end_sentence_character][$after_punctuation_characters]*$/) {
+      } elsif ($paragraph->{'underlying_word'} =~ 
/[$end_sentence_character][$after_punctuation_characters]*$/
+           and $paragraph->{'underlying_word'} !~ 
/[[:upper:]][$end_sentence_character$after_punctuation_characters]*$/) {
         if ($paragraph->{'frenchspacing'}) {
           $paragraph->{'end_sentence'} = -1;
         } else {

Index: Texinfo/Convert/Plaintext.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Plaintext.pm,v
retrieving revision 1.172
retrieving revision 1.173
diff -u -b -r1.172 -r1.173
--- Texinfo/Convert/Plaintext.pm        16 Oct 2011 11:31:50 -0000      1.172
+++ Texinfo/Convert/Plaintext.pm        18 Oct 2011 20:13:28 -0000      1.173
@@ -92,6 +92,7 @@
 my %code_style_commands       = %Texinfo::Common::code_style_commands;
 my %preformatted_code_commands = %Texinfo::Common::preformatted_code_commands;
 my %default_index_commands = %Texinfo::Common::default_index_commands;
+my %letter_no_arg_commands = %Texinfo::Common::letter_no_arg_commands;
 
 foreach my $kept_command(keys (%informative_commands),
   keys (%default_index_commands),
@@ -431,18 +432,38 @@
   my $context = shift;
   my $text = $command->{'text'};
 
-  $text = uc($text) if ($self->{'formatters'}->[-1]->{'upper_case'});
+  my $lower_case_text;
+  if ($self->{'formatters'}->[-1]->{'upper_case'}) {
+    $lower_case_text = $text;
+    $text = uc($text);
+  }
+  # Even if in upper case, in code style, end a sentence.
+  if ($context->{'code'}) {
+    $lower_case_text = lc($text);
+  }
   if ($self->get_conf('ENABLE_ENCODING') and $self->{'encoding_name'} 
       and $self->{'encoding_name'} eq 'utf-8') {
-    return Texinfo::Convert::Unicode::unicode_text($text, $context->{'code'});
+    if ($self->{'formatters'}->[-1]->{'upper_case'}) {
+      $lower_case_text 
+        = Texinfo::Convert::Unicode::unicode_text($lower_case_text, 
$context->{'code'});
+    }
+    return (Texinfo::Convert::Unicode::unicode_text($text, $context->{'code'}),
+            $lower_case_text);
   } elsif (!$context->{'code'}) {
     $text =~ s/---/\x{1F}/g;
     $text =~ s/--/-/g;
     $text =~ s/\x{1F}/--/g;
     $text =~ s/``/"/g;
     $text =~ s/\'\'/"/g;
+    if (defined($lower_case_text)) {
+      $lower_case_text =~ s/---/\x{1F}/g;
+      $lower_case_text =~ s/--/-/g;
+      $lower_case_text =~ s/\x{1F}/--/g;
+      $lower_case_text =~ s/``/"/g;
+      $lower_case_text =~ s/\'\'/"/g;
   }
-  return $text;
+  }
+  return ($text, $lower_case_text);
 }
 
 sub new_formatter($$;$)
@@ -1052,9 +1073,9 @@
         $result = $self->_count_added($formatter->{'container'},
                     $formatter->{'container'}->add_next($root->{'text'}));
       } else {
+        my ($text, $lower_case_text) = $self->_process_text($root, $formatter);
         $result = $self->_count_added($formatter->{'container'},
-                    $formatter->{'container'}->add_text(
-                       $self->_process_text($root, $formatter)));
+                    $formatter->{'container'}->add_text($text, 
$lower_case_text));
       }
       return $result;
     # the following is only possible if paragraphindent is set to asis
@@ -1163,6 +1184,11 @@
       my $text = Texinfo::Convert::Text::brace_no_arg_command($root, 
                              {'enabled_encoding' => $encoding,
                               'sc' => $formatter->{'upper_case'}});
+      my $lower_case_text;
+      if ($formatter->{'upper_case'}) {
+        $lower_case_text = Texinfo::Convert::Text::brace_no_arg_command($root,
+                             {'enabled_encoding' => $encoding});
+      }
       if ($punctuation_no_arg_commands{$command}) {
         $result .= $self->_count_added($formatter->{'container'},
                     $formatter->{'container'}->add_next($text, undef, 1));
@@ -1172,14 +1198,21 @@
             $formatter->{'container'}->set_space_protection(1,1))
           if ($formatter->{'w'} == 1);
         $result .= $self->_count_added($formatter->{'container'}, 
-                       $formatter->{'container'}->add_text($text)); 
+                       $formatter->{'container'}->add_text($text,
+                                                           $lower_case_text)); 
         $formatter->{'w'}--;
         $result .= $self->_count_added($formatter->{'container'},
             $formatter->{'container'}->set_space_protection(0,0))
           if ($formatter->{'w'} == 0);
       } else {
+        # This is to have @TeX{}, for example, be considered as tex
+        # as underlying text in order not to prevent end sentences.
+        if (!$letter_no_arg_commands{$command}) {
+          $lower_case_text = lc($text);
+        }
         $result .= $self->_count_added($formatter->{'container'}, 
-                       $formatter->{'container'}->add_text($text)); 
+                       $formatter->{'container'}->add_text($text,
+                                                           $lower_case_text)); 
         if ($command eq 'dots') {
           $formatter->{'container'}->inhibit_end_sentence();
         }
@@ -1194,8 +1227,14 @@
       my $accented_text 
          = Texinfo::Convert::Text::text_accents($root, $encoding,
                                                 $formatter->{'upper_case'});
+      my $accented_text_lower_case;
+      if ($formatter->{'upper_case'}) {
+        $accented_text_lower_case
+         = Texinfo::Convert::Text::text_accents($root, $encoding);
+      }
       $result .= $self->_count_added($formatter->{'container'},
-         $formatter->{'container'}->add_text($accented_text));
+         $formatter->{'container'}->add_text($accented_text, 
+                                             $accented_text_lower_case));
       # in case the text added ends with punctuation.  
       # If the text is empty (likely because of an error) previous 
       # punctuation will be cancelled, we don't want that.
@@ -1227,7 +1266,8 @@
         $text_after = $style_map{$command}->[1];
       }
       $result .= $self->_count_added($formatter->{'container'},
-               $formatter->{'container'}->add_next($text_before))
+               $formatter->{'container'}->add_next($text_before, 
+                                                   undef, undef, 1))
          if ($text_before ne '');
       if ($root->{'args'}) {
         $result .= $self->_convert($root->{'args'}->[0]);
@@ -1241,7 +1281,8 @@
         }
       }
       $result .= $self->_count_added($formatter->{'container'},
-               $formatter->{'container'}->add_next($text_after))
+               $formatter->{'container'}->add_next($text_after,
+                                                   undef, undef, 1))
          if ($text_after ne '');
       if ($command eq 'w') {
         $formatter->{'w'}--;
@@ -1343,7 +1384,8 @@
         $self->_error_outside_of_any_node($root);
       }
       $result .= $self->_count_added($formatter->{'container'},
-               
$formatter->{'container'}->add_next("($formatted_footnote_number)"));
+           $formatter->{'container'}->add_next("($formatted_footnote_number)", 
+                                                  undef, undef, 1));
       if ($self->get_conf('footnotestyle') eq 'separate' and $self->{'node'}) {
         $result .= $self->_convert({'contents' => 
          [{'text' => ' ('},

Index: Texinfo/Convert/UnFilled.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/UnFilled.pm,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- Texinfo/Convert/UnFilled.pm 20 Aug 2011 14:38:47 -0000      1.10
+++ Texinfo/Convert/UnFilled.pm 18 Oct 2011 20:13:28 -0000      1.11
@@ -146,12 +146,13 @@
 }
 
 # add a word and/or spaces and end of sentence.
-sub add_next($;$$$)
+sub add_next($;$$$$)
 {
   my $line = shift;
   my $word = shift;
   my $space = shift;
   my $end_sentence = shift;
+  my $transparent = shift;
   $line->{'end_line_count'} = 0;
   my $result = '';
 
@@ -179,6 +180,8 @@
 {
   my $line = shift;
   my $text = shift;
+  my $underlying_text = shift;
+
   $line->{'end_line_count'} = 0;
   return $line->_add_text($text);
 }

Index: maintain/regenerate_file_lists.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/maintain/regenerate_file_lists.pl,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- maintain/regenerate_file_lists.pl   17 Oct 2011 17:49:07 -0000      1.3
+++ maintain/regenerate_file_lists.pl   18 Oct 2011 20:13:28 -0000      1.4
@@ -37,7 +37,7 @@
 }
 #print join("\n", sort(keys(%new_files))) ."\n";
 
-open (INCLUDE, '>Makefile.tres') or die "Open >Makefile.treas: $!";
+open (INCLUDE, '>Makefile.tres') or die "Open >Makefile.tres: $!";
 print INCLUDE "test_results =";
 foreach my $file (sort(keys(%files))) {
   print INCLUDE " \\\n  $file";

Index: t/paragraph.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/paragraph.t,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- t/paragraph.t       12 Oct 2011 23:52:21 -0000      1.21
+++ t/paragraph.t       18 Oct 2011 20:13:29 -0000      1.22
@@ -1,7 +1,7 @@
 use strict;
 
 use Test::More;
-BEGIN { plan tests => 120 };
+BEGIN { plan tests => 127 };
 use lib 'maintain/lib/Unicode-EastAsianWidth/lib/';
 use Texinfo::Convert::Paragraph;
 use Texinfo::Convert::Line;
@@ -52,6 +52,8 @@
 test_para(['word. other'], "word.  other\n", 'two_words_dot_one_space');
 test_para(['word.) other'], "word.)  other\n", 
'two_words_dot_paren_one_space');
 test_para(['worD.  other'], "worD. other\n", 'two_words_dot_upper');
+test_para(['worD.)  other'], "worD.) other\n", 'two_words_dot_paren_upper');
+test_para(['worD).  other'], "worD). other\n", 'two_words_paren_dot_upper');
 test_para(['word','other'], "wordother\n", 'concatenate');
 test_para(['word.', ' A'], "word.  A\n", 'punctuation_at_end_fragment');
 test_para(['word','other'], "wordother\n", 'concatenate_max', {'max' => 2});
@@ -154,6 +156,22 @@
 
 $para = Texinfo::Convert::Paragraph->new();
 $result = '';
+$result .= $para->add_text("A");
+$result .= $para->add_next('_');
+$result .= $para->add_text(".)");
+$result .= $para->add_text(" Next");
+$result .= $para->end();
+is ($result, "A_.)  Next\n", 'add_next: period after next, not transparent');
+
+$para = Texinfo::Convert::Paragraph->new();
+$result = '';
+$result .= $para->add_text("A");
+$result .= $para->add_next('_', undef, undef, 1);
+$result .= $para->add_text(".)");
+$result .= $para->add_text(" Next");
+$result .= $para->end();
+is ($result, "A_.) Next\n", 'add_next: period after next, transparent');
+
 $para = Texinfo::Convert::Paragraph->new();
 $result = '';
 $result .= $para->add_text("aa.\n");
@@ -173,7 +191,6 @@
 is ($result, "b.  after\n", 'punctuation after end space protection');
 
 $para = Texinfo::Convert::Paragraph->new();
-#$para = Texinfo::Convert::Paragraph->new({'DEBUG' => 1});
 $result = '';
 $result .= $para->set_space_protection(undef,undef,undef,1);
 $result .= $para->add_text("b.");
@@ -202,7 +219,6 @@
 
 
 $para = Texinfo::Convert::Paragraph->new();
-#$para = Texinfo::Convert::Paragraph->new({'DEBUG' => 1});
 $result = '';
 $result .= $para->add_text("In w:\n");
 $result .= $para->set_space_protection(1,1);
@@ -211,7 +227,6 @@
 is ($result, "In w: Out of code -- out-of-code.   
ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg\n", 'space 
protection after end sentence');
 
 $para = Texinfo::Convert::Paragraph->new();
-#$para = Texinfo::Convert::Paragraph->new({'DEBUG' => 1});
 $result = '';
 $result .= $para->add_text("In w:\n");
 $result .= $para->set_space_protection(1,1);
@@ -452,8 +467,10 @@
 $result .= $para->end();
 is ($para->{'lines_counter'}, 2, 'count lines end paragraph');
 
-#print STDERR "$result";
-#exit;
+$para = Texinfo::Convert::Paragraph->new();
+$result = $para->add_text('AA. BB.', 'aa. bb.');
+$result .= $para->end();
+is ($result, "AA.  BB.\n", 'underlying text lower case');
 
 sub test_line($$$;$)
 {
@@ -508,6 +525,15 @@
 
 $line = Texinfo::Convert::Line->new();
 $result = '';
+$result .= $line->add_text("A");
+$result .= $line->add_next('_', undef, undef, 1);
+$result .= $line->add_text(".)");
+$result .= $line->add_text(" Next");
+$result .= $line->end();
+is ($result, "A_.) Next", 'line add_next: period after next, transparent');
+
+$line = Texinfo::Convert::Line->new();
+$result = '';
 $result .= $line->add_text('aa.)');
 $result .= $line->add_pending_word();
 is ($result, 'aa.)', 'line call add_pending_word');
@@ -642,6 +668,11 @@
 $result .= $line->end();
 is ($line->{'lines_counter'}, 2, 'line count line end line');
 
+$line = Texinfo::Convert::Line->new();
+$result = $line->add_text('AA. BB.', 'aa. bb.');
+$result .= $line->end();
+is ($result, "AA.  BB.", 'line underlying text lower case');
+
 my $unfilled = Texinfo::Convert::UnFilled->new({'indent_length' => 5});
 $result = '';
 is ($unfilled->{'lines_counter'}, 0, 'line count unfilled first line begin');

Index: t/plaintext_tests.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/plaintext_tests.t,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- t/plaintext_tests.t 16 Oct 2011 11:31:53 -0000      1.24
+++ t/plaintext_tests.t 18 Oct 2011 20:13:29 -0000      1.25
@@ -376,6 +376,18 @@
 A quot---ation
 @end quotation
 '],
+['punctuation_and_upper_case_commands',
+'
address@hidden @address@hidden @address@hidden
address@hidden @address@hidden @address@hidden
address@hidden AAA}.  @var{double @~E}. @sc{double @AA{}}.  End.
+'],
+['punctuation_and_upper_case_commands_utf8',
+'@documentencoding utf-8
address@hidden @address@hidden @address@hidden
address@hidden @address@hidden @address@hidden
address@hidden AAA}.  @var{double @~E}. @sc{double @AA{}}.  End.
+'],
 ['characters_and_commands_in_var',
 '@var{aaa}. @var{dlksfjf ) }. @var{(fdfdsfsd}. @var{sqdq,qdsdsq}.
 
@@ -389,11 +401,20 @@
 ds @var{rrrr , azeeaz}
 end footnote}
 '],
+['transparent_text',
+'address@hidden footnote}). B (@emph{C}). D.
+'],
 ['accents_in_var_enable_encoding',
 '@documentencoding utf-8
 
 @var{AA@,c @u{r} @`e}.
 '],
+['command_brace_no_arg_punctuation',
+'@TeX{}. And @LaTeX{}. @copyright{}. @registeredsymbol{}. End.
+'],
+['code_commands_and_punctuation',
+'@code{AA}. @samp{aa}. After.
+'],
 ['sp_with_text_before_in_example',
 '
 @example

Index: t/results/info_tests/error_in_footnote.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/info_tests/error_in_footnote.pl,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- t/results/info_tests/error_in_footnote.pl   19 Aug 2011 23:09:41 -0000      
1.8
+++ t/results/info_tests/error_in_footnote.pl   18 Oct 2011 20:13:29 -0000      
1.9
@@ -678,7 +678,7 @@
 Tag Table:
 Node: Top52
 Ref: label86
-Ref: Top-Footnote-1357
+Ref: Top-Footnote-1360
 
 End Tag Table
 ';

Index: t/results/plaintext_tests/characters_and_commands_in_var.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/plaintext_tests/characters_and_commands_in_var.pl,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6

Index: t/results/test_count/commands.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/test_count/commands.pl,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- t/results/test_count/commands.pl    3 Sep 2011 21:51:38 -0000       1.24
+++ t/results/test_count/commands.pl    18 Oct 2011 20:13:30 -0000      1.25
@@ -588,77 +588,77 @@
    [3] (0,0) @TeX
    [3] (0,0)
    [4] (0,0) :text|. Ab. |
-   [4] (8,0)
-   [5] (8,0) @@
-   [5] (8,0)
-   [6] (8,0) :text|. |
-   [6] (12,0)
-   [7] (12,0) @
-
-   [7] (12,0)
-   [8] (12,0) @~
-   [8] (12,0)
-   [9] (12,0) :text|, |
-   [9] (17,0)
-   [10] (17,0) @^
-   [10] (17,0)
-   [11] (17,0) :text|\\n|
-   [11] (20,0)
-  [2] (21,1)
-  [12] (21,1) :empty_line:text|\\n|
-  [12] (22,2)
-  [13] (22,2) :paragraph
-   [14] (22,2) :text|Hohoh|
-   [14] (22,2)
-  [13] (31,3)
-  [15] (31,3) @sp
-  [15] (33,5)
-  [16] (33,5) :empty_line:text|\\n|
-  [16] (33,5)
-  [17] (33,5) @sp
-  [17] (36,8)
-  [18] (36,8) :empty_line:text|\\n|
-  [18] (36,8)
-  [19] (36,8) @example
-   [20] (36,8) :empty_line_after_command:text| \\n|
-   [20] (36,8)
-   [21] (36,8) :preformatted
-    [22] (36,8) :text|truc\\n|
-    [22] (46,9)
-   [21] (46,9)
-   [23] (46,9) @end
-   [23] (46,9)
-  [19] (46,9)
-  [24] (46,9) :empty_line:text|\\n|
-  [24] (47,10)
-  [25] (47,10) @vtable
-   [26] (47,10) :table_entry
-    [27] (47,10) :table_term
-     [28] (47,10) @item
-      [29] (47,10) :frenchspacing
-       [30] (47,10) @samp
-        [31] (47,10) :brace_command_arg
-         [32] (47,10) :text|vitem table|
-         [32] (53,10)
+   [4] (9,0)
+   [5] (9,0) @@
+   [5] (9,0)
+   [6] (9,0) :text|. |
+   [6] (13,0)
+   [7] (13,0) @
+
+   [7] (13,0)
+   [8] (13,0) @~
+   [8] (13,0)
+   [9] (13,0) :text|, |
+   [9] (18,0)
+   [10] (18,0) @^
+   [10] (18,0)
+   [11] (18,0) :text|\\n|
+   [11] (21,0)
+  [2] (22,1)
+  [12] (22,1) :empty_line:text|\\n|
+  [12] (23,2)
+  [13] (23,2) :paragraph
+   [14] (23,2) :text|Hohoh|
+   [14] (23,2)
+  [13] (32,3)
+  [15] (32,3) @sp
+  [15] (34,5)
+  [16] (34,5) :empty_line:text|\\n|
+  [16] (34,5)
+  [17] (34,5) @sp
+  [17] (37,8)
+  [18] (37,8) :empty_line:text|\\n|
+  [18] (37,8)
+  [19] (37,8) @example
+   [20] (37,8) :empty_line_after_command:text| \\n|
+   [20] (37,8)
+   [21] (37,8) :preformatted
+    [22] (37,8) :text|truc\\n|
+    [22] (47,9)
+   [21] (47,9)
+   [23] (47,9) @end
+   [23] (47,9)
+  [19] (47,9)
+  [24] (47,9) :empty_line:text|\\n|
+  [24] (48,10)
+  [25] (48,10) @vtable
+   [26] (48,10) :table_entry
+    [27] (48,10) :table_term
+     [28] (48,10) @item
+      [29] (48,10) :frenchspacing
+       [30] (48,10) @samp
+        [31] (48,10) :brace_command_arg
+         [32] (48,10) :text|vitem table|
+         [32] (54,10)
  locations  (1) l 10
-        [31] (53,10)
-       [30] (53,10)
-      [29] (53,10)
-     [28] (61,11)
-    [27] (61,11)
-    [33] (61,11) :table_item
-     [34] (61,11) :empty_line:text|\\n|
-     [34] (62,12)
-     [35] (62,12) :paragraph
-      [36] (62,12) :text|text\\n|
-      [36] (71,12)
-     [35] (72,13)
-    [33] (72,13)
-   [26] (72,13)
-   [37] (72,13) @end
-   [37] (72,13)
-  [25] (72,13)
- [1] (72,13)
+        [31] (54,10)
+       [30] (54,10)
+      [29] (54,10)
+     [28] (62,11)
+    [27] (62,11)
+    [33] (62,11) :table_item
+     [34] (62,11) :empty_line:text|\\n|
+     [34] (63,12)
+     [35] (63,12) :paragraph
+      [36] (63,12) :text|text\\n|
+      [36] (72,12)
+     [35] (73,13)
+    [33] (73,13)
+   [26] (73,13)
+   [37] (73,13) @end
+   [37] (73,13)
+  [25] (73,13)
+ [1] (73,13)
 TeX. Ab.  @.  e~, i^
 
    Hohoh

Index: t/results/plaintext_tests/code_commands_and_punctuation.pl
===================================================================
RCS file: t/results/plaintext_tests/code_commands_and_punctuation.pl
diff -N t/results/plaintext_tests/code_commands_and_punctuation.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/plaintext_tests/code_commands_and_punctuation.pl  18 Oct 2011 
20:13:29 -0000      1.1
@@ -0,0 +1,93 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors 
+   %result_indices %result_sectioning %result_nodes %result_menus
+   %result_floats %result_converted %result_converted_errors 
+   %result_elements %result_directions_text);
+
+use utf8;
+
+$result_trees{'code_commands_and_punctuation'} = {
+  'contents' => [
+    {
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'AA'
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'code',
+          'contents' => [],
+          'line_nr' => {
+            'file_name' => '',
+            'line_nr' => 1,
+            'macro' => ''
+          },
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'aa'
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'samp',
+          'contents' => [],
+          'line_nr' => {},
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. After.
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'code_commands_and_punctuation'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'code_commands_and_punctuation'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'code_commands_and_punctuation'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'code_commands_and_punctuation'}{'contents'}[0]{'contents'}[0];
+$result_trees{'code_commands_and_punctuation'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'code_commands_and_punctuation'}{'contents'}[0];
+$result_trees{'code_commands_and_punctuation'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'code_commands_and_punctuation'}{'contents'}[0];
+$result_trees{'code_commands_and_punctuation'}{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'code_commands_and_punctuation'}{'contents'}[0]{'contents'}[2]{'args'}[0];
+$result_trees{'code_commands_and_punctuation'}{'contents'}[0]{'contents'}[2]{'args'}[0]{'parent'}
 = $result_trees{'code_commands_and_punctuation'}{'contents'}[0]{'contents'}[2];
+$result_trees{'code_commands_and_punctuation'}{'contents'}[0]{'contents'}[2]{'line_nr'}
 = 
$result_trees{'code_commands_and_punctuation'}{'contents'}[0]{'contents'}[0]{'line_nr'};
+$result_trees{'code_commands_and_punctuation'}{'contents'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'code_commands_and_punctuation'}{'contents'}[0];
+$result_trees{'code_commands_and_punctuation'}{'contents'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'code_commands_and_punctuation'}{'contents'}[0];
+$result_trees{'code_commands_and_punctuation'}{'contents'}[0]{'parent'} = 
$result_trees{'code_commands_and_punctuation'};
+
+$result_texis{'code_commands_and_punctuation'} = '@code{AA}. @samp{aa}. After.
+';
+
+
+$result_texts{'code_commands_and_punctuation'} = 'AA. aa. After.
+';
+
+$result_errors{'code_commands_and_punctuation'} = [];
+
+
+
+$result_converted{'plaintext'}->{'code_commands_and_punctuation'} = '`AA\'.  
`aa\'.  After.
+';
+
+1;

Index: t/results/plaintext_tests/command_brace_no_arg_punctuation.pl
===================================================================
RCS file: t/results/plaintext_tests/command_brace_no_arg_punctuation.pl
diff -N t/results/plaintext_tests/command_brace_no_arg_punctuation.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/plaintext_tests/command_brace_no_arg_punctuation.pl       18 Oct 
2011 20:13:29 -0000      1.1
@@ -0,0 +1,112 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors 
+   %result_indices %result_sectioning %result_nodes %result_menus
+   %result_floats %result_converted %result_converted_errors 
+   %result_elements %result_directions_text);
+
+use utf8;
+
+$result_trees{'command_brace_no_arg_punctuation'} = {
+  'contents' => [
+    {
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'TeX',
+          'contents' => [],
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. And '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'LaTeX',
+          'contents' => [],
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'copyright',
+          'contents' => [],
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'registeredsymbol',
+          'contents' => [],
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. End.
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0]{'contents'}[0];
+$result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0];
+$result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0];
+$result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0]{'contents'}[2]{'args'}[0]{'parent'}
 = 
$result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0]{'contents'}[2];
+$result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0];
+$result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0];
+$result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0]{'contents'}[4]{'args'}[0]{'parent'}
 = 
$result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0]{'contents'}[4];
+$result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0]{'contents'}[4]{'parent'}
 = $result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0];
+$result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0]{'contents'}[5]{'parent'}
 = $result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0];
+$result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0]{'contents'}[6]{'args'}[0]{'parent'}
 = 
$result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0]{'contents'}[6];
+$result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0]{'contents'}[6]{'parent'}
 = $result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0];
+$result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0]{'contents'}[7]{'parent'}
 = $result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0];
+$result_trees{'command_brace_no_arg_punctuation'}{'contents'}[0]{'parent'} = 
$result_trees{'command_brace_no_arg_punctuation'};
+
+$result_texis{'command_brace_no_arg_punctuation'} = '@TeX{}. And @LaTeX{}. 
@copyright{}. @registeredsymbol{}. End.
+';
+
+
+$result_texts{'command_brace_no_arg_punctuation'} = 'TeX. And LaTeX. (C). (R). 
End.
+';
+
+$result_errors{'command_brace_no_arg_punctuation'} = [];
+
+
+
+$result_converted{'plaintext'}->{'command_brace_no_arg_punctuation'} = 'TeX.  
And LaTeX.  (C).  (R).  End.
+';
+
+1;

Index: t/results/plaintext_tests/punctuation_and_upper_case_commands.pl
===================================================================
RCS file: t/results/plaintext_tests/punctuation_and_upper_case_commands.pl
diff -N t/results/plaintext_tests/punctuation_and_upper_case_commands.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/plaintext_tests/punctuation_and_upper_case_commands.pl    18 Oct 
2011 20:13:30 -0000      1.1
@@ -0,0 +1,361 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors 
+   %result_indices %result_sectioning %result_nodes %result_menus
+   %result_floats %result_converted %result_converted_errors 
+   %result_elements %result_directions_text);
+
+use utf8;
+
+$result_trees{'punctuation_and_upper_case_commands'} = {
+  'contents' => [
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'aaa'
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'var',
+          'contents' => [],
+          'line_nr' => {
+            'file_name' => '',
+            'line_nr' => 2,
+            'macro' => ''
+          },
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'args' => [
+                    {
+                      'parent' => {},
+                      'text' => 'e'
+                    }
+                  ],
+                  'cmdname' => '~',
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'var',
+          'contents' => [],
+          'line_nr' => {},
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'args' => [
+                    {
+                      'contents' => [],
+                      'parent' => {},
+                      'type' => 'brace_command_arg'
+                    }
+                  ],
+                  'cmdname' => 'aa',
+                  'contents' => [],
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'sc',
+          'contents' => [],
+          'line_nr' => {},
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '.
+'
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'AAA'
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'var',
+          'contents' => [],
+          'line_nr' => {
+            'file_name' => '',
+            'line_nr' => 3,
+            'macro' => ''
+          },
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'args' => [
+                    {
+                      'parent' => {},
+                      'text' => 'E'
+                    }
+                  ],
+                  'cmdname' => '~',
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'var',
+          'contents' => [],
+          'line_nr' => {},
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'args' => [
+                    {
+                      'contents' => [],
+                      'parent' => {},
+                      'type' => 'brace_command_arg'
+                    }
+                  ],
+                  'cmdname' => 'AA',
+                  'contents' => [],
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'sc',
+          'contents' => [],
+          'line_nr' => {},
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '.
+'
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'double AAA'
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'var',
+          'contents' => [],
+          'line_nr' => {
+            'file_name' => '',
+            'line_nr' => 4,
+            'macro' => ''
+          },
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '.  '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'double '
+                },
+                {
+                  'args' => [
+                    {
+                      'parent' => {},
+                      'text' => 'E'
+                    }
+                  ],
+                  'cmdname' => '~',
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'var',
+          'contents' => [],
+          'line_nr' => {},
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'double '
+                },
+                {
+                  'args' => [
+                    {
+                      'contents' => [],
+                      'parent' => {},
+                      'type' => 'brace_command_arg'
+                    }
+                  ],
+                  'cmdname' => 'AA',
+                  'contents' => [],
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'sc',
+          'contents' => [],
+          'line_nr' => {},
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '.  End.
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[0]{'parent'} 
= $result_trees{'punctuation_and_upper_case_commands'};
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[0];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[1]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[2]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[2];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[2]{'line_nr'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[0]{'line_nr'};
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[2]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[3]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[4]{'args'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[4]{'args'}[0]{'contents'}[0];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[4]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[4]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[4]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[4];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[4]{'line_nr'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[0]{'line_nr'};
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[4]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[5]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[6]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[6]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[6]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[6];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[6]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[7]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[8]{'args'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[8]{'args'}[0]{'contents'}[0];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[8]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[8]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[8]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[8];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[8]{'line_nr'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[6]{'line_nr'};
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[8]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[9]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[10]{'args'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[10]{'args'}[0]{'contents'}[0];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[10]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[10]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[10]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[10];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[10]{'line_nr'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[6]{'line_nr'};
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[10]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[11]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[12]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[12]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[12]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[12];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[12]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[13]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[14]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[14]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[14]{'args'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[14]{'args'}[0]{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[14]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[14]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[14]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[14];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[14]{'line_nr'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[12]{'line_nr'};
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[14]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[15]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[16]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[16]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[16]{'args'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[16]{'args'}[0]{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[16]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[16]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[16]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[16];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[16]{'line_nr'}
 = 
$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[12]{'line_nr'};
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[16]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'contents'}[17]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands'}{'contents'}[1]{'parent'} 
= $result_trees{'punctuation_and_upper_case_commands'};
+
+$result_texis{'punctuation_and_upper_case_commands'} = '
address@hidden @address@hidden @address@hidden
address@hidden @address@hidden @address@hidden
address@hidden AAA}.  @var{double @~E}. @sc{double @AA{}}.  End.
+';
+
+
+$result_texts{'punctuation_and_upper_case_commands'} = '
+aaa. e~. AA.
+AAA. E~. AA.
+double AAA.  double E~. DOUBLE AA.  End.
+';
+
+$result_errors{'punctuation_and_upper_case_commands'} = [];
+
+
+
+$result_converted{'plaintext'}->{'punctuation_and_upper_case_commands'} = 
'AAA.  E~.  AA.  AAA. E~.  AA. DOUBLE AAA. DOUBLE E~.  DOUBLE AA. End.
+';
+
+1;

Index: t/results/plaintext_tests/punctuation_and_upper_case_commands_utf8.pl
===================================================================
RCS file: t/results/plaintext_tests/punctuation_and_upper_case_commands_utf8.pl
diff -N t/results/plaintext_tests/punctuation_and_upper_case_commands_utf8.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/plaintext_tests/punctuation_and_upper_case_commands_utf8.pl       
18 Oct 2011 20:13:30 -0000      1.1
@@ -0,0 +1,399 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors 
+   %result_indices %result_sectioning %result_nodes %result_menus
+   %result_floats %result_converted %result_converted_errors 
+   %result_elements %result_directions_text);
+
+use utf8;
+
+$result_trees{'punctuation_and_upper_case_commands_utf8'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'extra' => {
+                'command' => {}
+              },
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'parent' => {},
+              'text' => 'utf-8'
+            },
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'spaces_at_end'
+            }
+          ],
+          'parent' => {},
+          'type' => 'misc_line_arg'
+        }
+      ],
+      'cmdname' => 'documentencoding',
+      'extra' => {
+        'encoding_name' => 'utf-8',
+        'perl_encoding' => 'utf-8-strict',
+        'text_arg' => 'utf-8'
+      },
+      'line_nr' => {
+        'file_name' => '',
+        'line_nr' => 1,
+        'macro' => ''
+      },
+      'parent' => {}
+    },
+    {
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'aaa'
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'var',
+          'contents' => [],
+          'line_nr' => {
+            'file_name' => '',
+            'line_nr' => 2,
+            'macro' => ''
+          },
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'args' => [
+                    {
+                      'parent' => {},
+                      'text' => 'e'
+                    }
+                  ],
+                  'cmdname' => '~',
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'var',
+          'contents' => [],
+          'line_nr' => {},
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'args' => [
+                    {
+                      'contents' => [],
+                      'parent' => {},
+                      'type' => 'brace_command_arg'
+                    }
+                  ],
+                  'cmdname' => 'aa',
+                  'contents' => [],
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'sc',
+          'contents' => [],
+          'line_nr' => {},
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '.
+'
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'AAA'
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'var',
+          'contents' => [],
+          'line_nr' => {
+            'file_name' => '',
+            'line_nr' => 3,
+            'macro' => ''
+          },
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'args' => [
+                    {
+                      'parent' => {},
+                      'text' => 'E'
+                    }
+                  ],
+                  'cmdname' => '~',
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'var',
+          'contents' => [],
+          'line_nr' => {},
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'args' => [
+                    {
+                      'contents' => [],
+                      'parent' => {},
+                      'type' => 'brace_command_arg'
+                    }
+                  ],
+                  'cmdname' => 'AA',
+                  'contents' => [],
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'sc',
+          'contents' => [],
+          'line_nr' => {},
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '.
+'
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'double AAA'
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'var',
+          'contents' => [],
+          'line_nr' => {
+            'file_name' => '',
+            'line_nr' => 4,
+            'macro' => ''
+          },
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '.  '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'double '
+                },
+                {
+                  'args' => [
+                    {
+                      'parent' => {},
+                      'text' => 'E'
+                    }
+                  ],
+                  'cmdname' => '~',
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'var',
+          'contents' => [],
+          'line_nr' => {},
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'double '
+                },
+                {
+                  'args' => [
+                    {
+                      'contents' => [],
+                      'parent' => {},
+                      'type' => 'brace_command_arg'
+                    }
+                  ],
+                  'cmdname' => 'AA',
+                  'contents' => [],
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'sc',
+          'contents' => [],
+          'line_nr' => {},
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '.  End.
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[0]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[0]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[0]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[0]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[0]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'};
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[1]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[2]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[2];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[2]{'line_nr'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[0]{'line_nr'};
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[2]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[3]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[4]{'args'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[4]{'args'}[0]{'contents'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[4]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[4]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[4]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[4];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[4]{'line_nr'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[0]{'line_nr'};
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[4]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[5]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[6]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[6]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[6]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[6];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[6]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[7]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[8]{'args'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[8]{'args'}[0]{'contents'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[8]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[8]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[8]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[8];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[8]{'line_nr'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[6]{'line_nr'};
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[8]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[9]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[10]{'args'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[10]{'args'}[0]{'contents'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[10]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[10]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[10]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[10];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[10]{'line_nr'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[6]{'line_nr'};
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[10]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[11]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[12]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[12]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[12]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[12];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[12]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[13]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[14]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[14]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[14]{'args'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[14]{'args'}[0]{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[14]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[14]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[14]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[14];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[14]{'line_nr'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[12]{'line_nr'};
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[14]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[15]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[16]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[16]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[16]{'args'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[16]{'args'}[0]{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[16]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[16]{'args'}[0];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[16]{'args'}[0]{'parent'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[16];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[16]{'line_nr'}
 = 
$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[12]{'line_nr'};
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[16]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'contents'}[17]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1];
+$result_trees{'punctuation_and_upper_case_commands_utf8'}{'contents'}[1]{'parent'}
 = $result_trees{'punctuation_and_upper_case_commands_utf8'};
+
+$result_texis{'punctuation_and_upper_case_commands_utf8'} = '@documentencoding 
utf-8
address@hidden @address@hidden @address@hidden
address@hidden @address@hidden @address@hidden
address@hidden AAA}.  @var{double @~E}. @sc{double @AA{}}.  End.
+';
+
+
+$result_texts{'punctuation_and_upper_case_commands_utf8'} = 'aaa. e~. AA.
+AAA. E~. AA.
+double AAA.  double E~. DOUBLE AA.  End.
+';
+
+$result_errors{'punctuation_and_upper_case_commands_utf8'} = [];
+
+
+
+$result_converted{'plaintext'}->{'punctuation_and_upper_case_commands_utf8'} = 
'AAA.  Ẽ.  Å.  AAA. Ẽ. Å. DOUBLE AAA. DOUBLE Ẽ. DOUBLE Å. End.
+';
+
+1;

Index: t/results/plaintext_tests/transparent_text.pl
===================================================================
RCS file: t/results/plaintext_tests/transparent_text.pl
diff -N t/results/plaintext_tests/transparent_text.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/plaintext_tests/transparent_text.pl       18 Oct 2011 20:13:30 
-0000      1.1
@@ -0,0 +1,110 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors 
+   %result_indices %result_sectioning %result_nodes %result_menus
+   %result_floats %result_converted %result_converted_errors 
+   %result_elements %result_directions_text);
+
+use utf8;
+
+$result_trees{'transparent_text'} = {
+  'contents' => [
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'AA'
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'in footnote'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'paragraph'
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_context'
+            }
+          ],
+          'cmdname' => 'footnote',
+          'contents' => [],
+          'line_nr' => {
+            'file_name' => '',
+            'line_nr' => 1,
+            'macro' => ''
+          },
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '). B ('
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'C'
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'emph',
+          'contents' => [],
+          'line_nr' => {},
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '). D.
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'transparent_text'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'transparent_text'}{'contents'}[0];
+$result_trees{'transparent_text'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'transparent_text'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'transparent_text'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'transparent_text'}{'contents'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'transparent_text'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'transparent_text'}{'contents'}[0]{'contents'}[1];
+$result_trees{'transparent_text'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'transparent_text'}{'contents'}[0];
+$result_trees{'transparent_text'}{'contents'}[0]{'contents'}[2]{'parent'} = 
$result_trees{'transparent_text'}{'contents'}[0];
+$result_trees{'transparent_text'}{'contents'}[0]{'contents'}[3]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'transparent_text'}{'contents'}[0]{'contents'}[3]{'args'}[0];
+$result_trees{'transparent_text'}{'contents'}[0]{'contents'}[3]{'args'}[0]{'parent'}
 = $result_trees{'transparent_text'}{'contents'}[0]{'contents'}[3];
+$result_trees{'transparent_text'}{'contents'}[0]{'contents'}[3]{'line_nr'} = 
$result_trees{'transparent_text'}{'contents'}[0]{'contents'}[1]{'line_nr'};
+$result_trees{'transparent_text'}{'contents'}[0]{'contents'}[3]{'parent'} = 
$result_trees{'transparent_text'}{'contents'}[0];
+$result_trees{'transparent_text'}{'contents'}[0]{'contents'}[4]{'parent'} = 
$result_trees{'transparent_text'}{'contents'}[0];
+$result_trees{'transparent_text'}{'contents'}[0]{'parent'} = 
$result_trees{'transparent_text'};
+
+$result_texis{'transparent_text'} = 'address@hidden footnote}). B (@emph{C}). 
D.
+';
+
+
+$result_texts{'transparent_text'} = 'AA). B (C). D.
+';
+
+$result_errors{'transparent_text'} = [];
+
+
+
+$result_converted{'plaintext'}->{'transparent_text'} = 'AA(1)). B (_C_). D.
+
+   ---------- Footnotes ----------
+
+   (1) in footnote
+
+';
+
+1;



reply via email to

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