texinfo-commits
[Top][All Lists]
Advanced

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

branch master updated: LaTeX.pm: find anchor associated section to use w


From: Patrice Dumas
Subject: branch master updated: LaTeX.pm: find anchor associated section to use with @xrefautomaticsectiontitle on
Date: Thu, 19 Aug 2021 18:20:46 -0400

This is an automated email from the git hooks/post-receive script.

pertusus pushed a commit to branch master
in repository texinfo.

The following commit(s) were added to refs/heads/master by this push:
     new 05261ac  LaTeX.pm: find anchor associated section to use with 
@xrefautomaticsectiontitle on
05261ac is described below

commit 05261ac09977c25e22a1c58955e11c0041cb3e4d
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Fri Aug 20 00:19:22 2021 +0200

    LaTeX.pm: find anchor associated section to use with 
@xrefautomaticsectiontitle
    on
---
 tp/Texinfo/Convert/LaTeX.pm                        |   75 +-
 tp/t/latex_tests.t                                 |   39 +-
 .../anchor_links_xref_xrefautomaticsectiontitle.pl | 1211 ++++++++++++++++++++
 ...anchor_links_xref_xrefautomaticsectiontitle.tex |   90 ++
 4 files changed, 1388 insertions(+), 27 deletions(-)

diff --git a/tp/Texinfo/Convert/LaTeX.pm b/tp/Texinfo/Convert/LaTeX.pm
index 61b35f5..d7fe021 100644
--- a/tp/Texinfo/Convert/LaTeX.pm
+++ b/tp/Texinfo/Convert/LaTeX.pm
@@ -1628,21 +1628,21 @@ sub _convert($$)
           # the same, but for node_content $root->{'extra'}->{'label'}
           # is used, while above $self->{'labels'} is used.  It could be better
           # to be consistent
-          my $node
+          my $reference
            = 
$self->{'labels'}->{$root->{'extra'}->{'node_argument'}->{'normalized'}};
-          my $node_content;
+          my $reference_node_content;
           if ($root->{'extra'}
               and $root->{'extra'}->{'label'}) {
-            $node_content = 
$root->{'extra'}->{'label'}->{'extra'}->{'node_content'};
+            $reference_node_content = 
$root->{'extra'}->{'label'}->{'extra'}->{'node_content'};
           } else {
             # FIXME this is probably impossible
-            $node_content = $args[0];
+            $reference_node_content = $args[0];
           }
           
           my $section_command;
-          if ($node->{'extra'}->{'associated_section'}) {
-            $section_command = $node->{'extra'}->{'associated_section'};
-          } elsif ($node->{'cmdname'} ne 'float') {
+          if ($reference->{'extra'}->{'associated_section'}) {
+            $section_command = $reference->{'extra'}->{'associated_section'};
+          } elsif ($reference->{'cmdname'} ne 'float') {
             my $normalized_name
               = $root->{'extra'}->{'node_argument'}->{'normalized'};
             if ($self->{'normalized_nodes_associated_section'}
@@ -1650,19 +1650,42 @@ sub _convert($$)
               $section_command
                 = 
$self->{'normalized_nodes_associated_section'}->{$normalized_name}; 
             } else {
-              print STDERR "BUG/TODO assoc ".$node->{'cmdname'}.": 
$normalized_name: ".join("|", sort(keys(%{$node->{'extra'}})))."\n";
+              # an anchor.  Find associated section using top level parent 
@-command
+              my $current_root = $reference;
+              while ($current_root->{'parent'}) {
+                $current_root = $current_root->{'parent'};
+                if ($current_root->{'cmdname'}
+                    and $root_commands{$current_root->{'cmdname'}}) {
+                  if ($current_root->{'cmdname'} ne 'node') {
+                    $section_command = $current_root;
+                  } else {
+                    if ($current_root->{'extra'}->{'associated_section'}) {
+                      $section_command = 
$current_root->{'extra'}->{'associated_section'};
+                    } elsif (exists($current_root->{'extra'}->{'normalized'})
+                             and 
$self->{'normalized_nodes_associated_section'}->{$current_root->{'extra'}->{'normalized'}})
 {
+                      $section_command
+                        = 
$self->{'normalized_nodes_associated_section'}->{$current_root->{'extra'}->{'normalized'}};
+                    }
+                  }
+                  last;
+                }
+              }
+              if (defined($section_command)) {
+                # set the association with anchor
+                
$self->{'normalized_nodes_associated_section'}->{$normalized_name}
+                  = $section_command;
+              } else {
+                print STDERR "BUG/TODO assoc ".$reference->{'cmdname'}.": 
$normalized_name: ".join("|", sort(keys(%{$reference->{'extra'}})))."\n";
+              }
             }
           }
           # reference to a float with a label
           my $float_type;
-          if ($root->{'extra'}
-              and $root->{'extra'}->{'label'}
-              and $root->{'extra'}->{'label'}->{'cmdname'}
-              and $root->{'extra'}->{'label'}->{'cmdname'} eq 'float') {
-            my $float = $root->{'extra'}->{'label'};
-            if ($float->{'extra'}->{'type'}
-                and $float->{'extra'}->{'type'}->{'normalized'} ne '') {
-              my $float_type_contents = 
$float->{'extra'}->{'type'}->{'content'};
+          if (exists($reference->{'cmdname'})
+              and $reference->{'cmdname'} eq 'float') {
+            if ($reference->{'extra'}->{'type'}
+                and $reference->{'extra'}->{'type'}->{'normalized'} ne '') {
+              my $float_type_contents = 
$reference->{'extra'}->{'type'}->{'content'};
               $float_type = _convert($self, {'contents' => 
$float_type_contents});
             } else {
               $float_type = '';
@@ -1685,10 +1708,10 @@ sub _convert($$)
                 and $section_command) {
               $name = $section_command->{'args'}->[0]->{'contents'};
             } else {
-              $name = $node_content;
+              $name = $reference_node_content;
             }
           }
-          my $node_label = _tree_anchor_label($node_content);
+          my $reference_label = _tree_anchor_label($reference_node_content);
 
           my $name_text;
           if (defined($name)) {
@@ -1699,12 +1722,12 @@ sub _convert($$)
           if (defined($float_type)) {
             # no page for float reference in Texinfo TeX
             if (defined($name_text)) {
-              $result .= "\\hyperref[$node_label]{$name_text}";
+              $result .= "\\hyperref[$reference_label]{$name_text}";
             } else {
               if ($float_type ne '') {
-                $result .= 
"\\hyperref[$node_label]{$float_type~\\ref*{$node_label}}";
+                $result .= 
"\\hyperref[$reference_label]{$float_type~\\ref*{$reference_label}}";
               } else {
-                $result .= "\\hyperref[$node_label]{\\ref*{$node_label}}";
+                $result .= 
"\\hyperref[$reference_label]{\\ref*{$reference_label}}";
               }
             }
           } else {
@@ -1716,14 +1739,16 @@ sub _convert($$)
             # is followed by non-whitespace (such as a comma or period).
             # 
             # If an unwanted comma is added, follow the argument with a 
command such as @:
-            if ($section_command) {
+            if ($reference->{'cmdname'} and $reference->{'cmdname'} eq 'node'
+                and $section_command) {
               if ($section_command->{'level'} > 1) {
-                $result .= 
"\\hyperref[$node_label]{Section~\\ref*{$node_label} [$name_text], 
page~\\pageref*{$node_label}}";
+                $result .= 
"\\hyperref[$reference_label]{Section~\\ref*{$reference_label} [$name_text], 
page~\\pageref*{$reference_label}}";
               } else {
-                $result .= 
"\\hyperref[$node_label]{Chapter~\\ref*{$node_label} [$name_text], 
page~\\pageref*{$node_label}}";
+                $result .= 
"\\hyperref[$reference_label]{Chapter~\\ref*{$reference_label} [$name_text], 
page~\\pageref*{$reference_label}}";
               }
             } else {
-              $result .= "\\hyperref[$node_label]{\\ref*{$node_label} 
[$name_text], page~\\pageref*{$node_label}}";
+              # anchor
+              $result .= "\\hyperref[$reference_label]{[$name_text], 
page~\\pageref*{$reference_label}}";
             }
           }
           return $result;
diff --git a/tp/t/latex_tests.t b/tp/t/latex_tests.t
index 401107d..ef9d5ae 100644
--- a/tp/t/latex_tests.t
+++ b/tp/t/latex_tests.t
@@ -192,8 +192,6 @@ In chapter
 
 In chapter
 '],
-# FIXME texi2pdf output has a blank page after the main title page
-# thanks to the second page, while two newpage do not produce two pages
 ['titlepage_classical',
 '@setfilename titlepage_classical.info
 
@@ -313,6 +311,43 @@ In figure
 @listoffloats Figure
 @listoffloats Thing
 
+'],
+['anchor_links_xref_xrefautomaticsectiontitle',
+'@setfilename anchor_links_xref_xrefautomaticsectiontitle.info
+
+@node node before
+
+In node before
+@anchor{anch: in node before}
+
+@node Top
+@top top sectionning
+
+in node Top
+@anchor{anch: in node top}
+
+@node after
+
+in node after
+@anchor{anch: in node after}
+
+@node chap
+@chapter chap
+
+in chap
+@anchor{anch: in chap}
+
+@xrefautomaticsectiontitle on
+@xref{anch: in node before}.
+@xref{anch: in node top}.
+@xref{anch: in node after}.
+@xref{anch: in chap}.
+
+@xrefautomaticsectiontitle off
+@xref{anch: in node before}.
+@xref{anch: in node top}.
+@xref{anch: in node after}.
+@xref{anch: in chap}.
 ']
 );
 
diff --git 
a/tp/t/results/latex_tests/anchor_links_xref_xrefautomaticsectiontitle.pl 
b/tp/t/results/latex_tests/anchor_links_xref_xrefautomaticsectiontitle.pl
new file mode 100644
index 0000000..3cfc90a
--- /dev/null
+++ b/tp/t/results/latex_tests/anchor_links_xref_xrefautomaticsectiontitle.pl
@@ -0,0 +1,1211 @@
+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{'anchor_links_xref_xrefautomaticsectiontitle'} = {
+  'contents' => [
+    {
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'anchor_links_xref_xrefautomaticsectiontitle.info'
+                }
+              ],
+              'extra' => {
+                'spaces_after_argument' => '
+'
+              },
+              'parent' => {},
+              'type' => 'line_arg'
+            }
+          ],
+          'cmdname' => 'setfilename',
+          'extra' => {
+            'spaces_before_argument' => ' ',
+            'text_arg' => 'anchor_links_xref_xrefautomaticsectiontitle.info'
+          },
+          'line_nr' => {
+            'file_name' => '',
+            'line_nr' => 1,
+            'macro' => ''
+          },
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        }
+      ],
+      'parent' => {},
+      'type' => 'text_root'
+    },
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'node before'
+            }
+          ],
+          'extra' => {
+            'spaces_after_argument' => '
+'
+          },
+          'parent' => {},
+          'type' => 'line_arg'
+        }
+      ],
+      'cmdname' => 'node',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'In node before
+'
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'anch: in node before'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'anchor',
+              'contents' => [],
+              'extra' => {
+                'node_content' => [
+                  {}
+                ],
+                'normalized' => 'anch_003a-in-node-before'
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 6,
+                'macro' => ''
+              },
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'empty_spaces_after_close_brace'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        }
+      ],
+      'extra' => {
+        'node_content' => [
+          {}
+        ],
+        'nodes_manuals' => [
+          {
+            'node_content' => [
+              {}
+            ],
+            'normalized' => 'node-before'
+          }
+        ],
+        'normalized' => 'node-before',
+        'spaces_before_argument' => ' '
+      },
+      'line_nr' => {
+        'file_name' => '',
+        'line_nr' => 3,
+        'macro' => ''
+      },
+      'parent' => {}
+    },
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'Top'
+            }
+          ],
+          'extra' => {
+            'spaces_after_argument' => '
+'
+          },
+          'parent' => {},
+          'type' => 'line_arg'
+        }
+      ],
+      'cmdname' => 'node',
+      'contents' => [],
+      'extra' => {
+        'node_content' => [
+          {}
+        ],
+        'nodes_manuals' => [
+          {
+            'node_content' => [
+              {}
+            ],
+            'normalized' => 'Top'
+          }
+        ],
+        'normalized' => 'Top',
+        'spaces_before_argument' => ' '
+      },
+      'line_nr' => {
+        'file_name' => '',
+        'line_nr' => 8,
+        'macro' => ''
+      },
+      'parent' => {}
+    },
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'top sectionning'
+            }
+          ],
+          'extra' => {
+            'spaces_after_argument' => '
+'
+          },
+          'parent' => {},
+          'type' => 'line_arg'
+        }
+      ],
+      'cmdname' => 'top',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'in node Top
+'
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'anch: in node top'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'anchor',
+              'contents' => [],
+              'extra' => {
+                'node_content' => [
+                  {}
+                ],
+                'normalized' => 'anch_003a-in-node-top'
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 12,
+                'macro' => ''
+              },
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'empty_spaces_after_close_brace'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        }
+      ],
+      'extra' => {
+        'spaces_before_argument' => ' '
+      },
+      'level' => 0,
+      'line_nr' => {
+        'file_name' => '',
+        'line_nr' => 9,
+        'macro' => ''
+      },
+      'parent' => {}
+    },
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'after'
+            }
+          ],
+          'extra' => {
+            'spaces_after_argument' => '
+'
+          },
+          'parent' => {},
+          'type' => 'line_arg'
+        }
+      ],
+      'cmdname' => 'node',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'in node after
+'
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'anch: in node after'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'anchor',
+              'contents' => [],
+              'extra' => {
+                'node_content' => [
+                  {}
+                ],
+                'normalized' => 'anch_003a-in-node-after'
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 17,
+                'macro' => ''
+              },
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'empty_spaces_after_close_brace'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        }
+      ],
+      'extra' => {
+        'node_content' => [
+          {}
+        ],
+        'nodes_manuals' => [
+          {
+            'node_content' => [
+              {}
+            ],
+            'normalized' => 'after'
+          }
+        ],
+        'normalized' => 'after',
+        'spaces_before_argument' => ' '
+      },
+      'line_nr' => {
+        'file_name' => '',
+        'line_nr' => 14,
+        'macro' => ''
+      },
+      'parent' => {}
+    },
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'chap'
+            }
+          ],
+          'extra' => {
+            'spaces_after_argument' => '
+'
+          },
+          'parent' => {},
+          'type' => 'line_arg'
+        }
+      ],
+      'cmdname' => 'node',
+      'contents' => [],
+      'extra' => {
+        'node_content' => [
+          {}
+        ],
+        'nodes_manuals' => [
+          {
+            'node_content' => [
+              {}
+            ],
+            'normalized' => 'chap'
+          }
+        ],
+        'normalized' => 'chap',
+        'spaces_before_argument' => ' '
+      },
+      'line_nr' => {
+        'file_name' => '',
+        'line_nr' => 19,
+        'macro' => ''
+      },
+      'parent' => {}
+    },
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'chap'
+            }
+          ],
+          'extra' => {
+            'spaces_after_argument' => '
+'
+          },
+          'parent' => {},
+          'type' => 'line_arg'
+        }
+      ],
+      'cmdname' => 'chapter',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'in chap
+'
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'anch: in chap'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'anchor',
+              'contents' => [],
+              'extra' => {
+                'node_content' => [
+                  {}
+                ],
+                'normalized' => 'anch_003a-in-chap'
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 23,
+                'macro' => ''
+              },
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'empty_spaces_after_close_brace'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'on'
+                }
+              ],
+              'extra' => {
+                'spaces_after_argument' => '
+'
+              },
+              'parent' => {},
+              'type' => 'line_arg'
+            }
+          ],
+          'cmdname' => 'xrefautomaticsectiontitle',
+          'extra' => {
+            'misc_args' => [
+              'on'
+            ],
+            'spaces_before_argument' => ' '
+          },
+          'line_nr' => {
+            'file_name' => '',
+            'line_nr' => 25,
+            'macro' => ''
+          },
+          'parent' => {}
+        },
+        {
+          'contents' => [
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'anch: in node before'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'xref',
+              'contents' => [],
+              'extra' => {
+                'label' => {},
+                'node_argument' => {
+                  'node_content' => [
+                    {}
+                  ],
+                  'normalized' => 'anch_003a-in-node-before'
+                }
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 26,
+                'macro' => ''
+              },
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => '.
+'
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'anch: in node top'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'xref',
+              'contents' => [],
+              'extra' => {
+                'label' => {},
+                'node_argument' => {
+                  'node_content' => [
+                    {}
+                  ],
+                  'normalized' => 'anch_003a-in-node-top'
+                }
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 27,
+                'macro' => ''
+              },
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => '.
+'
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'anch: in node after'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'xref',
+              'contents' => [],
+              'extra' => {
+                'label' => {},
+                'node_argument' => {
+                  'node_content' => [
+                    {}
+                  ],
+                  'normalized' => 'anch_003a-in-node-after'
+                }
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 28,
+                'macro' => ''
+              },
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => '.
+'
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'anch: in chap'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'xref',
+              'contents' => [],
+              'extra' => {
+                'label' => {},
+                'node_argument' => {
+                  'node_content' => [
+                    {}
+                  ],
+                  'normalized' => 'anch_003a-in-chap'
+                }
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 29,
+                'macro' => ''
+              },
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => '.
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'off'
+                }
+              ],
+              'extra' => {
+                'spaces_after_argument' => '
+'
+              },
+              'parent' => {},
+              'type' => 'line_arg'
+            }
+          ],
+          'cmdname' => 'xrefautomaticsectiontitle',
+          'extra' => {
+            'misc_args' => [
+              'off'
+            ],
+            'spaces_before_argument' => ' '
+          },
+          'line_nr' => {
+            'file_name' => '',
+            'line_nr' => 31,
+            'macro' => ''
+          },
+          'parent' => {}
+        },
+        {
+          'contents' => [
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'anch: in node before'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'xref',
+              'contents' => [],
+              'extra' => {
+                'label' => {},
+                'node_argument' => {
+                  'node_content' => [
+                    {}
+                  ],
+                  'normalized' => 'anch_003a-in-node-before'
+                }
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 32,
+                'macro' => ''
+              },
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => '.
+'
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'anch: in node top'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'xref',
+              'contents' => [],
+              'extra' => {
+                'label' => {},
+                'node_argument' => {
+                  'node_content' => [
+                    {}
+                  ],
+                  'normalized' => 'anch_003a-in-node-top'
+                }
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 33,
+                'macro' => ''
+              },
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => '.
+'
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'anch: in node after'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'xref',
+              'contents' => [],
+              'extra' => {
+                'label' => {},
+                'node_argument' => {
+                  'node_content' => [
+                    {}
+                  ],
+                  'normalized' => 'anch_003a-in-node-after'
+                }
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 34,
+                'macro' => ''
+              },
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => '.
+'
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'anch: in chap'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'xref',
+              'contents' => [],
+              'extra' => {
+                'label' => {},
+                'node_argument' => {
+                  'node_content' => [
+                    {}
+                  ],
+                  'normalized' => 'anch_003a-in-chap'
+                }
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 35,
+                'macro' => ''
+              },
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => '.
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'extra' => {
+        'spaces_before_argument' => ' '
+      },
+      'level' => 1,
+      'line_nr' => {
+        'file_name' => '',
+        'line_nr' => 20,
+        'macro' => ''
+      },
+      'number' => 1,
+      'parent' => {}
+    }
+  ],
+  'type' => 'document_root'
+};
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[0]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'};
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'extra'}{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'contents'}[1]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'contents'}[2]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'extra'}{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'extra'}{'nodes_manuals'}[0]{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'};
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[2]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[2]{'args'}[0]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[2];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[2]{'extra'}{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[2]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[2]{'extra'}{'nodes_manuals'}[0]{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[2]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[2]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'};
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'args'}[0]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'contents'}[0]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'contents'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'contents'}[1]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'contents'}[1]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'contents'}[1]{'contents'}[1]{'extra'}{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'contents'}[1]{'contents'}[1]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'contents'}[1]{'contents'}[2]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'contents'}[1]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'contents'}[2]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'};
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'args'}[0]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'contents'}[0]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'contents'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'contents'}[1]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'contents'}[1]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'contents'}[1]{'contents'}[1]{'extra'}{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'contents'}[1]{'contents'}[1]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'contents'}[1]{'contents'}[2]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'contents'}[1]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'contents'}[2]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'extra'}{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'extra'}{'nodes_manuals'}[0]{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'};
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[5]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[5]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[5]{'args'}[0]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[5];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[5]{'extra'}{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[5]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[5]{'extra'}{'nodes_manuals'}[0]{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[5]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[5]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'};
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'args'}[0]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[0]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[1]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[1]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[1]{'contents'}[1]{'extra'}{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[1]{'contents'}[1]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[1]{'contents'}[2]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[1]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[2]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[3]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[3]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[3]{'args'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[3];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[3]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[0]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[0]{'extra'}{'label'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[0]{'extra'}{'node_argument'}{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[0]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[1]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[2]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[2]{'args'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[2];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[2]{'extra'}{'label'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'contents'}[1]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[2]{'extra'}{'node_argument'}{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[2]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[2]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[3]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[4]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[4]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[4]{'args'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[4];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[4]{'extra'}{'label'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'contents'}[1]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[4]{'extra'}{'node_argument'}{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[4]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[4]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[5]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[6]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[6]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[6]{'args'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[6];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[6]{'extra'}{'label'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[1]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[6]{'extra'}{'node_argument'}{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[6]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[6]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'contents'}[7]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[4]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[5]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[6]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[6]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[6]{'args'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[6];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[6]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[0]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[0]{'extra'}{'label'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[0]{'extra'}{'node_argument'}{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[1]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[2]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[2]{'args'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[2];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[2]{'extra'}{'label'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[3]{'contents'}[1]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[2]{'extra'}{'node_argument'}{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[2]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[2]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[3]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[4]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[4]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[4]{'args'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[4];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[4]{'extra'}{'label'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[4]{'contents'}[1]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[4]{'extra'}{'node_argument'}{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[4]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[4]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[5]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[6]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[6]{'args'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[6]{'args'}[0]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[6];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[6]{'extra'}{'label'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[1]{'contents'}[1];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[6]{'extra'}{'node_argument'}{'node_content'}[0]
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[6]{'args'}[0]{'contents'}[0];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[6]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'contents'}[7]{'parent'}
 = 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'contents'}[7]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6];
+$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'}{'contents'}[6]{'parent'}
 = $result_trees{'anchor_links_xref_xrefautomaticsectiontitle'};
+
+$result_texis{'anchor_links_xref_xrefautomaticsectiontitle'} = '@setfilename 
anchor_links_xref_xrefautomaticsectiontitle.info
+
+@node node before
+
+In node before
+@anchor{anch: in node before}
+
+@node Top
+@top top sectionning
+
+in node Top
+@anchor{anch: in node top}
+
+@node after
+
+in node after
+@anchor{anch: in node after}
+
+@node chap
+@chapter chap
+
+in chap
+@anchor{anch: in chap}
+
+@xrefautomaticsectiontitle on
+@xref{anch: in node before}.
+@xref{anch: in node top}.
+@xref{anch: in node after}.
+@xref{anch: in chap}.
+
+@xrefautomaticsectiontitle off
+@xref{anch: in node before}.
+@xref{anch: in node top}.
+@xref{anch: in node after}.
+@xref{anch: in chap}.
+';
+
+
+$result_texts{'anchor_links_xref_xrefautomaticsectiontitle'} = '
+
+In node before
+
+top sectionning
+***************
+
+in node Top
+
+
+in node after
+
+1 chap
+******
+
+in chap
+
+anch: in node before.
+anch: in node top.
+anch: in node after.
+anch: in chap.
+
+anch: in node before.
+anch: in node top.
+anch: in node after.
+anch: in chap.
+';
+
+$result_sectioning{'anchor_links_xref_xrefautomaticsectiontitle'} = {
+  'level' => -1,
+  'section_childs' => [
+    {
+      'cmdname' => 'top',
+      'extra' => {
+        'associated_node' => {
+          'cmdname' => 'node',
+          'extra' => {
+            'normalized' => 'Top',
+            'spaces_before_argument' => ' '
+          }
+        },
+        'spaces_before_argument' => ' '
+      },
+      'level' => 0,
+      'section_childs' => [
+        {
+          'cmdname' => 'chapter',
+          'extra' => {
+            'associated_node' => {
+              'cmdname' => 'node',
+              'extra' => {
+                'normalized' => 'chap',
+                'spaces_before_argument' => ' '
+              }
+            },
+            'spaces_before_argument' => ' '
+          },
+          'level' => 1,
+          'number' => 1,
+          'section_up' => {},
+          'toplevel_prev' => {},
+          'toplevel_up' => {}
+        }
+      ],
+      'section_up' => {}
+    }
+  ]
+};
+$result_sectioning{'anchor_links_xref_xrefautomaticsectiontitle'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'anchor_links_xref_xrefautomaticsectiontitle'}{'section_childs'}[0];
+$result_sectioning{'anchor_links_xref_xrefautomaticsectiontitle'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = 
$result_sectioning{'anchor_links_xref_xrefautomaticsectiontitle'}{'section_childs'}[0];
+$result_sectioning{'anchor_links_xref_xrefautomaticsectiontitle'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_up'}
 = 
$result_sectioning{'anchor_links_xref_xrefautomaticsectiontitle'}{'section_childs'}[0];
+$result_sectioning{'anchor_links_xref_xrefautomaticsectiontitle'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'anchor_links_xref_xrefautomaticsectiontitle'};
+
+$result_nodes{'anchor_links_xref_xrefautomaticsectiontitle'} = {
+  'cmdname' => 'node',
+  'extra' => {
+    'associated_section' => {
+      'cmdname' => 'top',
+      'extra' => {
+        'spaces_before_argument' => ' '
+      },
+      'level' => 0
+    },
+    'normalized' => 'Top',
+    'spaces_before_argument' => ' '
+  },
+  'node_next' => {
+    'cmdname' => 'node',
+    'extra' => {
+      'associated_section' => {
+        'cmdname' => 'chapter',
+        'extra' => {
+          'spaces_before_argument' => ' '
+        },
+        'level' => 1,
+        'number' => 1
+      },
+      'normalized' => 'chap',
+      'spaces_before_argument' => ' '
+    },
+    'node_prev' => {},
+    'node_up' => {}
+  }
+};
+$result_nodes{'anchor_links_xref_xrefautomaticsectiontitle'}{'node_next'}{'node_prev'}
 = $result_nodes{'anchor_links_xref_xrefautomaticsectiontitle'};
+$result_nodes{'anchor_links_xref_xrefautomaticsectiontitle'}{'node_next'}{'node_up'}
 = $result_nodes{'anchor_links_xref_xrefautomaticsectiontitle'};
+
+$result_menus{'anchor_links_xref_xrefautomaticsectiontitle'} = {
+  'cmdname' => 'node',
+  'extra' => {
+    'normalized' => 'Top',
+    'spaces_before_argument' => ' '
+  }
+};
+
+$result_errors{'anchor_links_xref_xrefautomaticsectiontitle'} = [
+  {
+    'error_line' => ':3: warning: node `node before\' unreferenced
+',
+    'file_name' => '',
+    'line_nr' => 3,
+    'macro' => '',
+    'text' => 'node `node before\' unreferenced',
+    'type' => 'warning'
+  },
+  {
+    'error_line' => ':14: warning: node `after\' unreferenced
+',
+    'file_name' => '',
+    'line_nr' => 14,
+    'macro' => '',
+    'text' => 'node `after\' unreferenced',
+    'type' => 'warning'
+  }
+];
+
+
+$result_floats{'anchor_links_xref_xrefautomaticsectiontitle'} = {};
+
+
+
+$result_converted{'latex'}->{'anchor_links_xref_xrefautomaticsectiontitle'} = '
+\\label{anchor:node-before}%
+
+In node before
+\\label{anchor:anch_003a-in-node-before}%
+
+\\label{anchor:after}%
+
+in node after
+\\label{anchor:anch_003a-in-node-after}%
+
+\\chapter{chap}
+\\label{anchor:chap}%
+
+in chap
+\\label{anchor:anch_003a-in-chap}%
+
+See \\hyperref[anchor:anch_003a-in-node-before]{[top sectionning], 
page~\\pageref*{anchor:anch_003a-in-node-before}}.
+See \\hyperref[anchor:anch_003a-in-node-top]{[top sectionning], 
page~\\pageref*{anchor:anch_003a-in-node-top}}.
+See \\hyperref[anchor:anch_003a-in-node-after]{[top sectionning], 
page~\\pageref*{anchor:anch_003a-in-node-after}}.
+See \\hyperref[anchor:anch_003a-in-chap]{[chap], 
page~\\pageref*{anchor:anch_003a-in-chap}}.
+
+See \\hyperref[anchor:anch_003a-in-node-before]{[anch: in node before], 
page~\\pageref*{anchor:anch_003a-in-node-before}}.
+See \\hyperref[anchor:anch_003a-in-node-top]{[anch: in node top], 
page~\\pageref*{anchor:anch_003a-in-node-top}}.
+See \\hyperref[anchor:anch_003a-in-node-after]{[anch: in node after], 
page~\\pageref*{anchor:anch_003a-in-node-after}}.
+See \\hyperref[anchor:anch_003a-in-chap]{[anch: in chap], 
page~\\pageref*{anchor:anch_003a-in-chap}}.
+';
+
+1;
diff --git 
a/tp/t/results/latex_tests/anchor_links_xref_xrefautomaticsectiontitle/res_latex/anchor_links_xref_xrefautomaticsectiontitle.tex
 
b/tp/t/results/latex_tests/anchor_links_xref_xrefautomaticsectiontitle/res_latex/anchor_links_xref_xrefautomaticsectiontitle.tex
new file mode 100644
index 0000000..bc9f961
--- /dev/null
+++ 
b/tp/t/results/latex_tests/anchor_links_xref_xrefautomaticsectiontitle/res_latex/anchor_links_xref_xrefautomaticsectiontitle.tex
@@ -0,0 +1,90 @@
+\documentclass{book}
+\usepackage{makeidx}\makeindex
+\usepackage{amsfonts}
+\usepackage{amsmath}
+\usepackage[gen]{eurosym}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{graphicx}
+\usepackage{needspace}
+\usepackage{etoolbox}
+\usepackage{fancyhdr}
+\usepackage{float}
+% use hidelinks to remove boxes around links to be similar with Texinfo TeX
+\usepackage[hidelinks]{hyperref}
+\usepackage[utf8]{inputenc}
+
+% redefine the \mainmatter command such that it does not clear page
+% as if in double page
+\makeatletter
+\renewcommand\mainmatter{\clearpage\@mainmattertrue\pagenumbering{arabic}}
+\makeatother
+
+% command that does nothing used to help with substitutions in commands
+\newcommand{\GNUTexinfoplaceholder}[1]{}
+
+% called when setting single headers
+% use \nouppercase to match with Texinfo TeX style
+\newcommand{\GNUTexinfosetsingleheader}{\pagestyle{fancy}
+\fancyhf{}
+\lhead{\nouppercase{\leftmark}}
+\rhead{\thepage}
+}
+
+% called when setting double headers
+\newcommand{\GNUTexinfosetdoubleheader}[1]{\pagestyle{fancy}
+\fancyhf{}
+\fancyhead[LE,RO]{\thepage}
+\fancyhead[RE]{#1}
+\fancyhead[LO]{\nouppercase{\leftmark}}
+}
+
+% for part and chapter, which call \thispagestyle{plain}
+\fancypagestyle{plain}{ %
+ \fancyhf{}
+ \fancyhead[LE,RO]{\thepage}
+}
+
+% match Texinfo TeX style
+\renewcommand{\headrulewidth}{0pt}%
+
+% avoid pagebreak and headings setting for a sectionning command
+\newcommand{\GNUTexinfonopagebreakheading}[2]{\let\clearpage\relax 
\let\cleardoublepage\relax \let\thispagestyle\GNUTexinfoplaceholder #1{#2}}
+
+
+\renewcommand{\includegraphics}[1]{\fbox{FIG #1}}
+
+% set default for @setchapternewpage
+\makeatletter
+\patchcmd{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi}{\GNUTexinfoplaceholder{setchapternewpage
 placeholder}\clearpage}{}{}
+\makeatother
+\GNUTexinfosetsingleheader{}%
+
+\begin{document}
+
+\label{anchor:node-before}%
+
+In node before
+\label{anchor:anch_003a-in-node-before}%
+
+\label{anchor:after}%
+
+in node after
+\label{anchor:anch_003a-in-node-after}%
+
+\chapter{chap}
+\label{anchor:chap}%
+
+in chap
+\label{anchor:anch_003a-in-chap}%
+
+See \hyperref[anchor:anch_003a-in-node-before]{[chap], 
page~\pageref*{anchor:anch_003a-in-node-before}}.
+See \hyperref[anchor:anch_003a-in-node-top]{[top sectionning], 
page~\pageref*{anchor:anch_003a-in-node-top}}.
+See \hyperref[anchor:anch_003a-in-node-after]{[chap], 
page~\pageref*{anchor:anch_003a-in-node-after}}.
+See \hyperref[anchor:anch_003a-in-chap]{[chap], 
page~\pageref*{anchor:anch_003a-in-chap}}.
+
+See \hyperref[anchor:anch_003a-in-node-before]{[anch: in node before], 
page~\pageref*{anchor:anch_003a-in-node-before}}.
+See \hyperref[anchor:anch_003a-in-node-top]{[anch: in node top], 
page~\pageref*{anchor:anch_003a-in-node-top}}.
+See \hyperref[anchor:anch_003a-in-node-after]{[anch: in node after], 
page~\pageref*{anchor:anch_003a-in-node-after}}.
+See \hyperref[anchor:anch_003a-in-chap]{[anch: in chap], 
page~\pageref*{anchor:anch_003a-in-chap}}.
+\end{document}



reply via email to

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